Så här konfigurerar du Fail2ban för att skydda din Linux-server

Senaste uppdateringen: 3 de Septiembre de 2026
Författare: TecnoDigital

IT-proffs som arbetar med en bärbar dator i ett modernt datacenter, perfekt för att introducera serversäkerhet.

Att ha en Linux-server exponerad för nätverket är i princip som att släppa ut en magnet för bottar. Om du inte har konfigurerat några säkerhetsåtgärder har du förmodligen redan tusentals misslyckade inloggningsförsök i dina loggar; det finns automatiserade maskiner som ständigt försöker använda användarnamn- och lösenordskombinationer för att försöka ta kontroll över din maskin. brute force attacker.

Det är här Fail2ban kommer in i bilden, ett verktyg som fungerar som en outtröttlig vakthund. Det är inte en brandvägg i strikt bemärkelse, utan snarare analyserar systemloggarna Och när den upptäcker att någon försöker tränga sig in, slår den igen dörren i ansiktet på dem genom att blockera deras IP-adress med hjälp av verktyg som iptables eller nftables. Låt oss se hur du finjusterar den för att göra din server till en svår nöt att knäcka.

Vad är Fail2ban egentligen och hur fungerar det?

Enkelt uttryckt är Fail2ban en daemon som kontinuerligt övervakar loggfilerna för dina tjänster. När den hittar misstänkta mönster som matchar fördefinierade regler gör den anrop. filterDen börjar räkna misslyckanden. Om en IP-adress når gränsen för tillåtna försök inom en viss tid, kör programmet en handlingvilket vanligtvis innebär att lägga till den IP-adressen i brandväggens svarta lista.

Dessa konfigurationer är organiserade i vad som kallas fängelser eller fängelserEtt jail är i grunden en uppsättning regler som tillämpas på en specifik tjänst (som SSH, Apache eller MySQL). På så sätt kan du ha en mycket strikt policy för fjärråtkomst och en mer tillåtande för webbservern, vilket säkerställer att inkräktare är blockerade automatiskt utan att du behöver kontrollera loggarna manuellt var femte minut.

  Bästa webbresurser för Linux: En komplett guide

Symbol för en cyberattack med en person som håller en hackermask bredvid Linux-serverrack.

Installation enligt din Linuxdistribution

Beroende på vilket system du använder varierar kommandot för att installera det något, men det är generellt tillgängligt i nästan alla officiella arkiv.

  • På Ubuntu och Debian: Det är väldigt enkelt, du behöver bara springa sudo apt update följt av sudo apt install fail2ban.
  • På Rocky Linux eller AlmaLinux: Eftersom dessa är Enterprise-distributioner måste du först aktivera EPEL-arkivet med sudo dnf install epel-release och installera sedan paketet med sudo dnf install fail2ban fail2ban-firewalld.
  • I Alpine Linux: Använd APK-hanteraren med sudo apk add fail2ban Och eftersom den använder OpenRC måste du aktivera den med sudo rc-update add fail2ban default och börja det med sudo rc-service fail2ban start.

Professionell detalj av serverrack i ett datacenter med blå belysning, som representerar serverinfrastrukturen.

Huvudkonfiguration: Hemligheten bakom .local-filen

Ett mycket vanligt misstag är att redigera filen direkt. jail.confGör inte det! Den filen kan skrivas över när du uppdaterar systemet. Den gyllene regeln är att skapa en kopia som heter jail.localAlla parametrar du lägger till i den här andra filen har företräde framför originalet och dina ändringar kommer att skrivas över. säker från uppdateringar.

