Så här installerar och konfigurerar du Fail2Ban på Linux
9 min läsning - 14 maj 2026

Steg-för-steg-guide för installation, konfiguration och testning av Fail2Ban på Ubuntu-, Debian- och RHEL-baserade Linux-servrar.
Hur man installerar och konfigurerar Fail2Ban på Linux
Fail2Ban övervakar serverloggarna efter misstänkt aktivitet och blockerar automatiskt skadliga IP-adresser genom att uppdatera brandväggsreglerna. Det stoppar brute-force-attacker, minskar loggbruset och körs tyst i bakgrunden när det väl har konfigurerats. Den här guiden täcker installation på Ubuntu/Debian, kärnkonfiguration, fängelseinställning och några avancerade alternativ som är värda att känna till.
Förutsättningar
Fail2Ban körs på de flesta Linux-distributioner: Ubuntu, Debian, AlmaLinux, CentOS, RHEL, Rocky Linux och Fedora. Du kommer att behöva:
- Python 3 installerat på systemet
- Root- eller sudo-åtkomst för paketinstallation och brandväggsändringar
- En aktiv brandvägg (iptables, nftables, ufw eller firewalld)
- Loggfiler som fångar misslyckade inloggningsförsök
(/var/log/auth.logpå Debian-baserade system,/var/log/securepå RHEL-baserade)
På RHEL-baserade system ska du först aktivera EPEL-arkivet. Innan du installerar Fail2Ban, bekräfta att din brandvägg körs med ufw status eller systemctl status firewalld.
Installera Fail2Ban på Ubuntu/Debian
Uppdatera dina paket och installera Fail2Ban:
sudo apt update && sudo apt upgrade -y
sudo apt install fail2banAktivera tjänsten så att den startar vid uppstart och starta den sedan:
sudo systemctl enable fail2ban
sudo systemctl start fail2banKopiera standardkonfigurationen till en lokal åsidosättningsfil. Redigera alltid jail.local, inte jail.conf, så att paketuppdateringar inte skriver över dina inställningar:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localVerifiera att allt körs:
sudo systemctl status fail2ban
sudo fail2ban-client statusDet första kommandot bör visa "Active: active (running)". Det andra listar dina aktiva fängelser. Bekräfta att Fail2Ban är aktiverat vid uppstart med sudo systemctl is-enabled fail2ban.
Konfigurera fängelser
Standardinställningar
Öppna /etc/fail2ban/jail.local och justera avsnittet [DEFAULT]. Dessa inställningar gäller för alla fängelser om de inte åsidosätts:
| Parameter | Rekommenderat värde | Vad den gör |
|---|---|---|
bantime | 3600 | Blockerar en IP under 1 timme |
hitta tid | 600 | Räknar fel inom ett 10-minutersfönster |
maxretry | 3 till 5 | Misslyckanden innan en bannlysning utlöses |
ignorera ip | 127.0.0.1/8 ::1 | IP-adresser som aldrig bannas |
Lägg till din egen administrations-IP i ignoreip så att du inte låser ut dig själv. Exempel: ignoreip = 127.0.0.1/8 ::1 203.0.113.50.
SSH-skydd
Aktivera SSH-fängelset i jail.local:
[sshd]
enabled = trueKontrollera att logpath pekar på rätt loggfil för din distro. Om du har flyttat SSH till en port som inte är standard (t.ex. 2222), uppdatera portparametern så att den matchar.
Skydd för webbserver
Aktivera den jail som matchar din webbserver:
- Nginx:
[nginx-http-auth]för autentiseringsfel,[nginx-botsearch]för skadliga bots - Apache: [apache-auth
[apache-auth]för autentisering,[apache-badbots]för bots
Fängelse för återfallsförbrytare
Fängelset [recidive] fångar upp IP-adresser som fortsätter att bannas i andra fängelser och ger ett längre straff, vanligtvis en vecka (604 800 sekunder). Det är användbart för ihärdiga angripare som roterar sin strategi.
Ladda om efter att du har gjort ändringar:
sudo systemctl restart fail2ban
sudo fail2ban-client statusTestning och övervakning
Testning av förbud
Innan du förlitar dig på Fail2Ban i produktionen ska du testa den. Från en fjärrdator (inte din admin-IP) försöker du logga in via SSH tills du överskrider maxretry. Du bör bli blockerad. Bekräfta med:
sudo fail2ban-client status sshdSe när blockeringar sker i realtid:
tail -f /var/log/fail2ban.logOm du av misstag blockerar en legitim IP, avblockera den:
sudo fail2ban-client set sshd unbanip 203.0.113.50Övervakning från dag till dag
Granska förbudshistoriken genom att läsa loggen:
grep "Ban\|Unban" /var/log/fail2ban.logAnvändbara hanteringskommandon:
| Kommando | Syfte |
|---|---|
fail2ban-klient status | Lista alla aktiva fängelser |
fail2ban-klient förbjudna | Visa alla för närvarande förbjudna IP-adresser |
fail2ban-klient set <fängelse> unbanip <IP> | Avaktivera en specifik IP |
fail2ban-klient unban --all | Rensa alla förbud |
fail2ban-klient set <jail> banip <IP> | Förbjud en IP manuellt |
Förbud kvarstår över omstarter. Fail2Ban lagrar dem i en SQLite-databas i /var/lib/fail2ban/fail2ban.sqlite3.
Avancerad konfiguration
Byta till nftables
nftables är den moderna ersättaren till iptables. Den hanterar IPv4 och IPv6 i ett enda ramverk, skalar bättre med stora förbudslistor och har inbyggd hastighetsbegränsning. Om du använder Ubuntu 22.04+, Debian 11+ eller någon annan nyare distro är det det bästa valet.
Ställ in det i jail.local:
[DEFAULT]
banaction = nftables-multiportStarta om Fail2Ban och verifiera sedan med sudo nft list ruleset. Du bör se f2b-table och f2b-chain i utdata. Håll dig till iptables endast om du har ett äldre system eller har kompatibilitetskrav.
Meddelanden via e-post
Som standard förbjuder Fail2Ban i tysthet. Om du vill få e-postaviseringar lägger du till följande i avsnittet [DEFAULT] i jail.local:
[DEFAULT]
destemail = [email protected]
sender = [email protected]
mta = sendmail
action = %(action_mwl)sÅtgärden action_mwl skickar ett e-postmeddelande med information om förbudet, WHOIS-data och de loggrader som utlöste förbudet. Använd action_mw om du bara vill ha WHOIS-data. Du behöver ha en e-postöverföringsagent som sendmail installerad, eller ett SMTP-relä konfigurerat genom något som msmtp.
För Slack- eller Discord-varningar skapar du ett skript som skickar en webhook och kopplar upp det via en anpassad åtgärdsfil i /etc/fail2ban/action.d/.
Om du letar efter en server med full root-åtkomst och obegränsad bandbredd för att köra Fail2Ban kan du kolla in FDC:s dedikerade servrar.

Trött på långsamma driftsättningar eller bandbreddsbegränsningar? FDC Servers erbjuder omedelbar dedikerad kraft, global räckvidd och flexibla planer som är byggda för alla skalor. Är du redo att uppgradera?
Lås upp prestanda nu
Checklista för härdning av Linux-server
Steg-för-steg-checklista för att härda en Linux-server. Täcker SSH, brandväggar, patchning, filbehörigheter, SELinux/AppArmor och revisionsloggning
15 min läsning - 8 maj 2026
iperf3 Handledning: Testa nätverkshastighet på Linux & Windows
10 min läsning - 7 maj 2026

Har du frågor eller behöver du en anpassad lösning?
Flexibla alternativ
Global räckvidd
Omedelbar driftsättning
Flexibla alternativ
Global räckvidd
Omedelbar driftsättning