Hur man installerar Fail2ban med Firewalld på Rocky Linux 8

Fail2ban är ett ramverk för intrångsförebyggande programvara som skyddar datorservrar från främst brute-force-attacker, förbjuder dåliga användaragenter, förbjuder URL-skannrar och mycket mer. Fail2ban uppnår detta genom att läsa åtkomst-/felloggar för din server eller webbapplikationer. Fail2ban är kodat i programmeringsspråket python.

Följande handledning kommer att lära dig hur du gör installera Fail2ban på Rocky Linux 8 och grundläggande inställningar och tips.

Förutsättningar

  • Rekommenderat OS: Rocky Linux 8.+.
  • Användarkonto: Ett användarkonto med sudo- eller root-åtkomst.

Uppdatera operativsystem

Uppdatera din Rocky linux operativsystem för att se till att alla befintliga paket är uppdaterade:

sudo dnf upgrade --refresh -y

Handledningen kommer att använda sudo kommando och förutsatt att du har sudo-status.

Så här verifierar du sudo-status på ditt konto:

sudo whoami

Exempel på utdata som visar sudo-status:

[joshua@rockylinux ~]$ sudo whoami
root

För att konfigurera ett befintligt eller nytt sudo-konto, besök vår handledning på Hur man lägger till en användare till Sudoers på Rocky Linux.

Att använda root-konto, använd följande kommando med root-lösenordet för att logga in.

su

Installera EPEL Repository

Det första steget är att importera förvaret från EPEL (Extra paket för Enterprise Linux) enligt följande:

sudo dnf install epel-release

Exempel utmatning:

Hur man installerar Fail2ban med Firewalld på Rocky Linux 8

Skriv "Y", tryck sedan på "ENTER-TANGENT" för att fortsätta med installationen.

Det är alltid en bra idé att verifiera om förvaret har lagts till framgångsrikt; detta kan göras med dnf repolist kommando som nedan:

sudo dnf repolist

Exempel utmatning:

Hur man installerar Fail2ban med Firewalld på Rocky Linux 8

Som du kan se har EPEL-förvaret lagts till korrekt. Praktiskt tips, du kan återanvända det här kommandot för att se eventuella framtida förvarsimporter.

Konfigurera Firewalld

Som standard kommer Rocky Linux 8 med brandvägg installerad. För att verifiera detta, använd följande kommando:

sudo dnf info firewalld

Exempel utmatning:

Hur man installerar Fail2ban med Firewalld på Rocky Linux 8

Som du kan se är detta installerat på Rocky Linux 8 som standard; den bör också aktiveras automatiskt på ditt system.

För att bekräfta detta, använd följande systemctl-kommando:

sudo systemctl status firewalld

Exempel utmatning:

Hur man installerar Fail2ban med Firewalld på Rocky Linux 8

Ett annat praktiskt knep med firewalld är att använda kommandot firewall-cmd –state för att verifiera om det körs eller inte:

sudo firewall-cmd --state

Exempel utmatning:

running

Om din brandvägg är avstängd använder du följande för att starta den:

sudo systemctl start firewalld

För att återaktivera den för att starta vid systemstart, använd följande:

sudo systemctl enable firewalld

Exempel på utdata om framgångsrikt:

Created symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service → /usr/lib/systemd/system/firewalld.service.
Created symlink /etc/systemd/system/multi-user.target.wants/firewalld.service → /usr/lib/systemd/system/firewalld.service.

Om din brandvägg har tagits bort kan du installera om brandväggen med följande kommando:

sudo dnf install firewalld

Slutligen, för att verifiera de nuvarande reglerna innan några nya läggs till av fail2ban, lista de befintliga för att bli bekant med brandväggen:

sudo firewall-cmd --list-all

Exempel utmatning:

Hur man installerar Fail2ban med Firewalld på Rocky Linux 8

Installera Fail2ban

Nu när du har installerat EPEL-förvaret är det dags att installera fail2ban och tilläggspaketet fail2ban-firewalld, som korrekt konfigurerar Fail2ban för att fungera med brandvägg för framtida användning.

