Refuerzo de SSH y prácticas recomendadas de auditoría
Aplique el refuerzo de sshd_config, prácticas de rotación de claves y registros de auditoría para reforzar sus implementaciones de SSH.
Refuerzo de SSH y prácticas recomendadas de auditoría es una lección gratuita de Cryptology Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cryptology Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cryptology Academy incluye 4 lecciones en total.
Desactivación de la autenticación mediante contraseña
La medida de refuerzo de SSH con mayor impacto es establecer PasswordAuthentication no en /etc/ssh/sshd_config. Esto obliga a todos los usuarios a autenticarse con claves públicas, eliminando el riesgo derivado de contraseñas débiles o reutilizadas y de los ataques de fuerza bruta. Antes de desactivar la autenticación mediante contraseña, asegúrese de que haya instalada al menos una clave autorizada para evitar bloquearse el acceso.
Restricción de usuarios y grupos permitidos
Las directivas AllowUsers y AllowGroups restringen el acceso SSH a usuarios específicos o a miembros de determinados grupos. Por ejemplo, AllowGroups sshusers permite el acceso únicamente a los miembros del grupo sshusers. Esto proporciona defensa en profundidad: aunque un atacante conozca un nombre de usuario y obtenga sus credenciales, se deniega el acceso SSH a menos que la cuenta esté permitida explícitamente.
Cambio del puerto predeterminado
Cambiar SSH del puerto 22 a un puerto con un número alto es una medida de ocultación, no de seguridad. Sin embargo, reduce considerablemente el ruido en los registros generado por los escáneres automatizados que apuntan al puerto 22. Esto facilita el análisis de los registros para detectar amenazas reales. Mantenga siempre las reglas del firewall como control de acceso principal; la ocultación del puerto es solo una medida complementaria.
Desactivación del inicio de sesión de root
Establecer PermitRootLogin no impide la autenticación directa de root mediante SSH. Los atacantes que apuntan a root tienen un nombre de usuario válido garantizado y privilegios ilimitados si logran acceder. La configuración recomendada es PermitRootLogin prohibit-password, que permite iniciar sesión como root únicamente mediante autenticación con clave pública, bloqueando la fuerza bruta de root basada en contraseñas y conservando el acceso de emergencia.
Limitación de los intentos de autenticación
MaxAuthTries 3 limita a tres el número de intentos de autenticación por conexión. Después de tres fallos, el servidor termina la conexión. Esto ralentiza los intentos de fuerza bruta. Combinados con el retroceso exponencial de fail2ban o SSHGuard, que bloquean temporalmente las direcciones IP después de varios fallos, los ataques de fuerza bruta se vuelven inviables desde el punto de vista computacional.
Controles de tiempo de inicio de sesión
LoginGraceTime especifica cuánto tiempo espera el servidor una autenticación correcta antes de desconectar. El valor predeterminado es de 120 segundos; reducirlo a 20 segundos evita los intentos de fuerza bruta lentos y reduce los recursos retenidos por conexiones no autenticadas. ClientAliveInterval y ClientAliveCountMax controlan las comprobaciones del estado de la conexión para desconectar sesiones inactivas o interrumpidas.
Restricción de algoritmos criptográficos permitidos
Las configuraciones modernas de SSH deben restringir los algoritmos a opciones sólidas y actuales. En sshd_config, establezca Ciphers en chacha20-poly1305@openssh.com,aes256-gcm@openssh.com, establezca MACs en hmac-sha2-256-etm@openssh.com y establezca KexAlgorithms en curve25519-sha256. Esto elimina algoritmos obsoletos como arcfour, DES y los MAC basados en MD5, que podrían estar disponibles por compatibilidad con versiones anteriores.
Bloqueo de fuerza bruta con fail2ban
fail2ban supervisa los registros de autenticación y bloquea las direcciones IP que superan un umbral de intentos fallidos de inicio de sesión. Después de un número configurable de fallos dentro de un intervalo de tiempo, fail2ban añade una regla de iptables para descartar más paquetes de esa dirección IP. Esta respuesta automatizada hace que los ataques de fuerza bruta sean poco prácticos sin necesidad de intervención manual.
Auditoría con ssh-audit
La herramienta ssh-audit se conecta a un servidor SSH y evalúa su configuración: qué algoritmos de intercambio de claves, tipos de claves de host, cifrados y MAC ofrece, y señala las opciones obsoletas o débiles. Ejecutar ssh-audit en sus servidores antes y después de reforzar la configuración proporciona una evaluación objetiva del estado anterior y posterior, además de identificar posibles deficiencias de configuración.
Registro y auditoría de acceso
Los eventos de autenticación SSH se registran mediante syslog. En Linux, /var/log/auth.log (Debian) o /var/log/secure (RHEL) registra cada inicio de sesión correcto y fallido, junto con la marca de tiempo, el nombre de usuario, la IP de origen y la huella digital de la clave utilizada. Enviar estos registros a un SIEM centralizado permite detectar patrones de acceso inusuales, como inicios de sesión desde países inesperados o a horas poco habituales.
Ejemplo completo de configuración reforzada
Un sshd_config reforzado combina: PasswordAuthentication no, PermitRootLogin prohibit-password, MaxAuthTries 3, LoginGraceTime 20, AllowGroups sshusers, Ciphers y MACs restringidos, X11Forwarding no y AllowTcpForwarding no (a menos que se necesite tunneling). Cada directiva elimina un vector de ataque específico y, en conjunto, forman una postura de SSH basada en la defensa en profundidad.
Configuración para reforzar SSH
¿Qué configuración de sshd_config es la más eficaz para eliminar los ataques de fuerza bruta basados en contraseñas contra SSH?
Resumen del refuerzo de SSH
Lista de comprobación para reforzar SSH: desactive la autenticación mediante contraseña, restrinja el acceso con AllowGroups/AllowUsers, desactive el inicio de sesión de root o restrínjalo exclusivamente a claves, establezca MaxAuthTries 3, reduzca LoginGraceTime, restrinja los algoritmos únicamente a cifrados modernos, implemente fail2ban o SSHGuard, ejecute ssh-audit para obtener una evaluación objetiva y centralice los registros para detectar anomalías.
Aprende Cryptology Academy con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 67
- Lecciones
- 261
Preguntas frecuentes
¿La lección «Refuerzo de SSH y prácticas recomendadas de auditoría» es gratis?
Sí — el texto completo de «Refuerzo de SSH y prácticas recomendadas de auditoría» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cryptology Academy, actualiza a CoddyKit PRO. El curso de Cryptology Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Refuerzo de SSH y prácticas recomendadas de auditoría»?
Aplique el refuerzo de sshd_config, prácticas de rotación de claves y registros de auditoría para reforzar sus implementaciones de SSH. Practicas Cryptology Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Cryptology Academy?
No se requiere experiencia previa. Cryptology Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Refuerzo de SSH y prácticas recomendadas de auditoría»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Cryptology Academy?
Sí. Cada lección de Cryptology Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Handshake de SSH y autenticación mediante claves de host
- Autenticación con clave pública y agent forwarding
- Túneles SSH y técnicas de port forwarding
- Refuerzo de SSH y prácticas recomendadas de auditoría