Fail2ban: prevenir accesos no deseados al servidor【Guía】

herramienta-fail2ban
Cuando tienes un servidor conectado a Internet en todo momento, ten por seguro que serás el objeto de ataques. Por suerte, para evitar accesos no deseados, tenemos la herramienta Fail2ban, que nos protege enormemente. Vamos a ver para qué sirve Fail2ban, cómo puedes instalarlo y configurarlo en tu servidor.

TABLA DE CONTENIDOS


Cómo configurar Fail2Ban para prevenir accesos no deseados a tu servidor

Uno de los ataques más comunes en Internet son los ataques por fuerza bruta. Un ataque de fuerza bruta es muy básico, se trata de probar muchos accesos en poco tiempo y así intentar "adivinar" los datos de acceso, ya sean de un acceso SSH, FTP, cuenta de correo, etc. Fail2Ban nos ayuda a evitar esto. Pero, qué es exactamente Fail2Ban. comprar-vps

Qué es Fail2ban

Para evitar los ataques de fuerza bruta tenemos aplicaciones como Fail2ban, las cuales podemos configurar para que se encarguen de monitorizar todos los accesos a los servicios online de un servidor.

Al monitorizar todos los accesos, podemos decidir cuántas veces puede una misma dirección IP intentar un acceso a un servicio con credenciales erróneas. Después de llegar al límite establecido, Fail2ban puede banear (bloquear) la dirección IP durante un tiempo establecido, para un servicio específico.

De esta forma evitamos que una misma dirección IP pruebe constantemente el acceso a nuestro servidor o a cualquier otro servicio ya que supone un riesgo y, además, un consumo de recursos del servidor.

Cómo funciona Fail2ban

Todo lo que hacemos en Internet se realiza desde una dirección IP. Cada vez que accedemos a una página web o enviamos un email, en realidad es la dirección IP la que lo está haciendo. Como hemos dicho, Fail2ban se encarga de "vigilar" toda actividad sospechosa de cualquier dirección IP que se conecte al servidor o solicite un servicio en nuestra web.

Cuando Fail2ban detecta que una IP está solicitando un acceso de forma errónea y supera un límite preestablecido con anterioridad, por nosotros o el administrador del sistema, tomará una acción. Esta acción, también preestablecida previamente, suele ser avisar al firewall del sistema de esta acción y crear una regla con la acción deseada.

Por lo general, la acción suele ser el baneo (ban) de la dirección IP durante un tiempo al servicio al que estaba intentando acceder. Esta es la acción más habitual, pero no es la única, puede enviar un email al administrador o ejecutar un script, pero Fail2ban no es un firewall, eso hay que tenerlo claro.

El firewall será iptables o cualquier otra aplicación parecida que tengamos instalada en el servidor. Fail2ban añade la regla que hará que el firewall actúe y bloquee el acceso a la dirección IP. Por lo general, los bloqueos tendrán una duración de segundos, minutos o incluso años, pero una vez finalizado el tiempo establecido del bloqueo, Fail2ban eliminará la regla del firewall, por lo que la dirección IP volverá a tener acceso al servicio.

Cómo instalar Fail2ban en un servidor

Fail2ban es una aplicación que funciona con cualquier distribución Linux, por lo que para poder instalarlo en un servidor, es necesario que tengas un servidor VPS en el que tengas acceso root. Antes de instalar Fail2ban, es recomendable que compruebes que todo esté actualizado. En Debian seria:
sudo apt update
Para instalar Fail2ban, podemos hacerlo directamente con:
sudo apt install fail2ban
instalacion-fail2ban-debian Si usas una distribución CentOS, puedes instalarlo con:
sudo yum update
sudo yum install fail2ban

SI tienes algún problema al instalarlo, puedes consultar el proyecto en su Github.

Cómo configurar Fail2Ban

Al instalar Fail2ban en nuestro servidor, se creará el directorio /etc/fail2ban y el archivo de configuración será jail.conf. Antes de editar la configuración, es recomendable evitar modificar el archivo jail.conf original, ya que con las actualizaciones puedes perder los cambios en la configuración del archivo y tener que repetirlos.

