Hur du skyddar din server med Fail2Ban i Linux

Serversäkerhet är en högsta prioritet för alla företag eller organisationer. Fail2Ban är ett av de viktigaste verktygen i en systemadministratörs verktygslåda. Den här guiden förklarar vad Fail2Ban är och hur du kan skydda din server med Fail2Ban i din Linux från attacker.

Hur du skyddar din server med Fail2Ban i Linux - %categories

Vad är Fail2Ban?

Fail2Ban är ett verktyg för att förhindra intrång som övervakar loggfiler och blockerar IP-adresser som visar tecken på skadlig aktivitet. Den gör detta genom att skapa "filter" som matchar vissa mönster i loggfiler och utför åtgärder, som att blockera den felande IP-adressen.

Varför använda Fail2Ban i Linux?

Det finns flera anledningar till att använda Fail2Ban i Linux. kanske:

  • Det sparar tid genom att automatiskt blockera skadliga IP-adresser.
  • Hjälp till att säkra din server genom att minska chanserna för att en attack ska lyckas.
  • Det ger dig sinnesfrid att veta att din server övervakas och skyddas.

Installera Fail2Ban i Linux

Som standard är Fail2Ban tillgängligt i Ubuntus arkiv. Installera det med apt.

sudo add-apt-repository universum sudo apt uppdatering && sudo apt installera fail2ban -y

Hur du skyddar din server med Fail2Ban i Linux - %categories

Fail2Ban kommer att ställa in sin tjänst i bakgrunden, men systemd inaktiverar den som standard. Du kan starta och aktivera det med följande kommandon:

sudo systemctl start fail2ban sudo systemctl aktivera fail2ban

Kontrollera att Fail2Ban körs med följande kommando:

sudo systemctl status fail2ban

Du kommer att se en utdata som liknar bilden nedan.

Hur du skyddar din server med Fail2Ban i Linux - %categories

Konfigurera Fail2Ban i Linux

Katalogen "/etc/fail2ban" innehåller konfigurationsfilerna för Fail2Ban. Som standard kommer Fail2Ban med en "jail.conf"-fil som innehåller inställningar som kommer att tillämpas på alla tjänster.

Hur du skyddar din server med Fail2Ban i Linux - %categories

Det är dock en god praxis att skapa en lokal "jail.local"-fil och åsidosätta inställningarna i "jail.conf", eftersom alla ändringar du gör i "jail.conf" kommer att gå förlorade när programvaran uppdateras.

Du kan skapa din "jail.local"-fil med följande kommandon:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Öppna filen jail.local för att redigera den:

sudo nano /etc/fail2ban/jail.local

Hur du skyddar din server med Fail2Ban i Linux - %categories

Bra att veta: lär Hur man aktiverar lösenordslösa SSH-inloggningar på LINUX.

Utforska filen jail.local

Du kommer att se en liknande utgång som visas nedan och du kan bli överväldigad av antalet tillgängliga alternativ. Men oroa dig inte, vi leder dig genom de viktigaste alternativen.

Hur du skyddar din server med Fail2Ban i Linux - %categories

Du kommer att se en ikon "#" i början av raden, vilket indikerar att det är en kommentar. Fail2Ban använder dessa för att förklara vad en viss inställning gör. Du kan aktivera vissa inställningar här genom att ta bort den här ikonen.

Avsnittet innehåller "[STANDARD]" om alternativ som gäller alla fängelser. Detta är den allmänna konfigurationen av Fail2Ban. Följande skärmdump visar ett exempel.

Hur du skyddar din server med Fail2Ban i Linux - %categories

Det finns även andra avsnitt som börjar med tjänstens namn. Detta fängelse gäller en specifik tjänst ovanpå världens fängelser.

Läs också:  Vad är Proton för Steam och hur påverkar det spel på Linux?

Det finns till exempel en avdelning för ett fängelse "sshd". Det här avsnittet innehåller alternativen för sshd-tjänsten.

Hur du skyddar din server med Fail2Ban i Linux - %categories

Tips: Du kan också lära dig mer om serverhärdning på Säkra din SSH-server.

Aktivera Autoban-funktionen

Gå till inställning "bantime = 1hoch ta bort koden "#" i början av raden för att aktivera det. Den här raden anger hur lång tid det tar för Fail2Ban att inaktivera IP-adressen. Standardenheten är XNUMX timme. Du kan också använda andra enheter, till exempel minuter (M) eller dagar (D) eller till och med veckor (w).

