Nous avons récemment trouvé une solution de contournement qui se présente comme suit:
/ etc / ssh / sshd_config:
...
Subsystem sftp internal-sftp
Match Group sftponly
ChrootDirectory /home
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp
autorisations de répertoire:
root@server:~ # chown root:root /home
root@server:~ # chmod 111 /home
root@server:~ # chmod 700 /home/*
/homeSatisfait désormais aux exigences ChrootDirectorydes utilisateurs restreints et ne peut pas les répertorier, mais les sftponlyutilisateurs ne pourront pas se connecter si leurs répertoires personnels sont configurés comme d'habitude ( /home/$LOGNAME): dans l'environnement chrooté, leurs répertoires personnels ne sont pas à l'intérieur /homemais directement sous root ( /).
solution de contournement 1
Définissez les foyers des utilisateurs restreints sur leur apparence sous chroot:
root@server:~ # usermod -d /username username
mettre en cavé 1
Si l'un des utilisateurs non restreints ou un script d'administration utilise l'expansion tilde de bash comme ~usernameil se développera /usernamemaintenant, ce n'est pas ce que l'on veut dire.
L'administrateur qui crée les sftponlyutilisateurs doit également se rappeler d'utiliser la maison non par défaut. Résoluble avec un script. Que l'administrateur doit se rappeler d'utiliser.
solution de contournement 2
C'est une alternative à la précédente que nous avons fini par utiliser:
root@server:~ # ln -s . /home/home
C'est-à-dire créer un lien symbolique à l'intérieur /homevers son propre nom de répertoire. Maintenant, sous chroot /home/usernamepointe vers le même répertoire que sans chroot. Pour un utilisateur restreint connecté avec sftp, il apparaîtrait comme /username. Ce répertoire est accessible en écriture à son propriétaire (utilisateur restreint). L'utilisateur restreint ne peut pas répertorier ses répertoires parent ou personnel de ses frères et sœurs par leur nom.
La seule particularité d'un sftponlyutilisateur est sa participation au sftponlygroupe. Nous avons trouvé plus facile à gérer que la solution de contournement 1.
mises en garde 2
- Vous ne pouvez pas avoir un utilisateur nommé 'home' avec un répertoire personnel
/home/home
- Vous devez être prudent avec les scripts qui traversent la
/homehiérarchie et suivent les liens symboliques.
chrootutilisateurs ed possèdent-ils leurChrootDirectory? Peuvent-ils y accéder?