· 2 min de lectura · hardening · ssh
Las 12 verificaciones de SSH en el hardening de atalince
Qué comprueba cada directiva de sshd, por qué importa y cómo ver el valor que realmente está vigente.
El hardening de atalince tiene 36 verificaciones. Doce son sobre el servidor SSH, la puerta de entrada más atacada de cualquier servidor Linux expuesto. Este texto recorre cada una.
Antes: mira el valor efectivo
sshd_config no cuenta toda la historia. Los archivos en sshd_config.d/, los bloques Match y los valores por defecto cambian el resultado final. Para ver lo que realmente está vigente:
sudo sshd -T | grep -Ei 'permitrootlogin|passwordauthentication|permitemptypasswords|x11forwarding|strictmodes|pubkeyauthentication|hostbasedauthentication|ignorerhosts|permituserenvironment|maxauthtries|logingracetime|maxsessions'
El agente de atalince hace exactamente eso: lee la salida de sshd -T, y cada ítem en el panel muestra el valor leído. Abajo, qué espera cada verificación y su severidad en el panel.
Acceso y autenticación
PermitRootLogin. Entrar directo como root le da al atacante el blanco más valioso con un usuario ya conocido. atalince espera no. Severidad alta.
PasswordAuthentication. Las contraseñas se pueden adivinar; las claves, en la práctica, no. Con claves configuradas, no elimina la fuerza bruta por contraseña de una vez. Espera no, severidad alta.
PermitEmptyPasswords. Una cuenta sin contraseña nunca debería abrir una sesión remota. Espera no, la única verificación de SSH con severidad crítica.
PubkeyAuthentication. Es lo que permite apagar las contraseñas sin perder el acceso. Espera yes, severidad media.
HostbasedAuthentication. Confiar en el host de origen en lugar del usuario es un modelo antiguo. Espera no, severidad alta.
IgnoreRhosts. Ignora los archivos .rhosts y .shosts, herencia de rsh. Espera yes, severidad alta.
Entorno y sesión
X11Forwarding. Reenviar la interfaz gráfica rara vez tiene sentido en un servidor y amplía la superficie de ataque. Espera no, severidad baja.
StrictModes. Hace que sshd compruebe los permisos de los archivos del usuario antes de aceptar la clave. Espera yes, severidad media.
PermitUserEnvironment. Dejar que el usuario defina variables de entorno por SSH abre una vía para esquivar restricciones. Espera no, severidad alta.
Límites
MaxAuthTries. Cuántos intentos por conexión antes de desconectar. Valores bajos hacen la fuerza bruta más lenta y más visible. Espera de 1 a 4, severidad media.
LoginGraceTime. Cuánto tiempo puede quedar una conexión sin autenticarse. Plazos cortos reducen las conexiones colgadas. Espera de 1 a 60 segundos, severidad media.
MaxSessions. Cuántas sesiones pueden compartir una misma conexión. Espera de 1 a 10, severidad baja.
La nota solo aparece con cobertura total
Las 36 verificaciones forman una nota de A a F, pero solo cuando todas pudieron comprobarse. Si el agente no logró leer alguna, la nota no aparece. Una nota calculada con huecos sería un número inventado.
¿Y las otras 24?
Ocho son permisos de archivos sensibles, como /etc/shadow y el authorized_keys de root. Ocho son parámetros del kernel y del sistema de archivos, como ASLR y enlaces protegidos. Y ocho son de la pila IPv4, como SYN cookies y redirects. Míralas todas en Evaluaciones de seguridad.
atalince señala lo que está fuera de lo recomendado y muestra la evidencia. El cambio queda en tus manos: el hardening es solo lectura.