Formas esenciales de proteger su configuración SSH

Una guía completa para proteger las configuraciones SSH mediante ocho prácticas esenciales, que incluyen autenticación basada en claves, desactivación del inicio de sesión raíz, cifrado, actualizaciones, autenticación de dos factores, registro, controles de acceso y administración de claves. Ideal para administradores de sistemas y profesionales de seguridad que implementan las mejores prácticas de SSH.

La protección de SSH implica una amplia gama de técnicas posibles, pero no todas son igualmente prácticas para todos los entornos. Las recomendaciones de este artículo son métodos ampliamente reconocidos y de alto impacto que equilibran la facilidad de implementación con una protección sólida. Se extraen de estándares establecidos por organizaciones como NIST, CERT y el proyecto OpenSSH, y reflejan principios básicos que SSL.com también aplica para proteger los certificados digitales: proteger las claves, usar un cifrado sólido y limitar el acceso privilegiado.

Una vez que hayas configurado estas prácticas recomendadas fundamentales, puedes explorar tácticas más avanzadas (como SSH basado en certificados, port knocking o SSH sobre VPN) según sea necesario.

1. Utilice autenticación basada en claves en lugar de contraseñas

Qué es:

Reemplace las contraseñas de inicio de sesión con un par de claves criptográficas pública y privada. La clave pública se almacena en su servidor, mientras que la clave privada permanece en su máquina local.

Por qué es más seguro:

  • Las contraseñas son susceptibles a ataques de fuerza bruta
  • Un atacante debe obtener físicamente su clave privada para ingresar, lo que es mucho más difícil que adivinar una contraseña.

Cómo implementar:

Generar un par de claves

En Linux o macOS, abra una terminal y ejecute:

ssh-keygen -t ed25519

Para mayor seguridad (si ed25519 no está disponible en su entorno), puede utilizar:

ssh-keygen -t rsa -b 4096

Copiar la clave pública a su servidor

Puede utilizar el comando ssh-copy-id (en Linux/macOS) para transferir fácilmente su clave pública:

ssh-copy-id usuario@dirección_servidor

Si ssh-copy-id no está disponible, agregue manualmente el contenido de su archivo id_ed25519.pub (o id_rsa.pub) al archivo ~/.ssh/authorized_keys del servidor.

Deshabilitar la autenticación de contraseña

En /etc/ssh/sshd_config, configure:

Autenticación de contraseña no

Reinicie el servicio SSH:

sudo systemctl reanudar ssh

Al igual que la gestión de certificados digitales, la autenticación basada en clave SSH garantiza que solo alguien con la clave privada correcta pueda establecer una conexión.

2. Deshabilitar el inicio de sesión root

Qué es:

Evitar que el usuario root inicie sesión directamente a través de SSH.

Por qué es más seguro:

  • La cuenta raíz tiene privilegios ilimitados y es un objetivo atractivo para los atacantes.
  • Deshabilitar el acceso directo a la raíz obliga a los atacantes a adivinar no solo una clave o contraseña, sino también un nombre de usuario válido.

Cómo implementar:

En /etc/ssh/sshd_config, busque o agregue:

PermitRootLogin no

Reiniciar SSH:

sudo systemctl reanudar ssh

Este paso reduce eficazmente su superficie de ataque al eliminar la cuenta más poderosa de su fácil acceso.

3. Aplicar algoritmos MAC y de cifrado fuertes

Qué es:

SSH le permite especificar qué cifrados y códigos de autenticación de mensajes (MAC) utilizar para cifrar datos y verificar su integridad.

Por qué es más seguro:

  • Los algoritmos más antiguos o débiles (por ejemplo, DES, RC4) pueden ser vulnerables a ataques criptográficos.
  • El uso de cifrados modernos (como AES-256) y MAC fuertes (como HMAC-SHA2) ayuda a mantener los datos de su sesión confidenciales y a prueba de manipulaciones.

Cómo implementar:

En /etc/ssh/sshd_config, agregue o actualice su lista de cifrado/MAC:

Cifrados aes256-ctr,aes192-ctr,aes128-ctr
MAC hmac-sha2-256, hmac-sha2-512

Reiniciar SSH:

sudo systemctl reanudar ssh

Mantener la criptografía actualizada para SSH es tan vital como garantizar que se utilicen protocolos y cifrados seguros. TLS.

4. Mantenga SSH (y su sistema) actualizado

Qué es:

Asegurarse de que OpenSSH, junto con el resto del sistema operativo, reciba parches de seguridad periódicos.

Por qué es más seguro:

  • El software obsoleto con frecuencia contiene vulnerabilidades conocidas
  • Los atacantes a menudo apuntan a versiones anteriores con exploits sin parches

Cómo implementar:

En sistemas basados ​​en Debian o Ubuntu:

sudo apt-get actualización && sudo actualización apt-get

En sistemas basados ​​en CentOS, Fedora o RHEL:

sudo yum update

