Erinevus lehekülje "Openssh chroot" redaktsioonide vahel
1. rida: | 1. rida: | ||
Chroot on vahend kasutaja eraldamiseks teistest kasutajatest ning süsteemist. | Chroot on vahend kasutaja eraldamiseks teistest kasutajatest ning süsteemist. | ||
kasutaja saab siis logida ssh-ga ka masinasse ja saab kasutada mõningaid määratud käske | kasutaja saab siis logida ssh-ga ka masinasse ja saab kasutada mõningaid määratud käske | ||
− | kuid ei pääse | + | kuid ei pääse kogu muule süsteemile ja käskudele ligi. Pisut nagu jail aga tunduvalt piiratum ja vähemate võimalustega. |
Tuleb rõhutada, et käesolevas palas kirjeldatud tehnikat kasutades on piiratud vaid ligipääs failisüsteemile, iseenesest chrootitud kasutaja näeb kõiki süsteemis töötavaid protsesse, saab kasutada võrku jne. Siiski, kombineerides seda muude tehnikatega, nt linuxi tuuma grsecurity paigad ning hoolitsedes, et kasutaja chroot keskkonna ettevalmistamisel ei tekitata faile ja utiliite | Tuleb rõhutada, et käesolevas palas kirjeldatud tehnikat kasutades on piiratud vaid ligipääs failisüsteemile, iseenesest chrootitud kasutaja näeb kõiki süsteemis töötavaid protsesse, saab kasutada võrku jne. Siiski, kombineerides seda muude tehnikatega, nt linuxi tuuma grsecurity paigad ning hoolitsedes, et kasutaja chroot keskkonna ettevalmistamisel ei tekitata faile ja utiliite |
Redaktsioon: 27. veebruar 2008, kell 21:39
Chroot on vahend kasutaja eraldamiseks teistest kasutajatest ning süsteemist. kasutaja saab siis logida ssh-ga ka masinasse ja saab kasutada mõningaid määratud käske kuid ei pääse kogu muule süsteemile ja käskudele ligi. Pisut nagu jail aga tunduvalt piiratum ja vähemate võimalustega.
Tuleb rõhutada, et käesolevas palas kirjeldatud tehnikat kasutades on piiratud vaid ligipääs failisüsteemile, iseenesest chrootitud kasutaja näeb kõiki süsteemis töötavaid protsesse, saab kasutada võrku jne. Siiski, kombineerides seda muude tehnikatega, nt linuxi tuuma grsecurity paigad ning hoolitsedes, et kasutaja chroot keskkonna ettevalmistamisel ei tekitata faile ja utiliite mida kasutaja saaks süsteemi vastu kurjasti ära kasutada võiks vaadelda seda kui ühte võimalikku moodust süsteemi turvalisust suurendada.
Selle saavutamiseks tuleb teha järgnevad sammud
- uus sshd
- tekitame vajalikud kaustad
- kopeerime endale vajalikud programmmid mida tahame lubada kasutada kasutadesse
- kopeerime lib'id mida programmid vajavad kaustadesse
- teeme kasutaja
Linux
http://www.howtoforge.com/chrooted_ssh_howto_debian_p2
fetch http://chrootssh.sourceforge.net/download/openssh-4.2p1-chroot.tar.gz tar -xf openssh-4.2p1-chroot.tar.gz cd openssh-4.2p1-chroot ./configure make make install
FreeBSD
FreeBSD sisaldab juba vastavat patchitud openssh'd enda portsudes
/usr/ports/security/openssh-portable
Seejärel anname käsu make config ning märgime ära openssh_chroot toe kompileerimise
[X] OPENSSH_CHROOT Enable CHROOT support
Seejärel võime anda
make install clean
Seejärel teeme kasutaja kodukausta selleks hakkab olema /home/chroot. Sinna tekitame järgneva struktuuri
# mkdir /home/chroot # cd /home/chroot # mkdir bin home lib # mkidir home/kasutaja
libexec on esmane vajalik sõltuvus kõige kasutamieks nii siis lisame.
# mkdir libexec # cp /libexec/ld-elf.so.1 /usr/home/chroot/libexec/
Juhul kui vaja ,et toimiksid ka programmid naug ssh vaja tekitada vajalikud dev failid ja kaust dev vajalike seadmetega
Näiteks lisame kasutajale faili /bin/chs ehk shelli selleks kopeerime esiteks csh binaar faili bin kausta.
# cp /bin/csh /home/chroot/bin
Seejärel vaatame mis lib'e kasutab csh seda teeme käsuga ldd
# ldd /bin/csh /bin/csh: libncurses.so.7 => /lib/libncurses.so.7 (0x280c6000) libcrypt.so.4 => /lib/libcrypt.so.4 (0x28109000) libc.so.7 => /lib/libc.so.7 (0x28122000)
Ning kopeerime need kolm lib talle lib kausta
# cp /lib/libncurses.so.7 /home/chroot/lib # cp /lib/libcrypt.so.4 /home/chroot/lib # cp /lib/libc.so.7 /home/chroot/lib
Installi lihsustamise skript
Kui käske ja programme on hulgi mida soovime kasutajale kättesaadavaks teha on käsitöö üsnagi vaevanõudev ja tüütu. Selle lihtsustamiseks üks shell skript. Muutujaga CHROOT määratakse kasutaja kodu ja muutujale APPS võib kirjutada täisrajaga kõin binary failid mida soovime kasutajale ligipääsetavaks teha, eraldada tuleb need failid tühikuga üksteisest. Antud skriptis lisame kasutajale utiliidid
- ls
- mkdir
- pwd
- rm
- id
CHROOT="/usr/home/chroot" APPS="/bin/ls /bin/mkdir /bin/mv /bin/pwd /bin/rm /usr/bin/id" for prog in $APPS; do cp $prog $CHROOT/bin ldd $prog > /dev/null if [ "$?" = 0 ] ; then LIBS=`ldd $prog | awk '{ print $3 }'` cp $LIBS $CHROOT/lib fi done
Teeme kasutaja nimega kasutaja. Kasutaja tegemises pole mitte midagi ebatavalist
ainukeses erinevuseks chrooditud kasutaja ja tavalise kasutaja vahel on see ,et
tema kodukaustaks saab /home/jail/./home/kasutaja
ja shelliks /bin/csh. Muidugi ei pea csh'd kasutama kasutaja shelliks
kindlasti vaid see on pigem antud näites. Nii võib samahästi ka bashi
kohe alguses paigaldada.
Probleemid
Juhul kui logimisel teatab
csh: Cannot open /etc/termcap ja või mõne tarkvara käivitamisel Error opening terminal: xterm
siis tuleb paigaldada termcap
cp /etc/termcap /usr/home/chroot/etc cp .cshrc /usr/home/jail/home/kasutaja
ja lisame faili .cshrc rea
setenv TERMCAP /etc/termcap
Kui mc ei taha käivituda siis tuleb tekitada kasutaja omanduses tmp kaust