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 |
Para actualizar la configuración del server SSH, reiniciamos el servicio del servidor open ssh, con:
service ssh restart |
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 |
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 |
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 |
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:
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:
4. MODIFICAMOS GRUPO Y DENEGAMOS ACCESO
Pero si modificamos el usuario y lo asignamos al grupo denegarssh, no podrá acceder por ssh:
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
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
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.
De esta forma acabamos de ver las 4 directivas básicas para controlar el acceso ssh de usuarios y grupos Linux:
AllowUsers, DenyUsers, AllowGroups, DenyGroups.
- Para más info sobre estas directivas de SSH, consultar la página de OpenSSH: Manual Pages
- Página oficial de Open SSH