Archivos Mensuales: agosto 2023

fail2ban en Debian 12 bookworm: Mola… Si te sabes este truquito

fail2ban es un invento estupendo, independientemente de lo bien que creamos que un servidor está protegido del mundanal ruido.

En los tiempos que corren, pensar que una red es «segura» porque está detrás de un cortafuegos es equivalente a apuntar con un arma de fuego cargada a los genitales y hacer lo posible por tener un ataque de hipo.

Así las cosas, una de las formas más sencillas y eficaces de mejorar la seguridad de nuestro servidor, es instalar fail2ban. Siempre ha sido uno de esos servicios de instalar y olvidar, especialmente en Debian, donde simplemente:

sudo apt-get install fail2ban

era lo que había que hacer para tener al menos el ssh con este extra de seguridad.

Pero eso se acabó… Brevemente, en Debian 12 bookworm. ¿Por qué? Bueno, pues tras rebuscar un rato, porque no se acaba de llevar del todo bien con systemd (con la iglesia hemos topado):

Aug 22 09:25:26 nuevadb fail2ban-server[350]: 2023-08-22 09:25:26,534 fail2ban [350]: ERROR Failed during configuration: Have not found any log file for sshd jail
Aug 22 09:25:26 nuevadb fail2ban-server[350]: 2023-08-22 09:25:26,542 fail2ban [350]: ERROR Async configuration of server failed
Aug 22 09:25:26 nuevadb systemd[1]: fail2ban.service: Main process exited, code=exited, status=255/EXCEPTION
Aug 22 09:25:26 nuevadb systemd[1]: fail2ban.service: Failed with result 'exit-code'.

En el caso que nos ocupa, el problema es que fail2ban para funcionar con systemd, vaya por $dios, necesita una librería que no tiene como dependencia.

Así que todos nuestros problemas mejorarán ostensiblemente simplemente:

alfredo@nuevadb:~$ sudo apt install python3-systemd

Seguido de un nuevo (probablemente esté en el history unas cuantas veces ya en este punto)

alfredo@nuevadb:~$ sudo systemctl start fail2ban

Pero la vida nunca es tan sencilla, ¿verdad?

En Bookworm, por defecto no hay syslog (qepd), y sshd larga sus miserias a systemd. Pero por algún motivo, fail2ban sigue creyendo en syslog; así que hay que convencerle de otra cosa. Por ejemplo:

alfredo@nuevadb:~$ sudo emacs /etc/fail2ban/jail.d/defaults-debian.conf

Y añadir la línea

backend = systemd

Ahora sí ya hemos terminado y podemos ooootra vez arrancar, ya con éxito, fail2ban.

Debian mola, salvo cuando te hacen una de estas. En fin. Hasta más ver.

Seguimiento de este problema en el github de fail2ban