Fail2ban giriş denemelerini izler ve bir IP adresi çok fazla kez başarısız olduğunda onu güvenlik duvarında bir süreliğine engeller. Şifre deneyen botlara karşı çok etkilidir ve neredeyse hiç kaynak tüketmez.
Kurulum
# Ubuntu / Debian
apt install -y fail2ban python3-systemd
# Rocky Linux
dnf install -y epel-release && dnf install -y fail2ban
Yapılandırma
/etc/fail2ban/jail.local dosyasını oluşturun (jail.conf dosyasını düzenlemeyin: güncellemelerde üzerine yazılır):
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5
# Kendinizi asla engellememek için evinizin IP adresini buraya ekleyin
ignoreip = 127.0.0.1/8 ::1
[sshd]
enabled = true
backend = systemd
Bu ayarlarla 10 dakika içinde 5 kez başarısız olan bir IP adresi bir saat boyunca engellenir. backend = systemd satırı, artık klasik auth.log dosyasını yazmayan Debian 12'de de çalışmasını sağlar.
systemctl enable --now fail2ban
systemctl restart fail2ban
Ne yaptığını görme
fail2ban-client status sshd
Kaç deneme gördüğünü ve şu anda hangi IP adreslerini engellediğini gösterir.
Kendinizi engellerseniz
Engelleme süresinin dolmasını bekleyin ya da VNC konsolu üzerinden girip engeli kaldırın:
fail2ban-client set sshd unbanip 198.51.100.7
Fail2ban iyi bir ek katmandır, ancak asıl koruma, tahmin edilecek bir şifrenin hiç olmamasıdır: SSH anahtarıyla bağlanın ve şifreleri devre dışı bırakın.