Hur man installerar Fail2Ban på Ubuntu 22.04 LTS

Fail2Ban är ett robust ramverk för intrångsskydd som skyddar datorservrar från Brute Force och andra attacker. Den uppnår detta genom att läsa åtkomst-/felloggar på din server eller webbapplikation, som sedan kan användas för att identifiera skadliga användare innan de orsakar någon skada!

Mjukvaran är mycket populär bland offentliga servrar. Oavsett om du är serverägare eller vill skydda ditt nätverk kan Fail2ban stoppa attacker innan de skadar. Denna programvara är skriven i Python och körs på POSIX-system med ett gränssnitt för paketkontrollsystem som iptables eller TCP Wrapper installerat lokalt – det betyder förutom servrar, även stationära datorer kan stödjas, med en annan uppsättning regler.

Följande handledning kommer att lära dig hur du installerar Fail2Ban på Ubuntu 20.04 LTS Focal Fossa-skrivbord eller en huvudlös server. Några exempelkonfigurationer med kompletta exempel och viktiga tips för att komma igång.

Uppdatera Ubuntu

Först, innan du börjar, uppdatera ditt system för att säkerställa att inga konflikter uppstår under installationen och konfigureringen av Fail2Ban enligt följande.

sudo apt update && sudo apt upgrade -y

Installera Fail2ban

Som standard finns fail2ban i Ubuntu 20.04:s standardförråd vilket gör installationen enkel.

Börja installationen av Fail2ban genom att utföra följande kommando.

sudo apt install fail2ban -y

Som standard är Fail2Ban inte aktiverat och aktiverat när det väl har installerats. Starta tjänsten och aktivera den vid systemstart med följande kommando.

sudo systemctl enable fail2ban --now

När du har avslutat installationen av Fail2ban måste vi kontrollera dess tjänststatus. Som standard, när du installerar Fail2ban, ska det aktiveras automatiskt och startas. Använd följande kommando för att se.

systemctl status fail2ban

Exempel utmatning:

fail2ban-systemet ok

Om fail2ban misslyckades med att starta, aktivera tjänsten med följande kommando.

sudo systemctl enable fail2ban --now

För att stoppa och inaktivera Fail2ban i framtiden kan detta göras genom att skriva följande kommando:

sudo systemctl disable fail2ban --now

Inställningar för säkerhetskopiering av Fail2ban

Inställningar för säkerhetskopiering av Fail2ban

När du har slutfört installationen måste du göra vissa 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.

Nästa steg är att skapa kopior som slutar på .lokal istället för .conf, eftersom Fail2ban alltid kommer att läsa .local-filer först innan .conf laddas om den inte kan hitta en. Att skapa de lokala filerna är så att när du uppdaterar din Fail2Ban så går inte dina inställningar förlorade, och om du felkonfigurerar får du alltid en ny kopia att återvända till.

Använd följande cp-kommando för att skapa en kopia av konfigurationsfilen.

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

Konfigurera Fail2ban

Nu kommer du till den del där du kan öppna jail.local och justera inställningarna med nanoredigerare.

sudo nano /etc/fail2ban/jail.local

Ban Time Increment

Den första inställningen du kommer att stöta på är förbudstidsökningar. Detta bör möjliggöra detta, så varje gång angriparen återvänder och blir avstängd på nytt, kommer det att öka avstängningstiden, vilket räddar ditt system från att ständigt förbjuda samma IP-adress om dina avstängningstider är små.

Till exempel är standardförbudstiden en timme; du skulle vilja att detta skulle vara längre om angriparen återvänder x5 gånger, så om angriparen förbjuds den 5:e gången är det automatiskt fem timmar istället för en.

För att uppnå ökningen av förbudstid, måste du 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 handledningen har jag valt multiplikatorer, som framhävts i vårt exempel nedan, eftersom du kan ställa in anpassade förbudstidsökningar efter eget tycke.

Ytterligare förklaring finns i upplägget på matematiken bakom.

Exempelvis:

fail2ban multiplikatorer

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 180.53.31.33 (example IP address)

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

Exempelvis:

vitlista ip fail2ban

Standardinställning av förbudstid

Förbudstiden är som standard 10 minuter med 10 minuters sökfunktion vid 5 försök. En förklaring är att Fail2Ban-fängelse med filtrering kommer att blockera din angripare i 10 minuter efter att den har försökt 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. Detta är användarberoende, och det finns ingen naturlig rätt eller fel inställning här.

Exempelvis:

fail2ban standard förbudstid

E-postvarningar/aviseringar

Du kan ange en e-postadress för att Fail2ban ska skicka rapporter. Standardåtgärden = %(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 rapportera till dig själv och skicka ut e-postmeddelanden till svartlistade leverantörer och angriparens internetleverantör för att rapportera.

Installationsexemplet är 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:

fail2ban e-postinställningar

Fail2ban fängelser

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 skapa anpassade fängelser eller hitta externa på olika huvudpunkter och communitywebbplatser; 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.

Exempelvis:

fängelseinställningar

Så, vi har en Apache 2 HTTP-server, och som filter/förbjud dåliga bots, allt du behöver göra är att lägga till aktiverad = 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 maxfö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 handledningen.

Om något av filtren saknas kan du lägga till dem som 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

Exemplet aktiverade filtret och ställde in en anpassad bantid, maxretry för fängelset.

Därefter vill du 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 till din fängelsekonfiguration.

Exemplet nedan lägger till Cloudflare-förbudsåtgärden och standardåtgärden till [apache-botsearch] fängelse.

[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 ställas in innan 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

Hur man förbjuder/avaktiverar banning med Fail2Ban manuellt

Nu när du är igång med Fail2ban behöver du känna till några grundläggande driftskommandon. Detta görs med kommandot fail2ban-client. 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 

Hur man kontrollerar/övervakar 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, och 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.

tail -f /var/log/fail2ban.log

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

Alternativt kan du använda GREP kommando att söka efter en exempel-IP-adress eller till och med en användaragent, och det här är bara exempel.

Exempel på användaragent:

grep "Bing" /var/log/fail2ban.log

Exempel på fel:

grep "error" /var/log/fail2ban.log

Exempel IP-adress:

grep "123.123.123.1" /var/log/fail2ban.log

Återigen, ovanstående är bara exempel, och det finns en hel del olika kommandon och metoder för att sortera igenom dina loggar med hjälp av en terminalinstans.

Hur man tar bort (avinstallerar) Fail2Ban

Om användare inte längre vill ha Fail2ban installerat, avaktivera tjänsten om den fortfarande är aktiverad.

sudo systemctl disable fail2ban --now

Ta sedan bort fail2ban med följande kommando.

sudo apt autoremove fail2ban --purge -y

Observera att detta tar bort alla oanvända systemberoenden installerade med fail2ban och data.

Kommentarer och slutsats

Fail2ban är ett kraftfullt verktyg, och du kan ställa in det på många olika sätt, och jag har bara visat dig ett exempel på hur du kan komma runt det. Fail2ban är aktivt utvecklat och är ett bra val att distribuera på din server i dessa tider när attacker blir så frekventa.


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

Lämna en kommentar