Newsgroup: it.comp.os.linux.sys
Titolo: sshd chrooted

Vorrei credre un ambiente chrooted per un utente che pssa collegarsi in 
scp alla mia mcchina.
Ho usato makejail per creare l'ambiente con lo script di esempio 
sshd.py. Ho modificato lo script di avvio di sshd in modo che chrootti 
in /var/chroot/sshd.
Il problema e` che l'utente non riesce ad autenticarsi, ancora prima di 
fornire la password, basta dopo il nome utente viene disconnesso da PAM 
che non gradisce: PAM initializtion failed.
Questo il log del server:
root@blob:/etc/init.d# /etc/init.d/ssh restart
  * Restarting OpenBSD Secure Shell server sshd 
 
                debug2: load_server_config: filename /etc/ssh/sshd_config
debug2: load_server_config: done config len = 640
debug2: parse_server_config: config /etc/ssh/sshd_config len 640
debug1: sshd version OpenSSH_5.1p1 Debian-5ubuntu1
debug1: read PEM private key done: type RSA
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: private host key: #0 type 1 RSA
debug1: read PEM private key done: type DSA
debug1: Checking blacklist file /usr/share/ssh/blacklist.DSA-1024
debug1: Checking blacklist file /etc/ssh/blacklist.DSA-1024
debug1: private host key: #1 type 2 DSA
debug1: rexec_argv[0]='/usr/sbin/sshd'
debug1: rexec_argv[1]='-D'
debug1: rexec_argv[2]='-D'
debug1: rexec_argv[3]='-d'
debug1: rexec_argv[4]='-d'
debug2: fd 3 setting O_NONBLOCK
debug1: Bind to port 22 on 0.0.0.0.
Server listening on 0.0.0.0 port 22.
debug2: fd 4 setting O_NONBLOCK
debug1: Bind to port 22 on ::.
Server listening on :: port 22.
debug1: Server will not fork when running in debugging mode.
debug1: rexec start in 5 out 5 newsock 5 pipe -1 sock 8
debug1: inetd sockets after dupping: 3, 3
Connection from 127.0.0.1 port 37401
debug1: Client protocol version 2.0; client software version 
OpenSSH_5.1p1 Debian-5ubuntu1
debug1: match: OpenSSH_5.1p1 Debian-5ubuntu1 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.1p1 Debian-5ubuntu1
debug2: fd 3 setting O_NONBLOCK
debug1: permanently_set_uid: 112/65534
debug1: list_hostkey_types: ssh-rsa,ssh-dss
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug2: kex_parse_kexinit: 
diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
debug2: kex_parse_kexinit: ssh-rsa,ssh-dss
debug2: kex_parse_kexinit: 
aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,
rijnda...@lysator.liu.se
,aes128-ctr,aes192-ctr,aes256-ctr
debug2: kex_parse_kexinit: 
aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,
rijnda...@lysator.liu.se
,aes128-ctr,aes192-ctr,aes256-ctr
debug2: kex_parse_kexinit: 
hmac-md5,hmac-sha1,
uma...@openssh.com
,hmac-ripemd160,
hmac-ri...@openssh.com
,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: 
hmac-md5,hmac-sha1,
uma...@openssh.com
,hmac-ripemd160,
hmac-ri...@openssh.com
,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: none,
zl...@openssh.com
debug2: kex_parse_kexinit: none,
zl...@openssh.com
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit: first_kex_follows 0
debug2: kex_parse_kexinit: reserved 0
debug2: kex_parse_kexinit: 
diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
debug2: kex_parse_kexinit: ssh-rsa,ssh-dss
debug2: kex_parse_kexinit: 
aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,
rijnda...@lysator.liu.se
,aes128-ctr,aes192-ctr,aes256-ctr
debug2: kex_parse_kexinit: 
aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,
rijnda...@lysator.liu.se
,aes128-ctr,aes192-ctr,aes256-ctr
debug2: kex_parse_kexinit: 
hmac-md5,hmac-sha1,
uma...@openssh.com
,hmac-ripemd160,
hmac-ri...@openssh.com
,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: 
hmac-md5,hmac-sha1,
uma...@openssh.com
,hmac-ripemd160,
hmac-ri...@openssh.com
,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: none,
zl...@openssh.com
,zlib
debug2: kex_parse_kexinit: none,
zl...@openssh.com
,zlib
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit: first_kex_follows 0
debug2: kex_parse_kexinit: reserved 0
debug2: mac_setup: found hmac-md5
debug1: kex: client->server aes128-cbc hmac-md5 none
debug2: mac_setup: found hmac-md5
debug1: kex: server->client aes128-cbc hmac-md5 none
debug2: Network child is on pid 19805
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST received
debug1: SSH2_MSG_KEX_DH_GEX_GROUP sent
debug2: dh_gen_key: priv key bits set: 119/256
debug2: bits set: 511/1024
debug1: expecting SSH2_MSG_KEX_DH_GEX_INIT
debug2: bits set: 511/1024
debug2: monitor_read: 0 used once, disabling now
debug1: SSH2_MSG_KEX_DH_GEX_REPLY sent
debug2: kex_derive_keys
debug2: set_newkeys: mode 1
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug2: set_newkeys: mode 0
debug1: SSH2_MSG_NEWKEYS received
debug1: KEX done
debug2: monitor_read: 5 used once, disabling now
debug1: userauth-request for user momo service ssh-connection method none
debug1: attempt 0 failures 0
debug2: parse_server_config: config reprocess config len 640
debug2: monitor_read: 7 used once, disabling now
debug2: input_userauth_request: setting up authctxt for momo
debug2: input_userauth_request: try method none
debug1: PAM: initializing for "momo"
PAM: initialisation failed
debug1: do_cleanup
mm_request_receive: read: Connection reset by peer
debug1: do_cleanup
Lato client:
momo@blob:~$ ssh momo@localhost
Connection closed by 127.0.0.1
Nell'ambiente chrooted pam c'e`, con i suoi file di configurazione e una 
bellissima directory /var/chroot/sshd/lib/security/ piena di ogni ben di 
Dio.
Qualcuno avrebbe idea di che cosa capita o di come aumentare il livello 
di debugging di PAM?
Saluti a tutti, rinraziamenti ai rispodenti,
Andrea

 scp alla mia mcchina.
rssh e vivi felice.

 di debugging di PAM?
Di solito si puo' fare in due modi: creando un file /etc/pam_debug che
segnala a PAM di entrare in modo debug o aggiungendo il modulo
pam_debug nelle varie opzioni in /etc/pam.d/...
Vedi 
http://linux.die.net/man/8/pam_debug
Ma da quello che riporti pare che Pam non si inizializzi nemmeno.
Sicuro che l'ambiente chrooted sia a posto?
Davide

whiplash ha scritto:

Grazie, sembra proprio fare al caso mio, l'unico peccato e` che il mio 
sistema deve avere il sistema di autenticazione in gergo tecnico 
sminchiato per cui se l'utente non ha /bin/bash come shell non riesce ad 
autenticarsi (non viene riconosciuta la password). Sto cercando di 
capire perche', ma non so se ci riusciro`.
Andrea

 capire perche', ma non so se ci riusciro`.
Forse /etc/shells ?
-- 
Flavio Visentin
Scientists have finally discovered what's wrong with the female brain:
On the left side, there is nothing right, and on the right side, there
is nothing left.

 Sicuro che l'ambiente chrooted sia a posto?
Per niente, anzi il mio primo sospetto e` che proprio non lo sia, ma non 
so come fare a verificare che cosa manca. Qualche consiglio a riguardo?
Andrea

Credo di aver finito di cic sull'argomento.
.azzo di Ubuntu 9.04, .azzo di manpage di sshd e .azzo di sshd, che la 
manpage non riporta l'opzione di configurazione ChrootDirectory, che era 
proprio quello che cercavo e mi pareva ben strano non l'avessero 
implementata e il secondo che non ti dice che versione e` nemmeno a 
fargli string del binario.
Comunque su una Ubuntu 9.04, qualsiasi sia la versione di
sshd installata di default, quell'opzione e` implementata e funziona 
pure, peccato che la manpage faccia cagare e non sia allineata col 
binario (qualcuno ha voglia di darmi il link per aprire un bug: launchpad?).
Andrea

 manpage non riporta l'opzione di configurazione ChrootDirectory, che era 
Falso. Non so che cosa abbia guardato ma nella manpage di sshd_config c'e`.

 Falso. Non so che cosa abbia guardato ma nella manpage di sshd_config c'e`.
Diro` di piu`, man sshd_config risolveva tutto con le tre parole chiave
Subsystem sftp /usr/lib/openssh/sftp-server
ForceCommand internal-sftp
ChrootDirectory /var/chroot/sshd
Andrea