Fail2ban övervakar loggar och blockerar tillfälligt IP-adresser efter upprepade misslyckade inloggningsförsök. Det används ofta för att minska SSH-brute-force på offentliga Linux-servrar.
Fail2ban fungerar genom att läsa loggfiler, matcha misslyckade inloggningsmönster med filter och tillämpa tillfälliga blockeringar genom en jail-konfiguration.
Ubuntu eller Debian
sudo apt update sudo apt install fail2ban sudo systemctl enable --now fail2ban
AlmaLinux, Rocky Linux, Oracle Linux, eller CentOS
sudo dnf install fail2ban sudo systemctl enable --now fail2ban
Om paketet inte är tillgängligt, aktivera lämpligt extra repository för din distribution först.
Skapa en lokal jail-konfiguration
Redigera inte jail.conf direkt. Skapa eller redigera jail.local så att paketuppdateringar inte skriver över dina ändringar.
sudo nano /etc/fail2ban/jail.local
En grundläggande SSH-jail ser ut så här:
[sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 5 findtime = 10m bantime = 1h
På AlmaLinux, Rocky Linux, Oracle Linux, eller CentOS kan SSH-loggar finnas i /var/log/secure istället:
logpath = /var/log/secure
Vanliga inställningar
| Inställning | Vad den styr |
|---|---|
enabled | Aktiverar eller inaktiverar jail. |
port | Tjänsteporten som Fail2ban ska skydda. |
filter | Fail2ban-filtret som används för att upptäcka misslyckade försök. |
logpath | Loggfilen som Fail2ban läser. |
maxretry | Hur många misslyckanden som tillåts innan en blockering. |
findtime | Tidsfönstret som Fail2ban räknar misslyckanden inom. |
bantime | Hur länge IP-adressen är blockerad. |
ignoreip | IP-adresser som aldrig ska blockeras. |
Vitlista din egen IP
Om du har en fast hem- eller kontors-IP, lägg till den i ignoreip så att du inte låser dig ute medan du testar:
[DEFAULT] ignoreip = 127.0.0.1/8 YOUR_IP_ADDRESS
Lägg endast till IP-adresser du litar på. Vitlista inte breda offentliga områden om du inte förstår säkerhetskonsekvenserna.
Starta om och kontrollera Fail2ban
- Starta om Fail2ban efter att ha ändrat jail-konfigurationen:
sudo systemctl restart fail2ban
- Kontrollera Fail2ban-tjänsten och jail-status:
sudo systemctl status fail2ban --no-pager sudo fail2ban-client status sudo fail2ban-client status sshd

Avblockera en IP-adress
sudo fail2ban-client set sshd unbanip IP_ADDRESS
Visa Fail2ban-loggar
sudo journalctl -u fail2ban --since "1 hour ago" sudo tail -100 /var/log/fail2ban.log
Fail2ban är hjälpsamt, men det är inte en ersättning för SSH-nycklar, starka lösenord, uppdateringar och en vettig brandvägg.
