Nginx ile DDoS Engelleme

schedule
2024-09-09 | 14:56h
update
2024-09-09 | 15:25h
person
mustafademirali.com
domain
mustafademirali.com
Nginx ile DDoS Engelleme

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.

En İyi Sunucu Seçimi

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:

  1. Yüksek CPU ve RAM Kapasitesi: DDoS saldırıları, sunucunun CPU ve RAM kullanımını hızla yükseltebilir. Bu nedenle, yüksek CPU gücüne sahip, en az 4 çekirdekli işlemciye sahip bir sunucu tercih edilmelidir. RAM kapasitesi ise minimum 8 GB olmalı, özellikle yüksek trafik alan siteler için bu değer daha da yüksek tutulabilir.
  2. Yüksek Ağ Bant Genişliği: Ağ bant genişliği, sunucunun kaldırabileceği maksimum veri akışını belirler. DDoS saldırıları sırasında, çok sayıda istek gönderildiğinden geniş bant desteği önemlidir. 1 Gbps ve üzeri bir bağlantı DDoS saldırıları sırasında stabil bir performans sağlar.
  3. Sanal Sunucu (VPS) veya Özel Sunucu (Dedicated): Küçük projelerde VPS yeterli olabilirken, büyük ölçekli projeler ve yüksek trafikli siteler için özel sunucular tercih edilmelidir. Özel sunucular, tüm donanım kaynaklarını bir kullanıcıya ayırdığı için DDoS saldırılarına karşı daha dayanıklıdır.

Ubuntu Üzerinde Nginx ile DDoS Engelleme

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:

1. Rate Limiting Yapılandırması

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.

Dosya: /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
Yapılandırma:

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;
}
}
}

  • limit_req_zone: Bir IP adresi için saniyede maksimum 10 istek kabul eder.
  • burst=20: Fazladan 20 istek tamponlanır, ancak çok sayıda istek aniden geldiğinde bu tampon da dolarsa fazla istekler reddedilir.
  • nodelay: Gelen istekler bekletilmez, limit aşılırsa direkt olarak reddedilir.

Yukarıdaki yapılandırma, temel DDoS saldırılarının büyük bir kısmını engelleyebilir.

2. Connection Limiting (Bağlantı Sınırlandırma)

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.

Dosya: /etc/nginx/nginx.conf
sudo nano /etc/nginx/nginx.conf
Yapılandırma:

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;
}
}
}

  • limit_conn_zone: Aynı IP adresinden gelen bağlantıları takip eder.
  • limit_conn: Bir IP adresinden gelen eş zamanlı bağlantıları 10 ile sınırlar.

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.

3. Cache Yapılandırması

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.

Dosya: /etc/nginx/nginx.conf
sudo nano /etc/nginx/nginx.conf
Yapılandırma:

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;
}
}
}

  • proxy_cache_path: Önbellek için bir dizin ve boyut belirler.
  • proxy_cache_valid: Önbellekte hangi cevapların ne kadar süre saklanacağını belirtir. Burada, 200 yanıt kodları için 60 dakika, 404 yanıtları için ise 1 dakika saklama süresi belirlenmiştir.

4. Fail2Ban ile IP Engelleme

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.

Fail2Ban Kurulumu:

Ubuntu üzerinde Fail2Ban’i şu komutla kurabilirsiniz:

sudo apt install fail2ban
Nginx için Fail2Ban Ayarları:

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

  • maxretry: Aynı IP adresinden yapılan 5 başarısız giriş denemesinden sonra IP adresini engeller.

5. UFW ile Güvenlik Duvarı Kuralları

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.

UFW ile Portları Kapatma:
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.

Reklâm

Damga
İçerik sorumlusu:
mustafademirali.com
Kullanım Gizlilik ve Şartlar:
mustafademirali.com
Mobil web sitesi aracılığıyla:
WordPress AMP Eklentisi
Son AMPHTML güncelleme:
18.11.2024 - 23:54:05
Veri ve çerez kullanımı: