Réponses:
SSH Permet de chrooter un utilisateur SFTP en mode natif. Vous avez juste besoin de fournir
ChrootDirectory
Dans votre fichier de configuration sshd, puis redémarrez sshd.
Si vous ne faites que du sftp, alors vous n’avez rien à faire de plus. Malheureusement, cela ne fonctionne pas pour scp. Pour un shell interactif, vous devez copier les fichiers binaires et les nœuds / dev dans le chroot.
Un exemple de configuration, pour un seul utilisateur, testuser:
Match User testuser
ChrootDirectory /home/testuser
ForceCommand internal-sftp
Quelques éléments à prendre en compte, dans la page de manuel sshd_config:
Tous les composants du chemin doivent être des répertoires appartenant à la racine qui ne sont pas accessible en écriture par tout autre utilisateur ou groupe. Après le chroot, sshd (8) change le répertoire de travail dans le répertoire de base de l'utilisateur.
Recherchez ChrootDirectory dans man sshd_config pour plus d'informations.
Subsystem sftp /usr/lib/openssh/sftp-server
ligneSubsystem sftp internal-sftp -f AUTH -l VERBOSE
Match
section.
Un chroot est une méthode relativement simple. Étant donné que le système d'exploitation possède déjà cette fonctionnalité de sécurité, les auteurs de démons ont tendance à ne pas tenter de la réimplémenter.
Rssh vient avec un guide pour la mise en place d'une prison chroot. C'est dans le CHROOT
fichier dans la distribution source. En un mot, vous devez avoir:
/usr/bin/scp
, /usr/libexec/openssh/sftp-server
,/usr/bin/rssh_chroot_helper
{/usr,}/lib/lib*.so.[0-9]
) qu’elles utilisent, également copiées/etc/passwd
(très probablement pas une copie mais dérivé du maître)/dev/null
, /dev/tty
et aussi une /dev/log
prise pour l' enregistrement (et vous devez dire à votre démon syslog à écouter sur cette prise)Conseil supplémentaire qui ne figure pas dans la documentation rssh: Si vous souhaitez que certains fichiers soient accessibles dans une prison chroot, vous pouvez utiliser bindfs ou Linux mount --bind
pour créer des hiérarchies de répertoires supplémentaires à partir de la prison. bindfs
permet au répertoire remonté d'avoir des autorisations plus restrictives, par exemple en lecture seule. ( mount --bind
sauf si vous appliquez un correctif de noyau; Debian a inclus ce correctif depuis East Lenny, mais la plupart des autres distributions ne l'ont pas encore fait en 2011.)
Vous voudrez peut-être regarder scponly (ou plus récemment, rssh ); c'est essentiellement un shell de connexion qui ne peut être utilisé que pour lancer scp ou le sous-système sftpd. Dans la scponlyc
variante, il exécute un chroot avant d'activer le sous-système en question.