lunes, 27 de mayo de 2024

Seguridad para conexiones remotas con fail2ban


Cuando no estoy delante de mi equipo y necesito algo, me conecto a él por SSH, que es una manera segura y cómoda de hacer casi cualquier cosa que necesite.

El problema es que “los malos” también pueden lograr conectarse. Voy a tratar de ponérselo un poco más difícil estableciendo un baneo por IP tras unos cuantos intentos de acceso infructuosos. Al menos, que les cueste más tiempo acceder a mis fotos de primera comunión.


No voy a hacer nada sofisticado, solo voy a instalar fail2ban, que es una aplicación que monitorea los intentos infructuosos de acceso a los servicios que yo le indique y si fallan un determinado número de veces, bloquean el acceso desde esa IP durante un tiempo. Yo solo lo voy a utilizar para SSH, pero fail2ban sirve para un montón de aplicaciones.

Para instalarlo, paseíto por Synaptic e instalación de fail2ban y sus dependencias. Nada complicado o que no sepamos hacer.

Una vez instalado, debemos asegurarnos de que se inicia al arrancar el equipo, para que siempre estemos protegidos y no dependamos de haber recordado iniciarlo

  • sudo systemctl enable fail2ban.service

Para configurarlo podríamos tocar su fichero de configuración y editarlo al gusto, pero por todas partes dicen que no debemos hacerlo, por si alguna actualización sobrescribe el fichero y perdemos el trabajo de configuracion, así que vamos a crear un fichero de configuración independiente.

  • sudo nano /etc/fail2ban/jail.local

¿Y cómo rellenamos el ficherito? Bueno, pues puedes copiar lo siguiente

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
findtime = 300
bantime = 3600

Como estamos hablando de seguridad, no te voy a pedir que copies y pegues sin más y te voy a explicar para que sirve ese galimatías.

[sshd]        El servicio que vamos a controlar.
enabled      Aqui decimos si lo monitorizamos o no
port            El puerto a escuchar, por si lo has cambiado
filter           Que demonio presta el servicio
logpath       Donde está el log que debe escuchar
maxretry     Cuantos reintentos antes del bloqueo
findtime     En cuanto tiempo se deben producir los fallos
bantime     Tiempo de baneo

Una vez guardado el fichero, reiniciamos el servicio para que surta efecto.

  • sudo systemctl restart fail2ban.service

Si quieres probar que el servicio está funcionando

  • sudo fail2ban-client status

Pero la prueba de fuego es cometer 4 fallos en menos de 5 minutos y comprobar que efectivamente, nos manda a freír espárragos y esperar una horita para ver que ahora si nos deja entrar. Aquí lo estoy probando desde un Windows y al cuarto intento, mi equipo ni contesta. 


Solo has bloqueado la IP desde la que has fallado el acceso, pero si quieres desbloquearla sin tener que esperar...

  • sudo fail2ban-client set sshd unbanip [dirección_IP]

Y ya tenemos otra capita más de seguridad en mi equipo.

No hay comentarios:

Publicar un comentario

prekes sodui