Cualquier servicio que esté expuesto a Internet corre el riesgo de sufrir ataques de malware. Por ejemplo, si está ejecutando un servicio en una red disponible públicamente, los atacantes pueden usar intentos de fuerza bruta para iniciar sesión en su cuenta.
Fail2ban es una herramienta que ayuda a proteger su máquina Linux de la fuerza bruta y otros ataques automatizados al monitorear los registros de servicios en busca de actividad maliciosa. Utiliza expresiones regulares para escanear archivos de registro. Se cuentan todas las entradas que coinciden con los patrones y, cuando su número alcanza un determinado umbral predefinido, Fail2ban bloquea la IP infractora mediante el cortafuegos del sistema durante un período de tiempo específico. Cuando expira el período de prohibición, la dirección IP se elimina de la lista de prohibición.
Este artículo describe cómo instalar y configurar Fail2ban en Ubuntu 20.04.
Instalación de Fail2ban en Ubuntu
El paquete Fail2ban está incluido en los repositorios predeterminados de Ubuntu 20.04. Para instalarlo, ingrese el siguiente comando como root o usuario con privilegios sudo :
sudo apt update
sudo apt install fail2ban
Una vez completada la instalación, el servicio Fail2ban se iniciará automáticamente. Puedes comprobarlo consultando el estado del servicio:
sudo systemctl status fail2ban
La salida se verá así:
● fail2ban.service - Fail2Ban Service
Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2020-08-19 06:16:29 UTC; 27s ago
Docs: man:fail2ban(1)
Main PID: 1251 (f2b/server)
Tasks: 5 (limit: 1079)
Memory: 13.8M
CGroup: /system.slice/fail2ban.service
└─1251 /usr/bin/python3 /usr/bin/fail2ban-server -xf start
Eso es. En este punto, tiene Fail2Ban ejecutándose en su servidor Ubuntu.
Configuración de Fail2ban
La instalación predeterminada de Fail2ban viene con dos archivos de configuración /etc/fail2ban/jail.conf
y /etc/fail2ban/jail.d/defaults-debian.conf
. No se recomienda modificar estos archivos, ya que pueden sobrescribirse cuando se actualiza el paquete.
Fail2ban lee los archivos de configuración en el siguiente orden. Cada .local
archivo anula la configuración del .conf
archivo:
/etc/fail2ban/jail.conf
/etc/fail2ban/jail.d/*.conf
/etc/fail2ban/jail.local
/etc/fail2ban/jail.d/*.local
Para la mayoría de los usuarios, la forma más fácil de configurar Fail2ban es copiar jail.conf
y jail.local
modificar el .local
archivo. Los usuarios más avanzados pueden crear un .local
archivo de configuración desde cero. El .local
archivo no tiene que incluir todas las configuraciones del .conf
archivo correspondiente, solo aquellas que desea anular.
Cree un .local
archivo de configuración a partir del jail.conf
archivo predeterminado:
sudo cp /etc/fail2ban/jail.{conf,local}
Para empezar a configurar el servidor Fail2ban abre el jail.local
archivo con tu editor de texto :
sudo nano /etc/fail2ban/jail.local
El archivo incluye comentarios que describen lo que hace cada opción de configuración. En este ejemplo, cambiaremos la configuración básica.
Lista blanca de direcciones IP
Las direcciones IP, los rangos de IP o los hosts que desea excluir de la prohibición se pueden agregar a la ignoreip
directiva. Aquí debe agregar la dirección IP de su PC local y todas las demás máquinas que desea incluir en la lista blanca.
Descomente la línea que comienza con ignoreip
y agregue sus direcciones IP separadas por espacios:
ignoreip = 127.0.0.1/8 ::1 123.123.123.123 192.168.1.0/24
Configuración de prohibición
Los valores de bantime
, findtime
y maxretry
opciones definen el tiempo de prohibición y las condiciones de prohibición.
bantime
es la duración durante la cual la IP está prohibida. Cuando no se especifica ningún sufijo, el valor predeterminado es segundos. De forma predeterminada, el bantime
valor se establece en 10 minutos. En general, la mayoría de los usuarios querrán establecer un tiempo de prohibición más largo. Cambia el valor a tu gusto:
bantime = 1d
Para prohibir permanentemente la IP, use un número negativo.
findtime
es la duración entre el número de fallas antes de que se establezca una prohibición. Por ejemplo, si Fail2ban está configurado para prohibir una IP después de cinco fallas ( maxretry
, vea a continuación), esas fallas deben ocurrir dentro de la findtime
duración.
findtime = 10m
maxretry
es el número de fallos antes de que se prohíba una IP. El valor predeterminado se establece en cinco, lo que debería estar bien para la mayoría de los usuarios.
maxretry = 5
Notificaciónes de Correo Electrónico
Fail2ban puede enviar alertas por correo electrónico cuando una IP ha sido prohibida. Para recibir correos electrónicos, debe tener un SMTP instalado en su servidor y cambiar la acción predeterminada, que solo prohíbe la IP a %(action_mw)s
, como se muestra a continuación:
action = %(action_mw)s
%(action_mw)s
prohíbe la IP infractora y envía un correo electrónico con un informe whois. Si desea incluir los registros relevantes en el correo electrónico, establezca la acción en %(action_mwl)s
.
También puede ajustar las direcciones de correo electrónico de envío y recepción:
destemail = admin@velozega.com
sender = root@velozega.com
Cárceles Fail2ban
Fail2ban utiliza un concepto de cárceles. Una cárcel describe un servicio e incluye filtros y acciones. Se cuentan las entradas de registro que coinciden con el patrón de búsqueda y, cuando se cumple una condición predefinida, se ejecutan las acciones correspondientes.
Fail2ban se envía con un número de cárcel para diferentes servicios. También puede crear sus propias configuraciones de cárcel.
De forma predeterminada, solo la cárcel ssh está habilitada. 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]
enabled = true
port = ftp,ftp-data,ftps,ftps-data
logpath = %(proftpd_log)s
backend = %(proftpd_backend)s
Las configuraciones que discutimos en la sección anterior, se pueden 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.45.56
Los filtros están ubicados en el /etc/fail2ban/filter.d
directorio, 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.
Cada vez que edite un archivo de configuración, debe reiniciar el servicio Fail2ban para que los cambios surtan efecto:
sudo systemctl restart fail2ban
Cliente Fail2ban
Fail2ban se envía con una herramienta de línea de comandos fail2ban-client
que puede usar para interactuar con el servicio Fail2ban.
Para ver todas las opciones disponibles, invoque el comando con la -h
opción:
fail2ban-client -h
Esta herramienta se puede usar para prohibir/desbanear direcciones IP, cambiar configuraciones, reiniciar el servicio y más. Aquí están algunos ejemplos:
Compruebe el estado de la cárcel:
sudo fail2ban-client status sshd
Desbanear una IP:
sudo fail2ban-client set sshd unbanip 23.34.45.56
Prohibir una IP:
sudo fail2ban-client set sshd banip 23.34.45.56
Conclusión
Le mostramos cómo instalar y configurar Fail2ban en Ubuntu 20.04.
Para obtener más información sobre este tema, visite la documentación de Fail2ban .
Si tiene preguntas, no dude en dejar un comentario a continuación.
0 Comentarios