Cómo instalar y configurar Fail2ban en Ubuntu 22.04

configurar el cortafuegos ufw

Fail2ban es un IPS (software de prevención de intrusiones) gratuito y de código abierto que ayuda a los administradores a proteger los servidores Linux contra inicios de sesión maliciosos y ataques de fuerza bruta. Fail2ban está escrito en Python y viene con filtros para varios servicios como Apache2, SSH, FTP, etc. Fail2ban reduce los intentos de inicio de sesión maliciosos al bloquear las direcciones IP de los ataques de origen.

Fail2ban funciona escaneando los archivos de registro de los servicios (ef /var/log/auth.log) y prohibiendo las direcciones IP que muestran intentos de inicio de sesi√≥n maliciosos, como demasiadas contrase√Īas incorrectas, b√ļsqueda de exploits, etc. Fail2ban tambi√©n es compatible con m√ļltiples firewalls como iptables, ufw y cortafuegos. Tambi√©n le permite configurar una notificaci√≥n por correo electr√≥nico para cada intento de inicio de sesi√≥n bloqueado.

En este tutorial, le mostraremos cómo instalar y configurar Fail2ban para asegurar el servidor Ubuntu 22.04. Esta guía también cubre el comando básico de fail2ban-client para administrar el servicio y las cárceles de Fail2ban.

requisitos previos

  • Un servidor Ubuntu 22.04
  • Un usuario no root con privilegios sudo.

Configurar el cortafuegos UFW

Antes de comenzar a instalar Fail2ban, deber√° configurar el Firewall en su servidor Ubuntu.

La instalación predeterminada del servidor Ubuntu viene con UFW Firewall, que es más fácil de administrar que otro firewall como iptables.

Ahora verifique el estado del firewall UFW usando el siguiente comando.

sudo ufw status

Si recibe el mensaje de salida como ¬ęEstado: inactivo¬ę, entonces su firewall UFW a√ļn no se ha iniciado. Pero si recibe el mensaje de salida como ¬ęComando ufw no encontrado¬Ľentonces el firewall UFW no est√° instalado en su servidor.

Para instalar el paquete de firewall UFW, ejecute el comando apt a continuación.

sudo apt install ufw -y

Una vez completada la instalación de UFW, ejecute el siguiente comando para agregar el servicio SSH al firewall de UFW.

sudo ufw allow ssh

Luego, ejecute el siguiente comando para iniciar y habilitar el firewall UFW.

sudo ufw enable

Ingrese y para confirmar e iniciar el firewall UFW.

Por √ļltimo, verifique nuevamente el firewall UFW usando el siguiente comando.

sudo ufw status

A continuaci√≥n puede ver el firewall UFW ¬ęEstado: activo¬Ľ con el puerto SSH 22 a√Īadido a las reglas del cortafuegos.

configurar el cortafuegos ufw

Instalación de Fail2ban en Ubuntu 22.04

Después de haber instalado y configurado el firewall UFW, ahora instalará el paquete Fail2ban en su servidor.

Ejecute el siguiente comando para actualizar y actualizar su repositorio de Ubuntu.

sudo apt update

Ahora instale el paquete Fail2ban usando el siguiente comando.

sudo apt install fail2ban -y

La instalación comenzará.

instalar fail2ban 22.04

Una vez completada la instalación de Fail2ban, habilite el servicio Fail2ban e inicie el servicio con el siguiente comando.

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Por √ļltimo, verifique el estado del servicio Fail2ban usando el siguiente comando.

sudo systemctl status fail2ban

En la siguiente captura de pantalla, ver√° que el servicio Fail2ban se est√° ejecutando en el servidor Ubuntu 22.04.

iniciar y verificar el servicio fail2ban

Configuración de Fail2ban

Después de haber instalado Fail2ban, ahora es el momento de instalar y configurar Fail2ban.

Toda la configuración de Fail2ban se almacena en el directorio /etc/fail2ban. A continuación se detalla la configuración de Fail2ban que debe conocer:

  • La configuraci√≥n fail2ban.conf es la configuraci√≥n principal de Fail2ban.
  • La configuraci√≥n jail.conf es un ejemplo de la configuraci√≥n de la c√°rcel Fail2ban.
  • El directorio action.d contiene configuraciones de acciones fail2ban, como configuraciones de correo y configuraciones de firewall.
  • El directorio jail.d contiene configuraci√≥n adicional para fail2ban jail.

Para comenzar a configurar Fail2ban, deberá copiar la configuración de cárcel predeterminada jail.conf a jail.local usando el siguiente comando.

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

Ahora edite la configuración jail.local usando el editor nano.

sudo nano /etc/fail2ban/jail.local

Primero, descomente la opción ignoreip y agregue su dirección IP. Todas las direcciones IP dentro de la opción ignoreip no serán bloqueadas por Fail2ban.

ignoreip = 127.0.0.1/8 ::1 192.168.1.0/24 192.168.10.20

Para la configuraci√≥n de prohibici√≥n, puede cambiar la configuraci√≥n seg√ļn lo necesite. En este ejemplo, el tiempo de banda global ser√° 1 d√≠ael tiempo de b√ļsqueda ser√° 10 minutosy el maxretry depende de 5 veces.

La opci√≥n bantime es el momento en que la direcci√≥n IP ser√° prohibida para acceder al servidor. La opci√≥n de tiempo de b√ļsqueda es la duraci√≥n entre el n√ļmero de fallas antes de la acci√≥n de prohibici√≥n. Y la opci√≥n maxretry es la cantidad de fallas para que las direcciones IP sean prohibidas.

