Erinevus lehekülje "Openssh chroot" redaktsioonide vahel

Allikas: Kuutõrvaja
(Kasutaja loomine)
56. rida: 56. rida:
 
  # mkidir home/kasutaja
 
  # mkidir home/kasutaja
  
libexec on oluline sõltuvus FreeBSD's chroot kasutamieks nii siis lisame.
+
Kui kasutame FreeBSD'd siis
 +
libexec on oluline sõltuvus FreeBSD's chroot kasutamieks nii siis lisame. Linuxi
 +
kasutajad jätavad selle sujuvalt vahele.
  
 
  # mkdir libexec
 
  # mkdir libexec
 
  # cp /libexec/ld-elf.so.1 /usr/home/chroot/libexec/
 
  # cp /libexec/ld-elf.so.1 /usr/home/chroot/libexec/
  
Juhul kui vaja ,et toimiksid ka programmid naug ssh
+
Lisame kasutajale faili /bin/chs ehk shelli selleks kopeerime esiteks csh binaar faili bin kausta.
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
 
  # cp /bin/csh /home/chroot/bin

Redaktsioon: 27. veebruar 2008, kell 21:44

Sissejuhatus

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

  1. uus sshd
  2. tekitame vajalikud kaustad
  3. kopeerime endale vajalikud programmmid mida tahame lubada kasutada kasutadesse
  4. kopeerime lib'id mida programmid vajavad kaustadesse
  5. teeme kasutaja

Install

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

Kasutaja loomine

Kasutaja loomine ja chroot seaditamine peaks olema sarnane nii FreeBSD kui Linuxites juhul kui lugeja siiski mõnd viga märkab võib teksti parandada.

Tekitame 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

Kui kasutame FreeBSD'd siis libexec on oluline sõltuvus FreeBSD's chroot kasutamieks nii siis lisame. Linuxi kasutajad jätavad selle sujuvalt vahele.

# mkdir libexec
# cp /libexec/ld-elf.so.1 /usr/home/chroot/libexec/

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 ja Linuxi puhul oleks see vist lausa soovituslik kuna ta ei pruugi csh'd sisaldada.

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