Refuerzo del servidor SSH
Blinde su servidor SSH editando sshd_config: desactive los inicios de sesión de root y mediante contraseña, cambie los valores predeterminados arriesgados, restrinja los usuarios y aplique protecciones por capas para que solo se conecten clientes de confianza.
Refuerzo del servidor SSH es una lección gratuita de Linux Server Deployment & SSH Mastery 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 Linux Server Deployment & SSH Mastery, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Linux Server Deployment & SSH Mastery incluye 4 lecciones en total.
¿Por qué reforzar SSH?
Un servidor SSH expuesto a Internet es un objetivo constante de ataques automatizados. La configuración predeterminada deja varias puertas abiertas que los bots comprueban sin descanso.
Reforzar la seguridad significa ajustar la configuración del servidor para que, aunque los atacantes encuentren su servidor, no puedan acceder mediante fuerza bruta.
El archivo sshd_config
El comportamiento de SSH en el servidor se controla mediante /etc/ssh/sshd_config. Es distinto de la configuración del cliente que configuró anteriormente (~/.ssh/config).
Edítelo siempre como root y conserve una copia de seguridad antes de realizar cambios.
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo nano /etc/ssh/sshd_configDesactivar el inicio de sesión de root
La cuenta root es lo primero que prueban los atacantes. Desactivar el inicio de sesión directo de root les obliga además a adivinar un nombre de usuario válido.
Establezca PermitRootLogin en no. Los administradores deben iniciar sesión como usuarios normales y utilizar sudo.
PermitRootLogin noDesactivar la autenticación mediante contraseña
Cuando la autenticación mediante claves funcione, desactive por completo las contraseñas. Esto elimina por completo los ataques de fuerza bruta — no hay ninguna contraseña que adivinar.
Advertencia: confirme que el inicio de sesión con su clave funciona antes de aplicar este cambio o podría bloquearse el acceso.
PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yesRestringir quién puede iniciar sesión
Puede incluir en una lista permitida exactamente qué cuentas pueden utilizar SSH mediante AllowUsers o AllowGroups. Cualquier cuenta que no figure en la lista será rechazada incluso con claves válidas.
Es un control sólido y sencillo para servidores multiusuario.
AllowUsers deploy admin
# or by group:
AllowGroups sshusersCambiar el puerto predeterminado (opcional)
Mover SSH fuera del puerto 22 no añade seguridad real, pero reduce considerablemente el ruido de los escáneres automatizados en sus registros.
Elija un puerto no estándar y recuerde abrirlo en el firewall e informar de él a sus clientes.
Port 2222Limitar los intentos de inicio de sesión y las sesiones
Varias directivas reducen el margen de acción de los atacantes:
MaxAuthTries— intentos fallidos antes de desconectarLoginGraceTime— segundos permitidos para autenticarseMaxSessions— sesiones simultáneas por conexión
MaxAuthTries 3
LoginGraceTime 30
MaxSessions 2Aplicar los cambios de forma segura
Después de editar, valide la sintaxis con sshd -t antes de reiniciar — un error tipográfico puede impedir que el servicio se inicie y dejarle sin acceso.
A continuación, vuelva a cargar el servicio. Mantenga abierta la sesión actual y pruebe una conexión nueva antes de cerrarla.
sudo sshd -t
sudo systemctl restart sshProtección contra ataques de fuerza bruta con Fail2ban
Fail2ban supervisa los registros de autenticación y bloquea temporalmente las IP que fallan demasiadas veces. Añade una capa dinámica de firewall sobre la configuración de sshd.
Instálelo y habilite la jaula de SSH; los valores predeterminados son adecuados para la mayoría de los servidores.
sudo apt install fail2ban
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshdVerifique el endurecimiento
Confirme que el servidor ahora rechaza lo que deshabilitó. Intente conectarse con una salida detallada para ver qué métodos de autenticación ofrece el servidor.
Un servidor reforzado debería anunciar únicamente publickey y rechazar los inicios de sesión mediante contraseña y como root.
ssh -v deploy@server
# Look for: 'Authentications that can continue: publickey'Buenas prácticas
Mantenga seguro su servidor SSH con el tiempo:
- No aplique nunca
PasswordAuthentication noantes de probar el inicio de sesión con clave - Mantenga una sesión abierta mientras cambia la configuración
- Use
sshd -tdespués de cada modificación - Combine el endurecimiento de sshd con un firewall y Fail2ban
Comprobación rápida
Compruebe sus conocimientos sobre el endurecimiento de SSH.
Repaso
Ha reforzado su servidor SSH mediante /etc/ssh/sshd_config:
- Deshabilitó los inicios de sesión como root y mediante contraseña
- Incluyó usuarios en la lista permitida con
AllowUsers - Ajustó
MaxAuthTriesyLoginGraceTime - Añadió Fail2ban para proteger dinámicamente contra ataques de fuerza bruta
Valide la configuración con sshd -t y pruebe siempre antes de cerrar la sesión.
Preguntas frecuentes
¿La lección «Refuerzo del servidor SSH» es gratis?
Sí — el texto completo de «Refuerzo del servidor SSH» 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 Linux Server Deployment & SSH Mastery, actualiza a CoddyKit PRO. El curso de Linux Server Deployment & SSH Mastery incluye 4 lecciones en total.
¿Qué aprenderé en «Refuerzo del servidor SSH»?
Blinde su servidor SSH editando sshd_config: desactive los inicios de sesión de root y mediante contraseña, cambie los valores predeterminados arriesgados, restrinja los usuarios y aplique proteccion… Practicas Linux Server Deployment & SSH Mastery 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 Linux Server Deployment & SSH Mastery?
No se requiere experiencia previa. Linux Server Deployment & SSH Mastery 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 del servidor SSH»?
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 Linux Server Deployment & SSH Mastery?
Sí. Cada lección de Linux Server Deployment & SSH Mastery 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
- Comprensión del protocolo SSH
- Configuración de su cliente SSH
- Autenticación SSH basada en claves
- Refuerzo del servidor SSH