Permisos de usuarios y grupos en un SSH Server

Vamos a ver cómo aplicar las directivas DenyUsers, AllowUsers, y DenyGroups, AllowGroups, ,que controlan los permisos de usuarios y grupos en un servidor SSH.

 
Las directivas mencionadas, controlan los usuarios y grupos de usuarios Linux que pueden acceder al servidor SSH.

  • DenyUsers
  • AllowUsers
  • DenyGroups
  • AllowGroups

El uso de estas directivas nos permite un mayor control granular de acceso.
 


El orden de aplicación de estas directivas es: DenyUsers, AllowUsers, DenyGroups y finalmente AllowGroups.

 
Como todas las directivas de SSH, podemos modificarlas en el archivo /etc/ssh/sshd_config

En este caso solo nos centraremos en las directivas que controlan los permisos de usuarios y grupos en ssh.

Para más info sobre un servidor Open SSH, no olvides consultar la entrada sobre Open SSH Server Linux.
 

 
En este artículo:

 

 

 

 

 

 

1. PERMITIENDO ACCESO SSH A GRUPOS DE USUARIOS

 

1.1 Modificar sshd_config y usar Directiva AllowGroups

 
Modificamos el archivo sshd_config para permitir el acceso ssh a ciertos grupos de usuarios Linux.
 
Concretamente deseamos permitir el acceso por ssh a grupo1.
 
Lo hacemos añadiendo :

AllowGroups grupo1

 
ssh allowgroups

 

Para actualizar la configuración del server SSH, reiniciamos el servicio del servidor open ssh, con:

service ssh restart

 
reiniciar servicio ssh

 

 

2. Creamos nuevo usuario Linux en el grupo anterior con permisos para acceso por ssh

 
A continuación creamos un nuevo usuario, en el grupo con permisos para acceder por SSH.

Creamos el usuario4, y a la vez que lo creamos, como grupo secundario le introducimos en el grupo anterior (grupo1) con permisos para acceso ssh:
 

useradd -G grupo1 -d /home/usuario4 -m -s /bin/bash usuario4

 
añadir usuario a grupo linux ssh
 

 

2.1 Comprobando UID y GID de grupos del usuario recién creado

 
Ahora para ver los datos del usuario (UID, y GID de grupos a los que pertenece) ejecutamos :

id usuario4

 
uid linux
 
Vemos que el UID del usuario es 1021

Y sus grupos son el grupo usuario4 (GID 1021) y el grupo1 (GID 1004). Este último, es el grupo que habíamos configurado que pudiera acceder por ssh.
 

 

2.2 cat /etc/passwd para ver el UID y el GID del grupo(s) del usuario

 

Ahora ejecutamos cat /etc/passwd para ver el UID y el grupo(s) del usuario:

cat /etc/passwd

gid linux
 
Vemos que el usuario4 muestra el UID y el GID de los grupos (en este caso el grupo creado para el usuario4, con GID 1021)
 

 

2.3 cat /etc/group para ver los grupos y usuarios en cada grupo

 
Ahora vemos los grupos con

cat /etc/group

 
y vemos los grupos del usuario4 (GID 1021) y los usuarios introducidos en el grupo1 (GID 1004) con permiso para utilizar el acceso por ssh:

permisos ssh grupo linux

 

 

3. Comprobación de acceso SSH

 
Ahora testearemos si el usuario (usuario4) del grupo permitido (grupo1) puede realmente acceder por ssh.

Y accediendo con Putty desde un equipo Windows, comprobamos que puede acceder por SSH ya que se encuentra correctamente configurado en el grupo con permiso para acceder por SSH:
 
accedemos por ssh con usuario cuyo grupo tiene permisos ssh
 

 

4. MODIFICAMOS GRUPO Y DENEGAMOS ACCESO

 
Pero si modificamos el usuario y lo asignamos al grupo denegarssh, no podrá acceder por ssh:
 
denegar permisos grupo linux
 

 

4.1 Añadir el grupo del usuario en la directiva DenyGroups

 
Otra opción es modificar el archivo sshd_config y en lugar de cambiar el grupo al usuario, introducir el grupo al que pertenece actualmente, en la directiva DenyGroups (quitando previamente ese grupo de la directiva AllowGroups).

Lo que tenemos que tener en cuenta que de esta forma estamos denegando el acceso a los otros miembros del grupo si los hubiera:

DenyGroups grupo1

deny groups ssh
 

 

4.2 Denegar el acceso solo al usuario deseado mediante la directiva DenyUsers

 
Volvemos a dejar el archivo sshd_config como antes, permitiendo el acceso ssh a todos los usuarios del grupo1 (AllowGroups), pero añadiendo al usuario4 a la directiva DenyUsers. Así:

DenyUsers usuario4

deny users ssh
 

 

5. Comprobación de acceso SSH denegado

 
Ahora comprobamos que con cualquiera de las opciones anteriores (punto 4, punto 4.1 y punto 4.2) el usuario no puede acceder por ssh, ya que el sistema nos muestra el mensaje “Access denied“, con lo cual hemos configurado correctamente el server SSH con lo que queríamos conseguir.

comprobamos acceso grupo sin permisos ssh

 

De esta forma acabamos de ver las 4 directivas básicas para controlar el acceso ssh de usuarios y grupos Linux:

AllowUsersDenyUsersAllowGroupsDenyGroups.