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

0
Onaylı Üye
Üye
Katılım
15 Nisan 2005
Mesajlar
1,741
Tepki puanı
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.
 
0
Onaylı Üye
Üye
Katılım
29 Ocak 2010
Mesajlar
1,489
Tepki puanı
16
Çok teşekkürler, Linux içinde düzenleme yapıp yayınlarsanız tadından yenmez : )
 
0
Onaylı Üye
Üye
Katılım
14 Ekim 2008
Mesajlar
133
Tepki puanı
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.
 
0
Onaylı Üye
Üye
Katılım
9 Haziran 2010
Mesajlar
8
Tepki puanı
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
 
0
Onaylı Üye
Üye
Katılım
17 Haziran 2010
Mesajlar
12
Tepki puanı
0
Konum
Kainat/Evren
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

banada lazım bu crontab :(
 
0
Onaylı Üye
Üye
Katılım
1 Şubat 2010
Mesajlar
290
Tepki puanı
0
bunu Linux İçin Anlatılanı Yokmu Acaba ?
 
0
Onaylı Üye
Üye
Katılım
9 Haziran 2010
Mesajlar
8
Tepki puanı
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
 
0
Onaylı Üye
Üye
Katılım
15 Nisan 2005
Mesajlar
1,741
Tepki puanı
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.
 
0
Onaylı Üye
Üye
Katılım
28 Temmuz 2005
Mesajlar
370
Tepki puanı
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.*
 
0
Üye
Katılım
29 Mayıs 2011
Mesajlar
90
Tepki puanı
0
Konum
istanbul
Peki linux de nereye ekleyeceğiz nasıl çaliştiracağiz bir açıklama yapmamışsınız
 
0
Yasakli Uye
Katılım
29 Nisan 2011
Mesajlar
257
Tepki puanı
0
ya bu tam aradığım şey de winserver 2003 için ne yapmak lazım vps kullanıyorum yardımcı olurmusunuz arkadaşlar.
 
Geri
Üst