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.
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.
Når UFW er installeret, skal du køre nedenstående kommando for at tillade SSH login
Kør derefter kommandoen nedenfor for at starte og aktivere UFW
Indtast ”y” for at bekræfte og starte UFW-firewallen.
Til sidst skal du kontrollere UFW igen ved hjælp af følgende kommando.
Nedenfor kan du se UFW “Status: aktiv” med SSH-port 5522 tilføjet til firewall-reglerne.
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.
Installer nu Fail2ban ved at bruge nedenstående kommando.
Installationen vil begynde.
Når Fail2ban er installeret korrekt, skal du aktivere Fail2ban-tjenesten samt starte den ved at bruge kommandoerne nedenfor.
Til sidst skal du kontrollere om Fail2ban kører ved hjælp af følgende kommando.
På nedenstående billede vil du se, at Fail2ban-tjenesten kører på din Ubuntu 20.04 LTS / 22.04 LTS.
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.
Nu skal du redigere vores nye konfiguration ”jail.local” ved hjælp af vores editor nano.
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.
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.
Hvis du ikke vil modtage en mail når en ip bliver banned skal dine indstilinger se ud som standard som vist nedefor
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
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.
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
Hvis fail2ban ikke starter op, kan du altid køre nedestående kommando og få en ide om hvad fejlen er.
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.
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:
Derefter kan du f.eks. køre nedestående kommando for at kontrollere status for sshd.
Du vil nu se den detaljerede status for sshd jail.
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.
- 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.
- 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
- 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.
- 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.
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.
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.
Efter du har ban eller unban en IP-adresse, kan du bekræfte det ved at bruge kommando nedenfor.
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.
Læg en kommentar