Cómo usar Fail2ban para prevenir accesos no deseados al servidor

3min

Si quieres evitar accesos no autorizados y mantener tus datos seguros, Fail2ban es la herramienta que te permitirá proteger tu servidor contra ataques maliciosos.

En este artículo, aprenderás qué es, cómo instalar y cómo configurar Fail2ban.

Índice

Qué es Fail2ban

Fail2ban es una aplicación de Linux que permite evitar accesos no autorizados a tu servidor. ¿Y cómo funciona? Se encarga de bloquear (o banear) las direcciones IP que realicen varios intentos de acceso incorrectos al servidor. Y se trata de una estrategia ideal de seguridad a tener en cuenta tras contratar un Servidor Cloud.

Es importante contar con Fail2ban en un servidor Linux (o una aplicación de similares características) para evitar los accesos de bots, es decir, de máquinas automatizadas que realizan intentos de acceso indiscriminados a los servidores. Este tipo de bots son muy comunes en Internet y simplemente se dedican a intentar loguearse por SSH en los servidores, probando diferentes usuarios y claves de acceso, para autorizarse correctamente y tomar el control de la máquina.

Fail2ban se encarga de monitorizar los registros de acceso al servidor en busca de fallos de acceso SSH e impidiendo nuevos reintentos de login desde las direcciones IP involucradas, por un tiempo determinado.

Cómo instalar Fail2ban

Para instalar esta aplicación necesitamos correr el comando correspondiente a nuestra distribución de Linux. En Ubuntu se realizaría de esta manera:

apt install fail2ban

Nota: puede que tengas que ejecutar ese comando con «sudo». Además es recomendable realizar previamente un «apt update» para traerse la lista de repositorios actualizada.

Cómo configurar Fail2ban

La configuración de Fail2ban se encuentra en la carpeta «/etc/fail2ban/«. Allí encontraremos un archivo llamado «jail.conf» con las configuraciones del sistema. Para encontrar más información, podemos abrir ese archivo con nuestro editor preferido.

nano jail.conf

En este archivo encontraremos diversas opciones de configuración interesantes. Un usuario avanzado puede aprovechar muchas de las características de este programa, pero lo más básico es administrar los intentos de login por SSH al servidor.

En la sección «[DEFAULT]» encontramos la configuración global de las opciones. Allí veremos diversas variables que definir como las siguientes:

  • bantime: es el tiempo que una IP será baneada, expresado en segundos.
  • maxretry: es el número máximo de reintentos de login que podrán realizarse antes de que la IP sea baneada.
  • ignoreip: una lista de IPs separadas por espacios que serían ignoradas por fail2ban.

Configuraciones personalizadas para cada servicio

Cada una de las protecciones se expresa en una «jaula». Podemos tener varias «jaulas» para cada tipo de servicio administrado por Fail2ban. Ahora, si deseamos hacer cambios en la configuración predeterminada, lo recomendable es crear un archivo llamado «jail.local«.

nano jail.local

Podemos crear una configuración SSH entrante de esta manera:

[sshd]
maxretry = 5
bantime=10800

Nota: «sshd» es el demonio de conexión SSH, que permite que otros usuarios se conecten con nuestro servidor.

Para que estos cambios tengan efecto, tenemos que reiniciar el servicio. El comando puede depender de la distribución con la que estemos trabajando, pero en Ubuntu sería algo como esto:

sudo systemctl restart fail2ban.service

Cómo comprobar el estado de Fail2ban

En cualquier momento, podemos comprobar el estado de Fail2ban con el siguiente comando.

fail2ban-client status

Nos arrojará una lista de las jaulas que tenemos configuradas. Luego, podríamos visualizar información detallada de cada jaula con el comando:

fail2ban-client status sshd

En un breve espacio de tiempo, desde que configuremos fail2ban, observaremos que el número de intentos fallidos de acceso al servidor irá en aumento y que el número de IPs baneadas está siempre en constante actualización. La salida podrá ser algo como esto:

Status for the jail: sshd