Hur du skyddar din server med Fail2Ban i Linux - %categories

Du kan öka eller minska detta värde som du vill. Du kan till exempel ändra detta värde till 30 meter för att minska blockets varaktighet till 30 minuter.

Hur du skyddar din server med Fail2Ban i Linux - %categories

Ändra standardlängden på inloggningsfönstret

Nästa inställningar är "maxretry" och "findtime". De begränsar antalet inloggningsförsök en angripare kan göra innan Fail2Ban blockerar deras IP-adress.

Standardvärdena för "maxretry" och "findtime" är 5 och 10 m. Om en IP misslyckas med att autentisera fem gånger på tio minuter, kommer Fail2Ban att blockera den under den tid som anges av bantime-inställningen.

Hur du skyddar din server med Fail2Ban i Linux - %categories

Du kan ändra dessa värden till vad du vill. Till exempel kan du ställa in "maxretry" till 3 och "findtime" till 5m: Fail2Ban kommer att inaktivera en IP-adress om den misslyckas med att autentisera tre gånger på fem minuter.

Hur du skyddar din server med Fail2Ban i Linux - %categories

Aktivera aviseringsfunktionen Fail2Ban i Linux

Följande inställningar är destemail, avsändarnamn och mta. Dessa inställningar är vad Fail2Ban kommer att använda för att konfigurera e-postmeddelanden.

  • E-postinställning är den e-postadress som programmet skickar sina meddelanden till.
  • Avsändarens namn är det namn som kommer att visas i fältet Från i e-postmeddelandet.
  • mta är e-postöverföringsagenten som Fail2Ban kommer att använda för att skicka e-post. mta standard är sendmail , men du kan ändra det till något annat som mail.

Om du vill få e-postmeddelanden måste du avkommentera dessa rader och ange lämpliga värden som visas.

Hur du skyddar din server med Fail2Ban i Linux - %categories

När ett förbud inträffar kommer du att få ett e-postmeddelande med detaljer om förbudet som visas.

Hur du skyddar din server med Fail2Ban i Linux - %categories

Skapa anpassade blockorder

Nästa inställning är "action_=." Detta anger åtgärden som Fail2ban vidtar när den blockerar en IP-adress. Standard är att använda iptables för att blockera IP tills "bantime" löper ut.

Du kan också använda andra procedurer, som beskrivs nedan. Denna handledning håller sig till standardinställningen för enkelhetens skull.

  • action_mw: Skickar ett e-postmeddelande när en IP-adress är blockerad, tillsammans med relevant WHOIS-information.
  • action_mwl: Skickar ett e-postmeddelande när en IP-adress är blockerad, tillsammans med relevant WHOIS-information och loggfilposter som ledde till blockeringen.
  • Action_xarf: Skickar ett X-ARF e-postmeddelande när en IP-adress blockeras tillsammans med loggfilposterna som utlöste blockeringen.
Läs också:  20 bästa lätta Linux-distros 2021

Många andra procedurer är tillgängliga, men det är omöjligt att täcka dem alla i denna handledning. du får Läs om alla tillgängliga procedurer I Fail2ban dokumentation.

Hur du skyddar din server med Fail2Ban i Linux - %categories

Aktivera konfiguration för tjänsten

Förutom att konfigurera standardbeteendet för Fail2ban, är det också möjligt att använda förgjorda filterfiler för vissa populära internettjänster. Dessa är små filer skrivna av utvecklare för att söka efter specifika loggutgångar för en viss server.

Till exempel innehåller filen "apache-shellshock.conf" alla nödvändiga inställningar för att Fail2ban ska kunna kontrollera om det finns några skadliga försök att generera ett shellshock-fel.

Hur du skyddar din server med Fail2Ban i Linux - %categories

Du kan hitta alla tillgängliga filterfiler för ditt system genom att lista katalogen "/etc/fail2ban/filter.d":

ls /etc/fail2ban/filter.d

Hur du skyddar din server med Fail2Ban i Linux - %categories

När du vet vilka filter du vill använda, säg till Fail2ban att ladda dem under uppstart genom att öppna filen "jail.local":

sudo nano /etc/fail2ban/jail.local

Skapa ett utrymme i "jail.local" där du kan aktivera dina nya filter. Jag skapar min egen mellan kommentarsrubriken och blocket [INCLUDES].

Hur du skyddar din server med Fail2Ban i Linux - %categories

Lägg till de filter du vill aktivera. Till exempel, följande är ett utdrag som jag använder i min konfiguration:

