Open SSH va nous aider à réaliser un accès restreint car il peut être utile d’empêcher un utilisateur de joindre d’autre dossier du système que son dossier personnel.

OpenSSH

OpenSSH intègre la fonction ChrootDirectory depuis la version OpenSSH 4.9, la commande suivante permet d’installer OpenSSH s’il n’est pas déjà intégré à votre système :

apt-get install openssh-client
apt-get install openssh-server

Prenez en compte que les modifications suivantes permettent à l’utilisateur un accès restreint au dossier en SFTP qu’on lui attribue et lui retire son droit de connexion en SSH.


Droits Utilisateur

On va maintenant :
– créer un groupe pour les utilisateurs restreints,
– créer notre utilisateur restreint,
– modifier les droits de son dossier home (le dossier doit appartenir à root pour être chrooté) et son contenu :

groupadd groupe_restreint

useradd user_restreint -m -d /home/user_restreint/ -s /bin/false -g groupe_restreint
passwd user_restreint
New password: xxxxxxxxxx
Retype new password: xxxxxxxxxx
passwd: password updated successfully

chmod 755 /home/user_restreint/
chown root:root /home/user_restreint/
chmod -R 755 /home/user_restreint/*
chown -R user_restreint:user_restreint /home/user_restreint/*

Configuration Chroot

Il reste à configurer OpenSSH en éditant son fichier de configuration /etc/ssh/sshd_config :

vim /etc/ssh/sshd_config

## Configuration à ajouter en fin de fichier
Subsystem       sftp    internal-sftp

Match Group groupe_restreint
         ChrootDirectory /home/%u
         ForceCommand internal-sftp
         AllowTCPForwarding no
         X11Forwarding no

Définition du groupe à qui s’applique la restriction.

Définition du dossier de restriction soit le dossier home de chacun des utilisateurs concernés.

Désactivation du X11Forwarding.

Désactivation du TCPForwarding.

Le service doit ensuite être redémarré :

service ssh restart

Il peut être utile de désactiver la restriction pour un utilisateur en particulier via la configuration suivante :

Match Group groupe_restreint, User *,!user_non_restreint
         ChrootDirectory /home/%u
         ForceCommand internal-sftp
         AllowTCPForwarding no
         X11Forwarding no