- Implementering av et dynamisk IP-blokkeringssystem basert på analyse av tilgangslogger.
- Bruk av .local-konfigurasjonsfiler for å forhindre tap av innstillinger under systemoppdateringer.
- Flerkanalsbeskyttelsesfunksjon for kritiske tjenester som SSH, webservere, databaser og FTP.
- Sanntidsadministrasjon av utestengelser og opphevinger ved hjelp av kommandolinjeverktøyet fail2ban-client.
Å ha en Linux-server eksponert til nettverket er i hovedsak som å sende ut en magnet for roboter. Hvis du ikke har konfigurert noen sikkerhetstiltak, har du sannsynligvis allerede tusenvis av mislykkede innloggingsforsøk i loggene dine. Det finnes automatiserte maskiner som stadig prøver brukernavn- og passordkombinasjoner for å prøve å ta kontroll over maskinen din. brute force angrep.
Det er her Fail2ban kommer inn i bildet, et verktøy som fungerer som en utrettelig vaktbikkje. Det er ikke en brannmur i strengeste forstand, men snarere analyserer systemloggene Og når den oppdager at noen prøver å tvinge seg inn, smeller den døren i ansiktet på dem ved å blokkere IP-adressen deres med verktøy som iptables eller nftables. La oss se hvordan du finjusterer den for å gjøre serveren din til en skikkelig tøff nøtt å knekke.
Hva er egentlig Fail2ban, og hvordan fungerer det?
Enkelt sagt er Fail2ban en daemon som kontinuerlig overvåker loggfilene til tjenestene dine. Når den finner mistenkelige mønstre som samsvarer med forhåndsdefinerte regler, foretar den anrop. filtreDen begynner å telle feil. Hvis en IP-adresse når grensen for tillatte forsøk innen en viss tid, utfører programmet en handlingsom vanligvis innebærer å legge til den IP-adressen på brannmurens svarteliste.
Disse konfigurasjonene er organisert i det som kalles fengsler eller fengslerEt jail er i bunn og grunn et sett med regler som gjelder for en spesifikk tjeneste (som SSH, Apache eller MySQL). På denne måten kan du ha en veldig streng policy for ekstern tilgang og en mer tillatende en for webserveren, noe som sikrer at inntrengere er blokkert automatisk uten at du må sjekke loggene manuelt hvert femte minutt.

Installasjon i henhold til din Linux-distribusjon
Avhengig av hvilket system du bruker, varierer kommandoen for å installere den litt, men den er vanligvis tilgjengelig i nesten alle offisielle arkiver.
- På Ubuntu og Debian: Det er veldig enkelt, du må bare løpe
sudo apt updateetterfulgt avsudo apt install fail2ban. - På Rocky Linux eller AlmaLinux: Siden dette er Enterprise-distribusjoner, må du først aktivere EPEL-repositoriet med
sudo dnf install epel-releaseog installer deretter pakken medsudo dnf install fail2ban fail2ban-firewalld. - I Alpine Linux: Bruk APK-behandleren med
sudo apk add fail2banOg siden den bruker OpenRC, må du aktivere den medsudo rc-update add fail2ban defaultog start det medsudo rc-service fail2ban start.

Hovedkonfigurasjon: Hemmeligheten bak .local-filen
En veldig vanlig feil er å redigere filen direkte. jail.confIkke gjør det! Den filen kan bli overskrevet når du oppdaterer systemet. Den gylne regelen er å lage en kopi som heter fengsel.lokalAlle parametere du legger til i denne andre filen vil prioriteres over originalen, og endringene dine vil bli overskrevet. trygg fra oppdateringer.
For å begynne kan du klone den originale filen med sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local og åpne den deretter med favoritteditoren din, for eksempel nano eller vim. I seksjonen [MISLIGHOLDE] Det er her du definerer systemets generelle oppførsel:
- bantid: El tiempo que la IP maliciosa se quedará en el congelador. Puede ser en segundos o usando ‘m’ para minutos (ej. 10m).
- finnetid: Tidsintervallet Fail2ban sjekker etter feil i. Hvis noen feiler 5 ganger i løpet av en time, men søketiden er 10 minutter, vil de ikke bli utestengt.
- maxretry: Antall mislykkede forsøk som er tillatt før systemet sier Nok og blokker IP-en.
- ignorerip: Viktig for å unngå å utestenge deg selv. Her må du legge inn offentlig IP-adresse eller VPN-rekkevidden din.

