Linux icin top 20 http baglantisini gormek ve iptables ile bloklamak

Root
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,043
Tepki puanı
79
Konum
SEO
Linux icin top 20 http baglantisini gormek.
Bunu biraz once yazdim, tek satir ama cok ise yariyor.
Ozellikle DOS yada DDOS saldiri yaptiklarinda IP adreslerini tesbit etmek icin ideal.
PHP:
netstat -an | grep ":80 "| awk '{print $5}'|cut -d":" -f1 | sort |uniq -c | sort -nr | head -20 | grep -v -E "127.0.0.1|0.0.0.0"
Bu listede cok dikkati ceken (en ustteki) IP leri (eger cok fazla sayida ise ornegin 100) bloklamak icin asagidaki ornegi kullanabilirsiniz:
PHP:
iptables -I INPUT -s 85.97.22.70 -j DROP

Ek olarak bu da 10 un uzerindeki baglantilari gosteriyor, ($1 > 10) buradaki 10 degerini degistirerek daha buyuk degerlere ayarliyabilirsiniz, ornegin 100 sonrada bunu bir script haline getirip donen degerleri iptables ile bloklayabilirsiniz. Ardindan bu scripti cron da calistirabilirsiniz:
PHP:
netstat -an | grep ":80 "| awk '{print $5}'|cut -d":" -f1 | sort| uniq -c | sort -nr | grep -v -E "127.0.0.1|0.0.0.0|10.0.0.1" | awk '{ if ($1 > 10) { print $1 " " $2 ; }}'

Bu biraz daha iyi bir kod, birkac ddos sitesi gezdikten sonra derledim:
PHP:
netstat -ntu | awk '{print $5}'|cut -d":" -f1 | sort| uniq -c | sort -nr | grep -v -E "127.0.0.1|0.0.0.0|10.0.0.1" | awk '{ if ($1 > 150) { print $1 " " $2 ; }}'
 
0
Onaylı Üye
Üye
Katılım
29 Eylül 2005
Mesajlar
499
Tepki puanı
0
60 değeri optimum bence çok fazla resim içeren site varsa ve keep alive kapalı ise banlanma ihtimaliniz daha fazla
 
0
Onaylı Üye
Üye
Katılım
15 Eylül 2005
Mesajlar
322
Tepki puanı
0
Konum
Kocaeli
böyle bir durum olursa
# iptables -f yaparak tüm kuralları kaldırabilirsiniz. Bilmiyenler olabilir diye yazdım.
 
Root
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,043
Tepki puanı
79
Konum
SEO
okan23' Alıntı:
60 değeri optimum bence çok fazla resim içeren site varsa ve keep alive kapalı ise banlanma ihtimaliniz daha fazla

Evet sitenin yogunluguna gore degisiyor, once gozlemleyip sonra karar vermek en iyisi.
 
0
Onaylı Üye
Üye
Katılım
19 Aralık 2004
Mesajlar
337
Tepki puanı
0
root@server [/etc]# ./deneme.sh
./deneme.sh: line 1: unexpected EOF while looking for matching `"'
./deneme.sh: line 2: syntax error: unexpected end of file

erroru alıyorum :S sorun nedir acaba ?
 
Root
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,043
Tepki puanı
79
Konum
SEO
deneme.sh icindekileri buraya kopyala bakayim.
 
0
Onaylı Üye
Üye
Katılım
19 Aralık 2004
Mesajlar
337
Tepki puanı
0
netstat -an | grep ":80 "| awk '{print $5}'|cut -d":" -f1 | uniq -c | sort -nr | head -20 | grep -v -E "127.0.0.1|0.0.0.0
 
Root
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,043
Tepki puanı
79
Konum
SEO
En sonda " yok.
Onun yerine bunu kullan:

PHP:
netstat -an | grep ":80 "| awk '{print $5}'|cut -d":" -f1 | sort | uniq -c | sort -nr | head -20 | grep -v -E "127.0.0.1|0.0.0.0"
 
0
Onaylı Üye
Üye
Katılım
19 Aralık 2004
Mesajlar
337
Tepki puanı
0
dikkatimi çekti :D tam cevaplıyordum sen yuazmışın saol..
 
0
Onaylı Üye
Üye
Katılım
19 Aralık 2004
Mesajlar
337
Tepki puanı
0
bu arada scriptteki 20 değeriini nekadar yükseltirsem liste okadar çoğalıyor fakat bunların okada bağlantısı olduğunu sanmıorum :D 1000 yazdım mesala liste 25-30 kişi fln oldu :S
 
Root
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,043
Tepki puanı
79
Konum
SEO
1. yukaridaki yeni komut satirini mi kullaniyorsun?
2. head onundeki 20 rakami kac satir gosterecegini belirliyor
 
0
Onaylı Üye
Üye
Katılım
19 Aralık 2004
Mesajlar
337
Tepki puanı
0
hmm anladım.. peki bunu nasıl çoğaltabiliriz mesala 50 bağlantısı olanı göstermesini ?
şimdiden saol
 
Root
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,043
Tepki puanı
79
Konum
SEO
ilk mesajimda yazmistim ama yine yazayim.
Asagidaki satirda 50 rakami, sadece 50 den buyuk baglanti sayilari olan IP leri listeler. 50 den buyuk baglanti sayisi yok ise hic birsey listemez.

PHP:
netstat -an | grep ":80 "| awk '{print $5}'|cut -d":" -f1 | sort| uniq -c | sort -nr | grep -v -E "127.0.0.1|0.0.0.0|10.0.0.1" | awk '{ if ($1 > 50) { print $1 " " $2 ; }}'
 
0
Onaylı Üye
Üye
Katılım
19 Aralık 2004
Mesajlar
337
Tepki puanı
0
saol oldu galiba

18 217.157.141.21
10 85.107.92.34
8 85.100.203.92

yanlarındaki 18 , 10 , 8 bağlantı sayısınımı listeliyor acaba *

iyinetadmin cevap: evet
 
Geri
Üst