Fail2ban houdt de inlogpogingen in de gaten en blokkeert een IP-adres dat te vaak faalt een tijdje in de firewall. Tegen bots die wachtwoorden uitproberen is het zeer effectief, en het verbruikt vrijwel niets.
Installeren
# Ubuntu / Debian
apt install -y fail2ban python3-systemd
# Rocky Linux
dnf install -y epel-release && dnf install -y fail2ban
Configureren
Maak /etc/fail2ban/jail.local aan (bewerk jail.conf niet: dat bestand wordt bij updates overschreven):
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5
# Zet hier je IP-adres van thuis, zodat je jezelf nooit blokkeert
ignoreip = 127.0.0.1/8 ::1
[sshd]
enabled = true
backend = systemd
Hiermee wordt een IP-adres dat 5 keer binnen 10 minuten faalt een uur lang geblokkeerd. Dankzij de regel backend = systemd werkt het ook op Debian 12, dat het klassieke bestand auth.log niet meer schrijft.
systemctl enable --now fail2ban
systemctl restart fail2ban
Bekijken wat het doet
fail2ban-client status sshd
Je ziet hoeveel pogingen het heeft geteld en welke IP-adressen er op dit moment geblokkeerd zijn.
Als je jezelf blokkeert
Wacht tot de blokkeertijd voorbij is, of log in via de VNC-console en hef de blokkade op:
fail2ban-client set sshd unbanip 198.51.100.7
Fail2ban is een goede extra laag, maar de echte bescherming is dat er geen wachtwoorden te raden zijn: log in met een SSH-sleutel en schakel wachtwoorden uit.