Cómo restringir el acceso SSH en Linux mediante AllowGroups y usuarios dedicados
En servidores con múltiples usuarios de sistema (cuentas de servicio, aplicaciones de despliegue, desarrolladores o administradores), permitir que cualquier usuario intente conectar por SSH aumenta innecesariamente la superficie de ataque. Para mantener un entorno blindado, es imprescindible contar con un plan de seguridad y hardening de VPS Linux bien establecido.
En este artículo aprenderás a utilizar la directiva AllowGroups en OpenSSH para definir una lista blanca (whitelist) estricta de usuarios autorizados a conectarse por SSH.
1. El principio de mínimo privilegio en SSH
Por defecto, OpenSSH permite que cualquier cuenta de usuario creada en el sistema operativo (/etc/passwd) que tenga un shell válido intente iniciar sesión por SSH.
Esto significa que si una aplicación crea un usuario sin privilegios o un usuario de sistema sin contraseña robusta, un atacante podría intentar explotar esa cuenta.
La solución más limpia es la directiva AllowGroups: restringir el acceso remoto exclusivamente a los usuarios que pertenezcan a un grupo de sistema específico (por ejemplo, sshusers).
2. Paso 1: Crear el grupo de seguridad SSH
Crea un nuevo grupo en el servidor:
sudo groupadd sshusers
3. Paso 2: Añadir los usuarios autorizados al grupo
Añade a tu usuario habitual de administración al grupo sshusers:
sudo usermod -aG sshusers tu_usuario
(Sustituye tu_usuario por tu nombre de usuario real).
Para verificar que el usuario pertenece al grupo correctamente:
groups tu_usuario
4. Paso 3: Configurar OpenSSH (sshd_config)
Abre el archivo de configuración del demonio SSH:
sudo nano /etc/ssh/sshd_config
Añade al final del archivo la directiva AllowGroups:
AllowGroups sshusers
(Si necesitas permitir múltiples grupos, puedes separarlos por espacios, por ejemplo: AllowGroups sshusers sudo).
5. Paso 4: Validar y reiniciar el servicio SSH
Antes de aplicar los cambios, verifica la sintaxis para evitar bloqueos accidentales:
sudo sshd -t
Si el comando no devuelve ningún mensaje de error, reinicia el servicio SSH:
sudo systemctl restart ssh
6. Verificación de la restricción
A partir de este momento:
- Los usuarios que pertenezcan a
sshuserspodrán iniciar sesión normalmente (con sus llaves SSH o credenciales). - Los usuarios que no pertenezcan a
sshusersrecibirán un mensaje inmediato dePermission denied (publickey)durante la negociación SSH, aunque su contraseña sea correcta.
7. Mantén el control de usuarios con SecuryBlack
Gestionar permisos de acceso y auditar cuentas de usuario en múltiples servidores VPS puede volverse complejo con el tiempo.
Con el panel cloud de SecuryBlack y el agente auditor FerroSentry, recibes visibilidad completa sobre las cuentas de usuario de tus VPS, los grupos con permisos sudo y la configuración de acceso SSH desde un único panel centralizado.