Bloquear IPs permanentemente con fail2ban

Hay un sistema integrado en fail2ban para comprobar el log predeterminado y luego poner en marcha una prohibición más extensa sobre la base de los intentos registrados. El problema es que los logs rotan y en ocasiones son eliminados. El otro problema con esta solución es que esas IPs solo se almacenan en iptables lo que significa que cuando el servidor o servicio fail2ban se reinicia la tabla puede haberse quedado vacía. Por supuesto fail2ban volverá a aplicar las reglas iptables si esas direcciones IP se mantienen en los archivos de registro del sistema (siempre y cuando no se hayan eliminado). La solución es crear una cadena específica para esas direcciones IP bloqueadas y un archivo para almacenarlas.

Cambiamos el modo en que fail2ban loguea.

Alrededor de la linea 24:

Alrededor de la linea 34:

Ahora tenemos que cambiar el modo en que log-rotate maneja estos ficheros.

Reemplaza todo con:

Lo que hemos hecho aquí es decir a log rotate rote (valga la redundancia) este log todos los meses y borre los viejos logs a los 13 meses. Esto es porque nuestro tiempo de búsqueda (del que hablaremos posteriormente) está definido a 1 año. Si el tiempo de búsqueda es de 1 año máximo, no hay necesidad de guardar logs más allá de ese periodo de tiempo ya que las IPs se guardarán en una lista de bloqueo.
Editamos el archivo de configuración de fail2ban.

Pega este código al final del archivo:

Lo que hemos hecho aquí es crear un nuevo filtro que monitoriza el log que hemos creado en el paso anterior. Lo hemos asignado un filtro y también una nueva acción. Hemos establecido el valor de intentos máximo a 10 veces (puedes cambiar este número si quieres) y hemos establecido también un tiempo de búsqueda a 31536000 que es un año en segundos. Por supuesto puedes cambiar este número a otro que quieras, pero ten en cuenta de que si lo alargas, DEBES cambiar también el periodo de borrado de la rotación log. Por último hemos establecido a -1 el tiempo de baneo, o lo que es lo mismo baneo permanente.
Ahora creamos el filtro:

Coloca esto en el archivo:

Aquí definimos las reglas para capturar las IPs reincidentes.
Ahora debemos crear la acción:

IMPORTANTE!!: Si estás usando DEBIAN reemplaza el comando

por

De lo contrario nos aparecería un error en fail2ban.log
En “actionstart” hemos creado la cadena adicional de iptables. De hecho hemos creado dos nuevas cadenas, una será para las IPs recientemente bloqueadas y la otra para las que están guardadas en la lista de bloqueo. También hemos creado el comando para leer de la lista de bloqueo y aplicar esas entradas iptables en la cadena ip-blocklist.

En “actionstop” hemos añadido la cadena ip-blocklist a la cadena original para eliminar la cadena de iptables en el evento de fail2ban reiniciado. Si no hiciéramos esto, recibiríamos duplicados.

En “actionban” hemos establecido algunas variables. VERIFY e usa para verificar si la dirección IP ya existe en la lista de direcciones IP bloqueadas. Puede que te preguntes “Bien, si las baneamos para siempre por qué necesitaríamos chequear el fichero para la IP?. Simplemente no tendrían que alcanzar el servidor nunca más”. La respuesta es simple, si se reinicia el servidor o fail2ban estos logs se escanean. Si se encuentran de nuevo (el número de aciertos existen en los logs no borrados) se ejecuta actionban. Esto normalmente crearía otra entrada en el fichero de listas de bloqueo y se crearía otro bloque en el firewall adicionalmente al bloqueo hecho por el archivo de lista de bloqueos en actionstart. FILE se usa para definir la localización y nombre del fichero donde guardar las ips. Lo utilizamos entonces para hacer un grep y verificar la existencia de la IP en el fichero y escribir a iptables para bloquear la IP. Seguidamente, escribimos la dirección IP a la lista de direcciones para que sea bloqueada.

En “actionunban” Hemos eliminado el comando porque no queremos desbanearlos automáticamente nunca.

También hemos añadido un pequeño comando para eliminar la dirección IP del fichero de listas de bloqueo en caso de que necesites usarlo. Simplemente reemplaza <ip> con la dirección que quieres eliminar.

Ten en cuenta que tendrás que incluir la ip en el whitelist y eliminarla de iptables, de lo contrario no será desbloqueada o será desbloqueada en el próximo reinicio.

Reinicia el servicio con el siguiente comando:

Fuente: wireflare.com/permanently-ban-repeat-offenders-with-fail2ban/

 

facebook Bloquear IPs permanentemente con fail2bantwitter Bloquear IPs permanentemente con fail2bangoogle Bloquear IPs permanentemente con fail2bandiggit Bloquear IPs permanentemente con fail2banpinterest Bloquear IPs permanentemente con fail2banlinkedin Bloquear IPs permanentemente con fail2banprint Bloquear IPs permanentemente con fail2banemail Bloquear IPs permanentemente con fail2banSi te gusto, comparte el articulo.

Artículos Relacionados

3 Comentarios

  1. Cristhian
    30 octubre, 2016
  2. sergio
    30 octubre, 2016
  3. Cristhian
    31 octubre, 2016

Agregar comentario


*

Recibe nuestro newsletter

Suscribete a nuestro newsletter y mantente informado con nuestros últimos artículos, noticias y más. Todo completamente gratis.