fail2ban escanea archivos logs como por ejemplo /var/log/auth.log y bloquea direcciones IP con multiples intentos de login. Lleva a cabo esta tarea actualizando las normas del cortafuegos.
Instalación
sudo apt install fail2ban
Configuración
fail2ban tiene una configuración en el directorio /etc/fail2ban. Allí encontraras un archivado de configuración llamado jail.conf
Crearemos un archivo jail.local para customizar nuestro fail2ban haciendo una copia del archivo jail.conf que contendrá las configuraciones por defecto.
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
para editar el fichero usaremos el siguiente comando:
sudo nano etc/fail2ban/jail.local
No hay detalles de como he configurado el fail2ban porque la configuración por defecto ya era suficiente para bloquear cierto trafico. Ampliar esta sección en un futuro.
Poner en marcha el servicio
Usaremos el commando systemctl que se encargara de que el servicio fail2ban se inicie en nuestra maquina.
para activar el servicio:
sudo systemctl enable fail2ban
para ver si corre el servicio:
sudo systemctl status fail2ban
● fail2ban.service - Fail2Ban Service Loaded: loaded (/lib/systemd/system/fail2ban.service; > Active: active (running) since Thu 2024-03-28 18:35:11> Docs: man:fail2ban(1) Main PID: 585 (fail2ban-server) Tasks: 5 (limit: 2168) Memory: 22.0M CPU: 27.467s CGroup: /system.slice/fail2ban.service └─585 /usr/bin/python3 /usr/bin/fail2ban-serve> Mar 28 18:35:11 v0y.cc systemd[1]: Started fail2ban.service>
Nota: Si vas a testear fail2ban ten en cuenta de que baneara tu IP y estarás bloqueado de acceder a tu servidor durante 10 minutos que es la configuración por defecto del sistema.
Para ver las IPs bloqueadas en tu sistema puedes utilizar el comando siguiente:
sudo iptables -S
-P INPUT ACCEPT -P FORWARD ACCEPT -P OUTPUT ACCEPT -N f2b-sshd -A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd -A f2b-sshd -s <ip baneada> -j REJECT --reject-with icmp-port-unreachable -A f2b-sshd -j RETURN
sudo iptables -S | grep f2b