DDoS Saldırıları ve Nginx
Dağıtılmış Hizmet Reddi (DDoS) saldırıları, bir hizmeti veya bir ağı hedef alarak, o hizmetin çalışmasını engellemeyi amaçlayan kötü niyetli girişimlerdir. Bu tür saldırılar, genellikle birden fazla kaynaktan gelen büyük miktarda trafiğin bir araya getirilmesi ile gerçekleştirilir. Nginx, yüksek performanslı bir web sunucusu ve ters proxy olarak yaygın şekilde kullanılmakta olup, bu tür saldırılara karşı çeşitli koruma mekanizmaları sunmaktadır.
limit_req_module
Nginx’in limit_req_module eklentisi, istekleri sınırlamak için kullanılır. Bu modül, belirli bir zaman dilimi içinde belirli bir IP adresinden gelen istek sayısını kısıtlayarak, aşırı yüklenmelerin önüne geçmeyi hedefler.
Bir yapılandırma dosyasında belirli bir hızda istekleri sınırlamak için aşağıdaki gibi bir komut kullanılabilir:
“`nginx
http {
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
server {
location / {
limit_req zone=mylimit burst=5;
…
}
}
}
“`
Yukarıdaki yapılandırma, belirli bir IP adresine saniyede 1 istek sınırı koymakta ve ani trafik artışlarına karşı 5 isteklik bir ‘burst’ kapasitesi tanımlamaktadır. Bu sayede belirli bir seviyenin üzerinde gelen istekler reddedilerek sunucu korunmuş olur.
fail2ban
Fail2ban, belirli kurallara göre kötü niyetli etkinlikleri tespit edip IP adreslerini engelleyerek hizmeti korumak için kullanılan bir araçtır. Genellikle log dosyalarındaki belirli hataları (örneğin 404 veya 500 hataları) izler ve belirtilen sayıdan daha fazla hatalı istek geldiğinde bu IP adresini belirli bir süre için engeller.
Aşağıdaki gibi basit bir konfigürasyon ile Nginx log dosyalarından yararlanarak belirli bir hata kodunun sayısını denetleyip IP adreslerini engellemek mümkündür:
“`bash
[nginx-auth]
enabled = true
filter = nginx-auth
action = iptables[name=nginx-auth, port=http, protocol=tcp]
logpath = /var/log/nginx/access.log
maxretry = 5
bantime = 600
“`
Bu ayar, belirli bir IP adresinin 5 hatalı istekten sonra 10 dakikalığına engellenmesine olanak tanımaktadır. Fail2ban, zaman içerisinde sürekli güncellenerek yeni saldırı türlerine karşı adapte olabilmektedir.
Cloudflare
Cloudflare, web siteleri için bir içerik dağıtım ağı (CDN) ve güvenlik çözümü sunan bir hizmettir. DDoS saldırılarına karşı koruma sağlamak için öncelikle trafiği Cloudflare’in sunucuları üzerinden yönlendirerek bot trafiğini filtreler. Cloudflare, çeşitli seviyelerde güvenlik önlemleri sunmakta olup, kullanıcıların ihtiyaçlarına göre katmanlı koruma yöntemleri oluşturmasına olanak tanır.
Cloudflare’ın uyguladığı “Rate Limiting” özelliği, belirli kaynaklar için belirli bir süre dahilinde isteği sınırlayarak web sitelerine gelen DDoS saldırılarını engellemeye yardımcı olur. Yönetim panelinden özelleştirilen kurallar sayesinde, belirli IP adreslerinden gelen ani trafik artışları rahatlıkla kontrol altında tutulabilmektedir.
Diğer Koruma Yöntemleri
Nginx üzerinde DDoS koruması için kullanılabilecek diğer yöntemler arasında CAPTCHA kullanmak, IP yasaklama listeleri oluşturmak ve web uygulama güvenlik duvarları (WAF) uygulamaları bulunmaktadır. CAPTCHA, botların otomatik olarak DDoS saldırıları gerçekleştirmesini zorlaştırırken, IP yasaklama listeleri belirli riskli IP adreslerini daha önceden engellemeye olanak tanır.
Web uygulama güvenlik duvarları ise, gelen trafiği analiz ederek potansiyel saldırıları tespit eder ve engeller. Bu tür yazılımlar, belirli bir trafiği inceleyerek yalnızca güvenli isteklerin sunucuya ulaşmasını sağlar.
İzleme ve Analiz
DDoS saldırılarına karşı alınan önlemlerin etkinliğini değerlendirmek üzere sürekli izleme ve analiz yapmak önemlidir. Nginx’in yerleşik loglama sistemleri ile birlikte, çeşitli analiz araçları kullanılarak trafiğin sürekliliği gözlemlenebilir. Bu sayede alışılmadık trafik artışları veya anormal durumlar tespit edilebilir.
Log dosyalarının analizi, ileride karşılaşılabilecek olası saldırıların öngörülmesine yardımcı olurken, önleyici tedbirlerin alınmasına zemin hazırlar.
Sonuç olarak, Nginx web sunucuları için uygulanan çeşitli DDoS koruma yöntemleri, sunucu performansının korunması ve internet hizmetlerinin sürekliliği açısından kritik öneme sahiptir. Bu yöntemlerin bir arada kullanılması, farklı saldırı türlerine karşı kapsamlı bir koruma ve güvenlik sağlar.


