İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

[FreeBSD] Flooder'lar ve minik programlar ile yapılan ataklar için koruma

DincerAydogdu

0
İyinet Üyesi
Onaylı Üye
Katılım
15 Nisan 2005
Mesajlar
1,741
Reaction score
29
Konum
Live in .NET
Son zamanlarda aldığım yoğun flood saldırılarına karşı kendi geliştirdiğim scripti sizlerle paylaşmak istedim. Benim çok işimi gördü.

Not : Bu sadece FreeBSD'de çalışır. Linux için biraz modifikasyona ihtiyacı var.

Öncelikle bir kontrol scripti yapıyoruz. Bu script'i her dakika çalışacak şekilde crontab'a ekliyoruz. Yaptığı iş basit ama flooder'lar için çok etkili bir çözüm.

TCP bağlantıları kontrol ediyor ve sunucu üzerinde FR_MIN_CONN değerinin (bende 200) üzerinde bağlantı kurmuş bir ip varsa route ile onu local olarak algılatıyor ve uzaktan gelen tüm bağlantıyı koparmış oluyor.

Kod:
#!/bin/sh
FR_MIN_CONN=200
TMP_PREFIX='/tmp/frrr'
TMP_FILE=`mktemp $TMP_PREFIX.XXXXXXXX`
/usr/bin/netstat -ntu -f inet| awk '{if(NR>2 && NF=6) print $5}' | cut -d. -f1-4 | grep '^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}$' | sort | uniq -c | sort -nr > $TMP_FILE
while read line; do
 CURR_LINE_CONN=$(echo $line | cut -d" " -f1)
 CURR_LINE_IP=$(echo $line | cut -d" " -f2)
 if [ $CURR_LINE_CONN -lt $FR_MIN_CONN ]; then
 break
 fi
/sbin/route -q add $CURR_LINE_IP 127.0.0.1
/bin/echo $CURR_LINE_IP >> /root/banlist.txt
/bin/echo "Subject: $CURR_LINE_IP ipden $CURR_LINE_CONN baglanti kesildi." | /usr/sbin/sendmail -F [email protected] -t [email protected]
done < $TMP_FILE
/bin/rm -f $TMP_PREFIX.*

Koda dikkat ederseniz banlist.txt dosyasına da bu ip'leri not alıyor. Ara sıra bu listeyi temizlemek isterseniz;

Kod:
#!/bin/sh
TMP_PREFIX='/tmp/fcrrr'
TMP_FILE=`mktemp $TMP_PREFIX.XXXXXXXX`
/bin/cat /root/banlist.txt > $TMP_FILE
while read line; do
CURR_LINE_IP=$(echo $line)
/sbin/route delete $CURR_LINE_IP
done < $TMP_FILE
/bin/rm -f $TMP_PREFIX.*
/bin/cp empty.txt banlist.txt

işinizi görecektir. (/root/empty.txt boş bir dosya olmalı.) Ben şahsen her hafta bir kere bu programı crontab'dan çalıştırıyorum.

Bir de proxy destekli minik ama güçlü flooder programları var. Bunlardan korunmanın yolu ise bilinen güncel proxy listelerine ulaşıp bunları üşenmeden banlamanız (FreeBSD için: /sbin/route -q add proxy.ipsi 127.0.0.1). Şu sıralar bu işlemi elle yapıyorum ancak önümüzdeki günlerde bunu da otomatikleştiren bir şeyler yapmaya çalışacağım.

BOTNET konusunda herkesin bildiği gibi maalesef elden gelen pek bir şey yok.

Bir gün birilerinin işine mutlaka yarar diye yazdım.

Saldırısız, temiz günler dilerim.
 

Z.YÜKSEL

0
İyinet Üyesi
Katılım
29 Ocak 2010
Mesajlar
1,489
Reaction score
18
Çok teşekkürler, Linux içinde düzenleme yapıp yayınlarsanız tadından yenmez : )
 

JustRulz

