SSH y fuerza bruta
Cómo detecta InfraFence la fuerza bruta SSH con 15 patrones de registro y bloquea a los atacantes durante periodos crecientes, y cómo protege los accesos al correo, las bases de datos y FTP.
Última actualización:
Qué lee
En los servidores con systemd, el agente lee los mensajes de autenticación SSH del journal (las facilities auth y authpriv), así que las distribuciones sin rsyslog también quedan cubiertas. En los demás casos, o en un contenedor, lee /var/log/auth.log o /var/log/secure. AUTH_LOG_PATH le indica un archivo no estándar. El registro del agente indica la fuente: reading authentication messages from ….
Los 15 patrones
Nueve patrones detectan autenticaciones fallidas: contraseñas y claves fallidas, usuarios inválidos o ilegales, fallos de autenticación PAM, maximum authentication attempts exceeded, desconexiones por fallo de autenticación, usuarios no permitidos, accesos de root rechazados, rechazos de TCP wrappers y desconexiones de usuarios inválidos antes de la autenticación.
Otros seis detectan escaneos antes de la autenticación: sin cadena de identificación, versión de protocolo incorrecta, negociación de intercambio de claves fallida, errores en el intercambio de banners, conexiones cerradas o reiniciadas antes de la autenticación y tiempos de espera agotados antes de la autenticación.
Cuándo se bloquea una dirección
Una dirección se bloquea cuando sus intentos fallidos alcanzan el umbral dentro de la ventana: por defecto 5 intentos en 60 segundos, configurable en Ajustes › Agente (Umbral de fuerza bruta (intentos fallidos), Ventana de fuerza bruta (segundos)). Cada bloqueo se notifica al panel como evento crítico brute_force.
Una dirección de un país que bloqueas se bloquea en su primer intento. Una dirección de la lista blanca nunca se bloquea.
Cuánto dura un bloqueo
Ajustes › Agente › Duración de los bloqueos:
- Creciente: 24 horas, 7 días, 30 días y luego permanente (por defecto): cada nuevo bloqueo de la misma dirección dura más;
- o siempre 1 hora, 24 horas, 7 días, 30 días o permanente.
Un bloqueo empieza en el servidor al instante y dura 24 horas hasta que el panel fija su caducidad definitiva. Los bloqueos caducan a su hora en el servidor aunque el panel no esté disponible, y sobreviven a los reinicios.
Desde la pestaña Red del servidor puedes usar Cambiar duración, Desbloquear ahora o Añadir a la lista blanca en cualquier bloqueo activo. Con Banear en todos los servidores activado, una dirección bloqueada en un servidor se bloquea en todos los servidores de la organización.
Cómo se aplica el bloqueo
Los bloqueos van al ipset infrafence-bans, cuyo tráfico se descarta en la cadena propia del agente INFRAFENCE, a la que salta INPUT (y DOCKER-USER, para los puertos de los contenedores). Con ipset el agente mantiene hasta 65.000 bloqueos; sin él, una regla de firewall por dirección, hasta 500. Al llegar al límite, los bloqueos más antiguos dejan sitio, con una advertencia.
El agente nunca bloquea direcciones de loopback, link-local ni privadas, las direcciones del propio servidor, la dirección del panel ni las direcciones de la lista blanca, aunque se le pida.
Correo, bases de datos y FTP
La misma detección cubre los demás servicios que aceptan inicios de sesión, con un umbral fijo de 5 intentos fallidos en 5 minutos:
| Servicio | Registros que lee |
|---|---|
| Postfix, Dovecot, Roundcube | /var/log/mail.log, /var/log/maillog, /var/log/dovecot.log |
| MySQL, MariaDB | /var/log/mysql/error.log, /var/log/mysqld.log, /var/log/mariadb/mariadb.log |
| PostgreSQL | /var/log/postgresql/ y los directorios pg_log |
| MongoDB | /var/log/mongodb/mongod.log, /var/log/mongod.log |
| vsftpd, ProFTPD, Pure-FTPd | /var/log/vsftpd.log, /var/log/proftpd/proftpd.log, el registro de autenticación del sistema para Pure-FTPd |
MAIL_LOG_PATH, DB_LOG_PATH y FTP_LOG_PATH sustituyen a los archivos detectados. Un vigilante que no tiene nada que leer lo indica en el registro, por ejemplo [mailwatcher] no mail service found — mail attack detection disabled.
Modo monitor
Con el Modo monitor (solo detectar, nunca bloquear) activado, cada intento se sigue detectando y notificando, y no se bloquea nada.
