Répertoire de la prison SSH à la maison sur Linux

Répertoire de la prison SSH à la maison sur Linux

L'emprisonnement d'un utilisateur SSH à son répertoire domestique vous permet (l'administrateur) d'exercer beaucoup de contrôle et de sécurité sur les comptes d'utilisateurs sur un système Linux.

L'utilisateur emprisonné a toujours accès à son répertoire domestique, mais ne peut pas traverser le reste du système. Cela maintient tout le reste sur le système privé et empêchera que tout soit altéré par un utilisateur SSH. C'est une configuration idéale pour un système qui a divers utilisateurs et les fichiers de chaque utilisateur doivent rester privés et isolés des autres.

Dans ce guide, nous vous montrerons les instructions étape par étape pour emprisonner un utilisateur SSH dans son répertoire domestique.

Dans ce tutoriel, vous apprendrez:

  • Comment emprisonner l'utilisateur SSH à la maison
Répertoire de la prison SSH à la maison sur Linux Exigences logicielles et conventions de ligne de commande Linux
Catégorie Exigences, conventions ou version logicielle utilisée
Système Toute distribution Linux
Logiciel Serveur OpenSSH
Autre Accès privilégié à votre système Linux en tant que racine ou via le Sudo commande.
Conventions # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande
$ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier

Utilisateur de prison en répertoire à domicile avec chroot



Ouvrez un terminal et préparez-vous à taper beaucoup de commandes, car le processus pour configurer un chroot sécurisé est assez rédigé. Vous voudrez vous élever au compte d'utilisateur racine ou utiliser Sudo pour chaque commande.

  1. Commencez par faire du répertoire de chroot, qui contiendra les différents nœuds, libs et shell pour notre ou nos utilisateurs emprisonnés (s).
    # mkdir / var / chroot 
  2. Ensuite, copierons un peu essentiel / dev nœuds vers le répertoire de chroot, qui permet aux utilisateurs une utilisation de base du terminal.
    # mkdir / var / chroot / dev # cd / var / chroot / dev # mKnod -M 666 null c 1 3 # mknod -m 666 tty c 5 0 # mKnod -M 666 zéro c 1 5 # mknod -m 666 aléatoire c aléatoire C 1 8 


  3. Ensuite, définissez les autorisations sur le répertoire de chroot. L'utilisateur racine devra posséder le répertoire afin de s'assurer que les utilisateurs emprisonnés ne peuvent pas le quitter. D'autres utilisateurs ne peuvent avoir que des autorisations de lecture et d'exécution.
    # Chown Root: racine / var / chroot # Chmod 755 / var / chroot 
  4. Ensuite, donnons à notre utilisateur emprisonné un (s) shell. Nous utiliserons le Shell Bash dans cet exemple, bien que vous puissons en utiliser un autre si vous vouliez.
    # mkdir / var / chroot / bin # cp / bin / bash / var / chroot / bin 
  5. La coquille de bash nécessite lib Pour courir, ils devront donc également être copiés dans le chroot annuaire. Tu peux voir quoi lib sont requis avec le LDD commande:
    # LDD / BIN / BASH Linux-Vdso.donc.1 (0x00007ffd59492000) libtinfo.donc.6 => / lib / x86_64-linux-gnu / libtinfo.donc.6 (0x00007f91714cd000) libdl.donc.2 => / lib / x86_64-linux-gnu / libdl.donc.2 (0x00007F91714C7000) LIBC.donc.6 => / lib / x86_64-linux-gnu / libc.donc.6 (0x00007f91712d5000) / lib64 / ld-linux-x86-64.donc.2 (0x00007f917163a000) 

    Copiez ces fichiers dans le répertoire Chroot:

    # mkdir -p / var / chroot / lib / x86_64-linux-gnu / var / chroot / lib64 # cp / lib / x86_64-linux-gnu / libtinfo.donc.6, libdl.donc.2, libc.donc.6 / var / chroot / lib / x86_64-linux-gnU # cp / lib64 / ld-linux-x86-64.donc.2 / var / chroot / lib64 


  6. Maintenant, nous pouvons créer l'utilisateur et définir un mot de passe pour le compte.
    # UserAdd Exemple # Exemple de passwd 
  7. Ajouter le / etc / passwd et / etc / groupe fichiers dans le répertoire de chroot.
    # mkdir / var / chroot / etc # cp / etc / passwd, groupe / var / chroot / etc 
  8. Ensuite, nous devons effectuer une modification au fichier de configuration SSH. Utiliser nano ou votre éditeur de texte préféré pour l'ouvrir.
    # sudo nano / etc / ssh / sshd_config 

    Ajoutez les lignes suivantes au bas du fichier.

    Faites correspondre l'exemple de l'utilisateur ChrootDirectory / Var / Chroot 
    Configurer le chroot pour emprisonner un utilisateur SSH

    Enregistrez vos modifications et redémarrez le service SSH pour que les modifications prennent effet.

    # SystemCTL Redémarrer SSHD 


  9. Créez un répertoire domestique pour l'utilisateur et donnez-lui des autorisations appropriées.
    # mkdir -p / var / chroot / home / exemple # chown Exemple: exemple / var / chroot / home / exemple # chmod 700 / var / chroot / home / exemple 
  10. À ce stade, l'utilisateur devrait être en mesure de se connecter et d'utiliser des commandes de bash native, mais il n'aura pas accès à beaucoup. Donnons-leur accès à d'autres bases comme LS, Cat, Echo, RM, VI, Date, Mkdir. Plutôt que de copier manuellement dans toutes les bibliothèques partagées pour ces commandes, vous pouvez utiliser le script suivant pour rationaliser le processus.
    #!/ bin / bash # Ce script peut être utilisé pour créer un environnement de chroot simple # écrit par LinuxConfig.org # (c) 2020 LinuxConfig sous GNU GPL V3.0+ #!/ bin / bash chroot = '/ var / chroot' mkdir $ chroot pour i in $ (ldd $ * | grep -v dynamic | cut -d "" -f 3 | sed 'S /: //' | srie .donc.2]; Puis CP - Parents / Lib64 / Ld-Linux-X86-64.donc.2 / $ chroot fi # arch i386 si [-f / lib / ld-linux.donc.2]; Puis CP - Parents / Lib / Ld-Linux.donc.2 / $ chroot fi echo "La prison de chroot est prête. Pour y accéder, exécutez: chroot $ chroot " 
    Copie

    En utilisant ce script, activons certaines de ces commandes.

    # ./ chroot.sh / bin / ls, chat, echo, rm, vi, date, mkdir 

Nous avons enfin fini. Vous pouvez SSH avec l'utilisateur que vous avez créé pour vous assurer que tout fonctionne correctement.

# Exemple ssh @ localhost 
L'utilisateur SSH est emprisonné au chroot mais a accès aux commandes de base

Comme vous pouvez le voir, notre utilisateur a accès aux commandes que nous lui avons donné et ne pouvons pas accéder au reste du système en dehors de Chroot.

Conclusion

Dans ce guide, nous avons vu comment emprisonner un utilisateur SSH dans son répertoire d'origine sur Linux. C'est un long processus mais le script que nous avons fourni, vous devriez économiser une quantité massive de travail fastidieux. Emprisonner un utilisateur dans un seul répertoire est un très bon moyen de maintenir la confidentialité pour les utilisateurs individuels sur un serveur partagé.

Tutoriels Linux connexes:

  • Choses à installer sur Ubuntu 20.04
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Fichiers de configuration Linux: 30 premiers
  • Comment éliminer les bloatware de votre mobile Android Samsung…
  • Gestion de la saisie des utilisateurs dans les scripts bash
  • Linux peut-il obtenir des virus? Exploration de la vulnérabilité de Linux…
  • Mint 20: Mieux que Ubuntu et Microsoft Windows?
  • Téléchargement Linux
  • Comment doubler Kali Linux et Windows 10