Serveur sftp, shell réduit (rssh) et chroot

@M3t4linux: t’étais sur une lenny/i386 non ? Maintenant que tu es sur squeeze, il faut en plus copier /usr/lib/openssh/sftp-server . Vérifie si elle y est.
@Ricardo: si si, j’suis là.

Oui, tout à fait mais j’avais déjà dû copier sftp-server pour que ça fonctionne…

Que disent les logs ?

Extrait du auth.log lors d’une tentative de connection (en local) sur le sftp

Feb 6 21:22:00 matrix sshd[6641]: Accepted password for dexter from ::1 port 37366 ssh2 Feb 6 21:22:00 matrix sshd[6641]: pam_unix(sshd:session): session opened for user dexter by (uid=0) Feb 6 21:22:00 matrix sshd[6643]: subsystem request for sftp

Merci Yan, je posterai dans quelques jours à ce sujet, là je suis occupé sur autre chose :006

Ici, plus d’infos avec logcheck - notifié par email

Feb 6 20:49:26 matrix rssh[5617]: chrooting all users to /home/sftp/ Feb 6 20:49:26 matrix rssh[5617]: chroot cmd line: /usr/lib/rssh/rssh_chroot_helper 2 "/usr/lib/openssh/sftp-server" Feb 6 20:49:26 matrix rssh_chroot_helper[5617]: new session for dexter, UID=1001 Feb 6 20:49:26 matrix rssh_chroot_helper[5617]: chroot() failed, 2: Operation not permitted

Apparemment, rssh est responsable

T’as bien le setuid sur le rssh_chroot_helper : #chmod u+s /usr/lib/rssh/rssh_chroot_helper
ça peut aussi être un pb de librairie manquante ( bizarre ça vu qu’elle était là avant), ou qui aurait changé de nom suite au passage lenny squeeze.
Pas le temps là, mais je vais t’envoyer (demain) le contenu des dossiers lib de mon chroot pour que tu vérifies.

Je vérifierai les droits sur rssh_chroot_helper ce soir.

Ce paquet a été migré aussi, forcément. Mais un comparatif avec ton contenu serait intéressant…

Résolu!!

Je n’avais plus le setuid sur rssh_chroot_helper suite à la màj dudit paquet!!

Merci

@M3t4linux: cool.
@Ricardo: bizarre ton pb… Un client peut se connecter, et pas les autres: vérifie le passwd du chroot.

Je regarde ça demain.
:006

Alors, Pour mieux faire l’essai, j’ai recréé un utilisateur bidon “machin”.
J’ai bien vérifié d’avoir le setuid et j’ai repris mot à mot à partir de la ligne :
–> Placer le setuid sur le rssh__chroot_helper
Arrivé à
V Tests
je tape la commande donnée :

ricardo@serveur:~$ sftp -P xxxxx machin@localhost
machin@localhost’s password:
Connection closed
ricardo@serveur:~$

idem en utilisant le -oPort=xxxx

J’ajoute que si je fais la même chose avec mon utilisateur classique : ricardo, j’arrive bien à l’invite

ricardo@serveur:~$ sftp -oPort=xxxx ricardo@192.168.1.2
ricardo@192.168.1.2’s password:
Connected to 192.168.1.2.
sftp>

Il faut peut être ajouter les nouveaux utilisateurs dans le sshd_config pour le paramètre “allow users”??

C’était fait.

@Ricardo: on avait créé un groupe (sftp je pense) et changé les droits en conséquence des principaux dossiers du chroot sur ton serveur. Est-ce que tes nvx utilisateurs appartiennent à ce groupe ?
Sinon, que racontent les logs ?

En effet, j’avais oublié de le mettre dans le groupe sftp.
Je l’ai fait pour “machin” et le résultat de la commande est plus “causant” mais elle n’aboutit pas pour ça :

[code]ricardo@serveur:~$ ssh -p xxxxxx machin@192.168.1.2
machin@192.168.1.2’s password:
Linux serveur 2.6.32-5-amd64 #1 SMP Fri Dec 10 15:35:08 UTC 2010 x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

This account is restricted by rssh.
Allowed commands: sftp

If you believe this is in error, please contact your system administrator.

Connection to 192.168.1.2 closed.
ricardo@serveur:~$[/code]

Quels seraient les logs qui pourraient mettre sur la voie ?

ça sent qd même à plein nez un pb de droit cette histoire: un utilisateur (sans doute celui créé lors de l’install de ta debian) peut aller sur le serveur, et pas ceux uniquement créés por aller sur ce serveur.
Peux tu m’envoyer un #ls -al /home/sftp.

Ceux du tuto par exemple.

