Fail2Ban ile Brute Force Saldırılarından Korunma

fail2ban

İnternete açık cihazlar her an otomatize scriptler veya kötü niyetli insanlar tarafından saldırıya uğramaktadır. Bunların en basit yöntemlerinden biri ise cihazlar üzerindeki default portlar üzerinde çalışan servislere brute force(kaba kuvvet) saldırısı yapmaktır. Bu yazımızda bu saldırılardan korunman için fail2ban aracının kurulumunu ve kullanımını inceleyeceğiz.

Fail2Ban [file:///var/log/pwdfail pwdfail] gibi log dosyalarını tarar ve çok fazla parola hatası yapan IP adreslerini yasaklar. Sistem yöneticileri bunu manuel olarak da yapabilir. Ancak 7/24 sunucu loğlarını takip edip aksiyon almak fazla iş yükü gerektirdiğinden bunu fail2ban ile otomatize hale getirebiliriz.

Fail2ban çalışma prensibi log dosyalarını takip edip bruteforce saldırısı yapan IP adreslerini iptables yardımı ile engellemesidir.

Anlatım boyunca karışıklıkların önlenmesi için Saldırgan(Attacker) ve saldırıya konu olan sunucunun IP adresi;

Kali(Attacker) IP: 192.168.1.26
Server IP: 192.168.1.22

Sunucu üzerinde yaptığımız incelemede 22(ssh) ve 21(ftp) portlarının açık olduğunu görmekteyiz.

FAİL2BAN İLE BRUTE FORCE SALDIRILARINDAN KORUNMA

Portlar üzerinde brute force saldırısı ile deneme yaptığımızda;

hydra -L user.txt -P rockyou.txt 192.168.1.22 ssh

FAİL2BAN İLE BRUTE FORCE SALDIRILARINDAN KORUNMA
FAİL2BAN İLE BRUTE FORCE SALDIRILARINDAN KORUNMA

Kullanıcı adı ve parola bilgilerine erişebilmekteyiz.

Fail2Ban Kurulumu

Sunucumuz üzerinde komut satırında;

apt-get install fail2ban

komutu ile fail2ban kurulumunu tamamlıyoruz.

FAİL2BAN İLE BRUTE FORCE SALDIRILARINDAN KORUNMA

Fail2Ban Konfigürasyonu

cp /etc/fail2ban/jail.conf /etcfail2ban/jail.local

komutu yardımı ile konfigürasyon dosyamızı oluşturuyoruz.

FAİL2BAN İLE BRUTE FORCE SALDIRILARINDAN KORUNMA

Herhangi bir metin editörü ile konfigürasyon dosyamızı açıyoruz.

nano /etc/fail2ban/jail.local

Örneğimizde ssh servisi için konfigürasyon yapacağız. Aynı ayarları ftp servisi içinde uygulayabilirsiniz.

FAİL2BAN İLE BRUTE FORCE SALDIRILARINDAN KORUNMA

Sshd satırına geldiğimizde önümüze 3 adet parametre çıkmakta.

  • mode: Koruma modu.( normal / ddos / extra / agressive)
  • port: ssh servisinin çalıştığı port varsayılan olarak 22 de çalışıyorsa ssh olarak bırakabilirsiniz. Eğer değiştiyseniz yeni portu girebilirsiniz.
  • logpath: ssh loğlarının konumu varsayılan ise değişmenize gerek yok.
  • backend: Servis konumu.

En alta

enebled = true

ekleyerek fail2ban’ın sshd servisi için aktifleşmesini sağlıyoruz.

Dosya içerisinde değişiklik yapmak isteyeceğiniz diğer değişkenlere gelirsek.

  • maxretry: Kaç denemeden sonra engellenmesini istiyorsunuz.
  • bantime: Saldırganın ne kadar süre ile engellenmesini istiyorsunuz.
  • ignoreip: Whitelist uygulamak isterseniz buraya sunucuya eriştmek istediğiniz IP adresini girebilirsiniz.
FAİL2BAN İLE BRUTE FORCE SALDIRILARINDAN KORUNMA

ctrl + x ile dosyadan çıkıp değişiklikleri kaydediyoruz.

Fail2ban servisini yeniden başlatıp durumuna bakıyoruz.

service fail2ban stop

Komutu ile servisi durduruyoruz.

service fail2ban start

Komutu ile servisi başlatıyoruz.

service fail2ban status

İle servisin çalışıp çalışmadığına bakıyoruz.

FAİL2BAN İLE BRUTE FORCE SALDIRILARINDAN KORUNMA

fail2ban-client status

ile fail2banın geçerli olduğu tüm servisleri görüntüleyebilirsiniz.

FAİL2BAN İLE BRUTE FORCE SALDIRILARINDAN KORUNMA

Şimdi sıra geldi saldırı senaryosunu tekrarlayıp yaptığımız değişikliklerin geçerli olup olmadığını incelemeye.

ssh servisi üzerinde brute force saldırısını tekrarlıyoruz.

FAİL2BAN İLE BRUTE FORCE SALDIRILARINDAN KORUNMA

Ve saldırımızın başarısız olduğunu görüyoruz. Kurulum ve yaptığımız ayarlamaların çalıştığını görmekteyiz.
Sunucu üzerinde bu saldırıyı incelemeye sıra geldi.

tail /var/log/fail2ban.log

komutu ile fail2ban’ın loğlarını inceliyoruz.

FAİL2BAN İLE BRUTE FORCE SALDIRILARINDAN KORUNMA

Ve saldırganın IP adresinin loğlara düştüğünü görmekteyiz.

fail2ban-client status sshd

komutu ile fail2ban üzerinde de sshd servisi üzerindeki durumu takip edebiliriz.

FAİL2BAN İLE BRUTE FORCE SALDIRILARINDAN KORUNMA

Fail2Ban tarafından engellenmiş bir IP adresinin engelini kaldırmak istersek.

fail2ban-client -i

komutu yardımı ile fail2ban’ın shelline düşüyoruz.

set <servis> unbanip <IP> komutu yardımı ile yani senaryomuza göre;

set sshd unbanip 192.168.1.26

komutu ile IP üzerindeki engellemeyi kaldırıyoruz ve exit komutu ile fail2ban shell’inden çıkış yapıyoruz. Yaptığımız değişikliğin geçerli olup olmadığını kontrol etmek için;

fail2ban-client status sshd

komutuyla duruma bakıyoruz.

FAİL2BAN İLE BRUTE FORCE SALDIRILARINDAN KORUNMA

Ve yaptığımız değişikliklerin geçerli olduğunu görmekteyiz.

Blog postu ile ilgili bir sorunuz varsa bizimle iletişime geçebilirsiniz.

Size nasıl yardımcı olalım?

İhtiyacınız olan her an Prisma danışmanları yanı başınızda. Bizimle 7/24 iletişime geçebilirsiniz.


Sızma testi hizmetlerimizi incelediniz mi?