Bloqueando reincidentes de Fail2ban

Faail2Ban.org

Fail2ban escanea logs (por ejemplo /var/log/auth.log), bloqueando IPs que muestran comportamientos maliciosos.

Es una gran herramienta en la que se pueden configurar jaulas para los diferentes tipos de servicios que tengáis en vuestro servidor, protegiendo de esta manera intentos de acceso con contraseña errónea (fuerza bruta) o incluso bots maliciosos en busca de páginas comunes entre tus webs y que suelen obtener un 404.

Bloqueando reincidentes de Fail2ban

Con éste sencillo script, podéis crear una tarea en cron para que cada minuto lea el fichero en el que Fail2ban registra su actividad, en busca de IPs que ya han sido baneadas, pero siguen insistiendo.

Faail2Ban.orgFaail2Ban.org

#!/bin/bash
#Look for "already" banned IP
if tail -n 1 /var/log/fail2ban.log | grep -q already
then
   IP=$(awk -F' ' 'END{print $6}' /var/log/fail2ban.log)
else
  exit
fi
#Look if IP is already in hosts.deny
if grep -q $IP /etc/hosts.deny
then
   exit
else
   echo ALL: $IP >> /etc/hosts.deny
fi

Con esto conseguimos, principalmente, 3 cosas:

  1. Que se aplique a todas las jaulas sin tener que modificar el action una a una.
  2. Que Fail2ban no consuma recursos en banear IPs reincidentes.
  3. Reducir el tiempo máximo que un atacante por fuerza bruta tendría para intentar saltar la seguridad del sistema.
http://www.fail2ban.org/
http://www.fail2ban.org/

Por ejemplo, en un intento de acceso ssh por fuerza bruta, un atacante podría intentar autenticarse 3 veces antes de ser baneado por el tiempo definido en la jaula.

Si vuelve a intentarlo durante ese tiempo de baneo, su IP acabará en el archivo ‘hosts.deny’ y ante un nuevo intento de conexión al sistema obtendría el siguiente mensaje: «ssh_exchange_identification: Connection closed by remote host». Y tampoco podría acceder a ninguna de las páginas webs u otros servicios, su IP sería siempre rechazada.

Con esta solución cabría la posibilidad de bloquear IPs que posteriormente puedan ser utilizadas por otros usuarios sin fines maliciosos, por lo que si albergáis muchas páginas web, quizás sería una buena práctica restaurar cada cierto tiempo un archivo hosts.deny vacío.

Hasta aquí otro de los artículos en informaticapremium sobre lo último en hardware, sistemas, almacenamiento, redes, programación, diseño web, recuperación de datos y actualidad del mundo de la técnica y la informática. Nos vemos en breve.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.