Configurar OpenSSH server para producción
Las siguientes son recomendaciones para Configurar OpenSSH server para producción
Recomendaciones
Actualiza el sistema operativo
Antes de comenzar, asegúrate de que tu sistema operativo y el paquete OpenSSH estén actualizados a la última versión. Esto garantizará que se hayan corregido las vulnerabilidades conocidas.
Configura el archivo de configuración de OpenSSH
El archivo de configuración principal de OpenSSH se encuentra generalmente en /etc/ssh/sshd_config, a continuación muestro algunos parámetros:
Parametro | Descripción | Valor por defecto | Valor recomendado |
---|---|---|---|
Port | Especifica el puerto en el que el servidor SSH escucha conexiones entrantes. | 22 | 22022 |
PermitRootLogin | Determina si se permite o no a los usuarios iniciar sesión directamente como el usuario root a través de SSH. | no | Se recomienda establecerlo en "no" para evitar posibles ataques dirigidos a la cuenta de root. |
PasswordAuthentication | Indica si se permite la autenticación basada en contraseñas para los usuarios. | no | Se recomienda establecerlo en "no" para forzar el uso de autenticación basada en claves SSH. |
PubkeyAuthentication | Habilita o deshabilita la autenticación basada en claves SSH. | no | Debe estar configurado en "yes" para permitir la autenticación mediante claves públicas y privadas. |
AuthorizedKeysFile | Especifica la ubicación del archivo que contiene las claves públicas autorizadas para la autenticación basada en claves SSH. El valor predeterminado es ~/.ssh/authorized_keys. | El valor predeterminado es ~/.ssh/authorized_keys. | Se recomuenda dejarlas en esa ubicación. |
AllowUsers | Permite definir una lista de usuarios que pueden conectarse al servidor SSH. | vacio | Otros usuarios no listados aquí serán denegados. |
AllowGroups | Similar a AllowUsers, pero permite definir grupos de usuarios que pueden conectarse al servidor SSH. | vacio | |
DenyUsers | Permite especificar una lista de usuarios a los que se les deniega el acceso mediante SSH. | vacio | |
DenyGroups | Permite especificar grupos de usuarios a los que se les deniega el acceso mediante SSH. | vacio | |
MaxAuthTries | Limita el número de intentos de autenticación que un cliente puede intentar antes de que el servidor cierre la conexión. Esto ayuda a proteger contra ataques de fuerza bruta. | ||
LoginGraceTime | Define el tiempo en segundos que un usuario tiene para autenticarse después de establecer una conexión. Si no se autentica dentro de este tiempo, la conexión se cerrará. | ||
PermitEmptyPasswords | Si se establece en "no", no se permitirán contraseñas en blanco para la autenticación. | no | |
PrintMotd | Si se establece en "no", no se mostrará el Mensaje del Día (Message of the Day) al iniciar sesión. | no | |
Banner | Permite especificar un archivo que contiene el mensaje que se mostrará al usuario antes de iniciar sesión. |