sudo dnf install fail2ban fail2ban-firewalld

Exempel utmatning:

Hur man installerar Fail2ban med Firewalld på Rocky Linux 8

Skriv "Y", tryck sedan på "ENTER-TANGENT" för att fortsätta med installationen.

Som standard kommer fail2ban inte att vara aktivt, så du måste starta det manuellt med följande systemctl kommando:

sudo systemctl start fail2ban

För att sedan aktivera fail2ban vid systemstart, använd följande:

sudo systemctl enable fail2ban

Verifiera statusen med följande kommando:

sudo systemctl status fail2ban

Exempel utmatning:

Hur man installerar Fail2ban med Firewalld på Rocky Linux 8

Slutligen, verifiera versionen och builden av fail2ban:

fail2ban-client --version

Exempel utmatning:

Fail2Ban v0.11.2

Konfigurera Fail2ban

Efter att ha slutfört installationen behöver vi nu göra några inställningar och grundläggande konfigurationer. Fail2ban kommer med två konfigurationsfiler som finns i /etc/fail2ban/jail.conf och standard fail2ban-fängelset /etc/fail2ban/jail.d/00-firewalld.conf. Ändra inte dessa filer. De ursprungliga installationsfilerna är dina original och kommer att ersättas vid eventuella uppdateringar av Fail2ban i framtiden.

Nu kanske du undrar hur vi ställer in Fail2ban som om du uppdaterar och tappar dina inställningar. Enkelt, vi skapar kopior som slutar på .lokal istället för .conf som fail2ban alltid kommer att läsa .lokal filer först innan de laddas .conf om den inte kan hitta en.

För att göra detta, använd följande kommandon.

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

Som standard jail.local är inställd för användning IPTABLER. För att göra saker enkelt, istället för att använda 00-firewalld.conf/jail och skapa dina regler från grunden, öppna jail.local och gå till linje 208 och byt ut:

Öppna jail.local:

sudo nano /etc/fail2ban/jail.local

Hitta Old-kod (IPTABLES):

anaction = iptables-multiport
banaction_allports = iptables-allports

Ersätt med (BRANDVÄGG):

banaction = firewallcmd-rich-rules[actiontype=]
banaction_allports = firewallcmd-rich-rules[actiontype=]

Därefter kommer handledningen att köra över några inställningar som du kan använda eller ändra efter eget tycke. Observera att de flesta inställningar kommenteras bort; handledningen kommer att avkommentera raderna i fråga eller modifiera de befintliga i exempelinställningarna.

Kom ihåg att detta är valfria inställningar och du kan ställa in vad du vill om du vet mer om fail2ban och har självförtroendet.

Ban Time Increment

Den första inställningen du kommer att stöta på är förbudstidsökningar. Du bör aktivera detta varje gång angriparen kommer tillbaka. Det kommer att öka avstängningstiden, vilket besparar ditt system från att ständigt förbjuda samma IP-adress på nytt om dina avstängningstider är små; t.ex. 1 timme, du vill att detta ska vara längre om angriparen återvänder x5 gånger.

Du måste också 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 vår guide föredrar vi multiplikatorer, vilket framhålls i vårt exempel nedan, eftersom du kan ställa in anpassade förbudstidsökningar efter dina önskemål. Ytterligare förklaring finns i upplägget på matematiken bakom.

Exempel nedan:

Hur man installerar Fail2ban med Firewalld på Rocky Linux 8

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.

Exempel nedan:

Hur man installerar Fail2ban med Firewalld på Rocky Linux 8

Standardinställning av förbudstid