Asegúrese de verificar también si hay actualizaciones de firmware si está ejecutando SSH en dispositivos de red u otro hardware.

5. Implemente la autenticación de dos factores o multifactor (2FA/MFA)

Qué es:

Agrega una capa adicional de seguridad al requerir algo además de una contraseña o clave (por ejemplo, un código de un solo uso en su teléfono).

Por qué es más seguro:

  • Incluso si los atacantes obtienen su clave SSH, aún necesitan el segundo factor para iniciar sesión
  • Ayuda a defenderse contra el robo de credenciales.

Cómo implementar:

Instalar y configurar una herramienta MFA

Por ejemplo, google Authenticator Se puede instalar en servidores Linux y configurar como módulo PAM (módulos de autenticación conectables). Siga las instrucciones de instalación específicas para su distribución.

Editar /etc/pam.d/sshd y /etc/ssh/sshd_config

  • Habilitar Google Authenticator u otro módulo MFA
  • Establezca ChallengeResponseAuthentication yes y AuthenticationMethods publickey,keyboard-interactive (o cualquier combinación que se adapte a su entorno)

Reiniciar SSH:

sudo systemctl reanudar ssh

6. Habilitar el registro y la supervisión

Qué es:

Capture eventos de inicio de sesión SSH, realice un seguimiento de la actividad sospechosa y reciba alertas cuando algo anda mal.

Por qué es más seguro:

  • Los intentos de intrusión suelen ser visibles en los registros como inicios de sesión fallidos repetidos o acciones no autorizadas.
  • La detección temprana significa que puede responder rápidamente, bloqueando direcciones IP o cambiando configuraciones antes de que se produzcan daños.

Cómo implementar:

Aumentar la verbosidad del registro

En /etc/ssh/sshd_config, configure:

Nivel de registro VERBOSE

Registros agregados

Utilice herramientas de prevención de intrusiones

fail2ban escanea archivos de registro y prohíbe las IP que muestran signos maliciosos, como demasiados errores de contraseña.

7. Implementar controles y restricciones de acceso

Qué es:

Limite quién puede conectarse a SSH y desde dónde, evitando solicitudes entrantes no autorizadas o excesivas.

Formas de hacerlo:

Restricciones del cortafuegos

Permitir SSH únicamente desde direcciones IP conocidas o de confianza. Por ejemplo, en Linux con ufw:

sudo ufw permitir desde 192.168.1.0/24 a cualquier puerto 22

Configuración del puerto

Ejecutar SSH en un puerto no estándar (por ejemplo, 2222) puede reducir los intentos de escaneo automático. No reemplaza las medidas de seguridad reales, pero puede reducir el ruido.

Restricciones de usuarios y grupos

En /etc/ssh/sshd_config, especifique:

Permitir usuarios alice bob

or

sshadmins de AllowGroups

8. Utilice contraseñas de clave SSH y almacenamiento seguro de claves

Qué es:

Cifre su clave privada con una frase de contraseña para que, incluso si su máquina se ve comprometida, la clave en sí no pueda utilizarse inmediatamente.

Por qué es más seguro:

  • Un archivo de clave robado sin frase de contraseña puede otorgar acceso instantáneo
  • Las frases de contraseña actúan como una capa adicional de cifrado en su clave local.

Cómo implementar:

Establecer una frase de contraseña durante la generación de claves

ssh-keygen -t ed25519

(Se le pedirá que ingrese una contraseña).

Proteja sus archivos clave

Restrinja los permisos a su carpeta .ssh y a los archivos de clave:

chmod 700 ~ / .ssh
chmod 600 ~ / .ssh / id_ed25519

Considere módulos de seguridad de hardware (HSM) o tokens

Para organizaciones más grandes, el uso de hardware dedicado para el almacenamiento de claves puede mitigar los riesgos de robo de software o malware.

Conclusión

La seguridad de SSH se reduce a capas de protección. Al implementar la autenticación basada en claves, deshabilitar el acceso directo a la raíz, usar un cifrado fuerte, mantenerse actualizado, requerir autenticación multifactor, monitorear registros, restringir el acceso y proteger sus claves con frases de contraseña, cubre los riesgos más comunes (y más graves).

Estas medidas se alinean con la misma filosofía de seguridad más amplia que SSL.com defiende para los certificados digitales: proteger las claves criptográficas, utilizar un cifrado sólido, restringir el acceso privilegiado y mantener una vigilancia constante sobre sus sistemas. Una vez que haya establecido estas prácticas recomendadas fundamentales, puede explorar opciones más avanzadas, como las autoridades de certificación SSH, el acceso no autorizado a puertos o la ejecución de SSH a través de una VPN para adaptar aún más su postura de seguridad.

Manténgase informado y seguro

SSL.com es líder mundial en ciberseguridad, PKI y certificados digitales. Regístrese para recibir las últimas noticias, consejos y anuncios de productos de la industria de SSL.com.

Nos encantaría recibir tus comentarios

Responda nuestra encuesta y háganos saber lo que piensa sobre su compra reciente.