Artheriom

Développeur & Étudiant à l'Université Clermont-Auvergne

Jail&SSH sous Debian 9

Bonjour,

Vous savez ce que je déteste dans la vie ? Chercher durant des heures une information aussi basique que “mais comment on peut empêcher un utilisateur de voir l’arborescence du serveur nom d’une pipe ?!”.

Du coup, allons-y pour ce petit mémo utile (et fonctionnel, car c’est hallucinant les débilités qu’on peut trouver sur Internet). Tout d’abord, il vous faudra un serveur Debian 9 “stretch”, avec une connexion SSH disponible.

Créez de manière normale l’utilisateur que vous souhaitez, avec un bon vieux adduser, etc. Ensuite, ouvrez le fichier /etc/ssh/sshd_config. A la fin du fichier, ajoutez :

Match User VOTRE_USER
ChrootDirectory /home/VOTRE_USER
ForceCommand internal-sftp

Ensuite, il vous faut également modifier le chown du dossier de votre utilisateur : root doit être propriétaire du dossier pour que le jail fonctionne. L’inconvénient est que, du coup, l’utilisateur ne pourra plus éditer, envoyer ou télécharger des fichiers et dossiers à la racine. Il faudra donc lui créer un sous-dossier avec le chown lui appartenant. Allons y :

chown root:root /home/VOTRE_USER/
chmod -R 755 /home/VOTRE_USER/
mkdir /home/VOTRE_USER/data/
chown VOTRE_USER:VOTRE_USER /home/VOTRE_USER/data/

Redémarrez le serveur SSH. Normalement, ça fonctionne : Votre utilisateur ne peut désormais plus vois l’arborescence ! Seul soucis, il peut encore se connecter en SSH… Réglons cela : Ré-ouvrez /etc/ssh/sshd_config, et remplacez
Match User VOTRE_USER
ChrootDirectory /home/VOTRE_USER
ForceCommand internal-sftp

par :
Match User VOTRE_USER
ChrootDirectory /home/VOTRE_USER
ForceCommand internal-sftp
AllowTCPForwarding no
X11Forwarding no

On désactive alors la possibilité de se connecter en SSH et de transférer des sessions X11 (ne mettez pas cette directive si vous utilisez des connexions VNC etc). Note importante : Veillez à ce qu’il y ait toujours un utilisateur autorisé à se connecter en SSH…

Et voilà, c’est terminé ! Il est à noter que vous pourriez utiliser une définition de groupe, ou des conditions du style “!root”. A vous de vous amuser un peu avec !

Next Post

Previous Post

Leave a Reply

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

© 2018 Artheriom

Theme by Anders Norén