
Tenir un servidor Linux exposat a la xarxa és, bàsicament, posar un imant per als bots. Si no heu configurat cap mesura de seguretat, és molt probable que ja tingueu milers d'intents d'accés fallits als vostres registres; hi ha màquines automatitzades que no paren de provar combinacions d'usuaris i claus per intentar prendre el control de la teva màquina mitjançant atacs de força bruta.
Aquí és on entra en joc Fail2ban, una eina que actua com un vigilant incansable. No és un tallafocs en el sentit estricte, sinó que analitza els logs del sistema i, quan detecta que algú està intentant entrar per força, li tanca la porta a la cara bloquejant la seva adreça IP a través d'eines com iptables o nftables. Veurem com posar-ho a punt perquè el teu servidor sigui un os dur de rosegar.
Què és exactament Fail2ban i com funciona?
Per entendre-ho fàcil, Fail2ban és un dimoni que monitoritza contínuament els fitxers de registre (logs) dels teus serveis. Quan trobeu patrons sospitosos que coincideixen amb regles predefinides, anomenades filters , comença a comptar les fallades. Si una IP arriba al límit d'intents permesos en un temps determinat, el programa executa una action , que normalment consisteix a afegir aquesta IP a la llista negra del tallafoc.
Aquestes configuracions s'organitzen en el que s'anomenen jails o presons . Una presó és bàsicament un conjunt de regles aplicades a un servei concret (com SSH, Apache o MySQL). D'aquesta manera, pots tenir una política molt estricta per a l'accés remot i una altra de més permissiva per al servidor web, assegurant que els intrusos siguin bloquejats automàticament sense que hagis d'estar revisant els logs a mà cada cinc minuts.

Instal·lació segons la teva distribució de Linux
Depenent de quin sistema estiguis usant, la comanda per instal·lar-ho varia una mica, però en general està disponible a gairebé tots els repositoris oficials.
- A Ubuntu i Debian: És molt senzill, només has d'executar
sudo apt updateseguit desudo apt install fail2ban. - A Rocky Linux o AlmaLinux: En ser distribucions Enterprise, primer has d'habilitar el repositori EPEL amb
sudo dnf install epel-releasei després instal·lar el paquet ambsudo dnf install fail2ban fail2ban-firewalld. - A Alpine Linux: Utilitza el gestor apk amb
sudo apk add fail2bani, com utilitza OpenRC, has d'habilitar-ho ambsudo rc-update add fail2ban defaulti arrencar-ho ambsudo rc-service fail2ban start.

Configuració mestra: El secret del fitxer .local
Un error molt comú és editar directament el fitxer jail.conf. No ho facis! Aquest fitxer es pot sobreescriure quan actualitzeu el sistema. La regla d'or és crear una còpia trucada jail.local. Qualsevol paràmetre que posis en aquest segon fitxer tindrà prioritat sobre l'original i els teus canvis estaran fora de perill de les actualitzacions.
Per començar, pots clonar el fitxer original amb sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local i després obrir-lo amb el teu editor preferit, com nano o vim. A la secció [PER Defecte] és on defineixes el comportament global del sistema:
- temps de ban: El temps que la IP maliciosa es quedarà al congelador. Pot ser en segons o usant 'm' per a minuts (ex. 10m).
- trobartemps: L'interval de temps en què Fail2ban cerca els errors. Si algú falla 5 cops en una hora però el findtime és de 10 minuts, no serà banejat.
- màximreintent: El nombre d'intents fallits permesos abans que el sistema digui prou i bloquegeu la IP.
- ignoraip: Fonamental per no banejar-te a tu mateix. Aquí has de posar la teva adreça IP pública o el rang del teu VPN.
Protegint serveis específics pas a pas
Un cop configurat l'apartat general, toca activar les presons per als serveis que més et preocupin. Perquè una protecció funcioni, has de posar enabled = true a la seva respectiva secció dins de jail.local.
Accés SSH (El punt més crític)
El port 22 és l'objectiu número u. Una configuració robusta seria definir maxretry = 3 i un bantime = 3600 (una hora). Fail2ban llegirà el fitxer /var/log/auth.log (a Debian/Ubuntu) o / Var / log / secure (a CentOS/RHEL) per detectar les fallades d'autenticació i tancar l'accés a l'atacant.
Servidors Web (Apache i Nginx)
Si tens una web o botiga en línia, els bots intentaran accedir a rutes sensibles com /wp-admin o /login.php. Pots crear filtres personalitzats a /etc/fail2ban/filter.d/ per detectar aquests patrons. Per exemple, per protegir WordPress, es monitoritzen els errors 403 o intents fallits a wp-login.php, bloquejant la IP si excedeix els límits establerts a la presó d'Apache o Nginx.
Bases de dades i FTP
Per MySQL, podeu monitoritzar el log d'errors a la recerca de la frase Access denied for user. En el cas de FTP (com ProFTPD), és vital assegurar-se que el logpath coincideixi amb la ruta real dels teus registres, ja que si Fail2ban no troba el fitxer de log, la protecció simplement no funcionarà.
Gestió avançada amb fail2ban-client
No sempre heu d'editar fitxers i reiniciar el servei per fer canvis ràpids. L'ordre fail2ban-client us permet gestionar el sistema en calent des de la consola.
Per veure quines presons estan actives i quantes IPs hi ha bloquejades, utilitza sudo fail2ban-client status. Si vols aprofundir en un servei, com SSH, executa sudo fail2ban-client status sshd. A més, si per error has bloquejat un company oa tu mateix, pots alliberar la IP ràpidament amb l'ordre sudo fail2ban-client set sshd unbanip IP_A_DESBLOQUEAR.
Manteniment i resolució de problemes
Si notes que Fail2ban no està bloquejant com hauria, el primer lloc on mirar és el fitxer de registre propi de l'eina a /var/log/fail2ban.log. usant tail -f pots veure en temps real qui està sent banejat i per què.
Recordeu que Fail2ban desa l'estat dels bloquejos en una base de dades SQLite a /var/lib/fail2ban/fail2ban.sqlite3, de manera que si reinicies el servidor, les IPs que estaven banejades seguiran bloquejades fins que expiri el temps de càstig. Sempre que feu canvis als fitxers de configuració, no oblideu aplicar els canvis amb sudo systemctl restart fail2ban.
Implementar aquesta eina transforma el teu servidor d'una diana fàcil en una fortalesa automatitzada, reduint la càrrega de CPU en descartar trànsit maliciós a la capa de xarxa i permetent dormir tranquil sabent que els bots no podran entrar per força bruta. Combinant l'ús d'arxius .local, la gestió de jails específiques i el monitoratge constant dels logs, aconsegueixes una defensa en profunditat essencial per a qualsevol administrador de sistemes Linux.
