PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : anleitung: sftp-user in chroot-umgebung



derRichard
06.09.02, 14:11
hallo!

durch dieses howto kann man folgendes erreichen:
einen scp/sftp-server mit openssh3.4 bei dem die user in einer chroot-umgebung sind.

dieses system hab ich verwendet:
gentoo linux 1.2
linux 2.4.19-gentoo-r7
gcc 2.95.3
openssh 3.4p1(mit chroot-patch)

zunächst benötigen wir folgendes:
openssh3.4p1 (ftp://mingus.wu-wien.ac.at/pub/OpenBSD/OpenSSH/portable/openssh-3.4p1.tar.gz)
den chroot-patch für openssh3.4 (http://chrootssh.sourceforge.net/download/osshChroot-3.4.diff)

so, dann fange wir mal an:


wget ftp://mingus.wu-wien.ac.at/pub/OpenBSD/OpenSSH/portable/openssh-3.4p1.tar.gz
wget http://chrootssh.sourceforge.net/download/osshChroot-3.4.diff
tar zxf openssh-3.4p1.tar.gz
cd openssh-3.4p1
patch -p1 < ../osshChroot-3.4.diff

jetzt haben wir openssh gepatcht, nun gehts ans kompilieren:


./configure --prefix=/opt/urtrasicheres_openssh --with-md5-passwords
make && make install

jetzt basteln wird die chroot-umgebung:
die sollte so aussehen:


.
|-- bin
| |-- cp
| |-- groups
| |-- id
| |-- ls
| |-- mkdir
| |-- mv
| |-- rm
| |-- rmdir
| |-- scp
| |-- sftp
| |-- sftp-server -> /usr/local/libexec/sftp-server
| `-- sh
|-- dev
| |-- null
| `-- zero
|-- etc
| |-- ld.so.cache
| |-- ld.so.preload
| `-- nsswitch.conf
|-- home
| `-- affe
|-- lib
| |-- ld-linux.so.2
| |-- libc.so.6
| |-- libcrypt.so.1
| |-- libdl.so.2
| |-- libncurses.so.5
| |-- libnsl.so.1
| |-- libnss_compat.so.2
| |-- libpam.so.0
| |-- libpthread.so.0
| |-- librt.so.1
| `-- libutil.so.1
`-- usr
|-- lib
| |-- libcrypto.so.0.9.6
| `-- libz.so.1
`-- local
`-- libexec
`-- sftp-server

aber achtung, man sollte alle abhänigkeiten der programm nochmal mit ldd bzw strace nachprüfen.
/dev/zero bzw /dev/null erstellt man mit


mknod zero c 13 12
mknod null c 13 2


jetzt richten wir mal ssh ein:
dazu muss nur das sftp-subsystem angepasst werden:
aus meiner sshd_config:


Subsystem sftp /usr/local/libexec/sftp-server !dieser pfad ist auf die chroot-umgebung bezogen!


nun legen wir einen user an der in der chroot-umgebung leben soll.



useradd affe
passwd affe

jetzt ganz wichtig der eintrag in der /etc/passwd


affe:x:1006:100::/ssh_jail/./home/affe:/bin/sh

für das homedir "/ssh_jail/./home/affe" eingetragen.
dieser eintrag sagt openssh das /ssh_jail die chroot-umgebung ist in den es den user stecken muss und /home/affe ist das home-dir in der chroot-umgebung.

so, das war es schon.
jetzt muss man sshd starten und das ganze mit:


sftp affe@deine_ip

testen.

viel spass beim chrooten..

mfg
richard