0
İyinet Üyesi
Katılım
14 Ekim 2008
Mesajlar
133
Reaction score
0
çok güzel olmuş elinize sağlık
banlist.txt de zamanla şişeceği için onu da crontab ile otomatik boşaltırsak iyi olur.
 

Emre000

0
İyinet Üyesi
Katılım
9 Haziran 2010
Mesajlar
8
Reaction score
0
selam, paylaşım için teşekkür ederim, ben crontabda dosyanın bu komutla her iki saniyede bir çalışmasını istiyorum, yazdığım bu kod doğru mu?
Kod:
*/1 * * * * sleep 2; root /usr/emre/antiddos.sh
 

KLAMP

0
İyinet Üyesi
Katılım
1 Şubat 2010
Mesajlar
290
Reaction score
0
bunu Linux İçin Anlatılanı Yokmu Acaba ?
 

Emre000

0
İyinet Üyesi
Katılım
9 Haziran 2010
Mesajlar
8
Reaction score
0
merhaba öncelikle size teşekkür ediyorum bu konuda bizlere bilgi verdiğiniz için.Size bir sorum olacak, ben freebsd 7.2 sistem kullanıyorum ve üstünede webmin kurdum cron işlemkerinide ordan yapıyorum.bu tip saldırıları sürekli kontrol ettirmek için bu resimdeki sayfaya nasıl bir komut vermeliyim?
ssscl.jpg
 

DincerAydogdu

0
İyinet Üyesi
Onaylı Üye
Katılım
15 Nisan 2005
Mesajlar
1,741
Reaction score
29
Konum
Live in .NET
merhaba öncelikle size teşekkür ediyorum bu konuda bizlere bilgi verdiğiniz için.Size bir sorum olacak, ben freebsd 7.2 sistem kullanıyorum ve üstünede webmin kurdum cron işlemkerinide ordan yapıyorum.bu tip saldırıları sürekli kontrol ettirmek için bu resimdeki sayfaya nasıl bir komut vermeliyim?
ssscl.jpg

Kaydet demeniz yeterli. Zaten her dakika çalışması için gerekli seçimleri yapmışsınız gibi görünüyor.
 

Batu

0
İyinet Üyesi
Katılım
29 Temmuz 2005
Mesajlar
370
Reaction score
0
arkadas bsd icin paylasmis, linuxa gore modifikasyon da benden olsun.

#!/bin/sh
FR_MIN_CONN=200
TMP_PREFIX='/tmp/frrr'
TMP_FILE=`mktemp $TMP_PREFIX.XXXXXXXX`
netstat -atpn |grep :80 |grep -v 8080| awk '{print $5}'|awk -F: '{print $1}'|sort -n |uniq -c|awk '{if ($1 > 10) {print }}' > $TMP_FILE
while read line; do
CURR_LINE_CONN=$(echo $line | cut -d" " -f1)
CURR_LINE_IP=$(echo $line | cut -d" " -f2)
if [ $CURR_LINE_CONN -lt $FR_MIN_CONN ]; then
break
fi
route add $CURR_LINE_IP eth0
/bin/echo $CURR_LINE_IP >> /root/banlist.txt
/bin/echo "Subject: $CURR_LINE_IP ipden $CURR_LINE_CONN baglanti kesildi." | /usr/sbin/sendmail -F [email protected] -t [email protected]
done < $TMP_FILE
/bin/rm -f $TMP_PREFIX.*
 

KHS

0
İyinet Üyesi
Katılım
29 Mayıs 2011
Mesajlar
90
Reaction score
0
Konum
istanbul
Peki linux de nereye ekleyeceğiz nasıl çaliştiracağiz bir açıklama yapmamışsınız
 

gokhan2517

0
Yasakli Uye
Katılım
29 Nisan 2011
Mesajlar
257
Reaction score
0
ya bu tam aradığım şey de winserver 2003 için ne yapmak lazım vps kullanıyorum yardımcı olurmusunuz arkadaşlar.
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst