ssh et environnement chrooté

ssh et environnement chrooté - réseaux et sécurité - Linux et OS Alternatifs

Marsh Posté le 21-07-2008 à 11:59:02    

Bonjour
 
J'ai installé un environnement chrooté pour un utilisateur sur mon systeme (censé faire du scp par la suite).
Depuis le client, je peux me connecter en utilisant winscp : ca marche impec. Le probleme, c'est que je voudrais utiliser pscp, mais ca ne passe pas  ..
 
pour le chrootage,  
j'ai utilisé la maniere suivante :  
 

Code :
  1. toto:x:514:512::/home/toto:/bin/chrootshell


 
et
 

Code :
  1. cat /bin/chrootshell
  2. #!/bin/bash
  3. exec -c /usr/sbin/chroot /home/$USER /bin/bash


 
 
 
Dans mon repertoire /home/toto j'ai posé ce qui me semble necessaire , et surtout ce que les tutoriaux conseillent (lib, etc ..)
 
l'authentification , les transferts et remote commandes passent avec le winscp
en pscp, je lance une copie, je met mon mot de passe, puis plus rien.
si je fais ce meme pscp avec un user non chrooté, ca passe
 
Côté serveur, je cherche, j'ai passé en mode debug pour trouver où ca bloque,  
voilà le debug quand le client se connecte en pscp avec un utilisateur non chrooté (en root)
 
 

Code :
  1. Jul 21 11:37:44 spare sshd[2492]: debug1: userauth-request for user root service ssh-connection method password
  2. Jul 21 11:37:44 spare sshd[2492]: debug1: attempt 2 failures 2
  3. Jul 21 11:37:44 spare sshd[2492]: debug1: PAM Password authentication accepted for user "root"
  4. Jul 21 11:37:44 spare sshd[2492]: Accepted password for root from 192.168.1.1 port 37559 ssh2
  5. Jul 21 11:37:44 spare sshd[2492]: debug1: Entering interactive session for SSH2.
  6. Jul 21 11:37:44 spare sshd[2492]: debug1: fd 3 setting O_NONBLOCK
  7. Jul 21 11:37:44 spare sshd[2492]: debug1: fd 5 setting O_NONBLOCK
  8. Jul 21 11:37:44 spare sshd[2492]: debug1: server_init_dispatch_20
  9. Jul 21 11:37:44 spare sshd[2492]: debug1: server_input_channel_open: ctype session rchan 256 win 16384 max 16384
  10. Jul 21 11:37:44 spare sshd[2492]: debug1: input_session_request
  11. Jul 21 11:37:44 spare sshd[2492]: debug1: channel 0: new [server-session]
  12. Jul 21 11:37:44 spare sshd[2492]: debug1: session_new: init
  13. Jul 21 11:37:44 spare sshd[2492]: debug1: session_new: session 0
  14. Jul 21 11:37:44 spare sshd[2492]: debug1: session_open: channel 0
  15. Jul 21 11:37:44 spare sshd[2492]: debug1: session_open: session 0: link with channel 0
  16. Jul 21 11:37:44 spare sshd[2492]: debug1: server_input_channel_open: confirm session
  17. Jul 21 11:37:44 spare sshd[2492]: debug1: server_input_channel_req: channel 0 request exec reply 1
  18. Jul 21 11:37:44 spare sshd[2492]: debug1: session_by_channel: session 0 channel 0
  19. Jul 21 11:37:44 spare sshd[2492]: debug1: session_input_channel_req: session 0 req exec
  20. Jul 21 11:37:44 spare sshd[2492]: debug1: PAM establishing creds
  21. Jul 21 11:37:44 spare sshd[2492]: debug1: fd 7 setting O_NONBLOCK
  22. Jul 21 11:37:44 spare sshd[2520]: debug1: PAM establishing creds
  23. Jul 21 11:37:44 spare sshd[2492]: debug1: fd 9 setting O_NONBLOCK
  24. Jul 21 11:37:44 spare sshd[2492]: debug1: channel 0: rcvd eof
  25. Jul 21 11:37:44 spare sshd[2492]: debug1: channel 0: output open -> drain
  26. Jul 21 11:37:44 spare sshd[2492]: debug1: channel 0: obuf empty
  27. Jul 21 11:37:44 spare sshd[2492]: debug1: channel 0: close_write
  28. Jul 21 11:37:44 spare sshd[2492]: debug1: channel 0: output drain -> closed
  29. Jul 21 11:37:44 spare sshd[2492]: debug1: Received SIGCHLD.
  30. Jul 21 11:37:44 spare sshd[2492]: debug1: session_by_pid: pid 2520
  31. Jul 21 11:37:44 spare sshd[2492]: debug1: session_exit_message: session 0 channel 0 pid 2520
  32. Jul 21 11:37:44 spare sshd[2492]: debug1: channel request 0: exit-status
  33. Jul 21 11:37:44 spare sshd[2492]: debug1: session_exit_message: release channel 0
  34. Jul 21 11:37:44 spare sshd[2492]: debug1: session_close: session 0 pid 2520
  35. Jul 21 11:37:44 spare sshd[2492]: debug1: channel 0: read<=0 rfd 7 len 0
  36. Jul 21 11:37:44 spare sshd[2492]: debug1: channel 0: read failed
  37. Jul 21 11:37:44 spare sshd[2492]: debug1: channel 0: close_read
  38. Jul 21 11:37:44 spare sshd[2492]: debug1: channel 0: input open -> drain
  39. Jul 21 11:37:44 spare sshd[2492]: debug1: channel 0: ibuf empty
  40. Jul 21 11:37:44 spare sshd[2492]: debug1: channel 0: send eof
  41. Jul 21 11:37:44 spare sshd[2492]: debug1: channel 0: input drain -> closed
  42. Jul 21 11:37:44 spare sshd[2492]: debug1: channel 0: send close
  43. Jul 21 11:37:44 spare sshd[2492]: debug1: channel 0: rcvd close
  44. Jul 21 11:37:44 spare sshd[2492]: debug1: channel 0: is dead
  45. Jul 21 11:37:44 spare sshd[2492]: debug1: channel 0: garbage collecting


 
 
 
et en me connectant avec mon utilisateur chrooté  
 

Code :
  1. Jul 21 11:36:21 spare sshd[2230]: debug1: userauth-request for user toto service ssh-connection method password
  2. Jul 21 11:36:21 spare sshd[2230]: debug1: attempt 2 failures 2
  3. Jul 21 11:36:21 spare sshd[2230]: debug1: PAM Password authentication accepted for user "toto"
  4. Jul 21 11:36:21 spare sshd[2230]: Accepted password for toto from 192.168.1.1 port 36313 ssh2
  5. Jul 21 11:36:21 spare sshd[2230]: debug1: Entering interactive session for SSH2.
  6. Jul 21 11:36:21 spare sshd[2230]: debug1: fd 3 setting O_NONBLOCK
  7. Jul 21 11:36:21 spare sshd[2230]: debug1: fd 5 setting O_NONBLOCK
  8. Jul 21 11:36:21 spare sshd[2230]: debug1: server_init_dispatch_20
  9. Jul 21 11:36:21 spare sshd[2230]: debug1: server_input_channel_open: ctype session rchan 256 win 16384 max 16384
  10. Jul 21 11:36:21 spare sshd[2230]: debug1: input_session_request
  11. Jul 21 11:36:21 spare sshd[2230]: debug1: channel 0: new [server-session]
  12. Jul 21 11:36:21 spare sshd[2230]: debug1: session_new: init
  13. Jul 21 11:36:21 spare sshd[2230]: debug1: session_new: session 0
  14. Jul 21 11:36:21 spare sshd[2230]: debug1: session_open: channel 0
  15. Jul 21 11:36:21 spare sshd[2230]: debug1: session_open: session 0: link with channel 0
  16. Jul 21 11:36:21 spare sshd[2230]: debug1: server_input_channel_open: confirm session
  17. Jul 21 11:36:21 spare sshd[2230]: debug1: server_input_channel_req: channel 0 request exec reply 1
  18. Jul 21 11:36:21 spare sshd[2230]: debug1: session_by_channel: session 0 channel 0
  19. Jul 21 11:36:21 spare sshd[2230]: debug1: session_input_channel_req: session 0 req exec
  20. Jul 21 11:36:21 spare sshd[2230]: debug1: PAM establishing creds
  21. Jul 21 11:36:21 spare sshd[2230]: debug1: fd 7 setting O_NONBLOCK
  22. Jul 21 11:36:21 spare sshd[2233]: debug1: PAM establishing creds
  23. Jul 21 11:36:21 spare sshd[2230]: debug1: fd 9 setting O_NONBLOCK


 
Voilà, ca va pas jusqu'au bout .. Et côté client, pscp.exe ne rend plus la main apres saisie du password
 
quelqu'un arriverait il a décrypter ces 2 débug et me dire pourquoi le 2eme (celui de mon utilisateur chrooté) bloque ? je seche !
 
une librairie manquante ..etc .. je vois pas  
 
merci d'avance !
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Reply

Marsh Posté le 21-07-2008 à 11:59:02   

Reply

Marsh Posté le 21-07-2008 à 12:12:02    

Je n'ai pas trop le temps de me pencher sur tes logs pour diagnostiquer le problème. Juste une petite remarque : faire tes tests avec root, c'est pas très malin : non seulement root ne devrait pas avoir accès au SSH, mais surtout tu n'es pas en train de comparer des utilisateurs équivalents. Peut-être que qu'avec un utilisateur "normal" non chrooté, ton pscp ne passe déjà pas !
 
Sinon,  j'ai mis en place une config similaire chez moi, qui marche très bien. Plutôt que d'utiliser un script perso pour effectuer le chroot, je passe par rssh, qui est un outil spécialisé pour ce genre de chose. Peut-être que tu auras plus de succès en l'utilisant...
 
 


---------------
TriScale innov
Reply

Marsh Posté le 21-07-2008 à 12:15:06    

+1 pour rssh


---------------
Never f**k with your systems administrator. Why? Because they know what you do with all that free time! |?? | SAVE Jericho !
Reply

Marsh Posté le 21-07-2008 à 13:23:10    

il me semblait que openssh offrait maintenant un support 'natif' du chroot...


---------------
Intermittent du GNU
Reply

Marsh Posté le 21-07-2008 à 13:28:34    

il me semble aussi, a noter que rssh n'est pas vraiment un chroot juste un shell restreint il me semble


---------------
Never f**k with your systems administrator. Why? Because they know what you do with all that free time! |?? | SAVE Jericho !
Reply

Marsh Posté le 21-07-2008 à 13:44:11    

mikala a écrit :

il me semblait que openssh offrait maintenant un support 'natif' du chroot...

C'est intéressant. Merci pour l'info :jap:
 

Le_Tolier a écrit :

il me semble aussi, a noter que rssh n'est pas vraiment un chroot juste un shell restreint il me semble

Oui, rssh n'est qu'un shell restreint qui permet de limiter les commandes (autoriser uniquement SCP et/ou SFTP) et de chrooter l'utilisateur.
 


---------------
TriScale innov
Reply

Marsh Posté le 21-07-2008 à 13:57:39    

merci pour vos réponses :)
 
je confirme que openssh offre maintenant le chrootage nativement
ca aurait largement pu m'aider je pense, mais je suis bloqué par l'age de ma distrib (redhat 7.3) que je ne peux malheureusement pas upgrader pour l'instant. Du coup je ne peux pas installer de release plus récentes de openssh
si mes souvenirs sont bon, c'est la depuis une release de avril qu'openssh offre le chrootage
 
 
 
j'avais commencé par rssh, mais j'avais échoué, ca ne passait pas .. Si du coup j'y arrive pas comme ca, j'essaierai de replancher dessus
 
 
Je viens de ré essayer avec un user normal, identique a celui qui est chrooté (hormis le chrootage :D) => Les resultats sont les mêmes que ceux que j'ai posté dans mon premier post
 
 
ce qui m'embête, c'est qu'il ne doit pas y'avoir grand chose , puisque avec ce user chrooté, j'arrive à faire passer winscp  :fou:


Message édité par korny le 21-07-2008 à 13:58:44
Reply

Marsh Posté le 21-07-2008 à 16:44:13    

bon, j'ai configuré rssh en attendant :
- sftp passe impec
- scp passe aussi sans probleme
- chrootage ok.
 
 
Par contre, chose à laquelle je m'attendais pas : je dois passer des remotes commandes apres avoir utilisé un scp. Et rssh n'authorise que le sftp, le scp .. mais pas le remote "ssh".  
donc je crois bien qu'avec rssh si je veux transferer + faire des remotes commandes, sftp obligé, et pas de scp/remote ssh.
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed