Mantener la seguridad de tu servidor es fundamental para prevenir ataques y proteger tus datos. Fail2Ban es una herramienta esencial que te ayuda a defender tu servidor de ataques por fuerza bruta. En este post, te mostraremos cómo automatizar la instalación y configuración básica de Fail2Ban utilizando Ansible, una herramienta de administración y aprovisionamiento de servidores ampliamente utilizada.
- Requisitos previos
Antes de comenzar, asegúrate de tener lo siguiente:
- Un servidor o grupo de servidores que desees proteger con Fail2Ban.
- Ansible instalado en tu máquina local o en un servidor de control.
- Acceso SSH a los servidores en los que deseas instalar Fail2Ban.
- Crear el playbook de Ansible
Crea un nuevo archivo llamado fail2ban_playbook.yml
en tu máquina local o en tu servidor de control. A continuación, agrega el siguiente contenido al archivo:
--- - name: Instalar y configurar Fail2Ban hosts: all become: yes tasks: - name: Instalar Fail2Ban package: name: fail2ban state: present - name: Crear archivo de configuración jail.local copy: src: jail.local dest: /etc/fail2ban/jail.local owner: root group: root mode: '0644' notify: reiniciar fail2ban handlers: - name: reiniciar fail2ban systemd: name: fail2ban state: restarted
Este playbook automatiza la instalación de Fail2Ban y crea un archivo de configuración básica llamado jail.local
en el servidor.
- Crear el archivo de configuración básica de Fail2Ban
En la misma ubicación que el playbook, crea un archivo llamado jail.local
con la siguiente configuración básica:
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5
[sshd]
enabled = true
Esta configuración básica establece un tiempo de bloqueo de 3600 segundos (1 hora), un período de búsqueda de 600 segundos (10 minutos) y un límite de 5 intentos fallidos antes de bloquear una dirección IP en el servicio SSH.
- Configurar el inventario de Ansible
Asegúrate de que tu archivo de inventario de Ansible (generalmente llamado hosts
o inventory.ini
) esté configurado con los servidores en los que deseas instalar Fail2Ban. Por ejemplo:
[servidores] 192.168.1.10 192.168.1.20
- Ejecutar el playbook
Ejecuta el siguiente comando para iniciar el playbook y comenzar la instalación de Fail2Ban en los servidores configurados en tu archivo de inventario:
ansible-playbook -i /ruta/al/inventario/hosts fail2ban_playbook.yml
Ansible se conectará a los servidores y realizará las tareas especificadas en el playbook, como instalar Fail2Ban y crear el archivo de configuración jail.local
.
Conclusión:
La instalación y configuración automatizada de Fail2Ban con Ansible facilita la protección de tus servidores contra ataques por fuerza bruta. Utilizando el playbook proporcionado, Fail2Ban se instala y se crea un archivo de configuración básica jail.local
en el servidor.
Ten en cuenta que cuando se utiliza el archivo jail.local
, cualquier configuración en jail.conf
que no esté presente en jail.local
seguirá siendo activa. Esto significa que cualquier jail adicional en jail.conf
que no se mencione en jail.local
seguirá funcionando. La configuración en jail.local
tiene prioridad sobre la configuración en jail.conf
. Por lo tanto, si deseas personalizar la configuración de Fail2Ban, es recomendable que realices los cambios en jail.local
en lugar de modificar jail.conf
.
Al utilizar este método, podrás mantener la configuración predeterminada de Fail2Ban en jail.conf
y solo realizar cambios específicos en jail.local
. Esto facilita la gestión de la configuración de Fail2Ban y garantiza que cualquier actualización futura del paquete Fail2Ban no sobrescrita tus configuraciones