|- Filter
|  |- Currently failed:    0
|  |- Total failed:           10244
|  `- File list:     /var/log/auth.log
`- Actions
|- Currently banned: 0
|- Total banned:       248
`- Banned IP list:

Si te preocupan las vulnerabilidades de tu servidor, te recomendamos nuestro post sobre otras Estrategias de Seguridad en Cloud.

Cómo proteger tu tienda online de ataques de fuerza bruta con Fail2Ban

Las tiendas online son un blanco atractivo para atacantes que intentan acceder a cuentas de administradores y clientes mediante ataques de fuerza bruta. Estos ataques consisten en probar múltiples combinaciones de usuario y contraseña hasta encontrar una válida.

Fail2Ban es una herramienta eficaz para bloquear direcciones IP que realicen intentos de acceso fallidos de forma reiterada. Para proteger tu tienda online, puedes configurar Fail2Ban para monitorear los registros de acceso y bloquear automáticamente direcciones IP sospechosas.

1. Instalación de Fail2Ban


2. Configuración de Fail2Ban para bloquear intentos de accesoCrea un archivo de configuración específico para tu tienda, por ejemplo, si usas Magento o PrestaShop:

sudo nano /etc/fail2ban/jail.local

Agrega la siguiente configuración:

[apache-auth]
enabled = true
filter = apache-auth
logpath = /var/log/apache2/access.log
maxretry = 5
bantime = 3600

3. Reiniciar el servicio para aplicar los cambios

sudo systemctl restart fail2ban

Con esta configuración, Fail2Ban bloqueará IPs después de un número determinado de intentos fallidos, protegiendo así tu tienda de ataques automatizados.

Cómo Fail2Ban ayuda a prevenir intrusos y proteger la información de tu web

La seguridad de un servidor web depende en gran medida de su capacidad para detectar y mitigar intentos de intrusión antes de que comprometan los datos sensibles. Fail2Ban actúa como una barrera contra accesos no autorizados bloqueando direcciones IP que muestran comportamientos sospechosos.

Principales amenazas que Fail2Ban puede mitigar

  • Ataques de fuerza bruta: Bloquea IPs que intentan repetidamente acceder con credenciales incorrectas.
  • Escaneo de vulnerabilidades: Si un atacante intenta explorar rutas sensibles como /wp-admin o /login.php, Fail2Ban puede detectar y bloquear la IP.
  • Exploit de bots y scrapers: Algunos bots intentan extraer información del sitio o buscar exploits. Fail2Ban puede bloquearlos si exceden ciertos límites de peticiones.

Ejemplo de configuración para proteger accesos SSH

Uno de los principales puntos de ataque en cualquier servidor es el acceso SSH. Configurahr Fail2Ban para monitorear intentos fallidos de conexión por SSH es fundamental:

[sshd]
enabled = true
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 600

Con esto, si un atacante intenta acceder por SSH más de tres veces sin éxito, será bloqueado durante 10 minutos, reduciendo el riesgo de ataques sostenidos.

Fail2Ban y la seguridad en WordPress: bloqueando IPs maliciosas automáticamente

WordPress es uno de los CMS más atacados debido a su popularidad. Los ataques más comunes incluyen intentos de acceso forzado al panel de administración y escaneos de plugins o temas vulnerables.

Configurar Fail2Ban para bloquear intentos en WordPress

Para proteger WordPress, podemos hacer que Fail2Ban monitoree los intentos de acceso fallidos a /wp-login.php o /xmlrpc.php.

1. Crear un filtro para WordPress

sudo nano /etc/fail2ban/filter.d/wordpress.conf
Agregar el siguiente contenido:
[Definition] failregex = <HOST>.*'POST /wp-login.php HTTP.*' 403 ignoreregex =
2. Configurar Fail2Ban para aplicar la regla
Edita el archivo jail.local:
[wordpress] enabled = true filter = wordpress logpath = /var/log/apache2/access.log maxretry = 3 bantime = 3600
3. Reiniciar el servicio
sudo systemctl restart fail2ban
Esto bloqueará automáticamente las IPs que intenten acceder repetidamente a WordPress con credenciales incorrectas.

Cómo mejorar la seguridad de tu servidor de hosting con Fail2Ban

Un servidor de hosting alberga múltiples servicios críticos como bases de datos, correos electrónicos y servidores web, lo que lo convierte en un objetivo valioso para atacantes.

Beneficios de usar Fail2Ban en tu servidor de hosting

  • Bloqueo automático de intentos de acceso sospechosos.
  • Reducción de carga en el servidor al evitar ataques automatizados.
  • Compatibilidad con múltiples servicios: Apache, Nginx, SSH, MySQL, etc.

Ejemplo de configuración para MySQL

Si tienes una base de datos en tu servidor, es fundamental protegerla de intentos de acceso no autorizados.

1. Crear un filtro para MySQL

sudo nano /etc/fail2ban/filter.d/mysql.conf

Agregar el siguiente contenido:

[Definition]
failregex = ^<HOST>.*Access denied for user.*$
ignoreregex =

2. Configurar Fail2Ban para aplicar la regla

[mysqld-auth]
enabled = true
filter = mysql
logpath = /var/log/mysql/error.log
maxretry = 5
bantime = 1800

Con esto, se bloquearán las IPs que intenten acceder a la base de datos con credenciales incorrectas de manera reiterada.

Fail2Ban y la protección de paneles de control como cPanel y Plesk

Los paneles de control como cPanel y Plesk son esenciales para administrar servidores, pero también son objetivos frecuentes de ataques.

Configurar Fail2Ban para cPanel

Fail2Ban se integra directamente con cPanel a través de WHM. Para activarlo:

1. Accede a WHM y ve a «Plugins» → «ConfigServer Security & Firewall» (CSF).

2. Habilita «LF_POP3D» y «LF_IMAPD» para bloquear intentos fallidos en servicios de correo.

3. Establece un límite de intentos fallidos con valores como:

LF_CPANEL = 5
LF_CPANEL_PERM = 3600

4. Guarda los cambios y reinicia CSF y LFD.

Configurar Fail2Ban para Plesk

Para proteger Plesk, Fail2Ban viene integrado y se puede habilitar desde:

  1. Herramientas y configuración → Fail2Ban
  2. Activar protección para servicios como SSH, FTP y Apache
  3. Configurar los valores de bloqueo y tiempo de prohibición.

Conclusiones sobre Fail2ban

Fail2ban es una aplicación que te ayudará a proteger tu servidor contra ataques maliciosos y con la que podrás mantener tus datos seguros.

¿Y cuál es su relación con dominios y hosting web? Al crear una página web o una tienda online, debemos garantizar la protección de los datos de nuestro sitio y de los usuarios. Al utilizar Fail2ban para evitar ataques de fuerza bruta y otro tipo de intrusiones, podrás mantener la seguridad de tu web.

Si quieres seguir mejorando las medidas de seguridad, puedes añadir un certificado SSL para tu página web. Y al mismo tiempo, realizar un backup web o una copia de seguridad en la nube para tu servidor.

Manuel León

Productos relacionados: