Nginx ile DDoS Engelleme. Nginx performans optimizasyonuAMP yapıldığında yüksek performanslı ve esnek bir web sunucusu olarak bilinir, ancak doğru yapılandırılmadığında DDoS (Distributed Denial of Service) saldırıları karşısında zayıf kalabilir. DDoS saldırıları, sunucuya yoğun trafik göndererek sistemin kaynaklarını tüketmeyi ve hizmetin kesintiye uğramasını hedefler. Bu yazıda, Ubuntu işletim sistemi üzerinde Nginx kullanarak DDoS saldırılarına karşı alınabilecek önlemlerden, yapılandırma dosyalarından ve en iyi sunucu seçiminden bahsedeceğiz. Lakin öncelikle Nginx nedir?AMP Nginx kurulumu nasıl yapılırAMP, Nginx load balancingAMP ve Nginx güvenliğiAMP nasıl yapılır bunlar hakkında bilgi edinmenizi tavsiye ederim.
DDoS saldırılarına karşı dayanıklı bir sistem oluşturmak için güçlü ve optimize edilmiş bir sunucu altyapısına ihtiyaç vardır. Sunucu seçiminde dikkat edilmesi gereken başlıca özellikler şunlardır:
Ubuntu işletim sistemi üzerinde Nginx’i yapılandırarak DDoS saldırılarına karşı koruma sağlamak için aşağıdaki adımları takip edebilirsiniz:
Nginx’in DDoS saldırılarına karşı en önemli savunma mekanizmalarından biri Rate Limiting (İstek Sınırlama) özelliğidir. Bu özellik, bir IP adresinden gelen istek sayısını belirli bir zaman aralığında sınırlayarak sunucunun fazla yük altında kalmasını engeller.
/etc/nginx/nginx.conf
Bu dosyayı düzenleyerek belirli IP adreslerine gelen istekleri sınırlamak için şu adımları takip edin:
sudo nano /etc/nginx/nginx.conf
http {
# İstek sınırlama için bir bölge tanımlayın (10 MB hafıza ayırın)
limit_req_zone $binary_remote_addr zone=ddos_zone:10m rate=10r/s;
server {
location / {
# Bu bölgeyi etkinleştirin ve burst ile tampon kapasitesini ayarlayın
limit_req zone=ddos_zone burst=20 nodelay;
}
}
}
Yukarıdaki yapılandırma, temel DDoS saldırılarının büyük bir kısmını engelleyebilir.
Bağlantı sınırlandırma ile aynı IP adresinden gelen eş zamanlı bağlantı sayısını sınırlayarak sunucuya fazla yük binmesini engelleyebilirsiniz.
/etc/nginx/nginx.conf
sudo nano /etc/nginx/nginx.conf
http {
# Aynı IP adresi için bağlantı sınırlandırma (10 MB hafıza ayırın)
limit_conn_zone $binary_remote_addr zone=conn_limit:10m;
server {
location / {
# Aynı IP adresinden en fazla 10 bağlantıya izin verin
limit_conn conn_limit 10;
}
}
}
Bu özellik, DDoS saldırılarında sunucuya aynı anda çok fazla bağlantı yapılmasını engeller. Bununla beraber kaynak kullanımını optimize eder.
DDoS saldırıları sırasında Nginx’in statik dosyaları önbelleğe almasını sağlayarak sunucu yükünü azaltabilirsiniz. Böylece aynı istek defalarca sunucuya gitmeden doğrudan önbellekten sunulabilir.
/etc/nginx/nginx.conf
sudo nano /etc/nginx/nginx.conf
http {
# Cache dizini ve boyutunu belirleyin
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=cache_zone:10m max_size=1g inactive=60m use_temp_path=off;
server {
location / {
# Proxy cache kullanımı
proxy_cache cache_zone;
proxy_cache_valid 200 60m;
proxy_cache_valid 404 1m;
}
}
}
Belirli bir süre içinde çok fazla istek yapan IP adreslerini otomatik olarak Fail2Ban engelleyebilirsiniz. Fail2Ban, log dosyalarını inceleyerek şüpheli davranışları tespit eder ve saldırgan IP adreslerini kara listeye alır.
Ubuntu üzerinde Fail2Ban’i şu komutla kurabilirsiniz:
sudo apt install fail2ban
Fail2Ban’in yapılandırma dosyasına aşağıdaki ayarları ekleyin.
Dosya: /etc/fail2ban/jail.local
[nginx-http-auth]
enabled = true
port = http,https
filter = nginx-http-auth
logpath = /var/log/nginx/error.log
maxretry = 5
Ubuntu üzerinde Uncomplicated Firewall (UFW) kullanarak temel güvenlik duvarı kuralları oluşturabilirsiniz. Bu kurallar, belirli IP adreslerinden gelen trafiği sınırlandırmanıza yardımcı olur.
sudo ufw allow 'Nginx Full'
sudo ufw enable
UFW, yalnızca gerekli portları açarak DDoS saldırılarının yönlendirilebileceği açık kapıları kapatmanıza yardımcı olur. DDoS saldırılarına karşı korunma, doğru yapılandırılmış bir Nginx ve optimize edilmiş bir sunucu altyapısı ile mümkündür. Bu makalede, Ubuntu üzerinde Nginx kullanarak DDoS saldırılarını engellemek için yapılandırabileceğiniz rate limiting, connection limiting, cache ve güvenlik duvarı ayarlarından bahsettik. DDoS saldırılarına karşı tam koruma sağlamak için yukarıdaki yöntemleri uygulayın. Sunucunuza ve trafiğinize uygun şekilde optimize etmeniz önemlidir.