ricardo@serveur:~$ ls -al /home/sftp total 32 drwxr-xr-x 8 root root 4096 6 déc. 01:50 . drwxr-xr-x 8 root root 4096 8 févr. 16:31 .. drwxr-xr-x 2 root root 4096 26 nov. 02:11 dev drwx--x--- 2 root sftp 4096 26 nov. 14:26 etc drwx--x--- 2 root sftp 4096 26 nov. 02:08 lib drwx--x--- 2 root sftp 4096 26 nov. 02:05 lib64 drwxrws--- 2 root sftp 4096 8 févr. 14:50 perso drwx--x--- 5 root sftp 4096 27 nov. 12:36 usr

[code]ricardo@serveur:~$ ls -al /home
total 44
drwxr-xr-x 8 root root 4096 8 févr. 16:31 .
drwxr-xr-x 23 root root 4096 10 janv. 01:31 …
drwxr-xr-x 2 xxxxxx xxxxx 4096 11 janv. 02:07 xxxxxxxx
drwx------ 2 root root 16384 25 oct. 12:10 lost+found
drwxr-xr-x 2 machin machin 4096 8 févr. 16:31 machin
drwxrwxrwx 4 root root 4096 12 janv. 19:33 photo
drwxr-xr-x 8 ricardo ricardo 4096 2 janv. 14:28 ricardo
drwxr-xr-x 8 root root 4096 6 déc. 01:50 sftp

[/code]

Les droits semblent pourtant être les mêmes entre ricardo qui va bien et machin qui va mal

les groupes de ricardo et de machin, à qui j’ai même rajouté ‘fuse’, ne me souvenant plus s’il était utile pour ssh ???

[code]ricardo@serveur:~$ groups ricardo
ricardo : ricardo dialout cdrom floppy audio video plugdev fuse sftp

ricardo@serveur:~$ groups machin
machin : machin fuse sftp[/code]

QQ logs :

Feb 9 17:09:01 serveur /USR/SBIN/CRON[17801]: (root) CMD ( [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -n 200 -r -0 rm) Feb 9 17:17:01 serveur /USR/SBIN/CRON[17810]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly) Feb 9 17:19:10 serveur rssh[17820]: setting log facility to LOG_USER Feb 9 17:19:10 serveur rssh[17820]: allowing sftp to all users Feb 9 17:19:10 serveur rssh[17820]: setting umask to 066 Feb 9 17:19:10 serveur rssh[17820]: chrooting all users to /home/sftp Feb 9 17:19:10 serveur rssh[17820]: chroot cmd line: /usr/lib/rssh/rssh_chroot_helper 2 "/usr/lib/openssh/sftp-server" Feb 9 17:33:01 serveur /USR/SBIN/CRON[17839]: (root) CMD (/usr/bin/surveille) Feb 9 17:39:01 serveur /USR/SBIN/CRON[17862]: (root) CMD ( [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -n 200 -r -0 rm) Feb 9 17:43:01 serveur /USR/SBIN/CRON[17890]: (root) CMD (/usr/local/bin/complet) Feb 9 17:52:52 serveur rssh[17916]: setting log facility to LOG_USER Feb 9 17:52:52 serveur rssh[17916]: allowing sftp to all users Feb 9 17:52:52 serveur rssh[17916]: setting umask to 066 Feb 9 17:52:52 serveur rssh[17916]: chrooting all users to /home/sftp Feb 9 17:52:52 serveur rssh[17916]: user machin attempted to log in with a shell Feb 9 17:55:03 serveur rssh[17954]: setting log facility to LOG_USER Feb 9 17:55:03 serveur rssh[17954]: allowing sftp to all users Feb 9 17:55:03 serveur rssh[17954]: setting umask to 066 Feb 9 17:55:03 serveur rssh[17954]: chrooting all users to /home/sftp Feb 9 17:55:03 serveur rssh[17954]: user machin attempted to log in with a shell Feb 9 18:05:01 serveur rssh[17996]: setting log facility to LOG_USER Feb 9 18:05:01 serveur rssh[17996]: allowing sftp to all users Feb 9 18:05:01 serveur rssh[17996]: setting umask to 066 Feb 9 18:05:01 serveur rssh[17996]: chrooting all users to /home/sftp Feb 9 18:05:01 serveur rssh[17996]: user machin attempted to log in with a shell Feb 9 18:05:44 serveur rssh[18014]: setting log facility to LOG_USER Feb 9 18:05:44 serveur rssh[18014]: allowing sftp to all users Feb 9 18:05:44 serveur rssh[18014]: setting umask to 066 Feb 9 18:05:44 serveur rssh[18014]: chrooting all users to /home/sftp Feb 9 18:05:44 serveur rssh[18014]: user machin attempted to log in with a shell Feb 9 18:09:01 serveur /USR/SBIN/CRON[18020]: (root) CMD ( [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -n 200 -r -0 rm) Feb 9 18:17:01 serveur /USR/SBIN/CRON[18032]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly) ricardo@serveur:~$

pas le temps de fouiller pour l’instant, mais le pb vient de là:

Normalement, le shell de machin est rssh (/usr/bin/rssh), et apparement, là ça plante.
Vais y regarder plus tard dans la soirée.