Hur man installerar och konfigurerar Fail2ban på Debian 11

Fail2ban är ett ramverk för intrångsförebyggande programvara som skyddar datorservrar från främst brute-force-attacker, förbjuder dåliga användaragenter, förbjuder URL-skannrar och mycket mer. Fail2ban uppnår detta genom att läsa åtkomst-/felloggar för din server eller webbapplikationer. Fail2ban är kodat i programmeringsspråket python.

Följande handledning kommer att lära dig hur du installerar Fail2ban och gör några konfigurationer med kompletta exempel och viktiga tips för att komma igång med Debian 11 Bullseye.

Förutsättningar

  • Rekommenderat OS: Debian 11 Bullseye
  • Användarkonto: Ett användarkonto med sudo- eller root-åtkomst.
  • Nödvändiga paket: wget

Uppdatera operativsystem

Uppdatera din Debian operativsystem för att se till att alla befintliga paket är uppdaterade:

sudo apt update && sudo apt upgrade -y

Handledningen kommer att använda sudo kommando och förutsatt att du har sudo-status.

Så här verifierar du sudo-status på ditt konto:

sudo whoami

Exempel på utdata som visar sudo-status:

[joshua@debian~]$ sudo whoami
root

För att konfigurera ett befintligt eller nytt sudo-konto, besök vår handledning på Lägga till en användare till Sudoers på Debian.

Att använda root-konto, använd följande kommando med root-lösenordet för att logga in.

su

Installera Fail2ban

Som standard ingår Fail2ban i Debian 11 Bullseye-förrådet. För att installera programvaran, använd följande kommando i din terminal:

sudo apt install fail2ban

Exempel utmatning:

Hur man installerar och konfigurerar Fail2ban på Debian 11

Typ Y, sedan tryck på enter-tangenten för att fortsätta och slutföra installationen.

Som standard ska fail2ban efter installationen vara aktiv och aktiverad. För att verifiera detta, använd följande systemctl kommando:

sudo systemctl status fail2ban

Exempel utmatning:

Hur man installerar och konfigurerar Fail2ban på Debian 11

Om din fail2ban-tjänst inte är aktiverad, kör följande kommandon för att starta och, om så önskas, aktivera den vid systemstart som standard:

sudo systemctl start fail2ban

För att sedan aktivera fail2ban vid systemstart, använd följande:

sudo systemctl enable fail2ban

Slutligen, verifiera versionen och builden av fail2ban:

fail2ban-client --version

Exempel utmatning:

Fail2Ban v0.11.2

Detta visar att du har en av de senaste stabila utgåvorna ute, dvs ver. 0.11.2 (2020/11/23) – (läka världen med säkerhetsverktyg). Om du i framtiden vill veta var din installerade version finns i releaseschemat för Fail2ban, besök releasesidan på Fail2ban Githubs sida.

Konfigurera Fail2ban

Efter att ha slutfört installationen behöver vi nu göra några inställningar och grundläggande konfigurationer. Fail2ban kommer med två konfigurationsfiler som finns i /etc/fail2ban/jail.conf och Standard Fail2ban /etc/fail2ban/jail.d/defaults-debian.conf. Ändra inte dessa filer. De ursprungliga installationsfilerna är dina original och kommer att ersättas vid eventuella uppdateringar av Fail2ban i framtiden.

Nu kanske du undrar hur vi ställer in Fail2ban som om du uppdaterar och tappar dina inställningar. Enkelt, vi skapar kopior som slutar på .lokal istället för .conf som Fail2ban alltid kommer att läsa .lokal filer först innan de laddas .conf om den inte kan hitta en.

För att göra detta, använd följande kommando:

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

Öppna nu konfigurationsfilen för att fortsätta med konfigurationen:

sudo nano /etc/fail2ban/jail.local

Därefter kommer handledningen att köra över några inställningar som du kan använda eller ändra efter eget tycke. Observera att de flesta inställningar kommenteras bort; handledningen kommer att avkommentera raderna i fråga eller modifiera de befintliga i exempelinställningarna.

Kom ihåg att detta är valfria inställningar och du kan ställa in vad du vill om du vet mer om fail2ban och har självförtroendet.

Ban Time Increment

