Instalar Fail2Ban en tu VPS Linux

Asegura tu VPS ante accesos no permitidos instalando Fail2Ban, un simple programa que va a proteger el acceso SSH.
1. Conéctate a tu VPS vía SSH, o abre una conexión VNC e ingresa tu usuario y contraseña.
2. Actualiza tu servidor.
(Si no has cambiado los mirrors por defecto, te recomendamos encarecidamente que lo hagas ANTES de seguir. Son 3 simples comandos, y las instrucciones las tienes acá.)
Si usas Ubuntu o Debian, ingresa este comando:
apt update && apt upgrade -y
Si usas CentOS 8-9, Rocky Linux 8-9, Alma Linux 8-9 u Oracle Linux 8-9, ingresa este comando:
dnf update && dnf install epel-release -y
Si usas CentOS 7, ingresa este comando:
yum update && yum install epel-release -y
3. Instala Fail2Ban.
Si usas Ubuntu o Debian, ingresa este comando:
apt install -y fail2ban
Si usas CentOS Stream 8-9, Rocky Linux 8-9, Alma Linux 8-9 u Oracle Linux 8-9, ingresa este comando:
dnf install -y fail2ban
Si usas CentOS 7, ingresa este comando:
yum install -y fail2ban
4. Inicia y deja activado Fail2Ban. Ingresa estos comandos:
systemctl start fail2ban
systemctl enable fail2ban
5. Copia las configuraciones para que no se sobreescriban con las actualizaciones. Ingresa estos comandos:
cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
6. Finalmente reinicia Fail2Ban. Ingresa este comando:
systemctl restart fail2ban
7. Verifica que el programa está funcionando correctamente escribiendo este comando:
fail2ban-client status
Si muestra algo como esto:
Status
|- Number of jail: 1
`- Jail list: sshd
Entonces está funcionando correctamente. Ya tienes el acceso SSH a tu servidor asegurado contra ataques de fuerza bruta.
Puedes crear diferentes reglas para lo que necesites. Más información sobre Fail2Ban en la página oficial: https://www.fail2ban.org
Si muestra algo como esto:
ERROR Failed to access socket path: /var/run/fail2ban/fail2ban.sock. Is fail2ban running?
Tienes que modificar la configuración que viene por defecto:
1. En el terminal abre la configuración:
vi /etc/fail2ban/jail.local
2. Busca esta parte:
[sshd]
# To use more aggressive sshd modes set filter parameter "mode" in jail.local:
# normal (default), ddos, extra or aggressive (combines all).
# See "tests/files/logs/sshd" or "filter.d/sshd.conf" for usage example and details.
#mode = normal
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
3. Cambia la última línea por esto:
backend = systemd
4. Tiene que quedar así:
[sshd]
# To use more aggressive sshd modes set filter parameter "mode" in jail.local:
# normal (default), ddos, extra or aggressive (combines all).
# See "tests/files/logs/sshd" or "filter.d/sshd.conf" for usage example and details.
#mode = normal
port = ssh
logpath = %(sshd_log)s
backend = systemd
5. Guarda y cierra el editor:
:wq
6. Reinicia Fail2Ban:
systemctl restart fail2ban
7. Verifica que el programa está funcionando correctamente escribiendo este comando:
fail2ban-client status
Si muestra algo como esto:
Status
|- Number of jail: 1
`- Jail list: sshd
Listo! Ya tienes el acceso SSH a tu servidor asegurado contra ataques de fuerza bruta.
Puedes crear diferentes reglas para lo que necesites. Más información sobre Fail2Ban en la página oficial: https://www.fail2ban.org
|- Number of jail: 1
`- Jail list: sshd
# To use more aggressive sshd modes set filter parameter "mode" in jail.local:
# normal (default), ddos, extra or aggressive (combines all).
# See "tests/files/logs/sshd" or "filter.d/sshd.conf" for usage example and details.
#mode = normal
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
# To use more aggressive sshd modes set filter parameter "mode" in jail.local:
# normal (default), ddos, extra or aggressive (combines all).
# See "tests/files/logs/sshd" or "filter.d/sshd.conf" for usage example and details.
#mode = normal
port = ssh
logpath = %(sshd_log)s
backend = systemd
|- Number of jail: 1
`- Jail list: sshd