Com instal·lar Fail2ban a Rocky Linux i AlmaLinux


Escrit en Python, Fail2ban és un sistema de prevenció d'intrusions (IPS) gratuït i de codi obert que protegeix el servidor contra atacs de força bruta.

Després d'un nombre determinat d'intents de contrasenya incorrectes, l'adreça IP del client està prohibida d'accedir al sistema durant un període determinat o fins que l'administrador del sistema la desbloqueja. D'aquesta manera, el sistema està protegit dels atacs de força bruta repetits des d'un sol host.

[ També us pot agradar: Com protegir i endurir el servidor OpenSSH ]

Fail2ban és altament configurable i es pot configurar per assegurar una infinitat de serveis com SSH, vsftpd, Apache i Webmin.

En aquesta guia, ens centrem en com podeu instal·lar i configurar Fail2ban a Rocky Linux i AlmaLinux.

Pas 1: assegureu-vos que Firewalld s'està executant

Per defecte, Rocky ve amb Firewalld en execució. Tanmateix, si aquest no és el cas al vostre sistema, inicieu Firewalld executant:

$ sudo systemctl start firewalld

A continuació, activeu-lo perquè s'iniciï en el moment d'arrencar:

$ sudo systemctl enable firewalld

A continuació, verifiqueu l'estat de Firewalld

$ sudo systemctl status firewalld

A més, podeu confirmar totes les regles de Firewalld que s'estan aplicant actualment mitjançant l'ordre:

$ sudo firewall-cmd --list-all

Pas 2: instal·leu EPEL a Rocky Linux

Com a requisit per a la instal·lació de fail2ban i altres paquets necessaris, cal instal·lar el repositori EPEL que proporciona paquets addicionals d'alta qualitat per a distribucions basades en RHEL.

$ sudo dnf install epel-release

Pas 3: instal·leu Fail2ban a Rocky Linux

Amb EPEL instal·lat, procediu i instal·leu fail2ban i el paquet fail2ban-firewalld.

$ sudo dnf install fail2ban fail2ban-firewalld

Això instal·la el servidor fail2ban i el component firewalld juntament amb altres dependències.

Amb la instal·lació de fail2ban completada, inicieu el servei fail2ban.

$ sudo systemctl start fail2ban

I activeu-lo perquè s'iniciï en el moment d'arrencar.

$ sudo systemctl enable fail2ban

Podeu verificar l'estat del servei fail2ban executant l'ordre:

$ sudo systemctl status fail2ban

La sortida és una confirmació que Fail2ban s'està executant com esperàvem.

Pas 4: Configuració de Fail2ban a Rocky Linux

Seguint, hem de configurar fail2ban perquè funcioni com es preveia. L'ideal seria editar el fitxer de configuració principal: /etc/fail2ban/jail.conf. Tanmateix, això es desaconsella. Com a solució alternativa, copiarà el contingut del fitxer de configuració jail.conf al fitxer jail.local.

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

Ara, obriu el fitxer jail.local amb el vostre editor preferit.

$ sudo vim /etc/fail2ban/jail.local

A la secció [DEFAULT], assegureu-vos que teniu els paràmetres següents tal com apareixen.

bantime = 1h
findtime = 1h
maxretry = 5

Definim els atributs:

  • La directiva bantime especifica la durada de temps que es prohibirà un client després d'intents d'autenticació fallits.
  • La directiva findtime és la durada o el període dins el qual fail2ban tindrà en compte quan es consideri intents repetits de contrasenyes incorrectes.
  • El paràmetre maxretry és el nombre màxim d'intents de contrasenya incorrectes abans que el client remot no pugui accedir al servidor. Aquí, el client es bloquejarà després de 5 errors d'autenticació.

Per defecte, fail2ban funciona amb iptables. Tanmateix, això s'ha obsolet a favor del tallafoc. Hem de configurar fail2ban perquè funcioni juntament amb firewalld en lloc d'iptables.

Per tant, executeu amb l'ordre:

$ sudo mv /etc/fail2ban/jail.d/00-firewalld.conf /etc/fail2ban/jail.d/00-firewalld.local

Per aplicar els canvis, reinicieu fail2ban:

$ sudo systemctl restart fail2ban

Pas 5: Assegureu-vos el servei SSH amb Fail2ban

De manera predeterminada, fail2ban no bloqueja cap host remot fins que no habiliteu la configuració de la presó per a un servei que voleu assegurar. La configuració de la presó s'especifica al camí /etc/fail2ban/jail.d i anul·larà la configuració especificada al fitxer jail.local.

En aquest exemple, crearem un fitxer de configuració de la presó per protegir el servei SSH. Per tant, creeu el fitxer de presó SSH.

$ sudo vim /etc/fail2ban/jail.d/sshd.local

A continuació, enganxeu les línies següents:

[sshd]
enabled = true

# Override the default global configuration
# for specific jail sshd
bantime = 1d
maxretry = 3

A la configuració anterior, es prohibirà que un amfitrió remot accedeixi al sistema durant 1 dia després de tres intents fallits d'inici de sessió SSH. Deseu els canvis i reinicieu el servei fail2ban.

$ sudo systemctl restart fail2ban

A continuació, verifiqueu l'estat de configuració de la presó mitjançant la utilitat de línia d'ordres fail2ban-client.

$ sudo fail2ban-client status

A la sortida, podem veure que tenim 1 presó configurada per a un servei anomenat 'sshd'.

A més, podeu confirmar el valor maxretry de la presó sshd mitjançant l'opció obtenir.

$ sudo fail2ban-client get sshd maxretry

3

El valor imprès 3 hauria de coincidir amb el que heu especificat al fitxer sshd.local.

Pas 6: prova de la configuració de Fail2ban

Després de configurar fail2ban i crear un fitxer de configuració de la presó per al servei SSH, farem una prova i simularem 3 inicis de sessió fallits especificant una contrasenya incorrecta per a cada sol·licitud de contrasenya.

Així que aneu a un sistema Linux remot i intenteu iniciar sessió amb la contrasenya incorrecta. Després de 3 intents fallits, la connexió s'eliminarà i qualsevol intent posterior de tornar a connectar-se es bloquejarà fins que caduqui la durada de la prohibició.

Per obtenir informació sobre els sistemes client bloquejats, comproveu l'estat de la presó.

$ sudo fail2ban-client status sshd

Per desbloquejar o eliminar el client de la presó, executeu l'ordre:

$ sudo fail2ban-client unban 192.168.2.102

Una vegada més, comproveu l'estat de la presó per assegurar-vos que el client no estigui inclòs a la llista d'IP prohibida.

$ sudo fail2ban-client status sshd

Com hem vist, Fail2ban és una eina molt útil per allunyar els intrusos que busquen violar el vostre sistema Linux. Funciona conjuntament amb Firewalld per prohibir els sistemes client durant un temps especificat després d'un nombre específic d'intents fallits d'inici de sessió. En fer-ho, proporciona una capa addicional de protecció per al vostre servidor Linux.