Fethi Polat 1
Fethi Polat
Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
shrpnl 1
shrpnl
YusufŞimşek14 1
YusufŞimşek14
berzahx 2
berzahx
xranzei 1
xranzei
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

DDOS Ataklardan Korunma

  • Konuyu başlatan Konuyu başlatan RetRievaL
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 2
  • Görüntüleme Görüntüleme 2K

RetRievaL

Level 3
TM Üye
Üye
Katılım
30 Eki 2008
Konular
145
Mesajlar
244
Reaksiyon Skoru
2
Altın Konu
0
TM Yaşı
17 Yıl 7 Ay 20 Gün
Başarım Puanı
122
MmoLira
-10
DevLira
0
Ticaret - 0%
0   0   0

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

Modülü kurmadan önce şunu belirtelim bu mod serverda yüklü olan frontpage extensios`ların doğru olarak çalışamamasına sebep olabilmektedir.

MOD_DOSEVASIVE(Apache DoS Evasive Maneuvers Module):

Mod_dosevasive apache için DoS , DDoS ve brute force saldırılarını engellemek için yazılmış bir modüldür.Firewall ların genellikle etkisiz kaldıkları get,post tipi saldırılarda özellikle yeteneklerini göstermektedir.Böylece sunucunuza aşırı yük binmeden kendini toparlıyabilmesini sağlamaktadır.Kolayca firewall ,router,ipchain,iptables ile anlaşabilecek şekilde modülü ayarlıyabilirsiniz böylece saldırganların sunucudan firewall seviyesinde yada router seviyesinde atılmasını sağlayabilirsiniz.Genel olarak yaptığı işi inceliyelim kullanıcı sunucudaki bir siteye devamlı get,post,put gibi istekler gönderiyorsa mod_dosevasive tarafından kara listeye alınıyor sizin belirlediğinz süre boyunce kara listeye alınan kişi sunucuya istek göndermeye devam edebilir ama alacağı http 403 forbidden(yasak) cevabını alır.Bu istekelr devam etse bile sunucunuz yorulmayacaktır.Kendi deneyimlerimi yazının en sonunda paylaşacağım.Eğer firewall yada router ile anlaşabielcek şekilde ayarlarsanız mod_dosevasive yı kara listeye alınan kullanıcı bekletilmeden direk sunucudan uzaklaştırılıcaktır.

Teknik Detaylar:

Tarama işlemi oluşturulan bir dinamik hash tablosunun kontrolu ile yapılır.Bu tablodaki ipler aşağıdaki standart kurulum değerlerini gösteriyorsa kara listeye alınır.

*Saniyede aynı sayfayı birden fazla istek yapılmışsa.
*Aynı çocuk süreç üzerinden 50 istek yapıldı ise.
*Kara listeye alındığı halde istek yapılıyorsa.

bu genellikle bu aralar çok yaygın olarka yapılan http flood scriptlerinden sunucuyu korumaktadır.Hem cpu kullanımını minimal de tutarken hemde sunucuyu bandwith türü yapılan saldırıladan korur.Belirlenen süre içinde engellenen kullanıcılar süre bittiğinde sunucuya takrar istek gönderebilir tabi firewall yada router ile sunucudan atılmadı ise.Sunucudan yaskalı olan ip listesi /tmp dizininde saklanmaktadır ve mod_dosevasive tarafından kontrol edilmektedir



Kurulum İşlemleri

Apache 1.3.x için kurulum detayları.

1.) /usr/local/src dizinine geçiyoruz.
Kod:

cd /usr/local/src



2.)Dosyayı sunucuya indiriyoruz.
Kod:

wget




3.)Sıkıştırılmış arşiv dosyasını açıyoruz.
Kod:

tar -zxvf mod_dosevasive_1.10.tar.gz






4.)Mod_dosevasive nin klasörüne giriyoruz
Kod:

cd mod_dosevasive




5.)DSO desteği ile yüklüyoruz.
Kod:

/etc/httpd/bin/apxs -cia mod_dosevasive.c







Apache 2 için kurulum adımları

1.)httpd devel paketini kurarak başlıyoruz.
Kod:

up2date -i httpd-devel




2.) /usr/local/src dizinie geçiyoruz
Kod:

cd /usr/local/src




3.)Dosyası sunucuya indiriyoruz.
Kod:

wget




4.)Arşiv dosyasını açıyoruz
Kod:

tar -zxf mod_dosevasive_1.10.tar.gz



5.)Mod_dosevasive klasörüne giriyoruz
Kod:

cd mod_dosevasive



6.)DSO modülü olarak kuruyoruz
Kod:

/usr/sbin/apxs -cia mod_dosevasive20.c





Ayarların Yapılması
Apache 1.3.x için

1.)Apache nin ayar dosyası olan httpd.conf dosyasını açıyoruz.
Kod:

pico -w /usr/local/apache/etc/httpd.conf




2.)Ctrl+w tuşlarına basarak gelen arama ekranına AddModule mod_dosevasive.c yazıyoruz.Bu kısmın hemen altına aşağıda vereceğim değerleri yazıyorsunuz.





Kod:
<IFMODULE mod_dosevasive.c>
DOSHashTableSize 3097
DOSPageCount 5
DOSSiteCount 100
DOSPageInterval 2
DOSSiteInterval 2
DOSBlockingPeriod 600
</IFMODULE>



3.)Tekrar ctrl+w tuşlarına basın gelen arama ekranına MaxRequestsPerChild MaxRequestsPerChild = 0 değerini görüceksiniz o değeri MaxRequestsPerChild 10000 olacak şekilde değiştirin.Bu sayede mod_dosevasive süresi dolan hash leri temizleyecektir.Ayrıca gene httpd.conf ta keepalive yazan kısım on olarak kalsın off yaparsanız çalışmayacaktır.



4.)Ctrl+x tuş kombinasyonunu kullanarak dosyayı kaydedip çıkın.

5.)Apache yi yeniden başlatın.
Kod:

/etc/init.d/apache restart





Apache 2.x için ayarların yapılması

1.)Apache ayar dosyası olan httpd.conf dosyasını açın

2.)LoadModule mod_dosevasive.c yazan yeri bulun altına aşağıdakileri ekleyin.
Kod:

<IFMODULE mod_dosevasive20.c> DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10 DOSBlockingPeriod 600 </IFMODULE>




3.)Tekrar ctrl+w tuşlarına basın gelen arama ekranına MaxRequestsPerChild MaxRequestsPerChild = 0 değerini görüceksiniz o değeri MaxRequestsPerChild 10000 olacak şekilde değiştirin.Bu sayede mod_dosevasive süresi dolan hash leri temizleyecektir.Ayrıca gene httpd.conf ta keepalive yazan kısım on olarak kalsın off yaparsanız çalışmayacaktır.

4.)Dosyayı kaydedip apache yi yeniden başlatın.

Eklenen Değerlerin anlamları

DOSHashTableSize:
Her çocuk süreçteki en üst seviye nodlarının büyüklüğünü belirtir.Bu değeri yükseltmek performans artışını sağlayacaktır fakat aynı zamanda kayıtların kontrolu daha seyrek yapılıcaktır.Eğer yoğun bir sunucunuz varsa bu değeri yükseltin .

DOSPageCount:
Aynı sayfaya gelebilecek belirli bir süredeki istek sayısıdır.Belirli bir süre değeri DOSPageINterval değeri ile ayarlanır.Eğer bu istek sayısı aşılırsa ip kara listeye alınır sunucuya ulaşmaya çalıştığında 403 forbidden yanıtını alır.

DOSSiteCount
DOSSiteInterval değerinde belirtilen sürede siteden çekilebilecek obje,nesne sayısıdır.Resimler, style sheets, javascripts, SSI

DOSPageInterval
DOSPageCount değeri için ayarlanıcak saniyedir.

DOSSiteInterval
DOSSiteCount değeri için ayarlanıcak saniyedir.

DOSBlockingPeriod:
Kara listeye alınan iplerin 403 forbidden yanıtını alacağı saniye cinsinden süredir bunu yüksek tutmaya çalışın 10 dakika gibi yani 600

DOSEmailNotify

Herhangi bir saldırı olduğunda maillerin gideceği e-posta adresi.

DOSSystemCommand:

Sistem tarafından icra edilebilecek komutlar.

Kişisel Deneyim:
Daha önce http flood scriptlerini engellemek için bir çok firewall,apache için eklenti kurdum denedim ve çoğu gerçekten bir işe yaramıyordu kanatimce yada beklediğim şekilde etki etmiyordu örneğin mod_throotle dosevasive varken bunu kesinlikle kurmayın derim modu deneme platformum p4 2.4 1024 ram yaklaşık 80 siteyi barındıran orta yoğunlukta bir server modülü önce firewall ile iletişim kurmayacak şekilde kurdum böylece kara listeye alınan bir ip hemen serverdan uzaklaştırılmayacak 403 mesajları gönderilicekti.İlk denemememi 1024 k adsl ile yaptım %0.5 seviyesinde seyreden server load ve %30 seviyesinde seyreden ram saldırının birinci dakikasında yük yoğunluğu 60 a ram kullanımı 70 civarına çıktı modülün logları incelemeye başlaması ile 60 a çıkan yük yoğunluğu saldırıya devam etmeme rağmen 10 dakika içinde 1.3 seviyesine indi buda bu kadar ağır bir saldırı için çok normal hehrangi bir önlem alınmamış bir serverda böye bir saldırı yani dinamik php sayfalarına devamlı get isteği gelmesi önce apache yi failler sonra mysql u ve sunucunun kendine gelemiyeceğine garanti veririm.Yaklaşık 1.30 saat kadar saldırıyı sürdürdüm bu sürede ortama process sayısı
167.23 requests/sec dır görüldüğü gibi aşırı fazla bir sayı saldırı sırasında 30-40 arası olan ram kullanımı 80 e çıktı buda gayet doğal bir olay çünkü linux un işleyişi windows gibi değildir elindkei bütün işlemleri olabildiğince ram e yazar yeterli bellek kalmadığında ise bunları boşaltır ama benim görüşürüz 2gb ram li bir sunucuda bu tür ağır bir http flood un mod_dosevasive ile hiç bir etkisi olmayacaktır.APF firewall u mod_dosevasive ile iletişim kuracak şekilde ayarladığımda ise saldırı yaptığım ip 3 dakika içinde sistemden uzaklaştırıldı.
Benim kullandığım kurallar biraz daha agrasif olmasına karşın serverda çok yoğun siteler olmadığı için çok iyi sonuç verdiğini düşünüyorum.Agrasif kural zinciri
Kod:

<IFMODULE mod_dosevasive.c> DOSHashTableSize 3097 DOSPageCount 1 DOSSiteCount 25 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 600 </IFMODULE>






mod_dosevasive nın Firewall ile yardımıyla kara listeye alınanları sunucudan uzaklaştırması

1.)Konsolda root iken visudo yazın.Dosyanın en altına girip şunu ekleyin


Kod:

nobOdy HOSTNAME = NOPASSWD: /usr/local/sbin/apf -d *


Burada hostname kısmına kendi hostname inizi yazın bunu öğrenmek için konsolda hostname komutunu kukkanabilirsiniz.Benim hostname im root.abcd.com diyelim oraya

Kod:

nobOdy root. = NOPASSWD: /usr/local/sbin/apf -d *


yazıyorum. Kaydetmek için ESC tuşuna basın ve ardından qw tuşlarına basıp enter deyin.



2.)Apache ayar dosyası olan httpd conf dosyasını gene açıyoruz
Kod:

pico -w /usr/local/apache/conf/httpd.conf




3.)Daha önce eklediğimiz kısımı buluyoruz
DOSHashTableSize 3097
DOSPageCount 5
DOSSiteCount 100
DOSPageInterval 2
DOSSiteInterval 2
DOSBlockingPeriod 600


hemen altına şu 2 satırı ekliyoruz



Kod:

DOSEmailNotify color=#22229cemail@adresiniz.com DOSSystemCommand "sudo /usr/local/sbin/apf -d %s"



kendi mail adresinizi değiştirmeyi unutmayın.



4.)Dosyayı kaydedip çıkıyoruz ve apache yi yeniden başlatıyoruz
Kod:

/etc/init.d/apache restart



5.)Artık kara listeye alınan ipler firewall tarafından sistemden uzaklaştırılıcaktır.


KAYNAK: Linuxsevenler
 
adam bunu okuyana kadar bilgisayarı zaten elden gitmiştir
 
adam bunu okuyana kadar bilgisayarı zaten elden gitmiştir

bu dediklerini yaparsan ztn bir nevi ddos ataklarını engellersin ama unutmaki hiç bir koruma sistemi ddosu engelleyemez
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst