İnternete açık bir Linux sunucusunun SSH portu, sürekli olarak otomatik botların rastgele kullanıcı adı/şifre denediği bir hedeftir. fail2ban, bu denemeleri otomatik olarak engelleyen basit ama etkili bir araçtır.

Nasıl Çalışır?

Belirli sayıda başarısız denemeden sonra otomatik yasaklama fail2ban, sistem loglarını izler; bir IP adresinden kısa süre içinde belirli sayıda (varsayılan genelde 5) başarısız SSH giriş denemesi geldiğinde, o IP'yi otomatik olarak belirli bir süre (varsayılan 10 dakika, ayarlanabilir) yasaklar. Bu, otomatik botların binlerce şifre denemesini pratik olarak imkansız hale getirir.

Kurulum

sudo apt install fail2ban
sudo systemctl enable --now fail2ban

Durumu Kontrol Etme

sudo fail2ban-client status sshd

Bu komut, o an yasaklı olan IP'leri ve toplam yasaklama sayısını gösterir.

Bir IP'yi Elle Yasaklama/Kaldırma

# Yasaklama
sudo fail2ban-client set sshd banip IP_ADRESI

# Yasağı kaldırma
sudo fail2ban-client set sshd unbanip IP_ADRESI

Yasaklama Süresini/Eşiğini Özelleştirme

Varsayılan ayarlar çoğu kullanıcı için yeterlidir. Daha katı bir politika isterseniz, /etc/fail2ban/jail.local dosyasında (yoksa oluşturun) bantime (yasaklama süresi) ve maxretry (izin verilen deneme sayısı) değerlerini özelleştirebilirsiniz.

Kendinizi kilitlemeyin Şifrenizi birkaç kez yanlış girerseniz kendi IP'niz de yasaklanabilir. Bu durumda, sağlayıcınızın web tabanlı konsol erişimi varsa oradan bağlanıp fail2ban-client unbanip ile kendinizi kurtarabilirsiniz.

UFW ile Birlikte Kullanım

fail2ban ve UFW birbirini tamamlar: UFW hangi portların açık olduğunu kontrol eder, fail2ban ise açık portlara yönelik kötüye kullanımı engeller.