Il existe plusieurs raisons de restreindre une session utilisateur SSH à un répertoire particulier, en particulier sur les serveurs Web, mais la plus évidente est la sécurité du système. Afin de verrouiller les utilisateurs SSH dans un certain répertoire, nous pouvons utiliser chrooter mécanisme.
changer de racine (chrooter) dans les systèmes de type Unix tels que Linux, est un moyen de séparer les opérations utilisateur spécifiques du reste du système Linux ; change le répertoire racine apparent du processus utilisateur en cours d’exécution et de son processus enfant (parent) avec un nouveau répertoire racine appelé a prison chrootée.
Dans ce didacticiel, nous allons vous montrer comment restreindre l’accès des utilisateurs SSH à un répertoire donné sous Linux. Notez que nous exécuterons toutes les commandes en tant que root, utilisez la commande sudo si vous êtes connecté au serveur en tant qu’utilisateur normal.
Étape 1 : Créer une prison SSH Chroot
1. Commencez par créer la prison chroot à l’aide de la commande mkdir ci-dessous :
# mkdir -p /home/test
2. Ensuite, identifiez les fichiers requis, selon le sshd_config page de manuel, la ChrootDirectory
L’option spécifie le chemin du répertoire vers lequel chrooter après l’authentification. Le répertoire doit contenir les fichiers et répertoires nécessaires pour prendre en charge la session d’un utilisateur.
Pour une session interactive, cela nécessite au moins un shell, généralement sh
et de base /dev
nœuds tels que les périphériques null, zero, stdin, stdout, stderr et tty :
# ls -l /dev/{null,zero,stdin,stdout,stderr,random,tty}
![Restreindre L'Accès Des Utilisateurs Ssh Au Répertoire Personnel À L'Aide De La Prison Chrootée 1 Liste Des Fichiers Requis](https://www.tecmint.com/wp-content/uploads/2017/03/Listing-Required-Files.png)
![Restreindre L'Accès Des Utilisateurs Ssh Au Répertoire Personnel À L'Aide De La Prison Chrootée 2 Liste Des Fichiers Requis](https://www.tecmint.com/wp-content/uploads/2017/03/Listing-Required-Files.png)
3. Maintenant, créez le /dev
fichiers comme suit en utilisant le commande mknod. Dans la commande ci-dessous, le -m
flag est utilisé pour spécifier les bits d’autorisation de fichier, c
signifie fichier de caractères et les deux nombres sont les nombres majeur et mineur vers lesquels les fichiers pointent.
# mkdir -p /home/test/dev/ # cd /home/test/dev/ # mknod -m 666 null c 1 3 # mknod -m 666 tty c 5 0 # mknod -m 666 zero c 1 5 # mknod -m 666 random c 1 8
![Restreindre L'Accès Des Utilisateurs Ssh Au Répertoire Personnel À L'Aide De La Prison Chrootée 3 Créer /Dev Et Les Fichiers Requis](https://www.tecmint.com/wp-content/uploads/2017/03/Create-Required-Files.png)
![Restreindre L'Accès Des Utilisateurs Ssh Au Répertoire Personnel À L'Aide De La Prison Chrootée 4 Créer /Dev Et Les Fichiers Requis](https://www.tecmint.com/wp-content/uploads/2017/03/Create-Required-Files.png)
4. Ensuite, définissez l’autorisation appropriée sur la prison chroot. Notez que la prison chroot et ses sous-répertoires et sous-fichiers doivent appartenir au racine utilisateur, et non accessible en écriture par un utilisateur ou un groupe normal :
# chown root:root /home/test # chmod 0755 /home/test # ls -ld /home/test
![Restreindre L'Accès Des Utilisateurs Ssh Au Répertoire Personnel À L'Aide De La Prison Chrootée 5 Définir Les Autorisations Sur Le Répertoire](https://www.tecmint.com/wp-content/uploads/2017/03/Set-Permission-on-Directory.png)
![Restreindre L'Accès Des Utilisateurs Ssh Au Répertoire Personnel À L'Aide De La Prison Chrootée 6 Définir Les Autorisations Sur Le Répertoire](https://www.tecmint.com/wp-content/uploads/2017/03/Set-Permission-on-Directory.png)
Étape 2 : Configurer le shell interactif pour SSH Chroot Jail
5. Tout d’abord, créez le bin
répertoire, puis copiez le /bin/bash
fichiers dans le bin
répertoire à l’aide de la commande cp comme suit :
# mkdir -p /home/test/bin # cp -v /bin/bash /home/test/bin/
![Restreindre L'Accès Des Utilisateurs Ssh Au Répertoire Personnel À L'Aide De La Prison Chrootée 7 Copier Les Fichiers Dans Le Répertoire Bin](https://www.tecmint.com/wp-content/uploads/2017/03/Copy-Bin-Files.png)
![Restreindre L'Accès Des Utilisateurs Ssh Au Répertoire Personnel À L'Aide De La Prison Chrootée 8 Copier Les Fichiers Dans Le Répertoire Bin](https://www.tecmint.com/wp-content/uploads/2017/03/Copy-Bin-Files.png)
6. Maintenant, identifiez le bash requis pour le partage libs
comme ci-dessous, et copiez-les dans le lib
annuaire:
# ldd /bin/bash # mkdir -p /home/test/lib64 # cp -v /lib64/{libtinfo.so.5,libdl.so.2,libc.so.6,ld-linux-x86-64.so.2} /home/test/lib64/
![Restreindre L'Accès Des Utilisateurs Ssh Au Répertoire Personnel À L'Aide De La Prison Chrootée 9 Copier Les Fichiers De La Bibliothèque Partagée](https://www.tecmint.com/wp-content/uploads/2017/03/Copy-Shared-Library-Files.png)
![Restreindre L'Accès Des Utilisateurs Ssh Au Répertoire Personnel À L'Aide De La Prison Chrootée 10 Copier Les Fichiers De La Bibliothèque Partagée](https://www.tecmint.com/wp-content/uploads/2017/03/Copy-Shared-Library-Files.png)
Étape 3 : Créer et configurer un utilisateur SSH
7. Maintenant, créez l’utilisateur SSH avec la commande useradd et définissez un mot de passe sécurisé pour l’utilisateur :
# useradd tecmint # passwd tecmint
8. Créer le répertoire des configurations générales de chroot jail, /home/test/etc
et copiez les fichiers de compte mis à jour (/etc/passwd et /etc/groupe) dans ce répertoire comme suit :
# mkdir /home/test/etc # cp -vf /etc/{passwd,group} /home/test/etc/
![Restreindre L'Accès Des Utilisateurs Ssh Au Répertoire Personnel À L'Aide De La Prison Chrootée 11 Copier Les Fichiers De Mot De Passe](https://www.tecmint.com/wp-content/uploads/2017/03/Copy-Password-Files.png)
![Restreindre L'Accès Des Utilisateurs Ssh Au Répertoire Personnel À L'Aide De La Prison Chrootée 12 Copier Les Fichiers De Mot De Passe](https://www.tecmint.com/wp-content/uploads/2017/03/Copy-Password-Files.png)
Note: Chaque fois que vous ajoutez d’autres utilisateurs SSH au système, vous devrez copier les fichiers de compte mis à jour dans le /home/test/etc
annuaire.
Étape 4 : Configurer SSH pour utiliser Chroot Jail
9. Maintenant, ouvrez le sshd_config
déposer.
# vi /etc/ssh/sshd_config
et ajoutez/modifiez les lignes ci-dessous dans le fichier.
#define username to apply chroot jail to Match User tecmint #specify chroot jail ChrootDirectory /home/test
![Restreindre L'Accès Des Utilisateurs Ssh Au Répertoire Personnel À L'Aide De La Prison Chrootée 13 Configurer La Prison Ssh Chroot](https://www.tecmint.com/wp-content/uploads/2017/03/Configure-SSH-Chroot-Jail.png)
![Restreindre L'Accès Des Utilisateurs Ssh Au Répertoire Personnel À L'Aide De La Prison Chrootée 14 Configurer La Prison Ssh Chroot](https://www.tecmint.com/wp-content/uploads/2017/03/Configure-SSH-Chroot-Jail.png)
Enregistrez le fichier et quittez, puis redémarrez les services SSHD :
# systemctl restart sshd OR # service sshd restart
Étape 5 : Tester SSH avec Chroot Jail
dix. À ce stade, testez si la configuration de la prison chroot fonctionne comme prévu :
# ssh [email protected] -bash-4.1$ ls -bash-4.1$ date -bash-4.1$ uname
![Restreindre L'Accès Des Utilisateurs Ssh Au Répertoire Personnel À L'Aide De La Prison Chrootée 15 Test De La Prison Chroot Utilisateur Ssh](https://www.tecmint.com/wp-content/uploads/2017/03/Testing-SSH-User-Chroot-Jail.png)
![Restreindre L'Accès Des Utilisateurs Ssh Au Répertoire Personnel À L'Aide De La Prison Chrootée 16 Test De La Prison Chroot Utilisateur Ssh](https://www.tecmint.com/wp-content/uploads/2017/03/Testing-SSH-User-Chroot-Jail.png)
Dans la capture d’écran ci-dessus, nous pouvons voir que l’utilisateur SSH est verrouillé dans la prison chrootée et ne peut exécuter aucune commande externe (ls, date, uname, etc.).
L’utilisateur ne peut exécuter que bash et ses commandes intégrées telles que (pwd, history, echo, etc.) comme indiqué ci-dessous :
# ssh [email protected] -bash-4.1$ pwd -bash-4.1$ echo "Tecmint - Fastest Growing Linux Site" -bash-4.1$ history
![Restreindre L'Accès Des Utilisateurs Ssh Au Répertoire Personnel À L'Aide De La Prison Chrootée 17 Commandes Intégrées Ssh](https://www.tecmint.com/wp-content/uploads/2017/03/SSH-Builtin-Commands.png)
![Restreindre L'Accès Des Utilisateurs Ssh Au Répertoire Personnel À L'Aide De La Prison Chrootée 18 Commandes Intégrées Ssh](https://www.tecmint.com/wp-content/uploads/2017/03/SSH-Builtin-Commands.png)
Étape 6. Créer le répertoire personnel de l’utilisateur SSH et ajouter des commandes Linux
11. De l’étape précédente, nous pouvons remarquer que l’utilisateur est verrouillé dans le répertoire racine, nous pouvons créer un répertoire personnel pour l’utilisateur SSH comme ceci (faites ceci pour tous les futurs utilisateurs) :
# mkdir -p /home/test/home/tecmint # chown -R tecmint:tecmint /home/test/home/tecmint # chmod -R 0700 /home/test/home/tecmint
![Restreindre L'Accès Des Utilisateurs Ssh Au Répertoire Personnel À L'Aide De La Prison Chrootée 19 Créer Un Répertoire Personnel D'Utilisateur Ssh](https://www.tecmint.com/wp-content/uploads/2017/03/Create-SSH-User-Home-Directory.png)
![Restreindre L'Accès Des Utilisateurs Ssh Au Répertoire Personnel À L'Aide De La Prison Chrootée 20 Créer Un Répertoire Personnel D'Utilisateur Ssh](https://www.tecmint.com/wp-content/uploads/2017/03/Create-SSH-User-Home-Directory.png)
12. Ensuite, installez quelques commandes utilisateur telles que ls, date et mkdir dans le bin
annuaire:
# cp -v /bin/ls /home/test/bin/ # cp -v /bin/date /home/test/bin/ # cp -v /bin/mkdir /home/test/bin/
![Restreindre L'Accès Des Utilisateurs Ssh Au Répertoire Personnel À L'Aide De La Prison Chrootée 21 Ajouter Des Commandes À L'Utilisateur Ssh](https://www.tecmint.com/wp-content/uploads/2017/03/Add-Commands-to-SSH-User.png)
![Restreindre L'Accès Des Utilisateurs Ssh Au Répertoire Personnel À L'Aide De La Prison Chrootée 22 Ajouter Des Commandes À L'Utilisateur Ssh](https://www.tecmint.com/wp-content/uploads/2017/03/Add-Commands-to-SSH-User.png)
13. Ensuite, vérifiez les bibliothèques partagées pour les commandes ci-dessus et déplacez-les dans le répertoire des bibliothèques jail chrootées :
# ldd /bin/ls # cp -v /lib64/{libselinux.so.1,libcap.so.2,libacl.so.1,libc.so.6,libpcre.so.1,libdl.so.2,ld-linux-x86-64.so.2,libattr.so.1,libpthread.so.0} /home/test/lib64/
![Restreindre L'Accès Des Utilisateurs Ssh Au Répertoire Personnel À L'Aide De La Prison Chrootée 23 Copier Les Bibliothèques Partagées](https://www.tecmint.com/wp-content/uploads/2017/03/Copy-Shared-Libraries.png)
![Restreindre L'Accès Des Utilisateurs Ssh Au Répertoire Personnel À L'Aide De La Prison Chrootée 24 Copier Les Bibliothèques Partagées](https://www.tecmint.com/wp-content/uploads/2017/03/Copy-Shared-Libraries.png)
Étape 7. Tester SFTP avec Chroot Jail
14. Faites un test final en utilisant sftp ; vérifiez si les commandes que vous venez d’installer fonctionnent.
Ajoutez la ligne ci-dessous dans le /etc/ssh/sshd_config
déposer:
#Enable sftp to chrooted jail ForceCommand internal-sftp
Enregistrez le fichier et quittez. Redémarrez ensuite les services SSHD :
# systemctl restart sshd OR # service sshd restart
15. Maintenant, testez en utilisant SSH, et vous obtiendrez l’erreur suivante :
# ssh [email protected]
![Restreindre L'Accès Des Utilisateurs Ssh Au Répertoire Personnel À L'Aide De La Prison Chrootée 25 Testez La Prison Ssh Chroot](https://www.tecmint.com/wp-content/uploads/2017/03/Test-SSH-Chroot-Jail.png)
![Restreindre L'Accès Des Utilisateurs Ssh Au Répertoire Personnel À L'Aide De La Prison Chrootée 26 Testez La Prison Ssh Chroot](https://www.tecmint.com/wp-content/uploads/2017/03/Test-SSH-Chroot-Jail.png)
Essayez d’utiliser SFTP comme suit :
# sftp [email protected]
![Restreindre L'Accès Des Utilisateurs Ssh Au Répertoire Personnel À L'Aide De La Prison Chrootée 27 Test De L'Utilisateur Sftp Ssh](https://www.tecmint.com/wp-content/uploads/2017/03/Testing-sFTP-SSH-User.png)
![Restreindre L'Accès Des Utilisateurs Ssh Au Répertoire Personnel À L'Aide De La Prison Chrootée 28 Test De L'Utilisateur Sftp Ssh](https://www.tecmint.com/wp-content/uploads/2017/03/Testing-sFTP-SSH-User.png)
C’est tout pour le moment! Dans cet article, nous vous avons montré comment restreindre un utilisateur SSH dans un répertoire donné (prison chrootée) sous Linux. Utilisez la section des commentaires ci-dessous pour nous faire part de vos réflexions sur ce guide.
Si vous appréciez ce que nous faisons ici sur TecMint, vous devriez considérer :
TecMint est le site communautaire à la croissance la plus rapide et le plus fiable pour tout type d’articles, de guides et de livres Linux sur le Web. Des millions de personnes visitent TecMint ! pour rechercher ou parcourir les milliers d’articles publiés accessibles GRATUITEMENT à tous.
Si vous aimez ce que vous lisez, pensez à nous acheter un café (ou 2) en signe d’appréciation.
Nous sommes reconnaissants pour votre soutien sans fin.