Comment restreindre l'accès des utilisateurs SSH à certains répertoires à l'aide de prison chrootée

Comment restreindre l'accès des utilisateurs SSH à certains répertoires à l'aide de prison chrootée

Il existe plusieurs raisons de restreindre une session d'utilisateur SSH à un répertoire particulier, en particulier sur les serveurs Web, mais l'évidence est la sécurité du système. Afin de verrouiller les utilisateurs de SSH dans un certain répertoire, nous pouvons utiliser chroot mécanisme.

changer la racine (chroot) 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; Modifie le répertoire racine apparent pour le processus utilisateur en cours d'exécution et son processus d'enfant (parent) avec un nouveau répertoire racine appelé un prison.

Dans ce tutoriel, nous vous montrerons comment restreindre l'accès des utilisateurs SSH à un répertoire donné à Linux. Notez que nous allons exécuter toutes les commandes comme racine, utilisez la commande sudo si vous êtes connecté au serveur comme utilisateur normal.

Table des matières

1
  • Étape 1: Créer une prison de chroot SSH
  • Étape 2: Configuration de la coque interactive pour la prison de chroot SSH
  • Étape 3: Créer et configurer l'utilisateur SSH
  • Étape 4: Configurer SSH pour utiliser la prison de chroot
  • Étape 5: Tester SSH avec une prison de chroot
  • Étape 6. Créez le répertoire personnel de l'utilisateur SSH et ajoutez des commandes Linux
  • Étape 7. Tester SFTP avec une prison de chroot

Étape 1: Créer une prison de chroot SSH

1. Commencez par créer la prison de chroot à l'aide de la commande MKDIR ci-dessous:

# Mkdir -P / Home / Test 

2. Ensuite, identifiez les fichiers requis, selon le sshd_config page man, le Chrootdirectoire L'option spécifie le chemin d'accès du répertoire à chroot 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 shot, et de base / dev Des nœuds tels que Null, Zero, Stdin, Stdout, STDERR et TTY Dispositifs:

# ls -l / dev / null, zéro, stdin, stdout, stderr, aléatoire, tty 
Listing des fichiers requis

3. Maintenant, créez le / dev les fichiers comme suit en utilisant le Commande MKNOD. Dans la commande ci-dessous, le -m Le drapeau est utilisé pour spécifier les bits d'autorisations de fichier, c signifie le fichier de caractères et les deux nombres sont des nombres majeurs et mineurs que les fichiers pointent vers.

# 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 
Créer / Dev et fichiers requis

4. Ensuite, définissez l'autorisation appropriée sur la prison du chroot. Notez que la prison de chroot et ses sous-répertoires et sous-fichiers doivent appartenir à la racine Utilisateur, et non écrivatif par aucun utilisateur ou groupe normal:

# Chown Root: Root / Home / Test # Chmod 0755 / Home / Test # LS -LD / Home / Test 
Définir les autorisations sur le répertoire

Étape 2: Configuration de la coque interactive pour la prison de chroot SSH

5. Tout d'abord, créez le poubelle répertoire puis copier le / bac / bash fichiers dans le poubelle Répertoire utilisant la commande CP comme suit:

# mkdir -p / home / test / bin # cp -v / bin / bash / home / test / bin / 
Copier les fichiers dans le répertoire de bacs

6. Maintenant, identifiez le bash requis pour partager lib, comme ci-dessous, et copiez-les dans le lib annuaire:

# LDD / BIN / BASH # MKDIR -P / HOME / TEST / LIB64 # CP -V / LIB64 / LiBtinfo.donc.5, libdl.donc.2, libc.donc.6, LD-Linux-X86-64.donc.2 / home / test / lib64 / 
Copier les fichiers de bibliothèque partagée

Étape 3: Créer et configurer l'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 la prison de chroot, / Home / Test / etc et copier 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, groupe / home / test / etc / 
Copier les fichiers de mot de passe Note: Chaque fois que vous ajoutez plus d'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 la prison de chroot

9. Maintenant, ouvrez le sshd_config déposer.

# vi / etc / ssh / sshd_config 

et ajouter / modifier les lignes ci-dessous dans le fichier.

#Define Nom d'utilisateur pour appliquer la prison de chroot Faire correspondre l'utilisateur Tecmint # spécifier la prison de chroot Chrootdirectory / Home / Test 
Configurer la prison de chroot SSH

Enregistrez le fichier et sortez et redémarrez les services SSHD:

# SystemCTL Redémarrer SSHD ou # Service SSHD Redémarrer 

Étape 5: Tester SSH avec une prison de chroot

dix. À ce stade, testez si la configuration de la prison de chroot fonctionne comme prévu:

# ssh [e-mail protégé] -bash-4.1 $ LS -BASH-4.1 $ DATE -BASH-4.1 $ uname 
Tester la prison de chroot de l'utilisateur SSH

À partir de 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, Historique, écho, etc.) comme indiqué ci-dessous:

# ssh [e-mail protégé] -bash-4.1 $ PWD -BASH-4.1 $ echo "Tecmint - Site Linux à la croissance la plus rapide" -BASH-4.1 $ HISTORY 
Commandes intégrées SSH

Étape 6. Créez le répertoire personnel de l'utilisateur SSH et ajoutez des commandes Linux

11. À partir 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 domestique pour l'utilisateur SSH comme ainsi (faites-le 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 
Créer un répertoire de maison utilisateur SSH

12. Ensuite, installez quelques commandes utilisateur telles que LS, Date et Mkdir dans le poubelle annuaire:

# cp -v / bin / ls / home / test / bin / # cp -v / bin / date / home / test / bin / # cp -v / bin / mkdir / home / test / bin / 
Ajouter des commandes à l'utilisateur SSH

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 de prison chrootées:

# LDD / BIN / LS # CP -V / LIB64 / LiBSELINUX.donc.1, libcap.donc.2, libacl.donc.1, libc.donc.6, libpcre.donc.1, libdl.donc.2, LD-LINUX-X86-64.donc.2, libattr.donc.1, libpthread.donc.0 / home / test / lib64 / 
Copier les bibliothèques partagées

Étape 7. Tester SFTP avec une prison de chroot

14. Faites un test final en utilisant SFTP; Vérifiez si les commandes que vous venez d'installer fonctionnent.

Ajouter la ligne ci-dessous dans le / etc / ssh / sshd_config déposer:

#Enable SFTP à la prison chrootée ForceCommand Internal-SFTP 

Enregistrer le fichier et quitter. Redémarrez ensuite les services SSHD:

# SystemCTL Redémarrer SSHD ou # Service SSHD Redémarrer 

15. Maintenant, testez à l'aide de SSH, et vous obtiendrez l'erreur suivante:

# ssh [e-mail protégé] 
Tester la prison de chroot SSH

Essayez d'utiliser SFTP comme suit:

# sftp [e-mail protégé] 
Tester l'utilisateur SFTP SSH

Vous pourriez aussi aimer:

  • Comment restreindre les utilisateurs de SFTP aux répertoires domestiques à l'aide de la prison de chroot
  • Utilisation et configuration de la commande SSH de base dans Linux
  • 5 meilleures pratiques pour empêcher les attaques de connexion à force brute SSH dans Linux
  • 5 meilleurs serveurs OpenSSH meilleures pratiques de sécurité

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) à Linux. Utilisez la section des commentaires ci-dessous pour nous offrir vos réflexions sur ce guide.