- Implementarea unui sistem dinamic de blocare a IP-urilor bazat pe analiza jurnalelor de acces.
- Utilizarea fișierelor de configurare .local pentru a preveni pierderea setărilor în timpul actualizărilor de sistem.
- Capacitate de protecție multicanal pentru servicii critice precum SSH, servere web, baze de date și FTP.
- Gestionare în timp real a interdicțiilor și anulărilor de interdicții folosind instrumentul din linia de comandă fail2ban-client.
A avea un server Linux expus la rețea este practic ca și cum ai aprinde un magnet pentru roboți. Dacă nu ai configurat nicio măsură de securitate, probabil că ai deja mii de încercări de conectare eșuate în jurnalele tale; există mașini automate care încearcă constant combinații de nume de utilizator și parolă pentru a încerca să preia controlul asupra mașinii tale prin atacuri de tip forță brută.
Aici intervine Fail2ban, un instrument care acționează ca un watchdog neobosit. Nu este un firewall în sensul cel mai strict, ci mai degrabă analizează jurnalele de sistem și, atunci când detectează pe cineva care încearcă să intre cu forța, îi trântește ușa în față blocându-i adresa IP folosind instrumente precum iptables sau nftables. Să vedem cum să-l configurezi pentru a face serverul tău dificil de spart.
Ce este mai exact Fail2ban și cum funcționează?
Simplu spus, Fail2ban este un daemon care monitorizează continuu fișierele jurnal ale serviciilor dvs. Când găsește modele suspecte care corespund regulilor predefinite, numite filtre , începe să numere eșecurile. Dacă o adresă IP atinge limita de încercări permise într-un anumit timp, programul execută o acțiune , care implică de obicei adăugarea acelei adrese IP la lista neagră a firewall-ului.
Aceste configurații sunt organizate în ceea ce se numesc „jail” (închisori ). Un „jail” este practic un set de reguli aplicate unui anumit serviciu (cum ar fi SSH, Apache sau MySQL). În acest fel, puteți avea o politică foarte strictă pentru accesul la distanță și una mai permisivă pentru serverul web, asigurându-vă că intrușii sunt blocați automat fără a fi nevoie să verificați manual jurnalele la fiecare cinci minute.

Instalare conform distribuției dvs. de Linux
În funcție de sistemul pe care îl utilizați, comanda pentru instalare variază ușor, dar este în general disponibilă în aproape toate depozitele oficiale.
- Pe Ubuntu și Debian: E foarte simplu, trebuie doar să alergi
sudo apt updateurmat desudo apt install fail2ban. - Pe Rocky Linux sau AlmaLinux: Deoarece acestea sunt distribuții Enterprise, trebuie mai întâi să activați depozitul EPEL cu
sudo dnf install epel-releaseși apoi instalați pachetul cusudo dnf install fail2ban fail2ban-firewalld. - În Linuxul alpin: Folosește managerul APK cu
sudo apk add fail2banȘi, din moment ce folosește OpenRC, trebuie să îl activați cusudo rc-update add fail2ban defaultși începe-l cusudo rc-service fail2ban start.

Configurația principală: Secretul fișierului .local
O greșeală foarte frecventă este editarea directă a fișierului. jail.confNu face asta! Fișierul respectiv poate fi suprascris când actualizezi sistemul. Regula de aur este să creezi o copie numită închisoare.localOrice parametri adăugați în acest al doilea fișier vor avea prioritate față de cei originali, iar modificările dvs. vor fi suprascrise. ferit de actualizări.
Pentru început, puteți clona fișierul original cu sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local și apoi deschideți-l cu editorul preferat, cum ar fi nano sau vim. În secțiunea [MOD IMPLICIT] Aici definești comportamentul general al sistemului:
- timp de ban: Durata de timp în care adresa IP rău intenționată va rămâne blocată. Aceasta poate fi în secunde sau se poate folosi „m” pentru minute (de exemplu, 10m).
- timp de găsire: Intervalul de timp în care Fail2ban verifică dacă există erori. Dacă cineva eșuează de 5 ori într-o oră, dar timpul de căutare este de 10 minute, nu va fi interzis.
- încercare maximă: Numărul de încercări eșuate permise înainte ca sistemul să spună Gata și blochează IP-ul..
- ignorăip: Esențial pentru a evita auto-interzicerea. Aici trebuie să introduceți adresa IP publică sau intervalul VPN-ului dvs.

