Instalar y configurar Fail2ban en Ubuntu 20.04

Fail2ban es un marco de seguridad de código abierto escrito en Python que protege los servidores contra ataques de fuerza bruta. Analiza los archivos de registro y prohíbe las direcciones IP que realizan intentos fallidos de inicio de sesión. Funciona actualizando el firewall para rechazar nuevas conexiones de esas direcciones IP durante un período de tiempo configurable.

Por defecto, Fail2ban usa Iptables y es posible usarlo con otros firewalls. Compatibilidad con Fail2ban tanto para IPv4 como para IPv6.

Fail2ban configurado de forma predeterminada para monitorear Intentos de inicio de sesión SSH y puede monitorear otros archivos de registro como para Apache, vsftpd y Postfix, etc.

En este tutorial, lo guiaré a través de cómo instalar y configurar fail2ban sobre Ubuntu 20.04.

Instalar Fail2ban en Ubuntu

Para comenzar, abra su terminal y actualice las listas de paquetes.

PS sudo actualización apta

Fail2Ban ya está empaquetado con la mayoría de las distribuciones de Linux. Para instalar fail2ban usando el administrador de paquetes APT, ejecute:

PS sudo apto instalar fail2ban

Instalar FAil2ban

Una vez instalado, verifique si se está ejecutando mediante:

PS sudo systemctl status fail2ban

En el resultado, podemos ver que el servicio fail2ban está activo y ejecutándose como se esperaba.

Verificar el estado de fail2ban

Para comprobar la ejecución del proceso fail2ban, escriba:

PS sudo ps -efww | egrep fail2ban

Producción:

root 1310843 1 0 11:17? 00:00:02 / usr / bin / python3 / usr / bin / fail2ban-server -xf start

Estupendo. Tengamos una descripción general de los archivos de configuración asociados con Fail2ban y cómo ajustar la configuración a las direcciones IP de la lista negra o lista blanca.

Descripción general de los archivos de configuración

Los archivos de configuración de Fail2ban se encuentran en el /etc/fail2ban directorio como se muestra.

Archivos de configuración de Fail2banArchivos de configuración de Fail2ban

Los archivos de configuración principales son /etc/fail2ban/jail.conf y /etc/fail2ban/jail.d/defaults-debian.conf.

Hagas lo que hagas, no es recomendable modificar estos archivos, ya que existe una alta probabilidad de que se sobrescriban cuando se actualice el paquete fail2ban.

Como solución alternativa, la forma recomendada de configurar Fail2ban es crear una copia del jail.conf archivo a jail.local y luego defina su propia configuración. No es necesario que incluya todos los ajustes del jail.conf archivo, solo aquellos que desee anular.

Entonces, primero creemos el jail.local archivo de configuración de la siguiente manera.

PS sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Ahora, usando su editor de texto favorito, abra el archivo. Aquí, estoy usando el editor vim.

PS sudo vim /etc/fail2ban/jail.local

Incluir direcciones IP en la lista blanca

Utilizando el ignoreip directiva, puede excluir las direcciones IP, el rango de IP o una subred completa de la prohibición. Es aquí donde agrega las direcciones IP de las máquinas remotas que desea incluir en la lista blanca o permitir el acceso en términos simples. Se pueden agregar varias direcciones IP usando espacios o comas.

Para example, para incluir en la lista blanca las direcciones IP 192.168.2.50 , 192.168.2.100 agregue las entradas de la siguiente manera.

Configuración de prohibición

Configuración de prohibición

Las condiciones de prohibición se definen mediante los siguientes parámetros:

  1. bantime
  2. tiempo de búsqueda
  3. maxretry

bantime – Este es el período durante el cual se prohíbe o se niega el acceso a una dirección IP para intentar volver a conectarse con el servidor. De forma predeterminada, está configurado en 10 minutos, pero puede configurarlo según sus preferencias.

tiempo de búsqueda – Esta es la duración entre los intentos fallidos de inicio de sesión antes de que se implemente una prohibición. Esto se establece en 10 minutos. Lo que esto significa es que si está intentando un inicio de sesión SSH y las fallas llegan al maxtry valor dentro de un período de 10 minutos, la IP desde la que se está conectando será prohibida.