Beskyttelse av spesifikke tjenester trinn for trinn
Når de generelle innstillingene er konfigurert, er det på tide å aktivere fengslene for tjenestene som angår deg mest. For at en beskyttelse skal fungere, må du angi enabled = true i sin respektive seksjon innenfor jail.local.
SSH-tilgang (det viktigste punktet)
Port 22 er målet nummer én. En robust konfigurasjon ville definere maxretry = 3 og en bantime = 3600 (én time). Fail2ban vil lese filen. /var/log/auth.log (på Debian/Ubuntu) eller / var / logg / sikker (på CentOS/RHEL) for å oppdage autentiseringsfeil og stenge tilgang for angriperen.
Webservere (Apache og Nginx)
Hvis du har et nettsted eller en nettbutikk, vil roboter prøve å få tilgang til sensitive ruter som f.eks. /wp-admin o /login.phpDu kan opprette egendefinerte filtre i /etc/fail2ban/filter.d/ for å oppdage disse mønstrene. For eksempel, for å Beskytt WordPress403-feil eller mislykkede forsøk overvåkes i wp-login.php, og blokkerer IP-adressen hvis den overskrider grensene som er satt i Apache- eller Nginx-jailbreaket.
Databaser og FTP
For MySQL kan du overvåke feilloggen for frasen Tilgang nektet for brukerNår det gjelder FTP (som ProFTPD), er det viktig å sørge for at logpath samsvar med den faktiske banen til loggene dine, for hvis Fail2ban ikke finner loggfilen, vil beskyttelsen rett og slett ikke fungere.
Avansert administrasjon med fail2ban-klient
Du trenger ikke alltid å redigere filer og starte tjenesten på nytt for å gjøre raske endringer. Kommandoen fail2ban-client Det lar deg administrere systemet på farten fra konsollen.
For å se hvilke fengsler som er aktive og hvor mange IP-adresser som er blokkert, bruk sudo fail2ban-client statusHvis du vil gå dypere inn i en tjeneste, for eksempel SSH, kjør sudo fail2ban-client status sshdVidere, hvis det ved en feiltakelse Du har blokkert en kollega Eller du kan raskt frigi IP-adressen selv med kommandoen sudo fail2ban-client set sshd unbanip IP_A_DESBLOQUEAR.
Vedlikehold og feilsøking
Hvis du legger merke til at Fail2ban ikke blokkerer som den skal, er det første stedet å se i verktøyets egen loggfil. /var/log/fail2ban.log. Ved hjelp av tail -f Du kan se i sanntid hvem som blir utestengt og hvorfor.
Husk at Fail2ban lagrer låsestatusen i en SQLite-database i /var/lib/fail2ban/fail2ban.sqlite3Derfor, hvis du starter serveren på nytt, vil IP-adressene som ble utestengt bli opphevet. vil forbli blokkert inntil straffeperioden utløper. Når du gjør endringer i konfigurasjonsfiler, må du ikke glemme å bruke endringene med sudo systemctl restart fail2ban.
Implementering av dette verktøyet forvandler serveren din fra et enkelt mål til en automatisert festning, reduserer CPU-belastningen ved å forkaste ondsinnet trafikk på nettverkslaget og lar deg sove godt vel vitende om at roboter ikke vil kunne brute-force seg inn. Ved å kombinere bruken av .local-filer, administrasjon av spesifikke jails og konstant loggovervåking, oppnår du en forsvar i dybden viktig for enhver Linux-systemadministrator.