Fail2ban es una herramienta poderosa y eficiente que ayuda a proteger los servidores contra ataques de fuerza bruta y otras amenazas. Funciona monitoreando los archivos de registro en busca de patrones de comportamiento malicioso y, posteriormente, bloqueando las direcciones IP sospechosas utilizando el firewall del sistema. En este artículo, te mostraremos cómo integrar Fail2ban con el firewall en Debian 12 paso a paso. Este tutorial está diseñado para ser técnico pero accesible para los recién llegados.

Requisitos Previos

Antes de comenzar, asegúrate de tener lo siguiente:

  • Un servidor con Debian 12 instalado.
  • Acceso a una cuenta con privilegios de superusuario (root) o acceso a sudo.

Paso 1: Actualizar el Sistema

Es fundamental asegurarse de que tu sistema esté actualizado. Abre una terminal y ejecuta los siguientes comandos:

sudo apt update
sudo apt upgrade -y

Paso 2: Instalar Fail2ban

Instala Fail2ban desde los repositorios oficiales de Debian con el siguiente comando:

sudo apt install fail2ban -y

Paso 3: Configurar Fail2ban

Fail2ban utiliza archivos de configuración ubicados en /etc/fail2ban. Para mantener la configuración original intacta, copia el archivo de configuración predeterminado a uno nuevo:

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

Editar el Archivo de Configuración

Abre el archivo jail.local con tu editor de texto preferido:

sudo nano /etc/fail2ban/jail.local

Busca y ajusta las siguientes configuraciones básicas según tus necesidades:

  1. Configurar el MTA: Define el método de envío de correos (sendmail, mail, etc.): mta = sendmail
  2. Configurar las Políticas de Ban: Ajusta las políticas de ban para todos los servicios: bantime = 1h findtime = 10m maxretry = 5
  3. Habilitar Protección para Servicios Específicos: Descomenta y ajusta las configuraciones para los servicios que deseas proteger. Por ejemplo, para proteger SSH: [sshd] enabled = true port = ssh logpath = /var/log/auth.log maxretry = 5

Guarda los cambios y cierra el editor.

Paso 4: Configurar el Firewall para Trabajar con Fail2ban

Fail2ban puede trabajar con varios backends de firewall, pero uno de los más comunes es iptables. Asegúrate de que iptables esté instalado:

sudo apt install iptables

Verificar la Configuración de Iptables

Edita la configuración del backend en el archivo jail.local para asegurarte de que iptables esté configurado como backend:

sudo nano /etc/fail2ban/jail.local

Asegúrate de que las siguientes líneas estén configuradas correctamente:

banaction = iptables-multiport
backend = auto

Paso 5: Iniciar y Habilitar Fail2ban

Inicia el servicio Fail2ban y configúralo para que se ejecute al iniciar el sistema:

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

Paso 6: Verificar la Configuración de Fail2ban

Para asegurarte de que Fail2ban está funcionando correctamente, verifica el estado del servicio:

sudo systemctl status fail2ban

También puedes usar el comando fail2ban-client para verificar el estado de los jails activos:

sudo fail2ban-client status

Ejemplos Prácticos

Ver el Estado de un Jail Específico

Para ver el estado de un jail específico, como el de SSH, usa el siguiente comando:

sudo fail2ban-client status sshd

Desbanear una IP

Si necesitas desbanear una IP, utiliza el siguiente comando, reemplazando IP_ADDRESS por la dirección IP que deseas desbanear:

sudo fail2ban-client set sshd unbanip IP_ADDRESS

Banear una IP Manualmente

Si deseas banear una IP manualmente, utiliza el siguiente comando, reemplazando IP_ADDRESS por la dirección IP que deseas banear:

sudo fail2ban-client set sshd banip IP_ADDRESS

Para mejorar el rendimiento y la gestión de tu infraestructura de servidor, considera utilizar los servicios de Shape.host. Ofrecen soluciones de Linux SSD VPS que proporcionan escalabilidad, alta disponibilidad y un rendimiento superior para tus aplicaciones y servicios web. Con Shape.host, puedes asegurarte de que tu infraestructura esté siempre disponible y funcionando de manera óptima.