rssh chroot nem mukodik

Fórumok

Debian 6.0.1 es CentOS 5.6 alatt probalkoztam. rssh felrak, egy user "p" nevu. Megkapta shellkent a az /usr/bin/rssh-t.
Elkezdtem nezegetni, amig nincs jail, tokeltesen mukodik. Ha csak scp van engedelyezve, akkor csak az mukodik, sftp eseten ugyanugy. Akkor nezzuk a chroot-ot. Van script (tovabbiakban a Debianos jatekot irom, ez a teszt):
/usr/share/doc/rssh/examples/mkchroot.sh /home (total bezarom az usert) lefut, letrejon a kovetkezo szerkezet:

drwxr-xr-x 2 root root 4096 May 25 13:50 dev
drwxr-xr-x 3 root root 4096 May 25 13:50 etc
drwxr-xr-x 3 root root 4096 May 25 13:50 lib
drwxr-xr-x 2 p p 4096 May 25 13:49 p
drwxr-xr-x 4 root root 4096 May 25 13:50 usr

./dev:
srw-rw-rw- 1 root root 0 May 24 17:20 log
crw-rw-rw- 1 root root 1, 3 May 24 17:20 null
crw-rw-rw- 1 root root 1, 5 May 24 17:20 zero

./etc:
-rw-r--r-- 1 root root 16356 May 25 13:50 ld.so.cache
-rw-r--r-- 1 root root 34 May 25 13:50 ld.so.conf
drwxr-xr-x 2 root root 4096 May 25 13:50 ld.so.conf.d
-rw-r--r-- 1 root root 475 May 25 13:50 nsswitch.conf
-rw-r--r-- 1 root root 945 May 25 13:50 passwd

./etc/ld.so.conf.d:
-rw-r--r-- 1 root root 64 May 25 13:50 i486-linux-gnu.conf
-rw-r--r-- 1 root root 44 May 25 13:50 libc.conf

./lib:
drwxr-xr-x 3 root root 4096 May 25 13:50 i686
-rwxr-xr-x 1 root root 113964 May 25 13:50 ld-linux.so.2
-rw-r--r-- 1 root root 30496 Jan 24 01:09 libnss_compat-2.11.2.so
lrwxrwxrwx 1 root root 23 May 25 13:50 libnss_compat.so.2 -> libnss_compat-2.11.2.so
-rw-r--r-- 1 root root 42572 Jan 24 01:09 libnss_files-2.11.2.so
lrwxrwxrwx 1 root root 22 May 25 13:50 libnss_files.so.2 -> libnss_files-2.11.2.so

./lib/i686:
drwxr-xr-x 2 root root 4096 May 25 13:50 cmov

./lib/i686/cmov:
-rwxr-xr-x 1 root root 1323460 May 25 13:50 libc.so.6

./usr:
drwxr-xr-x 2 root root 4096 May 25 13:50 bin
drwxr-xr-x 4 root root 4096 May 25 13:50 lib

./usr/bin:
-rwxr-xr-x 1 root root 21744 May 25 13:50 rssh
-rwxr-xr-x 1 root root 54648 May 25 13:50 scp

./usr/lib:
drwxr-xr-x 2 root root 4096 May 25 13:50 openssh
drwxr-xr-x 2 root root 4096 May 25 13:50 rssh

./usr/lib/openssh:
-rwxr-xr-x 1 root root 54640 May 25 13:50 sftp-server

./usr/lib/rssh:
-rwxr-xr-x 1 root root 20992 May 25 13:50 rssh_chroot_helper

Eredeti /usr/lib/rssh/rssh_chroot_helper SUID-s.
/etc/rssh.conf:

logfacility = LOG_USER
allowscp
allowsftp
# set the default umask
umask = 022
chrootpath=/home
user = p:011:000110:/home/p

Ez alapjan elvileg p user tud hasznalni sftp-t es scp-t.

ssh eseten:

ssh -v p @ 192.168.140.243

This account is restricted by rssh.
Allowed commands: scp sftp

Gyonyoru.
sftp kimenete:


sftp -v p @ 192.168.140.243
debug1: Authentication succeeded (password).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions @ openssh.com
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LC_ALL = en_US
debug1: Sending env LANG = en_US.UTF-8
debug1: Sending subsystem: sftp
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype eow @ openssh.com reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
Transferred: sent 1576, received 1960 bytes, in 0.1 seconds
Bytes per second: sent 24297.3, received 30217.5
debug1: Exit status 1
Connection closed

