Intro:

Fail2ban hjælper administratorer med at sikre deres linux-servere mod brute-force-angreb. Fail2ban kommer med mange forskellige filtre som f.eks. Apache2, SSH, FTP osv.

Fail2ban fungerer ved at scanne logfiler på dine tjenester og banne IP-adresser, der prøver at udføre brute-force-angreb på din server.

Fail2ban understøtter også flere firewall-backends såsom iptables, ufw og firewalls. Yderligere giver det dig også mulighed for mail notifikation for hvert blokeret loginforsøg.

I denne guide viser jeg dig, hvordan du installerer og konfigurerer Fail2ban på Ubuntu. Yderligere kommer jeg også ind på nogle af de grundlæggende kommandoer til styring af Fail2ban og Jails.

Godt at vide: Denne guide er skrevet til Ubuntu 20.04 LTS / 22.04 LTS eller nyere.

Dog skulle de principper der bliver nævnt i guiden gerne være de samme på andre Ubuntu / Debian systemer.

Inden vi går i gang:

  • Skal du bruge en Ubuntu-server 20.04 LTS / 22.04 LTS eller nyere
  • En bruger med sudo-rettigheder eller root
  • En god ting vil være at følge min server start serie, som du finder her: LINK

Installere / konfigurere UFW Firewall

Før du begynder at installere Fail2ban, skal du konfigurere din firewall hvis det ikke er gjort endnu – I denne guide bruger jeg UFW.

UFW er en firewall som er nem at administrere til forskel som andre firewalls som iptables & firewalld.

Først skal du kontrollere om UFW er installeret / er aktiv ved hjælp af følgende kommando.

Kopier til udklipsholder

Hvis du får dette output “Status: inaktiv” er UFW installeret men endnu ikke startet.

Hvis du får dette output ”ufw: command not found” så er UFW-firewallen ikke installeret på din server.

Hvis UFW ikke er installeret, skal du kører disse to apt kommando nedenfor.

Kopier til udklipsholder

Når UFW er installeret, skal du køre nedenstående kommando for at tillade SSH login

Kopier til udklipsholder

Kør derefter kommandoen nedenfor for at starte og aktivere UFW

Kopier til udklipsholder

Indtast ”y” for at bekræfte og starte UFW-firewallen.

Til sidst skal du kontrollere UFW igen ved hjælp af følgende kommando.

Kopier til udklipsholder

Nedenfor kan du se UFW “Status: aktiv” med SSH-port 5522 tilføjet til firewall-reglerne.

Firewall-status aktiv, tillader indgående tcp-trafik på port 5522 fra enhver kilde.

Installation af Fail2ban på Ubuntu 20.04 LTS / 22.04 LTS

Efter du har installeret og konfigureret UFW, skal du nu installere Fail2ban på din server.

Men først skal du opdatere dine Ubuntu pakker, med følgende apt kommando.

Kopier til udklipsholder

Installer nu Fail2ban ved at bruge nedenstående kommando.

Kopier til udklipsholder

Installationen vil begynde.

Terminalvindue, der viser installationsprocessen af version 2 af Fail2ban-softwaren på et linux-baseret operativsystem, der bruger apt-pakkehåndteringen med sudo-rettigheder.

Når Fail2ban er installeret korrekt, skal du aktivere Fail2ban-tjenesten samt starte den ved at bruge kommandoerne nedenfor.

Kopier til udklipsholder

Til sidst skal du kontrollere om Fail2ban kører ved hjælp af følgende kommando.

Kopier til udklipsholder

På nedenstående billede vil du se, at Fail2ban-tjenesten kører på din Ubuntu 20.04 LTS / 22.04 LTS.

Skærmbillede af en computerterminal, der viser status for Fail2ban version 2-tjenesten, hvilket indikerer, at den er aktiv og kører af sikkerhedsmæssige årsager.

Konfiguration af Fail2ban

Alle konfigurationsfiler for Fail2ban er gemt i mappen /etc/fail2ban. Nedenfor er nogle gode filer og mapper som du bør kende:

  • Filen fail2ban.conf er hovedkonfigurationen for Fail2ban.
  • Filen jail.conf er et eksempel på Fail2ban jail-konfigurationen.
  • Mappen action.d indeholder indstillinger for fail2ban-handlinger, såsom mailindstillinger og firewall-indstillinger.
  • Mappen jail.d indeholder yderligere konfiguration for fail2ban jail.

For at begynde at konfigurere Fail2ban, skal du kopiere standard jail-konfigurationen jail.conf til jail.local ved hjælp af følgende kommando.

Kopier til udklipsholder

Nu skal du redigere vores nye konfiguration ”jail.local” ved hjælp af vores editor nano.

Kopier til udklipsholder

