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. |