Alla servrar som är åtkomliga från Internet riskerar attacker mot skadlig programvara. Om du till exempel har en applikation som är tillgänglig från det offentliga nätverket kan angripare använda brute-force försök för att få tillgång till applikationen.
Fail2ban är ett verktyg som hjälper till att skydda din Linux-maskin från brute-force och andra automatiserade attacker genom att övervaka tjänsteloggarna för skadlig aktivitet. Den använder reguljära uttryck för att skanna loggfiler. Alla poster som matchar mönstren räknas, och när deras antal når en viss fördefinierad tröskel, förbjuder Fail2ban den kränkande IP-adressen med hjälp av systemväggen under en viss tid. När förbudsperioden löper ut tas IP-adressen bort från förbudslistan.
Den här artikeln förklarar hur du installerar och konfigurerar Fail2ban på Debian 10.
Installera Fail2ban på Debian #
Fail2ban-paketet ingår i standardförvaret för Debian 10. För att installera det, kör följande kommando som root eller användare med sudo-behörigheter:
sudo apt uppdatering
sudo apt installera fail2ban
När den är klar startar Fail2ban-tjänsten automatiskt. Du kan verifiera det genom att kontrollera status för tjänsten:
sudo systemctl status fail2ban
Utgången kommer att se ut så här:
● fail2ban.service - Fail2Ban Service Loaded: laddad (/ lib / systemd / system / fail2ban.service; aktiverad; leverantörsförinställning: aktiverad) Aktiv: aktiv (kör) sedan ons 2021-03-10 18:57:32 UTC; För 47 år sedan ..
Det är allt. Vid den här tiden har du Fail2Ban på din Debian-server.
Fail2ban-konfigurationsnummer
Standardinstallationen Fail2ban levereras med två konfigurationsfiler, / etc / fail2ban / fängelse.konf
och / etc / fail2ban / fängelse.d / standard-debian.konf
. Du bör inte ändra dessa filer eftersom de kan skrivas över när paketet uppdateras.
Fail2ban läser konfigurationsfilerna i följande ordning. Varje .lokal
filen åsidosätter inställningarna från .konf
fil:
/ etc / fail2ban / fängelse.konf
/ etc / fail2ban / fängelse.d / *.konf
/ etc / fail2ban / fängelse.lokal
/ etc / fail2ban / fängelse.d / *.lokal
Det enklaste sättet att konfigurera Fail2ban är att kopiera fängelse.konf
till fängelse.lokal
och ändra .lokal
fil. Mer avancerade användare kan bygga en .lokal
konfigurationsfil från grunden. De .lokal
filen behöver inte inkludera alla inställningar från motsvarande .konf
filen, bara de du vill åsidosätta.
Skapa en .lokal
genom att kopiera standardinställningarna fängelse.konf
fil:
sudo cp / etc / fail2ban / fängelse.conf, lokal
För att börja konfigurera Fail2ban-servern öppen, fängelse.lokal
fil med din textredigerare:
sudo nano / etc / fail2ban / fängelse.lokal
Filen innehåller kommentarer som beskriver vad varje konfigurationsalternativ gör. I det här exemplet ändrar vi grundinställningarna.
Vitlista IP-adresser #
IP-adresser, IP-intervall eller värdar som du vill utesluta från förbud kan läggas till i ignorera
direktiv. Här bör du lägga till din lokala datorns IP-adress och alla andra maskiner som du vill vitlista.
Avmarkera raden som börjar med ignorera
och lägg till dina IP-adresser åtskilda av mellanslag:
ignorip = 127.0.0.1/8 :: 1 123.123.123.123 192.168.1.0/24
Förbjud inställningar #
bantime
, hitta tid
, och maxretry
alternativ ställer in förbudstid och förbudsvillkor.
bantime
är den varaktighet för vilken IP är förbjuden. När inget suffix anges anges det som standard sekunder. Som standard är bantime
värdet är inställt på 10 minuter. De flesta användare föredrar att ställa in en längre förbudstid. Ändra värdet efter eget tycke:
bantime = 1d
Använd ett negativt nummer för att permanent förbjuda IP.
hitta tid
är varaktigheten mellan antalet misslyckanden innan ett förbud har fastställts. Till exempel, om Fail2ban är inställd på att förbjuda en IP efter fem misslyckanden (maxretry
, se nedan) måste dessa fel inträffa inom hitta tid
varaktighet.
findtime = 10m
maxretry
är antalet fel innan en IP förbjuds. Standardvärdet är satt till fem, vilket borde vara bra för de flesta användare.
maxretry = 5
E-postmeddelanden #
Fail2ban kan skicka e-postvarningar när en IP har förbjudits. För att få e-post måste du ha en SMTP installerad på din server och ändra standardåtgärden, som bara förbjuder IP: n till % (action_mw) s
, enligt nedanstående:
åtgärd =% (action_mw) s
% (action_mw) s
förbjuder den kränkande IP: n och skickar ett e-postmeddelande med en whois-rapport. Om du vill inkludera relevanta loggar i e-postmeddelandet ställer du in åtgärden till % (action_mwl) s
.
Du kan också ändra de sändande och mottagande e-postadresserna:
/ etc / fail2ban / fängelse.lokaldestemail = admin @ linuxize.com avsändare = root @ linuxize.com
Fail2ban fängelser #
Fail2ban använder begreppet fängelser. Ett fängelse beskriver en tjänst och innehåller filter och åtgärder. Loggposter som matchar sökmönstret räknas och när ett fördefinierat villkor uppfylls utförs motsvarande åtgärder.
Fail2ban levereras med ett antal fängelser för olika tjänster. Du kan också skapa dina egna fängelsekonfigurationer. Som standard är endast ssh-fängelset aktiverat.
För att aktivera ett fängelse måste du lägga till aktiverat = sant
efter fängelsetiteln. Följande exempel visar hur du aktiverar postfix-fängelset:
[postfix] enabled = true port = smtp, ssmtp filter = postfix logpath = / var / log / mail.logga
De inställningar som vi diskuterade i föregående avsnitt kan ställas in per fängelse. Här är ett exempel:
/ etc / fail2ban / fängelse.lokal[sshd] enabled = true maxretry = 3 findtime = 1d bantime = 4w ignoreip = 127.0.0.1/8 11.22.33.44
Filtren finns i / etc / fail2ban / filter.d
katalog, lagrad i en fil med samma namn som fängelset. Om du har en anpassad installation och erfarenhet av reguljära uttryck kan du finjustera filtren.
Varje gång konfigurationsfilen ändras måste Fail2ban-tjänsten startas om för att ändringarna ska träda i kraft:
sudo systemctl starta om fail2ban
Fail2ban Client #
Fail2ban skickas med ett kommandoradsverktyg med namnet fail2ban-klient
som du kan använda för att interagera med tjänsten Fail2ban.
För att visa alla tillgängliga alternativ, anropa kommandot med -h
alternativ:
fail2ban-klient -h
Detta verktyg kan användas för att förbjuda / avblockera IP-adresser, ändra inställningar, starta om tjänsten och mer. Här är några exempel:
Få den aktuella statusen för servern:
sudo fail2ban-klientstatus
Kontrollera fängelsestatusen:
sudo fail2ban-klientstatus sshd
Ta bort en IP:
sudo fail2ban-klientuppsättning sshd unbanip 11.22.33.44
Förbjud en IP:
sudo fail2ban-klient ställer in sshd banip 11.22.33.44
Slutsats #
Vi har visat dig hur du installerar och konfigurerar Fail2ban på Debian 10.
Mer information om detta ämne finns i Fail2ban-dokumentationen .
Om du har frågor, lämna gärna en kommentar nedan.