J'utilisais jusqu'à présent un serveur sous Debian Etch 4.? avec scponly pour permettre à mes utilisateurs d'avoir un accès SFTP à leur home (et pas eu delà) et surtout que SFTP, pas de connexion SSH normale. Dans les équivalents, il y a rssh, MySecureShell, etc.
J'ai décidé de faire table rase et de passer à Debian Lenny 5.0. Elle arrive avec une nouvelle version d'OpenSSH qui est sensée gérer le chroot SFTP plus facilement, sans avoir à installer de paquet supplémentaire \o/ Sauf que j'ai beau tout essayé, je n'y arrive pas. Pire, quand je recommence de zéro, je n'arrive pas au même résultat. Ci-dessous, ma dernière tentative :
-J'installe Debian avec juste le système de base (même pas openssh-server !)
-J'ajoute mon utilisateur : useradd -m peter
-Je lui met un mot de passe : passwd peter
-Je créé mon groupe : groupadd sftponly
-J'ajoute mon utilisateur au groupe : adduser petr sftponly
-J'installe le serveur SSH : apt-get install openssh-server
-J'édite sa configuation : nano /et/ssh/sshd_config
--Je change : Subsystem sftp /usr/lib/openssh/sftp-server par Subsystem sftp internal-sftp
--J'ajoute à la fin du fichier :
Match group sftponly
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
-Je donner les droits du dossier home de peter à root : chown root:root /home/peter/
-Je dit que la racine de peter est / : usermod -d / peter
-Je redémarre la daemon SSH : /etc/init.d/ssh restart
À un moment ça fonctionnait presque. Peter pouvait se connecter en SFTP mais ne pouvait pas créer de répertoires ni de fichiers.
Depuis que j'ai encore recommencer, la connexion se fige dès que je rentre le mot de passe. Le mode verbose de SSH m'indique que peter est bien connecté, mais rien.
Quelqu'un connaît une méthode fiable pour ce genre de besoin ?
Merci d'avance.
# ta méthode est fiable
Posté par niol (site web personnel) . Évalué à 5.
Au moment où ça fonctionnait presque, il est normal que peter ne pouvait pas créer de répertoire ni de fichier! N'oublie pas que /home/peter appartient à root. Il faut donc donner des permissions à peter sur des sous-répertoires de /home/peter.
Ensuite, le fait que ça se fige en verbose vient d'un problème dans la version OpenSSH de lenny qui n'incorpore pas un patch[1] qui fait qu'on ne peut pas mettre d'arguments à ForceCommand.
[1] http://bugzilla.mindrot.org/show_bug.cgi?id=1527
[^] # Re: ta méthode est fiable
Posté par Thomas . Évalué à 1.
Sinon, j'ai constaté que scponly fonctionne toujours sur Lenny...
[^] # Re: ta méthode est fiable
Posté par Thomas . Évalué à 1.
Dans /home, chaque dossier d'utilisateur a ses propres droits :
synaseserv2:/home# ls -l
total 24
drwx------ 2 root root 16384 2009-06-29 08:52 lost+found
drwx------ 2 peter peter 4096 2009-06-29 09:57 peter
drwx------ 2 thomas thomas 4096 2009-06-29 09:04 thomas
Et les autres n'ont aucun droits (chmod 700).
Accessoirement (est-ce que ça joue vraiment ?) j'ai modifié dans /etc/passwd le shell de peter en /usr/lib/openssh/sftp-server.
Puis dans sshd_config j'ai mis :
Subsystem sftp internal-sftp
Match Group sftponly
ChrootDirectory /home
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp
Du coup quand peter se connecte, il atterrit dans /home, voit tous les dossiers utilisateurs, mais ne peut "entrer" que dans le sien.
C'est pas très "beau" vu qu'il voit tout les dossiers des autres utilisateurs (même si il peut pas afficher el contenu). De plus, je ne sais pas ce que va donner le chmod 700 avec apache :?
[^] # Re: ta méthode est fiable
Posté par niol (site web personnel) . Évalué à 1.
# Shell sftp
Posté par Thomas Bourdon (site web personnel) . Évalué à 0.
Ça ne va peut-être rien changer, voire même rien à voir, mais est-ce que tu as pensé à donner un shell à ton utilisateur ?
usermod -s /usr/libexec/sftp-server peter
(à adapter à debian)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.