0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
Logo de Maxi Zamorano

Fail2ban: Bloquear y prevenir ataques de Fuerza Bruta

  Linux
23:35 hrs   306
Fail2ban: Bloquear y prevenir ataques de Fuerza Bruta

La seguridad de un servidor Linux es un tema crítico para cualquier administrador de sistemas. Los ataques de fuerza bruta y otros intentos de acceso malintencionados son comunes, pero existen herramientas como Fail2ban que te pueden ayudar a mitigarlos.

En esta oportunidad te explicaré paso a paso cómo instalar, configurar y personalizar Fail2ban en tu sistema Linux. Además, veremos ejemplos prácticos para que puedas proteger tu servidor de manera efectiva.

Tabla de contenidos

¿Qué es Fail2ban?

Fail2ban es una herramienta que monitorea los registros de tu sistema en busca de intentos de acceso fallidos o actividades sospechosas. Fail2ban no es un firewall, pero cuando detecta algo bloquea automáticamente la IP maliciosa mediante el uso de iptables u otros métodos.

Instalación de Fail2ban

Debian/Ubuntu

En distribuciones basadas en Debian/Ubuntu:


sudo apt install fail2ban

CentOS/RHEL

En distribuciones basadas en CentOS/RHEL:

Nota: si lo instalas en Fedora no necesitas instalar epel.


sudo dnf install epel-release
sudo dnf install fail2ban

Configuración básica de Fail2ban

Los archivos de configuración de Fail2ban se encuentran en /etc/fail2ban.

Para personalizar la configuración, es mejor no modificar directamente el archivo principal jail.conf, en su lugar, crea un archivo local llamado jail.local para evitar que futuras actualizaciones sobrescriban tus cambios.

Crear archivo jail.local

Para crear el archivo jail.local realizaremos una copia del archivo jail.conf


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

Editar archivo jail.local

Abre el archivo con tu editor favorito, en mi caso siempre uso vim:


sudo vim /etc/fail2ban/jail.local

Las opciones más importantes a configurar dentro del archivo jail.local son:

  • ignoreip: IPs que no serán bloqueadas, como tu IP administrativa.
  • bantime: Tiempo en segundos que una IP permanecerá bloqueada.
  • findtime: Periodo de tiempo en segundos durante el cual se cuentan los intentos fallidos.
  • maxretry: Número máximo de intentos fallidos permitidos.

Un ejemplo de estas configuraciones son las siguientes:


signoreip = 127.0.0.1/8 192.168.1.100
bantime = 3600
findtime = 600
maxretry = 5

Activar y configurar Jail para servicios específicos

Fail2ban funciona mediante jails, que son configuraciones específicas para proteger diferentes servicios, como SSH, Apache, Nginx, Postfix, etc.

Puedes cambiar o agregar nuevos valores como maxretry, findtime, etc segun tu proposito en cada uno de los jails.

Configurar protección para SSH

Asegúrate de que la sección [sshd] en jail.local esté habilitada:


[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5

Configurar jails para Apache

Si tienes un servidor web Apache, puedes habilitar el siguiente jail:


[apache-auth]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache2/error.log
maxretry = 3

Configurar jails para Nginx

Si tienes un servidor web Nginx, puedes habilitar el siguiente jail:


[nginx-http-auth]
enabled = true
port = http,https
filter = nginx-http-auth
logpath = /var/log/nginx/error.log
maxretry = 3

Configurar jails para Postfix

Si usas Postfix, puedes habilitar el siguiente jail para proteger tu servidor de correo:


[postfix]
enabled = true
port = smtp,ssmtp
filter = postfix
logpath = /var/log/mail.log
maxretry = 3

Comandos útiles de Fail2ban

Verificar el estado de un jail

Puedes revisar el estado de tus jails para ver detalles como las IPs baneadas o los accesos fallidos:

Nota: debes reemplazar sshd por el nombre del jail que quieras consultar.


sudo fail2ban-client status sshd

Añadir manualmente una IP a la lista negra

Si quieres bloquear una IP especifica:


sudo fail2ban-client set sshd banip 192.168.1.10

Eliminar una IP bloqueada

Si quieres desbloquear una IP especifica:


sudo fail2ban-client set sshd unbanip 192.168.1.200

Solución de Problemas

Ver registros de Fail2ban

Si algo no funciona como esperabas, revisa el log correspondiente:


sudo tail -f /var/log/fail2ban.log

Reiniciar Fail2ban

Si realizas cambios en la configuración, reinicia el servicio para aplicar los cambios:


sudo systemctl restart fail2ban

Conclusión

Fail2ban es una herramienta increíble para proteger tu servidor Linux de ataques maliciosos. Con una configuración adecuada, puedes bloquear intentos de fuerza bruta y reducir considerablemente los riesgos de seguridad. Ahora solo debes personalizar los jails según los servicios que utilices en tu servidor para garantizar una protección óptima.

COMENTARIOS

Mis Perfiles en:

 Maximiliano Zamorano
Ingeniero en Conectividad y Redes
 [email protected]