maxretry – Esto representa el número máximo de intentos de conexión fallidos antes de que se prohíba una IP. B predeterminado, esto está configurado en 5 segundos, lo que debería estar bien, pero prefiero 3 segundos para minimizar el bombardeo de intentos de conexión.

Notificaciónes de Correo Electrónico

Fail2ban posee la capacidad de enviar alertas por correo electrónico una vez que se ha prohibido una dirección IP. Para enviar y recibir correos electrónicos, debe tener un servidor SMTP instalado y configurado. Para usar la función de notificación por correo electrónico, agregue la línea a continuación

acción =% (action_mw) s

El parámetro %(action_mw)s prohíbe la dirección IP sospechosa y envía un correo electrónico a la admin con un informe whois detallado. Para incluir mensajes de registro, establezca el parámetro en %(action_mwl)s.

Defina adicionalmente la dirección de correo electrónico de envío y el destinatario.

Cárceles Fail2ban

Fail2ban modus operandi utiliza el concepto de cárceles. Es decir, si la dirección IP infractora intenta sin éxito iniciar sesión o acceder a un servicio, se coloca en una ‘cárcel’ y no puede iniciar una conexión hasta que el bantime transcurre.

Una cárcel, en términos simples, es un servicio con filtros y acciones. Fail2ban examina las entradas de registro y una vez que se identifican las entradas de registro coincidentes y se cumplen las condiciones, se implementan las acciones.

La cárcel SSH generalmente está habilitada de manera predeterminada para controlar las conexiones SSH no autorizadas de direcciones IP sospechosas. Para habilitar una cárcel para otro servicio, simplemente agregue el habilitado = verdadero atributo después del encabezado de la cárcel. También puede proporcionar configuraciones de prohibición como vimos anteriormente.

Cliente Fail2ban

Fail2ban proporciona una herramienta de línea de comandos para interactuar con Fail2ban conocida como fail2ban-cliente. Puede realizar una gran variedad de tareas, como prohibir y desbancar direcciones IP.

Para verificar el estado de Fail2ban y ver si hay alguna IP prohibida o filtros violados, ejecute el comando:

PS sudo estado del cliente fail2ban sshd

El resultado a continuación confirma la presencia de una dirección IP prohibida o incluida en la lista negra después de intentos fallidos de inicio de sesión SSH. La dirección IP se encuentra actualmente en la cárcel SSH.

Verificar el estado de la prohibiciónVerificar el estado de la prohibición

También puede filtrar el archivo fail2ban.log para enumerar todas las direcciones IP prohibidas:

PS sudo zgrep ‘Ban’ /var/log/fail2ban.log*

Producción:

2021-04-29 11: 17: 55,081 fail2ban.actions [1310843]: AVISO [sshd] Prohibir 117.221.69.37 2021-04-29 11: 17: 55,123 fail2ban.actions [1310843]: AVISO [sshd] Prohibir 49.233.251.133 2021-04-29 11: 17: 55,131 fail2ban.actions [1310843]: AVISO [sshd] Prohibir 106.52.93.202 2021-04-29 11: 17: 55,139 fail2ban.actions [1310843]: AVISO [sshd] Prohibir 222.187.232.205 2021-04-29 11: 17: 55,147 fail2ban.actions [1310843]: AVISO [sshd] Prohibir 222.187.239.107

Para desbloquear la dirección IP de la lista negra, ejecute el comando:

PS sudo fail2ban-client establece sshd unbanip 192.168.2.102

Ahora verifique el estado de Fail2ban nuevamente, y esta vez, la IP prohibida ya no se registra.

Fail2ban unban IPFail2ban unban IP

Para prohibir una dirección IP, escriba:

PS sudo fail2ban-client establece sshd banip 192.168.2.102

Para obtener más opciones de la línea de comandos, ejecute el comando:

$ fail2ban-cliente -h

Opciones del comando Fail2banOpciones del comando Fail2ban

Conclusión

Tenga en cuenta que Fail2ban no sustituye a los cortafuegos ni a otras medidas de seguridad que se utilizan para proteger su sistema. Es simplemente una capa adicional de seguridad que le da a su servidor una capa adicional de protección contra ataques de fuerza bruta, especialmente de bots y scripts automatizados. Con esto concluye este tutorial sobre cómo instalar y configurar Fail2ban en Ubuntu 20.04.