# Kommentarer: använd '#' för kommentarsrader och ';' (efter ett blanksteg) för inline-kommentarer [sshd] aktiverad = sant [nginx-bad-request] aktiverad = sant [bitwarden] aktiverad = sant [INKLUDERAS]

Hur du skyddar din server med Fail2Ban i Linux - %categories

När du är klar, spara och stäng filen. Starta om fail2ban för att tillämpa ändringarna.

sudo systemctl starta om fail2ban

Testa din konfiguration

Nu när du har konfigurerat Fail2Ban i Linux är det dags att testa det.

Det enklaste sättet att testa din konfiguration är att försöka logga in med fel lösenord flera gånger i snabb följd. Du kan använda en SSH-anslutning för att göra detta.

På kasseringsmaskinen, försök att SSH till din Fail2ban-server med hjälp av "admin"-användarnamnet. Ersätt "din_server_ip_adress" med den faktiska IP-adressen för din Fail2ban-server.

ssh admin@din_server_ip_adress

Ange ett slumpmässigt lösenord när du uppmanas och upprepa det flera gånger. Efter flera försök kommer du att se ett meddelande om att servern avvisade ditt anslutningsförsök.

Hur du skyddar din server med Fail2Ban i Linux - %categories

Förutom att använda ssh kan du även testa andra filterfiler i Fail2ban genom att köra Fail Status. I mitt fall använder jag filtret "nginx-bad-request" som upptäcker om en värd översvämmer servern med ogiltiga förfrågningar.

Läs också:  Hur man får Ubuntu att se ut som macOS Big Sur

Hur du skyddar din server med Fail2Ban i Linux - %categories

När du vet detta kan du testa den här funktionen genom att avsiktligt skicka tomma förfrågningar till din webbserver med curl:

curl -H "User-Agent:" -H "Värd:" https://dinwebbplats.com -v

Hur du skyddar din server med Fail2Ban i Linux - %categories

Kontrollerar Fail2Ban-rutiner i Linux

Slutligen, kör följande kommando på Fail2ban-servern för att verifiera att fail2ban har lagt till de nödvändiga reglerna till iptables.

Kommandot grep filtrerar utdata från kommandot iptables. Alternativet -S talar om för iptables att skriva ut reglerna i ett enkelt parserbart format.

sudo iptables -S | grep f2b

Du kommer att se en utdata som liknar bilden nedan. Argumentet "–reject-with icmp-port-unreachable" säger åt iptables att skicka ett ICMP-port som inte kan nås till klienten när den försöker ansluta. Du kan också se IP-adresserna för enheter som servern har blockerat.

Hur du skyddar din server med Fail2Ban i Linux - %categories

Tips: Du bör också använda SELinux för att säkra din Linux-server.

Vanliga frågor

F1: Varför får jag ett tomt e-postmeddelande när Fail2ban blockerar en IP-adress?
Svar: Om du får ett tomt e-postmeddelande är det troligt att du inte har konfigurerat din e-postserver korrekt. Kontrollera din e-postserverkonfiguration och se till att den kan skicka e-post.

F2: Hur kan jag avblockera en IP-adress?
Svar: Hitta först fängelset där IP-adressen för närvarande är blockerad: sudo fail2ban-client status , avblockera sedan IP-adressen genom att köra följande: sudo fail2ban-client set unsanip .

F3: Hur visar jag fail2ban-loggfilen?
Svar: Du kanske vill visa fail2ban-loggfilen för att felsöka problem eller för att ta reda på varför IP-adressen blockerades. Filen "/var/log/fail2ban.log" innehåller alla loggar som genereras av fail2ban. Använd kommandot cat för att se fail2ban-loggfilen: cat /var/log/fail2ban.log.

F4: Jag har aktiverat flera filterfiler. Varför fungerar inte alla?
Svar: Det här problemet uppstår troligen eftersom ett filter skriver över en annan fil som föregick den. Ett sätt att fixa detta är att skapa en egen filterfil genom att kombinera flera filter tillsammans.

F5: Kommer Fail2ban att skydda min server från en DoS-attack?
Svar: Ja och nej. För det mesta kommer Fail2ban att kunna blockera alla IP-adresser som skickar ogiltiga förfrågningar till din server. En av de största begränsningarna med detta program är dock att det inte kan agera på händelser som inte producerar en loggpost. Som sådan är det fortfarande viktigt att säkra din Linux-server med andra verktyg för dessa former av attacker.

Du kanske också gillar