Cómo instalar Fail2Ban en Ubuntu 24.04, 22.04 o 20.04

Fail2Ban es una herramienta de seguridad crucial para proteger los sistemas Linux contra ataques de fuerza bruta. Funciona monitoreando los archivos de registro en busca de actividad sospechosa, como repetidos intentos fallidos de inicio de sesión, y prohíbe automáticamente las direcciones IP infractoras actualizando las reglas del firewall. Fail2Ban es altamente configurable, lo que permite a los administradores definir filtros personalizados, tiempos de prohibición y acciones, lo que lo convierte en un componente esencial para mantener la seguridad del servidor.

En Ubuntu 24.04, 22.04 o 20.04, Fail2Ban se puede instalar fácilmente a través del repositorio predeterminado de Ubuntu. Este método garantiza un proceso de instalación sencillo, con Fail2Ban integrado en su sistema, lo que proporciona una defensa confiable contra intentos de acceso no autorizados. Esta guía lo guiará a través del proceso de instalación utilizando la terminal de línea de comandos.

Actualice Ubuntu antes de la instalación de Fail2ban

Antes de comenzar el proceso de instalación, debe actualizar su sistema para garantizar una instalación sin problemas y evitar posibles conflictos. Para hacer esto, ejecute el siguiente comando en su terminal:

sudo apt update && sudo apt upgrade

Instale Fail2ban a través del comando de terminal

Fail2Ban está disponible en el repositorio predeterminado de Ubuntu, lo que simplifica el proceso de instalación. Ejecute el siguiente comando para comenzar la instalación:

sudo apt install fail2ban 

Habilitar y activar Fail2ban

De forma predeterminada, Fail2Ban no está habilitado ni activado después de la instalación. Para iniciar el servicio y permitir que se ejecute al iniciar el sistema, utilice el siguiente comando:

sudo systemctl enable fail2ban --now

Verificar el estado del servicio Fail2Ban

Una vez que haya instalado Fail2Ban con éxito, es esencial verificar el estado de su servicio. Tras la instalación, el servicio Fail2Ban debería habilitarse e iniciarse de forma predeterminada.

Ejecute el siguiente comando para verificar el estado:

sudo systemctl status fail2ban

Configuración de copia de seguridad de Fail2ban

Después de instalar Fail2Ban, es importante instalarlo y configurarlo para que se adapte al entorno de su servidor. Fail2Ban viene con dos archivos de configuración predeterminados ubicados en /etc/fail2ban/jail.conf y /etc/fail2ban/jail.d/defaults-debian.conf.

Para conservar su configuración personalizada, cree copias de los archivos de configuración con la extensión .local. Fail2Ban dará prioridad a la lectura de archivos .local sobre archivos .conf. Al crear archivos .local, se asegura de que su configuración no se pierda durante las actualizaciones y siempre tendrá una copia nueva a la que volver en caso de una mala configuración.

Ejecute el siguiente comando para crear una copia del archivo jail.conf:

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

Ahora tiene una copia de seguridad de su archivo de configuración original y puede personalizar de forma segura la configuración de Fail2Ban editando el archivo jail.local sin preocuparse por perder sus modificaciones durante futuras actualizaciones.

Resumen de ejemplo: configurar Fail2ban

Ahora, veremos cómo editar el archivo de configuración después de crear una copia de seguridad del archivo de configuración original. Estos ejemplos y discusión son solo ejemplos en jail.local y deberán personalizarse y probarse según los requisitos de su sistema.

Editar el archivo de configuración de Fail2ban

Para editar el archivo jail.local usando el editor nano, ejecute el siguiente comando:

sudo nano /etc/fail2ban/jail.local

Incrementos del tiempo de prohibición con Fail2ban

Habilite la configuración Incremento del tiempo de prohibición para aumentar la duración de la prohibición para los infractores reincidentes. Por ejemplo, si el tiempo de prohibición predeterminado es una hora, puedes aumentarlo a cinco horas después de cinco prohibiciones repetidas.

Para hacer esto, necesitas establecer un multiplicador para la lógica de aumento de la prohibición.

Ejemplo:

## Ban Time Multipliers
# bantime.increment = true
# bantime.factor = 2
# bantime.formula = ban.Time * (1<<(ban.Count if ban.Count<20 else 20)) * banFactor

Lista blanca de IP en Fail2ban

Para incluir direcciones IP específicas en la lista blanca, descomente la línea ignoreip y agregue las direcciones IP deseadas, separadas por espacios o comas. Los rangos de IP también se pueden incluir en la lista blanca.

Ejemplo:

ignoreip = 127.0.0.1/8 ::1 180.53.31.33 (example IP address)

Configuración predeterminada del tiempo de prohibición

De forma predeterminada, Fail2Ban prohíbe a un atacante durante 10 minutos después de cinco intentos fallidos dentro de un período de 10 minutos. Puedes ajustar estas configuraciones predeterminadas, pero se recomienda establecer tiempos de prohibición personalizados y límites de reintento para diferentes cárceles.

Ejemplo:

[DEFAULT]
# "bantime" is the number of seconds that a host is banned.
bantime  = 10m

# A host is banned if it has generated "maxretry" during the last "findtime" seconds.
findtime  = 10m

# "maxretry" is the number of failures before a host get banned.
maxretry = 5

Alertas/notificaciones por correo electrónico con Fail2ban

Configure Fail2Ban para enviar notificaciones por correo electrónico con informes whois a una dirección de correo electrónico específica. También puede configurar diferentes opciones de informes, como enviar correos electrónicos a proveedores de la lista negra o al ISP del atacante.

