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:
- Configurar el MTA: Define el método de envío de correos (sendmail, mail, etc.):
mta = sendmail - Configurar las Políticas de Ban: Ajusta las políticas de ban para todos los servicios:
bantime = 1h findtime = 10m maxretry = 5 - 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.