Desde Linux David Naranjo  

Fail2Ban una excelente opción para repeler ataques de fuerza bruta en tu servidor

fail2ban

Uno de los vectores de ataque más comunes contra los servidores son los intentos de inicio de sesión de fuerza bruta. Aquí es donde los atacantes intentan acceder a su servidor, intentando combinaciones infinitas de nombres de usuario y contraseñas.

Para este tipo de problemas la solución mas rápida y efectiva es limitar el numero de intentos y bloquear el acceso al usuario o esa IP por cierto tiempo. Además es importante saber que para esto también existen aplicaciones de código abierto específicamente diseñadas para defenderse contra este tipo de ataque.

En la publicación de hoy, te presentaré uno se llama Fail2Ban. Desarrollado originalmente por Cyril Jaquier en 2004, Fail2Ban es un marco de software de prevención de intrusiones que protege los servidores de los ataques de fuerza bruta.

Sobre Fail2ban

Fail2ban escanea archivos de registro (/var/log/apache/error_log) y prohíbe las IP que muestran actividad maliciosa, como demasiadas fallas en las contraseñas y la búsqueda de vulnerabilidades, etc.

En general, Fail2Ban se usa para actualizar las reglas del firewall para rechazar las direcciones IP por una cantidad específica de tiempo, aunque también podría configurarse cualquier otra acción arbitraria (por ejemplo, enviar un correo electrónico).

Instalación de Fail2Ban en Linux

Fail2Ban se encuentra dentro de la mayoría de los repositorios de las principales distribuciones de Linux y mas en especifico en las mas utilizadas para su uso en servidores, tal es el caso como CentOS, RHEL y Ubuntu.

Para el caso de Ubuntu basta con teclear lo siguiente para su instalación:

sudo apt-get update && sudo apt-get install -y fail2ban

Mientras que para el caso de Centos y RHEL, deben teclear lo siguiente:

yum install epel-release
yum install fail2ban fail2ban-systemd

Si cuentan con SELinux es importante actualizar las políticas con:

yum update -y selinux-policy*

Hecho esto deben saber en primer plano que los archivos de configuración de Fail2Ban están en /etc/fail2ban.

La configuración de Fail2Ban se divide, principalmente, en dos archivos clave; estos son fail2ban.confy jail.conf. fail2ban.confes el archivo de configuración más amplio de Fail2Ban, donde puede configurar ajustes como:

  • El nivel de registro.
  • El archivo para iniciar sesión.
  • El archivo de socket de proceso.
  • El archivo pid.

jail.conf es donde configura opciones como:

  • La configuración de los servicios a defender.
  • Por cuánto tiempo prohibir si deberían ser atacados.
  • La dirección de correo electrónico para enviar informes.
  • La acción a tomar cuando se detecta un ataque.
  • Un conjunto predefinido de configuraciones, como SSH.

Configuración

Ahora vamos a pasar a la parte de la configuración, lo primero que vamos a hacer es una copia de seguridad de nuestro archivo jail.conf con:

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

Y procedemos a editar ahora con nano:

nano /etc/fail2ban/jail.local

Dentro vamos a la sección [Default] donde podemos realizar algunos ajustes.

Aquí en la parte de “ingoreip” son las direcciones de IP que quedaran fuera y serán completamente ignoradas por Fail2Ban, es decir básicamente la IP del servidor (la local) y las otras que consideres que se deben ignorar.

De ahí en fuera las demás IP que tengan accesos fallidos estarán a merced de ser baneadas y esperar la cantidad de segundos que estará baneada (por default son 3600 segundos) y que fail2ban solo actúa después de 6 intentos fallidos

Después de la configuración general, ahora indicaremos el servicio. Fail2Ban ya tiene algunos filtros predefinidos para varios servicios. Así que solo haz algunas adaptaciones. Aquí hay un ejemplo:

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

Con los cambios pertinentes realizados, finalmente necesitaran volver a cargar Fail2Ban, ejecutándo:

service fail2ban reload
systemctl enable firewalld
systemctl start firewalld

Una vez hecho esto, hagamos una comprobación rápida para ver que Fail2Ban se está ejecutando:

sudo fail2ban-client status

Desbanear una IP

Ahora que hemos prohibido con éxito una IP, ¿qué pasa si queremos desbanear una IP? Para hacer eso, nuevamente podemos usar fail2ban-client y decirle que desbanee una IP específica, como en el siguiente ejemplo.

sudo fail2ban-client set ssh unbanip xxx.xxx.xx.xx

Donde “xxx….” sera la dirección IP que tú indiques.

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.