Förbudstiden är standard på 10 minuter med 10 minuters sökfunktion vid 5 försök. En förklaring till detta är att Fail2ban-fängelset med filtrering kommer att blockera din angripare i 10 minuter efter att den har försökt om samma attack om 10 minuter (hitta tid) x 5 gånger (försök 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.

Exempel nedan:

Hur man installerar Fail2ban med Firewalld på Rocky Linux 8

E-post konfigurerad med Fail2ban

Du kan ange en e-postadress för att Fail2ban ska skicka rapporter. Standarden action = %(action_mw)s som förbjuder den felande IP:n och skickar ett e-postmeddelande med en whois-rapport som du kan granska. I din action.d-mapp finns det dock andra e-postalternativ för att rapportera inte bara till dig själv utan även för att skicka ut e-postmeddelanden till svartlistade leverantörer och angriparens internetleverantör för att rapportera.

Exempel 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
Hur man installerar Fail2ban med Firewalld på Rocky Linux 8

Observera att Fail2ban som standard använder sendmail MTA för e-postmeddelanden. Du kan ändra detta till postfunktion Genom att göra följande:

Byt från:

mta = sendmail

Ändra till:

mail = sendmail

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 göra anpassade fängelser eller hitta externa på olika huvudpunkter och gemenskapswebbplatser; 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.

Exempel nedan:

[apache-badbots]
# Ban hosts which agent identifies spammer robots crawling the web
# for email addresses. The mail outputs are buffered.
port     = http,https
logpath  = %(apache_access_log)s
bantime  = 48h
maxretry = 1

Så vi har en Apache 2 HTTP-server, och precis som filter/förbjud dåliga bots, är allt du behöver göra att lägga till aktiverat = 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 det maximala återfö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 guiden. Om något av filtren saknar detta kan du lägga till det som ett 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

Därefter skulle du vilja 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 i din fängelsekonfiguration.

[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 konfigureras före 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

Exempel på användning av Fail2ban-client

Nu när du är igång med Fail2ban behöver du känna till några grundläggande driftskommandon. Vi gör detta genom att använda 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

Kontrollerar Firewalld och Fail2ban

Som standard bör brandväggen konfigureras för att automatiskt förbjuda alla IP-adresser som fail2ban agerar förbjudet på. För att se om detta verkligen fungerar korrekt, använd följande kommando:

Ett snabbt test finns i ditt fängelse [SSHD] och placering aktiverad = sant även om du inte använder detta fängelse eftersom det bara är ett test, använd följande bankommando:

sudo fail2ban-client set sshd banip 192.155.1.7

Lista nu rika regler för brandväggslistan enligt följande:

firewall-cmd --list-rich-rules

Exempel utmatning:

rule family="ipv4" source address="192.155.1.7" port port="ssh" protocol="tcp" reject type="icmp-port-unreachable"

Som du kan se fungerar fail2ban och brandvägg korrekt för en levande miljö.

Övervakning av 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, eftersom 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.

sudo tail -f /var/log/fail2ban.log

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

Kommentarer och slutsats

Handledningen har visat dig grunderna för att installera Fail2ban på Rocky Linux 8-systemet och ställa in några fängelser med tillgängliga filter. Fail2ban är ett kraftfullt verktyg. Du kan ställa in den på många olika sätt än vad jag har visat här. Det är bara ett exempel på att komma runt det, till att börja med. Fail2ban är aktivt utvecklat och är ett solidt val att distribuera på din server i dessa tider där attacker blir så frekventa.


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

2 tankar om “Hur man installerar Fail2ban med Firewalld på Rocky Linux 8”

    • Hej Edgar,

      Ja, det är möjligt, jag har några anpassade regler med UFW/Modsecurity som jag använder på en annan server som jag hanterade. Möjligheterna är oändliga, allt beror på din situation och vad du försöker göra.

      Jag kommer att göra en tutorial under de närmaste veckorna när jag får lite mer tid och detaljer så mycket jag vet, men låt inte detta hindra dig från att försöka.

      Tack.

      ================================================== ============

      Ahoj Edgare,

      Ano, je to možné, mám nějaká vlastní pravidla s UFW/Modsecurity, která používám na jiném serveru, který jsem spravoval. Možnosti jsou nekonečné, vše závisí na vaší situaci a na tom, co se snažíte dělat.

      Během několika příštích týdnů, až budu mít více času a podrobností, udělám tutoriál, pokud vím, ale nenechte se tím odradit od pokusu.

      Tack.

      Svara

Lämna en kommentar