Prácticas recomendadas de seguridad de Open SSH
Aunque Open SSH se ha convertido en la norma en lo que respecta al acceso remoto, utilizar su instalación predeterminada sigue implicando algunos riesgos de seguridad. Esta guía propone formas de aumentar considerablemente el nivel de seguridad de una instalación de Open SSH.
Utilizar autenticación con claves privadas/públicas
Utilizar claves cifradas para la autenticación resulta útil, ya que elimina la necesidad de introducir contraseñas. Ni los hackers más ingeniosos podrán interferir o colarse en una sesión, y no habrá más intentos de descifrar contraseñas.
Genere un par de claves pública/privada con este comando:
$ ssh-keygen -t rsa. Esto crea dos ficheros en el directorio (oculto)~/.ssh; la clave privada se llamaid_rsay la públicaid_rsa.pub.Elija una contraseña que se utilizará para desbloquear la clave pública en cada conexión. Opcionalmente, se puede añadir un cifrado protegido con una frase de contraseña al crear la clave.
También funciona pulsar Enter sin introducir una frase de contraseña. Tenga en cuenta, sin embargo, que crear una clave sin frase de contraseña otorga automáticamente acceso SSH al servidor remoto a cualquiera que consiga acceso a su máquina local.
Copie la clave pública (
id_rsa.pub) al servidor:Scp –p id_rsa.pub remoteuser@remotehost: ``` <div data-gb-custom-block data-tag="hint" data-style='danger'>The `remoteuser` should never be root. Select the default non-root user as `remoteuser` instead.</div>Inicie sesión con SSH y copie la clave pública en el lugar adecuado:
ssh remoteuser@remotehost mkdir ~/.ssh chmod 700 ~/.ssh cat id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys mv id_rsa.pub ~/.ssh logoutA continuación, elimine la clave pública del servidor; de lo contrario, el cliente SSH no permite iniciar sesión en el servidor:
rm id_rsa.pubEstablezca los permisos de fichero en el servidor (estos dos son necesarios si "StrictModes" está configurado como yes):
$ chmod 700 ~/.ssh $ chmod 600 ~/.ssh/authorized_keysUna vez que haya iniciado sesión utilizando la frase de contraseña de la clave, se puede desactivar por completo la autenticación con contraseña. Para ello, abra el fichero
/etc/ssh/sshd_configy añada las siguientes líneas:# Disable password authentication forcing use of keys PasswordAuthentication no
Desactivar la autenticación con nombre de usuario y contraseña
Para eliminar por completo la autenticación basada en contraseñas y forzar el uso de claves o certificados SSH, actualice la configuración de SSH añadiendo las siguientes líneas en el fichero /etc/ssh/sshd_config:
A continuación, reinicie el servicio SSHD introduciendo /etc/init.d/sshd restart o service sshd restart. Una vez hecho esto, el servidor debería rechazar todos los inicios de sesión con nombre de usuario/contraseña y aceptar únicamente la autenticación mediante clave o certificado.
Configurar el intervalo de tiempo de inactividad
Se puede establecer un intervalo de tiempo de inactividad para evitar tener una sesión SSH desatendida. Para ello, abra el fichero /etc/ssh/sshd_config y añada la siguiente línea:
El intervalo de tiempo de inactividad se expresa en segundos (360 segundos = 6 minutos). Una vez transcurrido el intervalo, los usuarios inactivos se desconectan automáticamente.
Desactivar las contraseñas vacías
Para mayor seguridad, se recomiendaimpedir los inicios de sesión remotos desde cuentas con contraseñas vacías. Abra el fichero /etc/ssh/sshd_config y actualice la siguiente línea:
Limitar el acceso SSH a unos pocos usuarios
En los casos en los que no se pueda evitar la autenticación con nombre de usuario/contraseña, se recomienda limitar el inicio de sesión SSH únicamente a determinados usuarios que necesiten acceso remoto, minimizando así el impacto de los usuarios con contraseñas débiles.
Para limitar el inicio de sesión SSH, abra el fichero /etc/ssh/sshd_config y añada una línea AllowUsers, seguida de la lista de nombres de usuario separados por espacios:
A continuación, reinicie el servicio SSHD introduciendo /etc/init.d/sshd restart o service sshd restart.
Desactivar el inicio de sesión de root
Para desactivar los inicios de sesión de root, abra el fichero /etc/ssh/sshd_config mientras esté conectado como root y cambie la línea #PermitRootLogin por PermitRootLogin no. Asegúrese de eliminar el símbolo #; de lo contrario, no funcionará.
A continuación, reinicie el servicio SSHD introduciendo /etc/init.d/sshd restart o service sshd restart.
Desactivar los cifrados débiles
Abra el fichero /etc/ssh/sshd_config y añada estas líneas:
A continuación, reinicie el servicio SSHD introduciendo /etc/init.d/sshd restart o service sshd restart.
Utilizar un puerto no estándar
La gran mayoría de los hackers que buscan servidores SSH abiertos buscarán el puerto 22, ya que, de forma predeterminada, SSH escucha las conexiones entrantes en ese puerto. Para ejecutar SSH en un puerto diferente, abra el fichero /etc/ssh/sshd_config y añada las siguientes líneas:
A continuación, reinicie el servicio SSHD introduciendo /etc/init.d/sshd restart o service sshd restart.
Asegúrese de cambiar el reenvío de puertos en su router y cualquier regla de firewall necesaria. Se recomienda informar a los clientes de cualquier cambio de puerto para que sepan a qué puerto conectarse, ya que SSH ya no escuchará conexiones en el puerto estándar.
Limitar la exposición de SSH con controles de red
Si no es viable cambiar el puerto SSH, implementar un servidor de salto proporciona un sólido punto de control Zero-Trust entre los clientes y los sistemas internos. Centraliza la autenticación, aplica políticas de acceso uniformes y evita la exposición directa de los activos críticos. Consulte Remote Desktop Manager Jump (función) para conocer los pasos de configuración.
Habilitar la autenticación multifactor
La autenticación multifactor es una de las principales protecciones que se deben añadir a los servidores SSH para protegerlos del acceso no autorizado, ya que cada inicio de sesión de usuario debe estar vinculado a un usuario MFA configurado. Incluso si un hacker consigue hacerse con una contraseña o penetrar en el servidor SSH, la MFA seguirá bloqueándolo.
Última actualización
¿Te fue útil?