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 18.10.
Si su intención es instalar Fail2ban en un servidor remoto, continúe leyendo; de lo contrario, si desea instalar Fail2ban en su computadora local, 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á la contraseña para la autenticación.
Para conectarse al servidor como root, escriba este comando:
ssh root@IP_DEL_SERVER
A continuación, se le pedirá que ingrese la contraseña del usuario root.
Si no usa el usuario root, puede iniciar sesión con otro nombre de usuario usando el mismo comando, luego cambie el primer parámetro:
ssh VOSTRO_UTENTE@IP_DEL_SERVER
Luego se le pedirá que ingrese su contraseña de usuario.
Ahora está conectado a su servidor, está listo para iniciar la instalación de Fail2ban.
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
Guarde y cierre el archivo.
Hemos configurado un nuevo tiempo bantime predeterminado de una hora para todos los servicios.
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
Configuración
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
Podemos agregar una dirección IP permanente, como la de nuestro equipo, para que sea ignorada, para que nunca sea bloqueada:
ignoreip = MIO_IP
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
Agregamos la ruta del archivo de registro que vamos a utilizar:
logpath = /var/log/auth.log
Podemos cambiar el número de intentos de inicio de sesión antes de ser baneado:
maxretry = 3
Resumen:
[DEFAULT]
# Ban hosts for one hour:
bantime = 3600
destemail = [email protected]
action = %(action_mwl)s
ignoreip = MIO_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
Si desea establecer una prohibición permanente, cambie el valor del parámetro bantime a -1:
...
bantime = -1...
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 el terminal:
fail2ban-client set sshd unbanip INDIRIZZO_IP
Conclusión
La instalación y configuración de Fail2ban en Ubuntu 18.10 ha finalizado.