Ejemplo:

destemail = admin@example.com
sender = fail2ban@example.com

Cárceles Fail2ban

Las cárceles contienen filtros y acciones predefinidos para varias aplicaciones de servidor. Puede habilitar, deshabilitar o personalizar cárceles según las necesidades de su servidor.

Para habilitar una cárcel, agregue "enabled = true" en la sección de cárcel correspondiente.

Ejemplo:

[apache-badbots]
enabled = true
port     = http,https
logpath  = %(apache_access_log)s
bantime  = 48h
maxretry = 1

También puede agregar cárceles Fail2ban personalizadas o usar acciones del action.d directorio actualizando el banaction fila en la sección de la cárcel.

Ejemplo:

[apache-botsearch]
enabled = true
port     = http,https
logpath  = %(apache_error_log)s
banaction = action_mw
            cloudflare
bantime = 72h
maxretry = 1

Una vez que haya terminado de configurar Fail2Ban, reinicie el servicio para aplicar los cambios:

sudo systemctl restart fail2ban

Prohibir o desbloquear mediante comandos Fail2Ban

Una vez que Fail2Ban esté configurado, los comandos de Fail2ban más comunes que necesitarás usar serán el comando de prohibir o desbancar. Puede gestionar las prohibiciones de IP utilizando el comando fail2ban-client. Es posible que necesite privilegios sudo, según su configuración.

Prohibir una dirección IP a través del comando CLI Fail2ban

Para prohibir una dirección IP manualmente para una cárcel específica (por ejemplo, apache-botsearch), use el siguiente comando:

sudo fail2ban-client set apache-botsearch banip <ip address>

Desbanear una dirección IP a través del comando CLI Fail2ban

Para desbloquear una dirección IP para una cárcel específica (por ejemplo, apache-botsearch), use el siguiente comando:

sudo fail2ban-client set apache-botsearch unbanip <ip address>

Accediendo al menú de ayuda

Para acceder al menú de ayuda y ver configuraciones o comandos adicionales, use el siguiente comando:

sudo fail2ban-client -h 

Ejemplos adicionales de comandos Fail2ban

Verifique el estado de una cárcel específica:

sudo fail2ban-client status apache-botsearch

Vuelva a cargar la configuración sin reiniciar el servicio Fail2Ban:

sudo fail2ban-client reload

Consulte la lista de direcciones IP actualmente prohibidas para una cárcel específica:

sudo fail2ban-client get apache-botsearch banned

Establezca un tiempo de prohibición personalizado para una dirección IP específica en una cárcel:

sudo fail2ban-client set apache-botsearch bantime <time_in_seconds> --banip <ip_address>

Estos comandos proporcionan las herramientas para gestionar las prohibiciones de IP utilizando Fail2Ban de forma eficaz. Recuerde reemplazar con la dirección IP real que desea prohibir o desbancar, y reemplace apache-botsearch con el nombre de cárcel apropiado según su configuración.

Verificar o monitorear los registros de Fail2Ban

Es fundamental monitorear y revisar los registros de Fail2Ban para garantizar que sus cárceles funcionen correctamente. De forma predeterminada, los registros de Fail2Ban se pueden encontrar en /var/log/fail2ban.log.

Monitorear registros en tiempo real para Fail2ban

Para ver los registros en vivo y detectar cualquier problema mientras trabaja en su servidor, use el comando "tail -f":

tail -f /var/log/fail2ban.log

Este comando le permite monitorear los cambios de registro en tiempo real.

Buscar registros para información específica de Fail2ban

También puede utilizar el comando grep para buscar información específica dentro de los registros, como direcciones IP, agentes de usuario o errores.

Ejemplo de usuario-agente:

grep "Bing" /var/log/fail2ban.log

Ejemplo de error:

grep "error" /var/log/fail2ban.log

Dirección IP Ejemplo:

grep "123.123.123.1" /var/log/fail2ban.log

Estos ejemplos demuestran varias formas de filtrar y buscar registros mediante comandos de terminal. Revisar sus registros de Fail2Ban ayudará a mantener la seguridad de su servidor y garantizará que sus cárceles funcionen según lo previsto.

Aprendizaje adicional: eliminar Fail2Ban

En caso de que decida eliminar Fail2Ban de su sistema, puede desinstalarlo fácilmente siguiendo estos pasos:

Desactivar el servicio Fail2Ban

Si el servicio Fail2Ban todavía está activo, primero debe desactivarlo:

sudo systemctl disable fail2ban --now

Este comando deshabilitará el servicio Fail2Ban y detendrá su ejecución.

Quitar Fail2Ban

Después de deshabilitar el servicio, puede desinstalar Fail2Ban usando el siguiente comando:

sudo apt remove fail2ban

Este comando eliminará Fail2Ban junto con sus dependencias del sistema y datos asociados.

Conclusión

Con Fail2Ban instalado en su sistema Ubuntu, mejora la seguridad de su servidor mitigando automáticamente los ataques de fuerza bruta y otras actividades sospechosas. La instalación de Fail2Ban a través del repositorio predeterminado de Ubuntu garantiza una configuración rápida y estable, con acceso a actualizaciones periódicas proporcionadas por la comunidad de Ubuntu. Revisar y actualizar periódicamente sus configuraciones de Fail2Ban ayudará a mantener una protección óptima para su servidor, garantizando que su sistema permanezca seguro y resistente contra posibles amenazas.

Joshua James
Sígueme
Últimas entradas de Joshua James (ver todo)

Deja un comentario