Este artículo describe cómo instalar el servicio Fail2Ban en Ubuntu 20.04.
¿Qué es Fail2Ban?
Fail2Ban es un software de prevención de intrusiones que puede usar para proteger los servidores de amenazas maliciosas, como ataques de fuerza bruta.
Requisitos
Antes de instalar Fail2Ban, es una buena práctica asegurarse siempre de que su servidor esté actualizado. Ejecute el siguiente comando para actualizar las versiones actuales de los paquetes instalados en su servidor:
root@server-01:~# sudo apt-get upgrade
Instalar Fail2Ban
Ejecute el siguiente comando para comenzar la instalación:
root@server-01:~# sudo apt-get install fail2ban
Verifique que Fail2Ban esté instalado y ejecutándose con el siguiente comando:
root@server-01:~# sudo systemctl status fail2ban
fail2ban.service - Fail2Ban Service
Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor preset>
Active: active (running) since Fri 2020-07-31 00:23:21 UTC; 42min ago
Si Fail2ban no se está ejecutando en ningún momento, puede iniciarlo con el siguiente comando:
root@server-01:~# sudo systemctl start fail2ban
Configure Fail2Ban para que comience en el arranque con el siguiente comando:
root@server-01:~# sudo systemctl enable fail2ban
Synchronizing state of fail2ban.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable fail2ban
Configurar Fail2Ban
No debe actualizar los archivos de configuración predeterminados de Fail2Ban, fail2ban.conf y jail.conf . En su lugar, cree nuevos archivos vacíos fail2ban.local y jail.local o copie el .conf archivos para crear el .local archivos.
Puede copiar el .conf existente archivo para crear el .local archivo con el siguiente comando:
root@server-01:~# sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Realice cualquier cambio de configuración de Fail2Ban solo en .local archivos utilizando su editor de texto favorito. Los siguientes ejemplos son elementos comúnmente configurados:
- ignorar IP :direcciones especificadas que no están prohibidas por criterios.
- hora de la fiesta :tiempo especificado que dura la prohibición.
- reintento máximo :Número especificado de fallas de inicio de sesión, antes de ser prohibido.
Muchos otros campos son configurables y puede encontrar esas descripciones dentro de .local archivo.
El siguiente ejemplo muestra una configuración de prohibición básica dentro de jail.local archivo y establece el bantime
a 10 minutos y maxretry
a tres intentos.
# "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 = 3
El siguiente ejemplo muestra tres intentos fallidos de inicio de sesión y la prohibición de la dirección IP resultante.
[user@test ~]$ ssh [email protected]
[email protected]'s password:
Permission denied, please try again.
[email protected]'s password:
Permission denied, please try again.
[email protected]'s password:
Permission denied (publickey,password).
[user@test ~]$ ssh [email protected]
ssh: connect to host 23.253.159.172 port 22: Connection refused