Brute Force saldırılarını iptables ile engelleyin

Brute Force saldırısı(Brute Force Attack) diğer bir deyişler Anahtar Arama Saldırısı ( exhaustive key search) hedefin özel alanlara sızmak için deneme- yanılma yolu o servise ulaştıracak giriş bilgilerini tespit edip sisteme sızma saldırılarıdır.Ayrıntılı bilgi için bakınız ***

Sunucular internet dünyasına açıldığı takdirde bu tip saldırılardan nasibini alması kaçınılmazdır.Örnek bir “brute force” saldırısı:

May 05 01:23:23 zeus sshd[12355]: Illegal user office from 2**.1**.**.***
May 05 01:23:33 zeus sshd[12755]: Failed password for illegal user office from 2**.1**.**.*** port 53033 ssh2
May 05 01:24:10 zeus sshd[12857]: Illegal user samba from 213.191.74.219
May 05 01:24:16 zeus sshd[12357]: Failed password for illegal user samba from 2**.1**.**.*** port 53712 ssh2
May 05 01:24:19 zeus sshd[12659]: Illegal user tomcat from 2**.1**.**.***
May 05 01:24:25 zeus sshd[12459]: Failed password for illegal user tomcat from 2**.1**.**.*** port 54393 ssh2
May 05 01:24:34 zeus sshd[12361]: Illegal user webadmin from 2**.1**.**.***
Jul 28 01:24:43 zeus sshd[12361]: Failed password for illegal user webadmin from 2**.1**.**.*** port 55099 ssh2

Yukarda gördüğünüz gibi saldırgan rastgele kullanıcı adı ve parolalarla “ssh” servisine sızmaya çalışıyor.
Bu ve bu gibi brute saldırıları iptables‘e kural ekleyerek engellemeye çalışalım.
( Daha  önceki bir yazıda ssh güvenliği ilgili not yazmıştım**O yazıya göz atabilirsiniz.)

iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 5 --rttl --name SSH -j DROP


Yukardaki iptables kurallarındaki “eth0” arayüzünü,”22”  portunu kendi sisteminizdeki göre düzenleyiniz.

Bu kuralda ssh  servisimizi 1 dakika içerisinde 5 defa giriş izni vermiş olduk.Eğer  5′ten fazla giriş olduğu takdirde

 iptables “ssh” ulaşımını  engelleyecek.Bu kuralın normal ssh ile bağlanan kullanıcılar için bir  zararı olmayacak 

fakat durmadan atak yapacak olan saldırganı  engelleyecektir.


SSHatter ile kendinize saldırın!

Şimdi koyduğumuz kuralı test edelim.Bu kuralı test etmek için kendi kendimize saldıralım. ”SSH” servislerine “brute force attack” yapmak için kullanılan “SSHatter”ı kullanarak koyduğumuz kuralı test edelim. SSHatter‘ı “freshmeat” sitesinden edinebilirsiniz.SSHatter‘ı indirin . SSHatter’i indirdikten sonra uygun bir yere açalım. $ tar zxvf  SSHatter-1.0.tar.gz SSHatter’ın  iki tane bağımlılığı bulunuyor.Bunlar ForkManager ve Net-SSH-Perl bunları paket yöneticisi ile indirebiliriz. # emerge -av Parallel-ForkManager ( Debian kullanıcıları #apt-get install libparallel-forkmanager-perl ) # emerge -av  net-ssh-perl Artık saldırıya hazırız.SSHatter dizinine geçelim. $ cd SSHatter-1.0/src/ $ ls Saldıraya başlamadan önce deneme yapacağı birkaç username belirleyelim.Bunun için “users” adlı bir dosya oluşturup içine ekleyelim.Her satıra bir kullanıcı adı yazın. $nano users elma armut erik ….. gibi örnek kullanıcı adları yazıp kaydedin.Şimdi hedefi belirleyelim.Bunun için ise “targets” adlı bir dosya oluşturup içine hedefi yazalım. $ echo 127.0.0.1 > targets Zaten “src” dizininde “passwords” adlı bir dosyada örnek parolalar bulunmakta,kendiniz ekleme de yapabilirsiniz. Artık “brute force” atak yapmaya hazırız fakat kendi kendimizi de banlamamak için “cron” a 5 dakika sonra “iptables” kurallarını sıfırlamasını söyleyelim.
*/5 * * * * /sbin/iptables -F
Yukardaki satırı “cron”a eklemeyi unutmayın.Şimdi atağı başlatabiliriz.Örnek atak komutu: $ perl SSHatter.pl -x 1 -t targets -u users -p passwords Atak başladı ve 5 deneme girişinden sonra iptables tarafından banlanması gerekir ve 5 dakika sonra bu kural iptal olacak ve tekrar erişime açılacak. Bu eklediğimiz iptables kuralının her açılışta aktif olmasını istiyorsanız basit script yazarak sistem açılışına ekleyebilirsiniz.Eğer daha kolay yollar arıyorsanız fail2ban gibi yazılımlara bakabilirsiniz. Bu sitede fail2ban hakkında güzel bir yazı mevcut.

Comments