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
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.
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.