Skip to content

Kom i gang med Fail2ban på Ubuntu

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 / 24.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.

VIGTIG: Læs min guide om UFW inden du går i gang

Installation af Fail2ban på Ubuntu 20.04 LTS / 22.04 / 24.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.

				
					sudo apt update
				
			

Installer nu Fail2ban ved at bruge nedenstående kommando.

				
					sudo apt install fail2ban -y
				
			

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.

				
					sudo systemctl enable fail2ban
sudo systemctl start fail2ban
				
			

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

				
					sudo systemctl status fail2ban
				
			

På nedenstående billede vil du se, at Fail2ban-tjenesten kører på din Ubuntu 20.04 LTS / 22.04 / 24.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.

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

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

				
					sudo nano /etc/fail2ban/jail.local
				
			

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.

				
					bantime  = 1d
findtime  = 10m
maxretry = 5
				
			

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.

				
					action = %(action_mw)s
destemail = admin@mitdomain.dk
sender = root@mitdomain.dk
				
			

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

				
					action = %(action_)s
destemail = admin@mitdomain.dk
sender = root@mitdomain.dk
				
			

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

				
					banaction = 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.

				
					[sshd]
enabled   = true
maxretry  = 3
findtime  = 1d
bantime   = 1w

port    = 22
logpath = %(sshd_log)s
backend = %(sshd_backend)s
				
			

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

				
					sudo systemctl restart fail2ban
				
			

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

				
					sudo systemctl status fail2ban
				
			

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.

				
					sudo fail2ban-client ping
				
			

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:

				
					sudo fail2ban-client status
				
			

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

				
					sudo fail2ban-client status sshd
				
			

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.

				
					sudo fail2ban-client get sshd bantime
				
			
  • 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.

				
					sudo fail2ban-client get sshd maxretry
				
			
  • 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
				
					sudo fail2ban-client get sshd actions
				
			
  • 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.
				
					sudo fail2ban-client get sshd findtime
				
			
  • 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.
				
					sudo fail2ban-client get sshd ignoreip
				
			

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.

				
					sudo fail2ban-client set sshd banip IP-ADDRESS
				
			

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.

				
					sudo fail2ban-client set sshd unbanip IP-ADDRESS
				
			

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

				
					sudo fail2ban-client status sshd
				
			

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

				
					sudo tail /var/log/fail2ban.log
				
			

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

				
					sudo fail2ban-client --help
				
			

Vis den aktuelle Fail2ban-version

				
					sudo fail2ban-client version
				
			

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

Bedøm dette indlæg:

Hvor nyttigt var dette indlæg?

Vælg din bedømmelse

Gennemsnitlig bedømmelse? 0 / 5. Antal bedømmelser: 0

Ingen bedømmelser endnu! Vær den første til at bedømme dette indlæg.

Del dette indlæg:

Kommentarer:

No comment yet, add your voice below!


Add a Comment

Tak, fordi du overvejer at poste en kommentar. Husk, at alle kommentarer modereres i henhold til vores kommentarpolitik som du finder HER

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

Share to...