
At have en Linux-server eksponeret for netværket er i bund og grund som at udsætte en magnet for bots. Hvis du ikke har konfigureret nogen sikkerhedsforanstaltninger, har du sandsynligvis allerede tusindvis af mislykkede loginforsøg i dine logfiler; der er automatiserede maskiner, der konstant prøver brugernavn- og adgangskodekombinationer for at forsøge at tage kontrol over din maskine gennem brute-force-angreb.
Det er her, Fail2ban kommer ind i billedet, et værktøj der fungerer som en utrættelig vagthund. Det er ikke en firewall i ordets strengeste forstand, men snarere en systemlog , og når den registrerer nogen, der forsøger at bryde ind, smækker den døren i ansigtet på dem ved at blokere deres IP-adresse ved hjælp af værktøjer som iptables eller nftables. Lad os se, hvordan du konfigurerer det til at gøre din server til en svær nød at knække.
Hvad er Fail2ban præcist, og hvordan fungerer det?
Kort sagt er Fail2ban en dæmon, der løbende overvåger logfilerne for dine tjenester. Når den finder mistænkelige mønstre, der matcher foruddefinerede regler, kaldet filtre , begynder den at tælle fejl. Hvis en IP-adresse når grænsen for tilladte forsøg inden for en bestemt tid, udfører programmet en handling , som typisk involverer at tilføje den IP-adresse til firewallens sortliste.
Disse konfigurationer er organiseret i det, der kaldes jails . Et jail er dybest set et sæt regler, der anvendes på en specifik tjeneste (såsom SSH, Apache eller MySQL). På denne måde kan du have en meget streng politik for fjernadgang og en mere tilladelig politik for webserveren, hvilket sikrer, at ubudne gæster automatisk blokeres, uden at du manuelt behøver at tjekke logfilerne hvert femte minut.

Installation i henhold til din Linux-distribution
Afhængigt af hvilket system du bruger, varierer kommandoen til at installere den en smule, men den er generelt tilgængelig i næsten alle officielle arkiver.
- På Ubuntu og Debian: Det er meget simpelt, du skal bare løbe
sudo apt updateefterfulgt afsudo apt install fail2ban. - På Rocky Linux eller AlmaLinux: Da disse er Enterprise-distributioner, skal du først aktivere EPEL-arkivet med
sudo dnf install epel-releaseog installer derefter pakken medsudo dnf install fail2ban fail2ban-firewalld. - I Alpine Linux: Brug APK-administratoren med
sudo apk add fail2banOg da den bruger OpenRC, skal du aktivere den medsudo rc-update add fail2ban defaultog start det medsudo rc-service fail2ban start.

Masterkonfiguration: Hemmeligheden bag .local-filen
En meget almindelig fejl er at redigere filen direkte. jail.confGør det ikke! Den fil kan overskrives, når du opdaterer systemet. Den gyldne regel er at oprette en kopi kaldet fængsel.lokalAlle parametre, du tilføjer til denne anden fil, vil have forrang over originalen, og dine ændringer vil blive overskrevet. sikker fra opdateringer.
Til at begynde med kan du klone den originale fil med sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local og åbn den derefter med din foretrukne editor, f.eks. nano eller vim. I afsnittet [STANDARD] Det er her, du definerer systemets overordnede opførsel:
- bantid: Hvor længe den ondsindede IP-adresse forbliver frosset. Dette kan være i sekunder eller ved at bruge 'm' til minutter (f.eks. 10 m).
- findetid: Tidsintervallet, hvor Fail2ban tjekker for fejl. Hvis nogen fejler 5 gange i timen, men fejltiden er 10 minutter, vil de ikke blive udelukket.
- maxretry: Antallet af mislykkede forsøg, der er tilladt, før systemet siger Nok og bloker IP'en.
- ignorerip: Vigtigt for at undgå at udelukke dig selv. Her skal du indtaste din offentlig IP-adresse eller dit VPN-interval.
Beskyttelse af specifikke tjenester trin for trin
Når de generelle indstillinger er konfigureret, er det tid til at aktivere jails for de tjenester, der vedrører dig mest. For at en beskyttelse kan virke, skal du indstille enabled = true i sin respektive sektion inden for jail.local.
SSH-adgang (det mest kritiske punkt)
Port 22 er det primære mål. En robust konfiguration ville definere maxretry = 3 og en bantime = 3600 (en time). Fail2ban vil læse filen. /var/log/auth.log (på Debian/Ubuntu) eller / Var / log / sikker (på CentOS/RHEL) for at detektere godkendelsesfejl og lukke adgang for angriberen.
Webservere (Apache og Nginx)
Hvis du har en hjemmeside eller en onlinebutik, vil bots forsøge at tilgå følsomme ruter som f.eks. /wp-admin o /login.phpDu kan oprette brugerdefinerede filtre i /etc/fail2ban/filter.d/ at opdage disse mønstre. For eksempel at Beskyt WordPress403-fejl eller mislykkede forsøg overvåges i wp-login.php, blokerer IP'en, hvis den overskrider de grænser, der er angivet i Apache- eller Nginx-jailet.
Databaser og FTP
For MySQL kan du overvåge fejlloggen for sætningen Adgang nægtet for brugerI tilfælde af FTP (som f.eks. ProFTPD) er det vigtigt at sikre, at logpath match den faktiske sti til dine logfiler, for hvis Fail2ban ikke kan finde logfilen, vil beskyttelsen simpelthen ikke virke.
Avanceret administration med fail2ban-klient
Du behøver ikke altid at redigere filer og genstarte tjenesten for at foretage hurtige ændringer. Kommandoen fail2ban-client Det giver dig mulighed for at administrere systemet direkte fra konsollen.
For at se hvilke jailbreaks der er aktive, og hvor mange IP'er der er blokeret, skal du bruge sudo fail2ban-client statusHvis du vil dykke dybere ned i en tjeneste, såsom SSH, skal du køre sudo fail2ban-client status sshdDesuden, hvis der ved en fejltagelse Du har blokeret en kollega Eller du kan hurtigt frigive IP-adressen selv med kommandoen sudo fail2ban-client set sshd unbanip IP_A_DESBLOQUEAR.
Vedligeholdelse og fejlfinding
Hvis du bemærker, at Fail2ban ikke blokerer som det skal, er det første sted at kigge i værktøjets egen logfil. /var/log/fail2ban.log. Ved brug af tail -f Du kan se i realtid, hvem der bliver udelukket, og hvorfor.
Husk at Fail2ban gemmer låsestatus i en SQLite-database i /var/lib/fail2ban/fail2ban.sqlite3Hvis du genstarter serveren, vil de IP-adresser, der blev blokeret, derfor blive ophævet. vil forblive blokeret indtil din strafperiode udløber. Glem ikke at anvende ændringerne, når du foretager ændringer i konfigurationsfiler. sudo systemctl restart fail2ban.
Implementering af dette værktøj forvandler din server fra et let mål til en automatiseret fæstning, hvilket reducerer CPU-belastningen ved at fjerne ondsindet trafik på netværkslaget og giver dig mulighed for at sove trygt velvidende at bots ikke vil være i stand til at brute-force sig vej ind. Ved at kombinere brugen af .local-filer, administration af specifikke jails og konstant logovervågning opnår du et dybdegående forsvarssystem, der er essentielt for enhver Linux-systemadministrator.