bantime  = 1d
findtime  = 10m
maxretry = 5

La acción predeterminada para Fail2ban es solo prohibir la dirección IP. Pero también puede configurar la notificación por correo cada vez que se prohíba una dirección IP.

Cambie la opción de acción como se muestra a continuación y cambie el remitente predeterminado y la dirección de correo de destino.

action = %(action_mw)s
destemail = [email protected]
sender = [email protected]

A continuación, para la integración del firewall UFW, debe cambiar la opción de banacción a ufw como se muestra a continuación.

banaction = ufw

Por √ļltimo, para la configuraci√≥n de las c√°rceles. Esta secci√≥n es donde agrega su servicio y lo protege usando fail2ban.

En este ejemplo, habilitaremos la c√°rcel para el servicio SSH, pero tambi√©n anularemos la configuraci√≥n predeterminada global para la c√°rcel sshd. La hora de la fiesta ser√° 1 semana con maxretry de fallas 3 veces y el tiempo de b√ļsqueda en 10 minutos.

[sshd]
enabled   = true
maxretry  = 3
findtime  = 1d
bantime   = 1w
port    = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s

Guarde y cierre el archivo cuando haya terminado.

Ahora ejecute el siguiente comando para reiniciar el servicio Fail2ban y aplicar nuevos cambios a la configuración jail.local.

sudo systemctl restart fail2ban

Ahora ha completado la configuración de Fail2ban con la notificación por correo electrónico habilitada y la cárcel sshd habilitada para asegurar el servicio SSH.

Uso de Fail2ban-client para verificar el estado de Fail2ban

El fail2ban proporciona una línea de comando fail2ban-client para interactuar con el servicio Fail2ban. Esto le permite administrar y configurar Fail2ban desde la línea de comandos, y también le permite administrar las cárceles de Fail2ban.

Para verificar la instalación y configuración de fail2ban, ejecute el siguiente comando fail2ban-client.

sudo fail2ban-client ping

Si recibe el mensaje de salida como ¬ęEl servidor respondi√≥: pong¬ę, esto significa que Fail2ban se est√° ejecutando sin errores.

A continuación, ejecute el siguiente comando fail2ban-client para comprobar el estado de sshd jail.

sudo fail2ban-client status sshd

A continuación puedes ver el estado detallado de sshd jail. Esto incluye el archivo de registro para el servicio SSH y la lista de direcciones IP prohibidas en la cárcel sshd.

verificar el estado de la c√°rcel sshd

Ahora, si desea obtener una configuración detallada de la cárcel sshd, puede usar el comando fail2ban-client como se muestra a continuación.

Compruebe la configuración de bantime para sshd jail. Obtendrá la salida del bantime aquí en segundos.

sudo fail2ban-client get sshd bantime

Verifique la configuración de maxrtey para la cárcel sshd. Verá que maxretry aquí es 3 porque se anula desde la configuración global, que es maxrety 5 veces.

sudo fail2ban-client get sshd maxretry

Para la prohibición en sshd jail, puede usar el siguiente comando. Y debería obtener la salida de ufw como la acción predeterminada para sshd jail.

sudo fail2ban-client get sshd actions

Para el tiempo de b√ļsqueda aqu√≠, tambi√©n ver√° el valor de anulaci√≥n de la c√°rcel sshd. La salida aqu√≠ tambi√©n estar√° en formato de segundos.

sudo fail2ban-client get sshd findtime

Por √ļltimo, tambi√©n puede verificar el ignoreip predeterminado para sshd jail usando el siguiente comando. Y ver√° que ignoreip tiene el mismo valor que la configuraci√≥n global de Fail2ban.

sudo fail2ban-client get sshd ignoreip

verifique los detalles de sshd

Ban y Unban IP usando Fail2ban-client

Otra cosa importante acerca de Fail2ban aquí es cómo prohibir y desbanear direcciones IP en Fail2ban. Para hacer eso, también puede usar el comando fail2ban-client.

Para prohibir la dirección IP manualmente en la cárcel sshd, puede usar el comando fail2ban-client a continuación. Cambie la dirección IP con la dirección IP que desea prohibir.

sudo fail2ban-client set sshd banip IP-ADDRESS

Para desbanear la direcci√≥n IP de sshd jail, puede usar el comando fail2ban-client a continuaci√≥n. Solo aseg√ļrese de cambiar la direcci√≥n IP con la direcci√≥n IP que desea desbanear.

sudo fail2ban-client set sshd unbanip IP-ADDRESS

Ahora, después de prohibir una dirección IP manualmente o desbanear una dirección IP, puede verificar usando el comando fail2ban-client a continuación.

sudo fail2ban-client status sshd

Si proh√≠be una direcci√≥n IP manualmente, aseg√ļrese de que la direcci√≥n IP est√© disponible en la lista de direcciones IP prohibidas. Pero si desbanea una direcci√≥n IP, aseg√ļrese de que la direcci√≥n IP desaparezca de la lista de direcciones IP prohibidas.

Conclusión

¬°Felicidades! Ahora ha instalado y configurado con √©xito Fail2ban para proteger Ubuntu 22.04. Tambi√©n aprendi√≥ c√≥mo habilitar el firewall UFW y c√≥mo integrar Fail2ban con el firewall UFW. Por √ļltimo, tambi√©n aprendi√≥ c√≥mo administrar Fail2ban usando el comando fail2ban-client, que incluye c√≥mo prohibir y desbanear direcciones IP de Fail2ban.Advertisement

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *