Nginx Proxy Manager · 1 min
El gestor de contraseñas del móvil me dejó sin Jellyfin: fail2ban y una sola IP para todo
Delante de mis servicios tengo un proxy inverso (Nginx Proxy Manager) y, vigilando su registro, fail2ban. La regla era sencilla: si una IP acumula 30 accesos rechazados en 5 minutos, queda bloqueada 24 horas. Para frenar robots que prueban contraseñas, funciona.
Hasta que un día, fuera de casa, Jellyfin no cargaba. Ni Jellyfin ni nada de lo que pasa por el proxy.
El atacante era mi móvil
En el registro de fail2ban estaba la IP desde la que me conectaba, bloqueada. ¿Quién había generado tantos rechazos? La app del gestor de contraseñas (Bitwarden, contra mi propio servidor Vaultwarden). Con la sesión caducada, la app reintentaba sola una y otra vez en segundo plano. Cada intento era un rechazo, y en pocos minutos pasó de 30.
Y como el bloqueo se hace por IP y para todo el proxy, no solo se cerró el gestor de contraseñas: se cerró todo, Jellyfin incluido. Encima, en redes donde mucha gente sale por la misma IP pública (una universidad, una empresa, el wifi de un hotel), un solo móvil puede dejar sin acceso a todos los demás.
Qué cambié
- Reglas distintas para cada servicio. Los rechazos de la app de contraseñas no deberían contar igual que alguien probando claves en el panel de administración. En fail2ban se puede tener un jail por servicio, cada uno con su filtro y su umbral.
- Bloquear solo el servicio implicado cuando se pueda, no todo el proxy.
- Redes privadas y la VPN en la lista blanca (
ignoreip), para no bloquearte desde casa o desde Tailscale. - Saber cómo desbloquearte rápido desde fuera:
fail2ban-client status
fail2ban-client set <jail> unbanip <ip>Y lo más práctico de todo: cuando la app del gestor de contraseñas te pida volver a iniciar sesión, hazlo en ese momento. Si la dejas dando vueltas en segundo plano, es ella la que acaba tumbándote.
Lo que me llevé de esto
- Un bloqueo por IP para todo el proxy es una medida gruesa: protege, pero también castiga a usuarios legítimos que comparten IP.
- Antes de poner un umbral, piensa qué clientes legítimos fallan mucho: apps con sesión caducada, sincronizadores, televisiones…
- Si «de repente no funciona nada desde fuera» y en casa sí, mira fail2ban antes que el router.