Cómo usar Fail2ban para prevenir accesos no deseados al servidor
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.
- Qué es Fail2ban
- Cómo instalar Fail2ban
- Cómo configurar Fail2ban
- Cómo comprobar el estado de Fail2ban
- Cómo proteger tu tienda online de ataques de fuerza bruta con Fail2Ban
- Cómo Fail2Ban ayuda a prevenir intrusos y proteger la información de tu web
- Fail2Ban y la seguridad en WordPress: bloqueando IPs maliciosas automáticamente
- Cómo mejorar la seguridad de tu servidor de hosting con Fail2Ban
- Fail2Ban y la protección de paneles de control como cPanel y Plesk
- Conclusiones sobre Fail2ban
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
[Definition] failregex = <HOST>.*'POST /wp-login.php HTTP.*' 403 ignoreregex =
[wordpress] enabled = true filter = wordpress logpath = /var/log/apache2/access.log maxretry = 3 bantime = 3600
sudo systemctl restart fail2ban
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:
- Herramientas y configuración → Fail2Ban
- Activar protección para servicios como SSH, FTP y Apache
- 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.