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.