Comment puis-je chrooter des connexions ssh?


20

Je voudrais configurer une prison chroot pour la plupart (pas tous) des utilisateurs se connectant via SSH. J'ai entendu dire que c'était possible avec les dernières versions de openssh, mais je n'ai pas réussi à savoir comment le faire. Le How To parle tous de patcher une ancienne version, et le patch n'est plus disponible.

J'utilise debian etch.

Réponses:


13

J'utilise rssh à cet effet.

Vous avez raison, il existe une nouvelle façon de le faire et c'est une fonctionnalité intégrée des versions récentes de ssh.

Voici un article sur Undeadly .


6

Je viens de configurer un utilisateur qui pourrait se connecter via ssh et le ssh à un autre serveur (qui n'est pas directement connecté au monde extérieur). Les liens entre cstamas et ericmayo ont été un bon début.

Fondamentalement, j'ai ajouté ce qui suit à / etc / ssh / sshd_config:

Correspondance avec l'utilisateur myuser
  ChrootDirectory / chroot / myuser

À partir de là, je devais juste créer l'environnement chroot sous / chroot / myuser. J'ai copié / bin / bash et / usr / bin / ssh et les bibliothèques partagées dont ils avaient besoin (ldd les affichera). Pour un environnement plus vaste, il serait probablement judicieux de compiler des versions liées statiquement des exécutables nécessaires.

Bash a fonctionné tout de suite, pour que ssh fonctionne, j'ai également dû créer le répertoire .ssh, copier / etc / passwd, /etc/nsswitch.conf et / lib / libnss_ * et créer / dev / null, / dev / tty et / dev / urandom via mknod.


2
mkdir /chroot
mkdir -p /chroot/home/<user_name>

mkdir /chroot/home/<user-name>/bin  
cp -pr /bin/bash /chroot/home/<user_name>/bin/.  
cp -pr /bin/ls /chroot/home/<user_name>/bin/.  
cp -pr /lib64 /chroot/home/<user_name>/.

Vous devez éditer le fichier / etc / sshd_config et ajouter

ChrootDirectory /chroot/%h

Et redémarrez le démon sshd.

Tout cela étant dit, je pense honnêtement que sftp est une meilleure option.

Aussi, j'ai trouvé cette URL si elle est utile.

http://www.techrepublic.com/blog/opensource/chroot-users-with-openssh-an-easier-way-to-confine-users-to-their-home-directories/229


1

Si vous utilisez l'authentification par clé publique, vous pouvez utiliser l'option "commande" dans les clés autorisées pour configurer la prison chroot.

~ / .ssh / authorized_keys:

command="/path/to/the/chroot/script" ssh-dss keydata.....keydata... user@host

Je n'utilise pas l'authentification par clé publique, l'authentification se fait par un mot de passe et un nom d'utilisateur
Malfist

0

Pour autant que je sache, les nouvelles versions d'OpenSSH n'autorisent le chroot que pour les connexions SFTP. J'ai essayé et ça marche. Mais pour SSH, la solution disponible est le patch chrootssh. Je navigue sur le site SourceForge et il n'y a pas de fichiers donc je pense qu'il est abandonné.

Pour Debian Etch, il y a quelques fichiers ici: http://debian.home-dn.net/etch/ssh/

Il existe d'autres solutions ici: http://www.debian.org/doc/manuals/securing-debian-howto/ap-chroot-ssh-env.en.html , y compris chrootssh.


-1 Désolé, votre réponse était correcte il y a des années lorsque vous l'avez écrite, mais elle ne l'est plus.
Chris S
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.