Sayfalar

14 Ağustos 2009 Cuma

Banla 1.0

Merhabalar yaklaşık bir ay önce python programlama diline başladım, PHP bilen biri için python öğrenmek çok basit zaten temelde programlamanın mantığını bildiğiniz zaman geriye sadece öğreneceğiniz dilin yazım kuralları kalıyor.Bir arkadaşımın isteği üzerine python'da bir script yazdım ve dağıtmaya karar verdim.
Script'in görevi nedir diye soracak olursanız.Sunucuya bağlı olan ip adreslerini ve bu ip adreslerinin kaç bağlantı açtığını gösteriyor ve sizin limitlendirdiğiniz bağlantı sayısını aşan ip adreslerini iptables ile banlıyor.
Script nasıl çalışıyor?
Örneklerle anlatacak olursak komut satırına python banla.py 120 yazarak scripti çalıştırırsak 120 den fazla bağlantı açan ip adreslerini banlayabiliriz.
Eğerki sadece python banla.py yazarsak scriptimiz _limit_=int(100) satırında bulunan 100 değerini kullanacaktır yani 100 den fazla bağlantı açanları banlayacaktır.
Script ip adresini banlarken neler yapıyor?
Öncelikle python banla.py 150 gibi bir istekte bulunduk.
Script 150 den fazla bağlantı açan ip adreslerini buldu daha sonra bunları banlayacak ama öncelikle bir kaç evreden geçmesi gerekecek.
1.Evre : Scriptimiz öncelikle ip.txt dosyasına bakacaktır banlanacak ip adresi ip.txt dosyasında kayıtlımı diye eğer ip.txt dosyasında kayıtlı ise banlamayacaktır fakat kayıtlı değil ise ikinci evreye geçecektir.(banlanmasını istemediğiniz ip adreslerini ip.txt dosyasına alt alta yazabilirsiniz.Çünkü kimse arama motorlarını banlamak istemez herhalde :))
2.Evre : İkinci Evre nedir diye soracak olursanız ikinci evrede yine arama motorları ile ilgili , scriptimiz ip adresinin nereye ait olduğunu sorgulayacak
bunu nasıl yapıyor diye soracak olursanız bu adres size yardımcı olacaktır.Ben size yinede basit bir şekilde anlatayım Linux sunuculardaki host komutu ile örnek bir çıktı.

kral@kral:~/Masaüstü/python$ host 66.249.66.1
1.66.249.66.in-addr.arpa domain name pointer crawl-66-249-66-1.googlebot.com.

en son nerede kalmıştık host komutu ile ip adresinin hostname'mini alıyoruz ve beyazliste'mizde varmı diye bakıyoruz eğerki beyaz listemizde kayıtlı ise scriptimiz ip adresini banlamıyor ve o ip adresini ip.txt dosyasına kaydediyor böylelikle bir dahaki sefere 2. evreye gerek kalmadan ip adresi banlanmayacak eğerki beyazlistedede yoksa 3.evreye geçecek
( Beyaz listeyi beyazliste=["google.com","yahoo.com","bing.com","live.com","msn.com","msn.net"] satırından değiştirebilirsiniz.)
3.Evre :Bu evrede ip adresinin bir zombi olduğuna kanaat getiriyoruz ve ip adresini banlanıyoruz.
Sıra geldi Kodlara:


Screen Shot:
Komut: python banla.py 1 1 adet bağlantı açanlar listelendi.


Komut: python banla.py 100 adet bağlantı açanlar listelendi.default ayarlarda 100 yazılı olduğu için _limit_=int(100)


Komut: python banla.py 1 1 den fazla bağlantı açanlar listelendi ve banlandı



İlerde eklemeyi düşündüğüm özellik banlanan ip adreslerini mail ile yöneticiye haberdar etme.

1 yorum:

NullSoFt dedi ki...

Cok güzel script olmus hocam paylasmanizda super!.