( -v nelkul a jelszo utan rogton connection closed fogad)
scp tokugyanez. log semmi :( pontosabban ennyi az auth.logban:

May 26 14:36:24 debiantest sshd[1611]: Accepted password for p from 192.168.140.254 port 52654 ssh2
May 26 14:36:24 debiantest sshd[1611]: pam_unix(sshd:session): session opened for user p by (uid=0)
May 26 14:36:24 debiantest sshd[1613]: subsystem request for sftp
May 26 14:36:24 debiantest sshd[1613]: Received disconnect from 192.168.140.254: 11: disconnected by user
May 26 14:36:24 debiantest sshd[1611]: pam_unix(sshd:session): session closed for user p

rssh honlapja szerint:
However it seems that on recent Linux distros, the script is missing something important, and I haven't yet figured out what that is... If you are able to identify it, please post to the mailing list to let me (and everyone else) know. If you run into this problem, and can't figure out what is missing, I've found that copying all of /lib into the jail seems to fix it. Not an ideal solution, but it works.

En bemasoltam mindent a /lib alol, de nulla :( Ugyanaz.
Valami otlet?

Hozzászólások

Hi.
Nem erre megoldás, de ugyanezt az openssh magában is tudja már. 5.6-os vagy magasabb verzió kell hozzá.

Én MySecureShell-t használok erre a célra. Hibátlan.

--
"Nem akkor van baj amikor nincs baj, hanem amikor van!"
Népi bölcsesség

tejóég, minek ez a gányolás?

sshd_config-ba:


Match User p
         ChrootDirectory %h
         ForceCommand internal-sftp

ok, bocs, csak most bongeszem a man oldalt. Mar latom.

Mondjuk, Write failed: Broken pipe a csatlakozasi kiserlet vege, de erre talan rjovok miert (ugynezem, a /home joai nem megfeloek a jail-hoz, de nem tudom, miert a /home a home, miert nem a /home/p.) Na, meg gyurom picit, koszi!

Na, mukodik. Ket bibije van:

1. a ChrootDirectory a root jogaban kell legyen: vagy nem tud beleirni a T. user vagy ha eggyel feljebb levo konyvtar az, akkor latja a tobbi user dir-jet is (ha belelepni nem is tud)

2. scp-t nem tud: ez roppant kellemetlen, mert masoknak ez kellene mindenaron :(

--
http://www.micros~1

2. Beszéld le róla a másokat... Chroot mellett problémás megoldani az SCP-t, mert chroot() után minden egyes usernek a homejában ott kellene hogy legyen hozzá az scp bináris.

1. Igen, kicsit túl szigorú az OpenSSH safely_chroot(). Pár évtized és valaki javítja, ahogy remélhetőleg a chroot loggolási problémát is.

Az igazi baj mas :(

Stopping sshd: [ OK ]
Starting sshd: /etc/ssh/sshd_config: line 121: Bad configuration option: Match
/etc/ssh/sshd_config: terminating, 1 bad configuration options
[FAILED]
[root@zeus ssh]# sshd -v
sshd: illegal option -- v
OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
usage: sshd [-46Ddeiqt] [-b bits] [-f config_file] [-g login_grace_time]
[-h host_key_file] [-k key_gen_time] [-o option] [-p port] [-u len]

Szoval ebben a CentOS-ben "kisse" regi az sshd. Mondjuk, sok mas is (pl. ruby vagy php, de azokbol az ember fordit binraist, sshd-bol nem szeretnek...)

--
http://www.micros~1

Aha, szívás. Akkor marad valamelyik korlátozott shellel való vacakolás, de azok biztonságilag sok esetben eléggé kérdőjelesek (scponly-ban pl. 7 éve találtam olyan biztonsági hibát, amellyel ráadásul rootot lehetett szerezni [azóta már javították, de sose biztos, hogy nincs benne több]).

Hozzáadod a repót a sources.list-hez, frissítesz, beírod: apt-get install mysecureshell, majd bal kezeddel eltakarod a szemed, jobb kézzel pedig lenyomod az entert. Később a kávézásból visszatérve kiadod a dpkg -l mysec* parancsot, majd örömmel konstatálod: jé, ez fent van a gépen, tőőőőőkjóóóóóó! nah, ha már fönt van, akkor csináljunk egy próbát...tömtötömtötöm...papparappapaa...hmmhmhmmhmhmmmm...jessssz! it's working :)

...csak viccőtem...

--
"Nem akkor van baj amikor nincs baj, hanem amikor van!"
Népi bölcsesség