Till att börja med kan du klona originalfilen med sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local och öppna den sedan med din favoritredigerare, till exempel nano eller vim. I avsnittet [STANDARD] Det är här du definierar systemets övergripande beteende:

  • bantid: El tiempo que la IP maliciosa se quedará en el congelador. Puede ser en segundos o usando ‘m’ para minutos (ej. 10m).
  • hitta tid: Tidsintervallet inom vilket Fail2ban söker efter fel. Om någon misslyckas 5 gånger på en timme men söktiden är 10 minuter, kommer de inte att bli avstängda.
  • maxretry: Antalet misslyckade försök som tillåts innan systemet säger Nog och blockera IP:n.
  • ignoreraip: Viktigt för att undvika att stänga av dig själv. Här måste du ange din offentlig IP-adress eller ditt VPN-intervall.
  Kvalifikationer och certifieringar: en komplett guide för att stärka din profil

Närbild av fiberoptiska nätverkskablar anslutna till en företagsserver, som illustrerar nätverksanslutning och säkerhet.

Skydda specifika tjänster steg för steg

När de allmänna inställningarna är konfigurerade är det dags att aktivera jails för de tjänster som berör dig mest. För att ett skydd ska fungera måste du ställa in enabled = true i respektive avsnitt inom jail.local.

SSH-åtkomst (den mest kritiska punkten)

Port 22 är det främsta målet. En robust konfiguration skulle definiera maxretry = 3 och en bantime = 3600 (en timme). Fail2ban kommer att läsa filen. /var/log/auth.log (på Debian/Ubuntu) eller / Var / log / säkra (på CentOS/RHEL) för att upptäcka autentiseringsfel och stänga åtkomst för angriparen.

Webbservrar (Apache och Nginx)

Om du har en webbplats eller webbutik kommer bottar att försöka komma åt känsliga vägar som t.ex. /wp-admin o /login.phpDu kan skapa anpassade filter i /etc/fail2ban/filter.d/ för att upptäcka dessa mönster. Till exempel, för att Skydda WordPress403-fel eller misslyckade försök övervakas i wp-login.php, och blockerar IP-adressen om den överskrider gränserna som anges i Apache- eller Nginx-jailen.

Databaser och FTP

För MySQL kan du övervaka felloggen för frasen Åtkomst nekad för användarenNär det gäller FTP (som ProFTPD) är det viktigt att säkerställa att logpath matcha den faktiska sökvägen till dina loggar, för om Fail2ban inte hittar loggfilen kommer skyddet helt enkelt inte att fungera.

Avancerad hantering med fail2ban-klient

Du behöver inte alltid redigera filer och starta om tjänsten för att göra snabba ändringar. Kommandot fail2ban-client Det låter dig hantera systemet direkt från konsolen.

För att se vilka jailer som är aktiva och hur många IP-adresser som är blockerade, använd sudo fail2ban-client statusOm du vill fördjupa dig i en tjänst, som SSH, kör sudo fail2ban-client status sshdDessutom, om det av misstag Du har blockerat en kollega Eller så kan du snabbt frigöra IP-adressen själv med kommandot sudo fail2ban-client set sshd unbanip IP_A_DESBLOQUEAR.

Underhåll och felsökning

Om du märker att Fail2ban inte blockerar som det ska, är det första stället att leta i verktygets egen loggfil. /var/log/fail2ban.log. Använder sig av tail -f Du kan se i realtid vilka som blir avstängda och varför.

  Chrome Remote Desktop: slutet på persondatorer?

Kom ihåg att Fail2ban lagrar låsstatusen i en SQLite-databas i /var/lib/fail2ban/fail2ban.sqlite3Därför, om du startar om servern, kommer de IP-adresser som har blockerats att upphävas. kommer att förbli blockerad tills din straffperiod löper ut. Glöm inte att tillämpa ändringarna när du gör ändringar i konfigurationsfilerna. sudo systemctl restart fail2ban.

Genom att implementera det här verktyget förvandlas din server från ett enkelt mål till en automatiserad fästning, vilket minskar CPU-belastningen genom att kassera skadlig trafik på nätverkslagret och låter dig sova gott i vetskapen om att robotar inte kommer att kunna bruteforcera sig in. Genom att kombinera användningen av .local-filer, hanteringen av specifika jails och konstant loggövervakning uppnår du en... försvar på djupet viktigt för alla Linux-systemadministratörer.