Så här installerar och konfigurerar du Fail2Ban på Linux

9 min läsning - 14 maj 2026

hero section cover
Innehållsförteckning
  • Hur man installerar och konfigurerar Fail2Ban på Linux
  • Förutsättningar
  • Installera Fail2Ban på Ubuntu/Debian
  • Konfigurera fängelser
  • Testning och övervakning
  • Avancerad konfiguration
Dela

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.log på Debian-baserade system, /var/log/secure på 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 fail2ban

Aktivera tjänsten så att den startar vid uppstart och starta den sedan:

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Kopiera 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.local

Verifiera att allt körs:

sudo systemctl status fail2ban
sudo fail2ban-client status

Det 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:

ParameterRekommenderat värdeVad den gör
bantime3600Blockerar en IP under 1 timme
hitta tid600Räknar fel inom ett 10-minutersfönster
maxretry3 till 5Misslyckanden innan en bannlysning utlöses
ignorera ip127.0.0.1/8 ::1IP-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 = true

Kontrollera 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 status

Testning 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 sshd

Se när blockeringar sker i realtid:

tail -f /var/log/fail2ban.log

Om 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.log

Användbara hanteringskommandon:

KommandoSyfte
fail2ban-klient statusLista alla aktiva fängelser
fail2ban-klient förbjudnaVisa alla för närvarande förbjudna IP-adresser
fail2ban-klient set <fängelse> unbanip <IP>Avaktivera en specifik IP
fail2ban-klient unban --allRensa 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-multiport

Starta 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.

background image
Håller din server tillbaka din tillväxt?

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

Blogg

Utvalda denna vecka

Fler artiklar
Checklista för härdning av Linux-server

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

Fler artiklar
background image

Har du frågor eller behöver du en anpassad lösning?

icon

Flexibla alternativ

icon

Global räckvidd

icon

Omedelbar driftsättning

icon

Flexibla alternativ

icon

Global räckvidd

icon

Omedelbar driftsättning