Para esto puedes copiar el archivo de forma local como jail.local en /etc/fail2ban/jail.local y hacer las modificaciones desde este archivo. Puedes hacer esto introduciendo lo siguiente en la consola:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Una vez copiado, ya puedes abrir el archivo de configuración de Fail2ban con el editor de texto que prefieras, por ejemplo:
sudo nano /etc/fail2ban/jail.local
En el archivo de jail.local, encontraremos una configuración por defecto [DEFAULT], que será el comportamiento general de los bloqueos. Esta configuración por defecto la podemos modificar si queremos. Esto son los parámetros que podemos modificar.
  • ignoreip
    Aquí puedes añadir direcciones IP que nunca serán baneadas por Fail2ban. Por ejemplo, nuestra propia dirección IP.
  • bantime
    Es el tiempo en segundos que una dirección IP estará baneada (bloqueada). Por defecto nos mostrará 600 segundos, que son 10 minutos.
  • findtime
    Es el intervalo de tiempo en el que se cuentan los intentos fallidos. Por ejemplo, 300 significa que si se realizan x nº de errores en 5 un plazo de 5 minutos, la IP será baneada.
  • maxretry
    Este es el número máximo de intentos erróneos que se permiten en el plazo de tiempo estipulado en findtime. Por ejemplo, si findtime está configurado con 300 segundos y maxretry en 3, significa que una dirección IP hace 3 intentos erróneos en 5 minutos, será baneada. fail2ban-configuracion Fail2ban viene preconfigurado con varias celdas (jails) que puedes modificar si lo ves necesario. Como ejemplo veremos la configuración celda más habitual en Fail2ban, que es el acceso SSH al servidor. fail2ban-configuracion-ssh Verás que el parámetro enabled está como true, lo que significa que la celda está activada. Si quieres desactivar alguna celda, puedes cambiar este parámetro a false.

    En el parámetro filter encontraremos en nombre de filtro que el servicio utiliza. Por ejemplo, sshd se referiría al archivo filter.d/sshd.conf.

    En logpath podemos encontrar el archivo de registros que Fail2ban utiliza para detectar los intentos fallidos de conexión.

    Y action indica qué acción realizará Fail2Ban a detectar un problema, por ejemplo, si ponemos iptables detectará la configuración que exista en el archivo iptables.conf.

    Cuando termines de modificar el archivo jail.local con la configuración que quieras, debes guardar los cambios en el archivo y seguidamente reiniciar el servicio con:

    sudo systemctl restart fail2ban
    

    Cómo comprobar que Fail2Ban está funcionando

    Si quieres comprobar si Fail2ban está funcionando, esto quiere decir que está bloqueando direcciones IP que intentan acceder de modo incorrecto, podemos hacerlo fácilmente. Una opción es configurar el parámetro action de la celda en cuestión, para que nos envíe un email, aunque es posible que pronto descubras que la bandeja de entrada se llena de cientos y cientos de avisos.

    Otra opción es revisar las jaulas o celdas, como quieras llamarlas, para ver el número de bloqueos que se han realizado. Para hacer esto, podemos usar el siguiente comando para ver una lista de todas las celdas que tengamos configuradas en Fail2ban:

    fail2ban-client status
    
    Después sólo tenemos que seleccionar una de ellas, por ejemplo, sshd:
    fail2ban-client status sshd
    
    Esto nos mostrará la información acumulada de la celda. Fíjate en el parámetro Total failed, que son los intentos de conexión fallidos y Total banned, que son el número total de bloqueos que se han realizado:
    Status for the jail: sshd 
     
    |- Filter 
    |  |- Currently failed:    0 
    |  |- Total failed:           22024 
    |  `- File list:     /var/log/auth.log 
    `- Actions 
    |- Currently banned: 0 
    |- Total banned:       587 
    `- Banned IP list:
    
    

    Si has configurado correctamente Fail2ban, es posible que te sorprenda ver la cantidad de veces que IP's extrañas intentan conectarse a tu servidor por SSH y son baneadas.

    ¿Es Fail2ban necesario en mi servidor VPS?

    Si estás pensando para qué sirve Fail2Ban o si es necesario instalarlo en tu servidor VPS, la respuesta corta es un tremendo ¡sí!

    Al estar conectado a Internet, tu VPS estará constantemente bajo distintos tipos de ataques. Es posible que ni siquiera los percibas, ya que la mayoría no son muy sofisticados, pero sin duda estarás en el objetivo de los atacantes. No es que te tengan manía o exista una campaña contra ti en particular, simplemente estás conectado a Internet en todo momento y los atacantes intentarán acceder al servidor para realizar envíos de spam, minar criptomonedas, robar información, etc. Estos ataques los realizan bots y scripts que escanean la red en busca de "víctimas", pero no es nada personal...

    Usar Fail2ban o una herramienta similar, es imprescindible para mantener tu servidor VPS a salvo, además, aunque los ataques no sean fructíferos, el constante intento de acceso hace que los recursos del servidor se resientan, ya que son peticiones que el VPS tiene que atender, así que mejor banearlas con Fail2ban.

    No obstante, ante cualquier duda, puedes contactar con nuestro Centro de Atención y Soporte para que te ayuden a resolver tus incidencias. Y recuerda que en Axarnet, ofrecemos tanto servidores VPS administrados como no administrados, dependiendo de cuál sea tu necesidad.

    VPS MAX
    SIN LÍMITES
    129

    ,99

    €/mes


    CONTRATAR
    VPS XL
    PARA PROYECTOS GRANDES
    109

    ,99

    €/mes


    CONTRATAR
    VPS L
    NUESTRO RECOMENDADO
    89

    ,99

    €/mes


    CONTRATAR
    VPS M
    PARA COMENZAR
    69

    ,99

    €/mes


    CONTRATAR



Imagen

Hosting Web

Lanza tu proyecto a la red. Desde 2,48 € al mes podrás tener visible tu negocio en Internet ¿A qué esperas?

Dominios

El primer paso de un negocio en Internet es contar con un dominio. ¡Regístralo!

Imagen

Certificado SSL

Protege tu web, gana posiciones en Google y aumenta tus ventas y clientes.

Imagen

Hosting WordPress

Para páginas corporativas y ecommerce hechos en WordPress. Configuración específica y backups diarios.

Llámanos

Si aún no eres cliente, nuestro equipo comercial te ayuda a escoger el mejor plan de alojamiento para ti.

+34 911 868 181

AXARNET COMUNICACIONES S.L | Lee nuestro Aviso Legal y nuestra Política de Cookies | Echa un vistazo a nuestras Condiciones Generales de Contratación
Utilizamos cookies propias y de terceros para adaptar tu visita a tus hábitos de navegación. Clic aquí para más info. Puedes aceptar todas las cookies pulsando sobre Aceptar o configurar y/o rechazar algunas pulsando sobre Configurar.
Cookies manager

Continúa con tu compra

Si eres cliente del Grupo Axarnet
Si todavía no eres cliente, puedes...