Den första inställningen du kommer att stöta på är förbudstidsökningar. Du bör aktivera detta varje gång angriparen kommer tillbaka. Det kommer att öka avstängningstiden, vilket besparar ditt system från att ständigt förbjuda samma IP-adress på nytt om dina avstängningstider är små; t.ex. 1 timme, du vill att detta ska vara längre om angriparen återvänder x5 gånger.

Du måste också ställa in en multiplikator eller faktor för att logiken för förbudsökning ska fungera. Du kan välja någon av dessa; Men i vår guide föredrar vi multiplikatorer, vilket framhålls i vårt exempel nedan, eftersom du kan ställa in anpassade förbudstidsökningar efter dina önskemål. Ytterligare förklaring finns i upplägget på matematiken bakom.

Exempel nedan:

Hur man installerar och konfigurerar Fail2ban på Debian 11

Vitlista IP-adresser i Fail2ban

Nästa i listan stöter vi på vitlistningsalternativ, avkommentera följande och adressera eventuella IP-adresser som du vill bli vitlistade.

ignoreip = 127.0.0.1/8 ::1 192.167.5.5 (example IP address)

Se till att ange mellanslag eller komma mellan IP-adresserna. Du kan också vitlista IP-intervall.

Exempel nedan:

Hur man installerar och konfigurerar Fail2ban på Debian 11

Standardinställning av förbudstid

Förbudstiden är standard på 10 minuter med 10 minuters sökfunktion vid 5 försök. En förklaring till detta är att Fail2ban-fängelset med filtrering kommer att blockera din angripare i 10 minuter efter att den har försökt med samma attack igen om 10 minuter (hitta tid) x 5 gånger (försöker igen). Du kan ställa in några standardinställningar för förbud här.

Men när du kommer till fängelser, rekommenderas det att ställa in olika bantider eftersom vissa förbud automatiskt bör vara längre än andra, inklusive omförsök som bör vara mindre eller fler.

Exempel nedan:

Hur man installerar och konfigurerar Fail2ban på Debian 11

E-post konfigurerad med Fail2ban

Du kan ange en e-postadress för att Fail2ban ska skicka rapporter. Standarden action = %(action_mw)s som förbjuder den felande IP:n och skickar ett e-postmeddelande med en whois-rapport som du kan granska.

Men i din action.d-mapp finns det andra e-postalternativ för att inte bara rapportera till dig själv utan även skicka ut e-postmeddelanden till värdleverantörer om angriparens aktivitet så att något kan göras. Observera, gör bara detta om du använder en e-postproxy eftersom vissa angripare inte tar vänligt emot detta eller får e-postmeddelandet direkt med din servers IP-adress, använd denna åtgärd med extrem försiktighet eller inte alls.

Exempel nedan:

# Destination email address used solely for the interpolations in
# jail.{conf,local,d/*} configuration files.
destemail = admin@example.com

# Sender e-mail address used solely for some actions
sender = fail2ban@example.com

Exempelvis:

Hur man installerar och konfigurerar Fail2ban på Debian 11

Observera att Fail2ban som standard använder sendmail MTA för e-postmeddelanden. Du kan ändra detta till postfunktion Genom att göra följande:

Byt från:

mta = sendmail

Ändra till:

mail = sendmail

Fail2ban fängelser

Därefter kommer vi till fängelser. Du kan ställa in fördefinierade fängelser med filter och åtgärder skapade av communityn som täcker många populära serverapplikationer. Du kan göra anpassade fängelser eller hitta externa på olika huvudpunkter och gemenskapswebbplatser; vi kommer dock att ställa in standardfail2ban-paketfängelserna.

Standardinställning för alla fängelser enligt bilden nedan. Lägg märke till hur ingenting är aktiverat.

Exempel nedan:

[apache-badbots]
# Ban hosts which agent identifies spammer robots crawling the web
# for email addresses. The mail outputs are buffered.
port     = http,https
logpath  = %(apache_access_log)s
bantime  = 48h
maxretry = 1

Så vi har en Apache 2 HTTP-server, och precis som filter/förbjud dåliga bots, är allt du behöver göra att lägga till aktiverat = sant som exemplet nedan.

