La seguridad de los accesos remotos es un pilar innegociable para cualquier SysAdmin. Los ataques de fuerza bruta contra el puerto 22 son constantes y, si bien herramientas como Fail2Ban son el estándar, entender qué ocurre «bajo el capó» es vital para la resolución de problemas y la automatización. Cuando los logs de autenticación crecen descontroladamente, la capacidad de filtrar y bloquear en tiempo real es una habilidad diferenciadora.
Análisis en tiempo real
Para identificar los atacantes más persistentes sin depender de herramientas de terceros, podemos utilizar el comando nativo journalctl (en sistemas basados en systemd). Es más eficiente que parsear archivos de texto plano constantemente:
Identificar las 10 IPs con más intentos fallidos en la última hora
$ journalctl _SYSTEMD_UNIT=ssh.service | grep "Failed password" | grep -oE "\b([0-9]{1,3}.){3}[0-9]{1,3}\b" | sort | uniq -c | sort -nr | head -n 10
Si el volumen de ataques es alto, la respuesta manual es insuficiente. La automatización mediante un simple script en Bash que alimente una cadena de iptables o nftables es una solución rápida para entornos sin EDR/XDR:
Bloqueo rápido mediante iptables
BLOCK_IP="1.2.3.4"
sudo iptables -A INPUT -s $BLOCK_IP -j DROP
echo "IP $BLOCK_IP bloqueada exitosamente."
Estrategias de Mitigación y Endurecimiento
El bloqueo es una reacción; el hardening es la verdadera defensa. Para minimizar el riesgo:
- Autenticación Basada en Claves: Deshabilita completamente el acceso por contraseña en /etc/ssh/sshd_config con PasswordAuthentication no. Es la medida más efectiva.
- Limitación de Acceso: Utiliza la directiva AllowUsers para restringir qué cuentas pueden iniciar sesión.
- Hardening de SSH: Modifica MaxAuthTries a un valor bajo (ej. 3) y LoginGraceTime a 30s.
- Monitoreo Centralizado: Si gestionas más de 5 servidores, no analices logs individualmente. Implementa un agente de Wazuh para centralizar los eventos de seguridad y generar alertas automáticas cuando un umbral de intentos fallidos sea superado en múltiples nodos.
- Protección de Red: Considera mover SSH a un puerto no estándar (ej. 2222) para reducir el ruido en los logs, aunque esto solo sirva contra scripts básicos de escaneo masivo.
0 comentarios