GNU/Linux >> Tutoriales Linux >  >> Linux

Fail2Ban Howto:Bloquear la dirección IP usando Fail2ban e IPTables

Fail2ban analiza los archivos de registro de varios servicios (SSH, FTP, SMTP, Apache, etc.) y prohíbe la IP que genera demasiadas fallas de contraseña. También actualiza las reglas del cortafuegos para rechazar estas direcciones IP.

Fail2ban es un marco de prevención de intrusiones escrito en el lenguaje de programación Python.

El objetivo principal de Fail2ban es evitar ataques de inicio de sesión de fuerza bruta.

Además, consulte nuestro artículo anterior sobre Tripwire (sistema de detección de intrusos basado en host de Linux).

Instalar Fail2ban

Para instalar fail2ban desde la fuente, descárguelo desde sourceforge..

Use apt-get para instalar Fail2ban en un sistema basado en Debian como se muestra a continuación.

# apt-get install fail2ban

También puede instalar Fail2ban manualmente descargando el paquete de deb de fail2ban.

# dpkg -i fail2ban_0.8.1-1_all.deb

Cómo configurar fail2ban

Todos los archivos de configuración de Fail2ban se encuentran en el directorio /etc/fail2ban.

/etc/fail2ban/fail2ban.conf

El objetivo principal de este archivo es configurar directivas relacionadas con el registro fail2ban.

  • Loglevel:establece la salida del nivel de registro.
  • logtarget:especifique la ruta del archivo de registro

Las acciones realizadas por Fail2ban se registran en el archivo /var/log/fail2ban.log. Puede cambiar la verbosidad en el archivo conf a uno de:1 – ERROR, 2 – WARN, 3 – INFO o 4 – DEBUG.

/etc/fail2ban/jail.conf

El archivo jail.conf contiene la declaración de las configuraciones del servicio. Este archivo de configuración se divide en diferentes contextos. La configuración PREDETERMINADA se aplica a todas las secciones.

La siguiente sección PREDETERMINADA de jail.conf dice que después de cinco intentos fallidos de acceso desde una sola dirección IP en 600 segundos o 10 minutos (findtime), esa dirección se bloqueará automáticamente durante 600 segundos (bantime).

[DEFAULT]
ignoreip = 127.0.0.1
maxretry = 5
findtime = 600
bantime = 600
  • ignoreip:Esta es una lista de direcciones IP separadas por espacios que no pueden ser bloqueadas por fail2ban.
  • maxretry:número máximo de intentos fallidos de inicio de sesión antes de que fail2ban bloquee un host.
  • bantime:tiempo en segundos que un host está bloqueado si fue atrapado por fail2ban (600 segundos =10 minutos).

Configuraciones de servicio

De forma predeterminada, algunos servicios se insertan como plantillas. A continuación se muestra un ejemplo de la sección de servicios ssh.

[ssh]
enabled = true
port	= ssh
filter	= sshd
logpath  = /var/log/auth.log
action = iptables
  • habilitado:habilite la comprobación fail2ban del servicio ssh
  • puerto:puerto de servicio (al que se hace referencia en el archivo /etc/services)
  • filtro:nombre del filtro que usará el servicio para detectar coincidencias. Este nombre corresponde a un nombre de archivo en ‘/etc/fail2ban/filter.d’; sin la extensión '.conf'. Por ejemplo:'filter =sshd' se refiere a '/etc/fail2ban/filter.d/sshd.conf'.
  • logpath:el archivo de registro que fail2ban comprueba si hay intentos fallidos de inicio de sesión.
  • Acción:esta opción le dice a fail2ban qué acción tomar una vez que un filtro coincida. Este nombre corresponde a un nombre de archivo en '/etc/fail2ban/action.d/' sin la extensión '.conf'. Por ejemplo:'acción =iptables' se refiere a /etc/fail2ban/action.d/iptables.conf'.

Fail2ban monitoreará el archivo /var/log/auth.log en busca de intentos de acceso fallidos, y si encuentra repetidos intentos de inicio de sesión ssh fallidos desde la misma dirección IP o host, fail2ban detiene más intentos de inicio de sesión desde esa dirección IP/host bloqueándolo con regla de firewall fail2ban iptables.

Filtros Fail2ban

El directorio /etc/fail2ban/filter.d contiene expresiones regulares que se utilizan para detectar intentos de intrusión, fallas de contraseña, etc., para varios servicios.

Por ejemplo:

  • sshd.conf:filtros relacionados con Fail2ban ssh
  • apache-auth.conf – Filtros de servicio de apache Fail2ban

También podemos agregar nuestra propia expresión regular para encontrar acciones no deseadas.

Acciones de Fail2ban

El directorio /etc/fail2ban/action.d contiene diferentes scripts que definen acciones que se ejecutarán una vez que coincida un filtro. Solo se permite un filtro por servicio, pero es posible especificar varias acciones, en líneas separadas.

Por ejemplo:

  • IPtables.conf:bloquear y desbloquear la dirección IP
  • Mail.conf:envío de correo al usuario configurado

Iniciar/detener el servicio Fail2ban

Después de realizar los cambios de configuración, detenga e inicie el demonio Fail2ban como se muestra a continuación.

# /etc/init.d/fail2ban stop

# /etc/init.d/fail2ban start

Linux
  1. Cómo bloquear direcciones falsificadas locales usando el firewall de Linux

  2. Cómo bloquear la dirección IP en el servidor Linux

  3. Cómo bloquear la dirección IP en el servidor Linux

  4. Bloqueo de todo el tráfico de países individuales usando IPSet e IPTables

  5. Bloqueo de listas negras de hosts e iptables

Cómo bloquear/permitir ping usando iptables en Ubuntu

¿Cómo bloquear una dirección IP usando .htaccess?

Tutorial de Unix Sed:Impresión de líneas de archivos usando direcciones y patrones

Tutorial de Unix Sed:eliminar líneas de archivos usando direcciones y patrones

Problemas relacionados con el uso de sort y comm

Iptables - Cadena de puente y reenvío