Først skal du fjerne havelågesymbolet (#) – fra denne linje: #ignoreip = 127.0.0.1/8 ::1

Godt at vide: Efter det er gjort vil det være en god ide at tilføje din egen IP – Alle IP-adresser i ignoreip-indstillingen vil ikke blive banned af Fail2ban ved en fejl!.

Næste skridt er at sætte en global konfiguration – Dog kan du også konfigurere de enkelte jails efter behov.

I dette eksempel vil den globale “bantime” være 1 dag, “findtime” vil være 10 minutter, og “maxretry” er 5 gange.

Kopier til udklipsholder

Standardhandlingen for Fail2ban er kun at banne IP-adressen. Men du kan også konfigurere så du modtager en e-mail, når en IP-adresse bliver banned. (Det er dog ikke noget jeg anbefaler, da det kan blive ret mange mails du modtager.)

Men hvis du gerne vil have en mail hver gang en ip bliver banned, Skift “action”, “destemail” og “sender” som vist nedenfor.

Kopier til udklipsholder

Hvis du ikke vil modtage en mail når en ip bliver banned skal dine indstilinger se ud som standard som vist nedefor

Kopier til udklipsholder

Når dette er gjort skal du rette banaction til at bruge ”UFW” i stedet for ”IPTABLES”. Det gør du ved at rette nedenstående til ufw

Kopier til udklipsholder

Til sidst – Skal du nu rette din jail konfiguration. I dette eksempel vil vi sætte jail op for vores sshd server som vist nedenfor.

Kopier til udklipsholder

Gem og luk filen, når du er færdig med at konfigurere fail2ban.

Godt at vide: Du kan tilføje “enabled= true” under de jails du vil tilføje.

(Det kræver selvfølgelig der findes logfiler som fail2ban kan læse fra)

Kør nu følgende kommando for at genstarte Fail2ban og anvende nye ændringer du har lavet i jail.local

Kopier til udklipsholder

Hvis fail2ban ikke starter op, kan du altid køre nedestående kommando og få en ide om hvad fejlen er.

Kopier til udklipsholder

Du har nu fuldført Fail2ban-konfigurationen med eller uden e-mail notifikation samt aktiveret sshd jail for at sikre din SSH server.

Brug af Fail2ban-client til at bekræfte Fail2ban-status

Fail2ban har en indbygget klient kaldet ”fail2ban-client” og den arbejder sammen med Fail2ban-tjenesten.

Denne “klient” giver dig mulighed for at administrere og konfigurere Fail2ban fra terminalen, og giver dig også mulighed for at administrere Fail2ban-jails

For at tjekke din fail2ban installation og konfiguration skal du køre kommandoen fail2ban-client.

Kopier til udklipsholder

Hvis du får et output såsom “Server svarede: pong”, betyder det, at Fail2ban kører uden fejl.

Du kan få en liste over alle din aktive “jails” ved at skrive nedstående:

Kopier til udklipsholder

Derefter kan du f.eks. køre nedestående kommando for at kontrollere status for sshd.

Kopier til udklipsholder

Du vil nu se den detaljerede status for sshd jail.

Terminalskærm, der viser status for et 'Fail2ban'-fængsel for sshd med nul i øjeblikket mislykkede og forbudte indtastninger.

Hvis du vil se et detaljeret output for dine jails – I dette tilfælde ”sshd jail”, kan du bruge kommandoen fail2ban-client som vist nedenfor.

  • For at tjekke: bantime for sshd kan du skrive nedestående kommando

Godt at vide: Du vil få output fra bantime i sekunder.

Kopier til udklipsholder
  • Hvis du vil tjekke ”maxretry” for dit sshd jail, kan du skrive nedenstående kommando!

Godt at vide: Du vil få vist et ”maxretry” på 3 – Dette skyldes vi har ændret “maxretry” under de lokale jail installinger for sshd og derved ikke bruger de globale indstilling som vi har sat.

Kopier til udklipsholder
  • For at se ”banaction” eller dit sshd jail, kan du bruge følgende kommando herunder. Du bør få et output der viser ”ufw” da vi har sat dette i vores konfiguration
Kopier til udklipsholder
  • For ”findtime” vil du også se et andet tal end i vores globale konfiguration – Dette skyldes igen vi har ændret “findtime” under det lokale jail og den derved ikke bruger den globale indstilling.
Kopier til udklipsholder
  • Til sidst kan du også kontrollere standard ignoreip for sshd jail ved hjælp af nedenstående kommando. – Du vil nu se, at ignoreip har samme værdi som den globale Fail2ban-konfiguration.
Kopier til udklipsholder
Det vil se sådan ud hvis du har fulgt guiden
Terminalvindue, der viser kommandolinje-interaktioner med Fail2ban-tjenesten på et Ubuntu-system.

Ban og unban IP ved hjælp af din Fail2ban-klient

En anden vigtig ting er hvordan man banner og unbanner IP-adresser med Fail2ban. – til dette skal du bruge fail2ban-client.

For at banne en IP-adresse manuelt på f.eks. sshd jail, skal du bruge denne kommando nedenfor.

Godt at vide: Skift “IP-ADDRESS” med den IP du vil banne.

Kopier til udklipsholder

For at unban en IP-adresse fra sshd jail, skal du bruge denne kommandoen nedenfor.

Godt at vide: Skift “IP-ADDRESS” med den IP du vil unban.

Kopier til udklipsholder

Efter du har ban eller unban en IP-adresse, kan du bekræfte det ved at bruge kommando nedenfor.

Kopier til udklipsholder

Hvis du banner en IP-adresse manuelt, skal du sørge for, at IP-adressen vises på listen over banned IP-adresser. Hvis du unbanner en IP-adresse, skal du sørge for, at IP-adressen forsvinder fra listen over banned IP-adresser.

Andre Nyttige kommandoer:

Tjek fail2ban.log

Kopier til udklipsholder

Få hjælp og information om alle Fail2ban-kommandoer

Kopier til udklipsholder

Vis den aktuelle Fail2ban-version

Kopier til udklipsholder

Færdig – Hvis du har brug for hjælp, så post en kommentar og jeg vil forsøge at hjælpe dig. 🙂

Gå ikke glip af vores indlæg / guides - Tilmeld dig vores nyhedsbrev idag.

mail

👋 Inden du går! 👋

👉 Gå ikke glip af vores indlæg 👈

❤️ Tilmeld dig vores nyhedsbrev ❤️