SecuryBlack LogoSecuryBlack
← Blog/Seguridad

Cómo restringir el acceso SSH en Linux mediante AllowGroups y usuarios dedicados

·7 min de lectura
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:

  1. Los usuarios que pertenezcan a sshusers podrán iniciar sesión normalmente (con sus llaves SSH o credenciales).
  2. Los usuarios que no pertenezcan a sshusers recibirán un mensaje inmediato de Permission 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.