Cómo instalar y configurar Fail2ban en Ubuntu 20.04 LTS

1 mar 2021 4 min di lettura
Cómo instalar y configurar Fail2ban en Ubuntu 20.04 LTS
Indice dei contenuti

Introducción

Cualquier servicio expuesto a la red puede ser un objetivo potencial. Podemos notar fácilmente numerosos intentos de conexión no programados al leer los archivos de registro de nuestro servidor.

Fail2ban es una herramienta que puede ayudarnos a monitorear y bloquear todas las conexiones no autorizadas a nuestro servidor.

Fail2ban modifica automáticamente la configuración del firewall de IPtables si es necesario, para bloquear direcciones IP no autorizadas.

En esta guía, le mostraremos cómo instalar y usar Fail2ban en un servidor Ubuntu 20.04 LTS Focal Fossa.

Si desea instalar Fail2ban en un servidor remoto, continúe leyendo; de lo contrario, omita el primer párrafo "Conectando al servidor" y lea el siguiente.

Conexión al servidor

Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:

ssh root@IP_DEL_SERVER

A continuación, deberá ingresar la contraseña del usuario root.

Si no usa el usuario raíz, puede iniciar sesión con otro nombre de usuario usando el mismo comando, luego cambie la raíz a su nombre de usuario:

ssh nome_utente@IP_DEL_SERVER

Luego se le pedirá que ingrese su contraseña de usuario.

El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Instalar Fail2ban

Fail2ban está disponible en los repositorios predeterminados de Ubuntu, por lo que se puede instalar fácilmente a través de apt:

sudo apt update
sudo apt install fail2ban

Podemos encontrar los archivos de configuración de Fail2ban en el directorio /etc /fail2ban. El archivo principal para modificar es jail.conf.

jail.conf pueden ser sobrescritos por las actualizaciones de paquetes, por lo que recomiendo hacer una copia de este archivo que llamaremos jail.local, esto va a sobrescribir el original. De esta forma no tendremos problemas incluso después de las actualizaciones del paquete Fail2ban.

La sección principal de jail.conf (jail.local, nuestra copia) se llama [DEFAULT]. A continuación, encontramos las distintas secciones de los servicios individuales, como [sshd].

Creemos nuestro archivo jail.local desde la terminal:

sudo nano /etc/fail2ban/jail.local

Peguemos el siguiente texto:

[DEFAULT]
 # Ban hosts for one hour:
 bantime = 3600

 # Override /etc/fail2ban/jail.d/00-firewalld.conf:
 banaction = iptables-multiport

 [sshd]
 enabled = true

Hemos configurado un nuevo tiempo bantime predeterminado de una hora para todos los servicios. bantime es el tiempo durante el cual se bloquea la IP. Cuando no se especifica ningún sufijo, el valor predeterminado es segundos. De forma predeterminada, el bantime se establece en 10 minutos. Generalmente, la mayoría de los usuarios querrán establecer un período de prohibición más largo. Cambie el valor a su gusto:

bantime = 1d

Si desea establecer una prohibición permanente, cambie el valor del parámetro bantime a -1:

bantime = -1

Guarde y cierre el archivo.

Ahora podemos reiniciar el servicio Fail2ban usando systemctl:

sudo systemctl restart fail2ban

Para verificar el estado de Fail2ban:

sudo fail2ban-client status

Para obtener información más detallada, como la lista de direcciones IP prohibidas, emita este comando:

sudo fail2ban-client status sshd

Para monitorear las acciones recientes de Fail2ban:

sudo tail -F /var/log/fail2ban.log

Configurar Fail2Ban

A continuación se ofrecen algunos consejos para configurar Fail2ban.

Abramos el archivo jail.local nuevamente:

sudo nano /etc/fail2ban/jail.local

En la sección [PREDETERMINADO], si queremos recibir correos electrónicos de notificación de Fail2ban, agregue los siguientes elementos:

destemail = [email protected]
 action = %(action_mwl)s

Puede agregar direcciones IP, rangos de IP o hosts que desee excluir de la prohibición ignoreip Aquí debe agregar la dirección IP de su PC local y cualquier otra máquina que desee incluir en la lista blanca.

Descomente la línea que comienza con ignoreip y agregue sus direcciones IP separadas por un espacio:

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

De forma predeterminada, el puerto utilizado para las conexiones ssh es el 22. Si usa un puerto diferente, necesita cambiar la configuración:

En la sección [sshd], en enabled = true agregamos el puerto:

port = LA_TUA_PORTA

Agreguemos la ruta del archivo de registro que vamos a usar:

logpath = /var/log/auth.log

Podemos cambiar la cantidad de intentos de inicio de sesión antes de ser baneados:

maxretry = 3

Resumen:


[DEFAULT]
 # Ban hosts for one hour:
 bantime = 3600
 destemail = [email protected]
 action = %(action_mwl)s
 ignoreip = TUO_IP

 # Override /etc/fail2ban/jail.d/00-firewalld.conf:
 banaction = iptables-multiport

 [sshd]
 enabled = true
 port = LA_TUA_PORTA
 logpath = /var/log/auth.log
 maxretry = 3

Guarde y cierre el archivo.

Reinicie Fail2ban:

sudo service fail2ban restart

Para verificar el estado de Fail2ban:

sudo fail2ban-client status

Desbloquear una dirección IP

Para desbloquear una dirección IP manualmente, escriba el siguiente comando desde la terminal:

fail2ban-client set sshd unbanip INDIRIZZO_IP

Cárceles Fail2ban

Fail2ban utiliza un concepto de cárcel. Una prisión describe un servicio e incluye filtros y acciones. Las entradas de registro que coinciden con el patrón de búsqueda se cuentan y las acciones correspondientes se realizan cuando se cumple una condición predefinida.

Fail2ban viene con varias cárceles para diferentes servicios. También puede crear sus propias configuraciones de cárcel.

De forma predeterminada, solo está habilitada la cárcel ssh. Para habilitar una cárcel, debe agregar enabled = true después del título de la cárcel. El siguiente ejemplo muestra cómo habilitar la cárcel proftpd:

[proftpd]

 port = ftp,ftp-data,ftps,ftps-data
 logpath = %(proftpd_log)s
 backend = %(proftpd_backend)s

La configuración que discutimos en la sección anterior se puede establecer por cárcel. Aquí hay un ejemplo:

[sshd]
 enabled = true
 maxretry = 3
 findtime = 1d
 bantime = 4w
 ignoreip = 127.0.0.1/8 23.34.44.55

Los filtros se encuentran en el /etc/fail2ban/filter.d, almacenados en un archivo con el mismo nombre que la cárcel. Si tiene una configuración personalizada y experiencia con expresiones regulares, puede ajustar los filtros.

Siempre que se cambia un archivo de configuración, el servicio Fail2ban debe reiniciarse para que los cambios surtan efecto:

sudo systemctl restart fail2ban

Conclusión

La instalación y configuración de Fail2ban en Ubuntu 20.04 LTS Focal Fossa ha finalizado.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.