Todo panel en una dirección pública lo prueban sin descanso máquinas que recorren listas de nombres de usuario y contraseñas filtradas. El volumen no es señal de que le tengan a usted en el punto de mira. Se convierte en brecha en el instante en que una cuenta lleva una contraseña que figura en una de esas listas.
Vea qué está pasando
sudo grep -c "Failed password" /var/log/auth.log
sudo awk '/Failed password/ {print $(NF-3)}' /var/log/auth.log | sort | uniq -c | sort -rn | head
Las cuatro que lo acaban
- Doble factor en cada cuenta de administración. Una contraseña correcta deja de bastar por sí sola: vea doble factor en el panel.
- Límite de tasa, para que una máquina tenga un puñado de intentos por minuto y no miles: vea limitar un punto de acceso.
- Fail2ban, para vetar la dirección tras unos pocos fallos: vea qué detiene Fail2ban.
- Ninguna cuenta compartida. Una persona, un acceso, para que una baja sea una sola baja.
Renombre admin, y no se fíe de eso
Cambiar el nombre de usuario evidente quita casi todo el ruido automático, porque las listas son cortas en nombres y largas en contraseñas. No es protección: el nombre suele poder averiguarse desde el propio sitio.
Restrinja desde dónde responde el panel siquiera
# nginx: the panel only answers to the office
location /admin/ {
allow 203.0.113.0/24;
deny all;
}
Un acceso con éxito desde un país inesperado, a una hora rara, tras una larga racha de fallos: ese es el patrón que importa. Avise sobre el éxito, no sobre los fallos: los fallos son constantes y todo el mundo acaba por no leerlos.
Si descubre que una cuenta fue tomada, cambiar esa contraseña no cierra el asunto. Lea detectar un sitio comprometido antes de dar por hecho que no llegó más lejos.