[apache-badbots]
# Ban hosts which agent identifies spammer robots crawling the web
# for email addresses. The mail outputs are buffered.
enabled = true
port     = http,https
logpath  = %(apache_access_log)s
bantime  = 48h
maxretry = 1

Lägg märke till hur det maximala återförsöket är lika med 1, och förbudstiden är 48H. Detta är ett individuellt maxförsök och förbjuder längdinställning för detta fängelse som automatiskt kommer att öka med förbudsmultiplikatorn som vi satte upp tidigare i guiden. Om något av filtren saknar detta kan du lägga till det som ett exempel.

[apache-noscript]
enabled = true
port     = http,https
logpath  = %(apache_error_log)s

Ändra ovanför följande exempel nedan:

[apache-noscript]
enabled = true
port     = http,https
logpath  = %(apache_error_log)s
bantime = 1d
maxretry = 3

Därefter skulle du vilja ha andra åtgärder än vad som anges i din standardinställning i /etc/fail2ban/jail.local, ytterligare åtgärder du kan hitta i action.d-katalogen. Olika åtgärder från den här katalogen kan enkelt ställas in genom att följa anvisningarna inuti dessa åtgärdskonfigurationsrader i filerna, kom ihåg att byta namn på dem först till .fängelse över .conf, och lägg sedan till följande i din fängelsekonfiguration.

[apache-botsearch]
enabled = true
port     = http,https
logpath  = %(apache_error_log)s
banaction = action_mw
cloudflare
bantime = 72h
maxretry = 1

Som du kan se har vi lagt till action_mw, så den blockerar automatiskt enligt vår standardåtgärd och skickar en rapport till oss via e-post med whois, sedan kommer följande åtgärd, om du använder Cloudflare, kommer den att blockera IP-adressen på tjänsten också. Kom ihåg att Cloudflare måste konfigureras före användning. Läs action.d-filen cloudflare.conf.

När du är nöjd med din installation, gör följande kommando för att starta om fail2ban för att ladda dina nya jails.

sudo systemctl restart fail2ban

Exempel på användning av Fail2ban-client

Nu när du är igång med Fail2ban behöver du känna till några grundläggande driftskommandon. Vi gör detta genom att använda fail2ban-client kommando. Du kan behöva ha sudo-privilegier, beroende på din inställning.

Förbjud en IP-adress:

sudo fail2ban-client set apache-botsearch banip <ip address>

Ta bort en IP-adress:

sudo fail2ban-client set apache-botsearch unbanip <ip address>

Kommando för att få fram hjälpmenyn om du behöver hitta ytterligare inställningar eller få hjälp med en viss.

sudo fail2ban-client -h

Installera UFW (Okomplicerad brandvägg)

Som standard kommer Debian inte med UFW. För användare som föredrar att använda UFW med Fail2ban, följ stegen nedan.

Installera först UFW:

sudo apt install ufw -y

Verifiera sedan installationen och bygg:

sudo ufw version

Exempel utmatning:

ufw 0.36
Copyright 2008-2015 Canonical Ltd.

Aktivera nu vid systemstart och aktivera fail2ban med terminalkommandot:

sudo ufw enable

Exempel utmatning:

Firewall is active and enabled on system startup

Härnäst lägg till UFW till din banaction, som istället inte kommer att använda standard IPTABLER och du vad du anger:

Exempel från:

[apache-botsearch]
enabled = true
port     = http,https
logpath  = %(apache_error_log)s
bantime = 72h
maxretry = 1

Exempel på:

[apache-botsearch]
enabled = true
port     = http,https
logpath  = %(apache_error_log)s
banaction = ufw
bantime = 72h
maxretry = 1

Som du kan se, den nya raden banaction = ufw lades till för att ändra standardförbudsåtgärden. Du kan lägga till flera, säga att du vill BANNA på UFW och även använda Cloudflare-skriptet för att förbjuda IP-adressen med deras brandväggstjänst tillsammans med att rapportera IP-adressen till AbuseIPDB Fail2ban Integration:

Exempelvis:

[apache-botsearch]
enabled = true
port     = http,https
logpath  = %(apache_error_log)s
banaction = ufw
                    cloudflare
                    abuseipdb
