Cómo instalar y configurar Fail2ban en Alma Linux 8

Fail2ban es un sistema de prevención de intrusiones gratuito y de código abierto escrito en Python. Sirve para proteger tu sistema contra los ataques de fuerza bruta. Supervisa continuamente los archivos de registro de SSH (y otros) en busca de intentos de autenticación; tras un número determinado de intentos de contraseña incorrecta, la dirección IP del cliente es prohibida por Fail2Ban. Puede utilizarse para asegurar varios servicios, como SSH, vsftpd, Apache y Webmin.

En este tutorial, te mostraré cómo instalar el cortafuegos Fail2Ban en Alma Linux 8.

Requisitos previos

  • Un servidor con Alma Linux 8.
  • Una contraseña de root configurada en el servidor.

Verificar la instalación de Firewalld

Por defecto, el paquete Firewalld viene preinstalado en Alma Linux 8. En primer lugar, tendrás que comprobar si se está ejecutando o no. Puedes comprobarlo con el siguiente comando:

systemctl status firewalld

Si firewalld no se está ejecutando, obtendrás el siguiente resultado:

? firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

Ahora, inicia el servicio firewalld con el siguiente comando:

systemctl start firewalld

Puedes comprobar el estado de firewalld con el siguiente comando:

systemctl status firewalld

Deberías ver la siguiente salida:

? firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: active (running) since Sat 2022-02-19 08:57:14 UTC; 40s ago
     Docs: man:firewalld(1)
 Main PID: 7214 (firewalld)
    Tasks: 2 (limit: 23696)
   Memory: 27.9M
   CGroup: /system.slice/firewalld.service
           ??7214 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid

Feb 19 08:57:14 linux systemd[1]: Starting firewalld - dynamic firewall daemon...
Feb 19 08:57:14 linux systemd[1]: Started firewalld - dynamic firewall daemon.

Ahora, lista todos los servicios configurados por firewalld utilizando el siguiente comando:

firewall-cmd --list-all

Deberías ver la siguiente salida:

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0 eth1
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 
  protocols: 
  forward: no
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

Instalar Fail2Ban

Por defecto, el paquete Fail2Ban no está disponible en el repositorio por defecto de Alma Linux. Así que tendrás que instalarlo desde el repo de EPEL. Puedes instalar el repo de EPEL con el siguiente comando:

dnf install epel-release -y

Una vez instalado el repo de EPEL, puedes instalar el cortafuegos Fail2Ban con el siguiente comando:

dnf install fail2ban fail2ban-firewalld -y

Una vez completada la instalación, inicia y habilita el servicio Fail2Ban con el siguiente comando:

systemctl start fail2ban
systemctl enable fail2ban

Puedes verificar el estado del servicio Fail2Ban ejecutando el comando

systemctl status fail2ban

Deberías ver la siguiente salida:

? fail2ban.service - Fail2Ban Service
   Loaded: loaded (/usr/lib/systemd/system/fail2ban.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-02-19 08:58:34 UTC; 6s ago
     Docs: man:fail2ban(1)
  Process: 7838 ExecStartPre=/bin/mkdir -p /run/fail2ban (code=exited, status=0/SUCCESS)
 Main PID: 7840 (fail2ban-server)
    Tasks: 3 (limit: 23696)
   Memory: 10.8M
   CGroup: /system.slice/fail2ban.service
           ??7840 /usr/bin/python3.6 -s /usr/bin/fail2ban-server -xf start

Feb 19 08:58:34 linux systemd[1]: Starting Fail2Ban Service...
Feb 19 08:58:34 linux systemd[1]: Started Fail2Ban Service.
Feb 19 08:58:35 linux fail2ban-server[7840]: Server ready

Configurar Fail2Ban

El archivo de configuración principal de Fail2Ban se encuentra en /etc/fail2ban/jail.conf. Es una buena idea crear una copia del archivo de configuración principal. Puedes crearlo con el siguiente comando:

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

Por defecto, Fail2Ban utiliza el cortafuegos Iptables. Para activar el soporte de firewalld, ejecuta el siguiente comando:

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

A continuación, reinicia el servicio Fail2Ban para aplicar los cambios:

systemctl restart fail2ban

Asegura el SSH con Fail2Ban

Por defecto, Fail2Ban no está configurado para bloquear IPs remotas. Tendrás que configurar el archivo de configuración de la jaula Fail2Ban para cada servicio que quieras proteger.

Para proteger el servicio SSH, crea un archivo de configuración de jaula para SSH con el siguiente comando:

nano /etc/fail2ban/jail.d/sshd.local

Añade las siguientes líneas:

# This configuration will block the remote host for 2 hours after 3 failed SSH login attempts. 
[sshd]
enabled = true
bantime = 2h
maxretry = 3

Guarda y cierra el archivo cuando hayas terminado y reinicia el servicio SSH para aplicar los cambios:

systemctl restart fail2ban

Ahora puedes verificar la configuración de la jaula con el siguiente comando:

fail2ban-client status

Obtendrás la jaula configurada en la siguiente salida:

Status
|- Number of jail:	1
`- Jail list:	sshd

Para comprobar si la jaula SSH tiene alguna IP prohibida, ejecuta el siguiente comando:

fail2ban-client status sshd

Obtendrás la lista de todas las IP prohibidas en la siguiente salida:

Status for the jail: sshd
|- Filter
|  |- Currently failed:	6
|  |- Total failed:	15
|  `- Journal matches:	_SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned:	2
   |- Total banned:	2
   `- Banned IP list:	96.9.67.48 43.154.142.8

Si quieres desbanear la dirección IP manualmente, ejecuta el siguiente comando:

fail2ban-client unban remote-ip-address

Conclusión

En la guía anterior, hemos explicado cómo instalar Fail2Ban en Alma Linux 8. También hemos explicado cómo utilizar Fail2Ban para asegurar el servicio SSH. Ahora puedes implementar Fail2Ban en el entorno de producción para proteger tu sistema de los ataques de fuerza bruta.

También te podría gustar...