Protejarea serviciilor specifice pas cu pas
Odată ce setările generale sunt configurate, este timpul să activați jail-urile pentru serviciile care vă interesează cel mai mult. Pentru ca o protecție să funcționeze, trebuie să setați enabled = true în secțiunea sa corespunzătoare din cadrul jail.local.
Acces SSH (cel mai critic punct)
Portul 22 este ținta numărul unu. O configurație robustă ar defini maxretry = 3 și o bantime = 3600 (o oră). Fail2ban va citi fișierul. /var/log/auth.log (pe Debian/Ubuntu) sau / var / log / secure (pe CentOS/RHEL) pentru a detecta erorile de autentificare și a închide accesul atacatorului.
Servere web (Apache și Nginx)
Dacă aveți un site web sau un magazin online, boții vor încerca să acceseze rute sensibile, cum ar fi /wp-admin o /login.phpPuteți crea filtre personalizate în /etc/fail2ban/filter.d/ pentru a detecta aceste tipare. De exemplu, pentru a Protejați WordPressErorile 403 sau încercările eșuate sunt monitorizate în wp-login.php, blocând adresa IP dacă aceasta depășește limitele setate în jail-ul Apache sau Nginx.
Baze de date și FTP
Pentru MySQL, puteți monitoriza jurnalul de erori pentru fraza accesul interzis utilizatorluiÎn cazul FTP (cum ar fi ProFTPD), este vital să se asigure că logpath potriviți calea reală către jurnalele dvs., deoarece dacă Fail2ban nu poate găsi fișierul jurnal, protecția pur și simplu nu va funcționa.
Administrare avansată cu fail2ban-client
Nu trebuie întotdeauna să editați fișierele și să reporniți serviciul pentru a face modificări rapide. Comanda fail2ban-client Îți permite să gestionezi sistemul din mers, din consolă.
Pentru a vedea ce jail-uri sunt active și câte IP-uri sunt blocate, utilizați sudo fail2ban-client statusDacă vrei să aprofundezi un serviciu, cum ar fi SSH, rulează sudo fail2ban-client status sshdÎn plus, dacă din greșeală Ai blocat un coleg Sau puteți elibera rapid adresa IP cu comanda sudo fail2ban-client set sshd unbanip IP_A_DESBLOQUEAR.
Întreținere și depanare
Dacă observi că Fail2ban nu blochează așa cum ar trebui, primul loc unde trebuie să te uiți este fișierul jurnal al instrumentului. /var/log/fail2ban.log. Folosind tail -f Poți vedea în timp real cine este interzis și de ce.
Rețineți că Fail2ban stochează starea blocării într-o bază de date SQLite în /var/lib/fail2ban/fail2ban.sqlite3Prin urmare, dacă reporniți serverul, IP-urile care au fost interzise vor fi reactivate. va rămâne blocat până la expirarea perioadei de penalizare. Ori de câte ori faceți modificări la fișierele de configurare, nu uitați să aplicați modificările cu sudo systemctl restart fail2ban.
Implementarea acestui instrument transformă serverul tău dintr-o țintă ușoară într-o fortăreață automată, reducând încărcarea procesorului prin eliminarea traficului malițios la nivelul rețelei și permițându-ți să dormi liniștit știind că boții nu vor putea să pătrundă prin forță. Prin combinarea utilizării fișierelor .local, gestionarea jail-urilor specifice și monitorizarea constantă a jurnalelor, obții un sistem cu apărare profundă, esențial pentru orice administrator de sistem Linux.