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/*
/home
Satisfait désormais aux exigences ChrootDirectory
des utilisateurs restreints et ne peut pas les répertorier, mais les sftponly
utilisateurs 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 /home
mais 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 ~username
il se développera /username
maintenant, ce n'est pas ce que l'on veut dire.
L'administrateur qui crée les sftponly
utilisateurs 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 /home
vers son propre nom de répertoire. Maintenant, sous chroot /home/username
pointe 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 sftponly
utilisateur est sa participation au sftponly
groupe. 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
/home
hiérarchie et suivent les liens symboliques.
chroot
utilisateurs ed possèdent-ils leurChrootDirectory
? Peuvent-ils y accéder?