bantime = 72h
maxretry = 1

En lista över färdiga åtgärder finns i /etc/fail2ban/actions.d; alla åtgärder har grundläggande inställningar och användningsfall.

För att se de förbjudna IP-adresserna, använd följande UFW-kommando:

sudo ufw status verbrose

Exempel utmatning:

Anywhere                   REJECT      <IP ADDRESS>               # by Fail2Ban after 1 attempts against apache-botsearch

Som du kan se kan du se UFW är avvisa IP-adressen efter att ha blivit bannlyst av Fail2ban UFW-åtgärd på filtrera apache-botsearch efter ett försök. Detta är bara ett exempel på att Fail2ban arbetar i en live-miljö, och som förväntat bör du modifiera dina filter för att passa dina behov.

Notera, avbanna inte IP-adresser med UFW. Se till att använda åtgärden fail2ban-client unban, annars kommer IP:n att förbjudas igen när du återvänder till webbplatsen eftersom UFW inte kan kommunicera tillbaka till Fail2ban.

Uppdatera Fail2ban

Fail2ban-utgåvor kommer inte ut ofta, så du kommer inte att se betydande förändringar varje vecka eller, för den delen, ens månadsvis. Men för att uppdatera Fail2ban gäller samma process när du kontrollerar ditt Debiansystem efter uppdateringar.

Använd först Apt uppdatering kommando:

sudo apt update

För det andra, om en uppdatering är tillgänglig kan du använda en apt uppgradering, som kommer att initiera uppgraderingen plus eventuella andra, eller om du föredrar att uppgradera fail2ban, Använd följande:

sudo apt upgrade fail2ban

Avinstallera Fail2ban

Om du inte längre behöver Fail2ban, för att ta bort det från ditt system, använd följande kommando:

sudo apt autoremove fail2ban --purge

Exempel utmatning:

Typ Y, tryck sedan på ENTER-TANGENT för att fortsätta med borttagningen.

Observera att detta också tar bort alla oanvända beroenden som ursprungligen installerades med Fail2ban för fullständig borttagning.

Övervakning av Fail2ban-loggar

Många vanliga misstag är att sätta upp fängelser och gå därifrån utan att testa eller övervaka vad de gör. Det är viktigt att granska loggar, eftersom fail2ban-loggen är i sin standardsökväg /var/log/fail2ban.log.

Om du har en server som tar emot anständig trafik är ett utmärkt kommando att titta live för att se eventuella problem och hålla ett öga på den när du arbetar på andra servrar att använda tail -f kommando nedan.

sudo tail -f /var/log/fail2ban.log

Kommandot kan vara praktiskt för stickprovskontroll utan att behöva dyka in i loggning.

Kommentarer och slutsats

Handledningen har visat dig grunderna för att installera Fail2ban på Debian 11 Bullseye-systemet och ställa in några fängelser med tillgängliga filter. Fail2ban är ett kraftfullt verktyg. Du kan ställa in den på många olika sätt än vad jag har visat här. Det är bara ett exempel på att komma runt det, till att börja med. Fail2ban är aktivt utvecklat och är ett solidt val att distribuera på din server i dessa tider där attacker blir så frekventa.


Inte vad du letade efter? Försök att söka efter ytterligare tutorials.

4 tankar om "Hur man installerar och konfigurerar Fail2ban på Debian 11"

  1. Hej FD,

    Tack för svaret. Installerade du UFW? Jag har precis testat det på en ny Debian 11-installation, och det fungerar bra. Som standard är UFW inte installerat.

    I rootkörning apt install ufw eller för icke-root sudo apt install ufw.

    Om du hade UFW installerat, låt mig veta; Jag är nyfiken på att veta eftersom det skulle vara intressant. Du kan hoppa över UFW och använda standard-IP-tabeller. UFW är bara en extra livskvalitet.

    Tack

    Svara
    • Tack, Hans, du har rätt; Jag har justerat det. Jag använde små bokstäver på min Debian-installation, så det var felaktigt att jag placerade UFW i handledningen, så jag förstår varför vissa hade problem nu efter att detta har påpekats.

      Uppskattar budskapet. Tack igen.

      Svara

Lämna en kommentar