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.