Maalesef bu şuanda sektörümüzün en büyük belalarından biri.

Bu sorunu kökten çözmenin 2-3 metodu var ben en kolayından bahsetmek
istiyorum işi kaynağında yok etmek. Yani isp ve datacenter şirketlerinin
kendi verimerkezlerinden dışarı çıkan paketleri gerçekten mantıklı mantıksız
izleyerek sahte ve saldırı içerikli olanlarını temizlemesi yönünde. Bu
kısmen zor kısmen problem olacak bir durum.

Sorununuz için yaptığınız scriptin türevlerinin işe yararlılığı tartışılır
durumda, mantık olarak tek bir ip adresini kullanan 10 kişilik bir ofis veya
internet kafe üzerinden sizin sisteme girildiğinde gerçekte sadece 4-5 kişi
aynı anda sitede geziyor olmasına rağmen siz tek ip gördüğünüz için herkesi
engellemiş olabilirsiniz tek açık nokta burası kalıyor sanırım.

Daha profesyonel çözüm olarak http_GET flood işi için sizin script'in benzer
modelini kullanan IPS/IDP cihazlar mevcut sektörde, bu cihazların fiyatları
15-20k usd den başlamakta ve ele avuca gelir hatırı sayılır kalitede iş
yapanların fiyatları ise 70-80k altında olmamakta. 

SYN konusunda ise durum daha zor. Bu noktada piyasada %100 çözüm üreten
sadece 2-3 ekipman bulunuyor, bunların fiyatları da 50k civarından
başlıyor...




Saygılarımla;


Selçuk SARAÇ
[email protected]
Hosting Internet Hizmetleri San. Tic. Ltd. Şti.

Otakçılar Cad. No: 78, Kat:4, Flat Ofis, Eyüp/ İstanbul/ Türkiye


7/24 Destek Hattı
: +90 (212) 437 87 87 (pbx)
Kurumsal Erişim(Satış, İdari)
: +90 (212) 437 85 50 (pbx)
Fax
: +90 (212) 437 85 60


Müşteri Kontrol Paneli
: http://my.sadecehosting.com
WebMail
: http://webmail.sadecehosting.com



-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Barkın Kılıç
Sent: Wednesday, February 02, 2011 11:55 PM
To: [email protected]
Subject: [Linux-guvenlik] Http Get/Post Flood atak engelleyen script

Merhaba

Son zamanlarda sıkca artan DDOS saldırıları can sıkmaya devam ederken,kimi
çeşitleri için korunma yolları mevcut kimileri içinse gerçekten korunmak
zor. Bunların içinden HTTP GET/POST flood ile sıkça karşılaşıyorum. Bu atak
çeşidi normal HTTP GET isteğini binlerce defa ve farklı bot networklerden
yaparak servis dışı bırakabiliyor sunucuları.
Geçenlerde yine yaşadığımız bu problem nedeniyle aklıma önceden bildiğim ama
örneğini görmediğim bir script yazmak geldi. Nasılsa HTTP GET isteği
yapılabilmesi için, TCP protokolü gereği gerçek ip adresinden gelmesi ve 80.
porta bağlantı açması gerekiyor. Bu fikirden yola çıkarak şunu yapabilen bir
bash script yazmak aklıma geldi: Netstat çıktısı ile tcp 80. port üzerinden
( Portlar değiştirilebilir )  yapılan bağlantı sayısı belli bir sayının
üzerinde ise bu ip adresini belirli bir süre yasaklayıp bunları bir listede
tutan, daha sonra süresi doluncada bu yasağı kaldıran bir script yazdım.
Belirli bir seviyeye kadar getirdim.
Apache'nin benchmark tool'u "ab" ile atak simule ederek test ettim. Şuan
Centos üzerinde kusursuz çalışıyor. Tahminim diğer Linux dağıtımlarındada
kusursuz çalışır. Servis gibi çalışmasını sağladım, kendini arka planda
askıda tutuyor, yani scripti çalıştırdıktan sonra bağlantınızı kesseniz bile
çalışmaya devam ediyor ve 15 saniye gibi bir aralıkla netstat çıktısına
bakıp, örneğin 100 bağlantı (Bağlantı adeti
değiştirilebilir) üzerinde yapan ip adresini 1 dakika (Süre
değiştirilebilir) banlayıp, daha sonra süresi dolunca listede bu girdiyi
diyez ile işaretleyip bu yasağı kaldırıyor ama tekrar yaparsa bu listeye
kaçıncı defa girdiyse bu sayısını bir arttırıp daha sonra tekrar yasaklıyor
başındaki diyezi kaldırarak. Süresi dolunca yine aynı işlemleri yapıyor.
Yasaklamayı iptables ile 80. porta olan erişimini DROP ederek yapıyor. Aynı
ip adresi tekrar yakalanırsa engellenme süresi bu listeye girdiği sayı kadar
çarpılıp giderek artıyor. Yani banlanma süresi sabit değil, suç işledikçe
suçu oranında artıyor :)  Eğer scripti kapatmak isterseniz kendisine "kapat"
paremetresini vermeniz onu durdurmaya yetiyor. Ayrıca "durum" parametresi
ilede basitte olsa servis çalışıyor mu, durmuş mu, yoksa öldürülmüş mü
öğrenebiliyorsunuz.

Çok fonksiyonlu değil ama iş görebilecek bir script. Belki işine yarayan
olabilir diye ekte paylaşmak istedim. Deneyip yorum iletmek isteyen, sorun
yaşayan, sorusu olan, ilerletmek konusunda irtibata geçmek isteyen olursa
bir sakıncası yoktur benim için, elimden gelen yardımı yaparım.

İyi çalışmalar.

--
Barkink


_______________________________________________
Linux-guvenlik mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-guvenlik
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap