Version 0.1
Hent og kompiler en patched udgave af openssh fra:
http://chrootssh.sourceforge.net/download/
Et root-environment er den struktur som brugeren har adgang til naar systemet benyttes. Dette environment starter fra en rod '/', som man kender det under almindelig brug af *nix-systemer. Normalt benytter man sig af systemets root-environment, men det er muligt at aendre dette for brugere. Dette giver mulighed for at lade en bruger leve i en underdel af det egentlige system - isoleret fra omverdenen. Det er dette openssh-chroot udnytter ved at henvise udvalgte brugere til et isoleret environment, og dermed, i princippet, forhindre adgang til den resterende del af systemet.
Foerst oprettes en mappe, som skal indeholde det nye environment (herefter $CHROOTPATH$). Herefter Kopieres de kommandoer som skal vaere tilgaengelige fra det nye environment ind i den nye mappe, saa de ligger efter rette struktur.
F.eks. cp /bin/ls /bin/cp $CHROOTPATH$/bin/
Hvis det oenskes at brugere kun skal have adgang gennem sftp, skal sftp-serveren ogsaa kopieres ind i det environment. Stien til sftp-server kan findes i 'sshd_config' i linien som starter med prefikset 'Subsystem sftp'. Brug stien som efterfoelger dette.
f.eks. Subsystem sftp /usr/lib/openssh/sftp-server).
Brug blot den nyligt kompilerede 'sftp-server'.
f.eks. cp $OPENSSHCHROOTPATH$/sftp-server $CHROOTPATH$/usr/lib
Herefter skal alle libraries som kommandoer i de nye environment afhaenger af tilfoejes til det nye environment. Disse findes med 'ldd' (man ldd).
f.eks. ldd $CHROOTPATH$/bin/ls
Giver foelgende output:
linux-gate.so.1 => (0xffffe000) librt.so.1 => /lib/tls/librt.so.1 (0xb7f2d000) libacl.so.1 => /lib/libacl.so.1 (0xb7f25000) libselinux.so.1 => /lib/libselinux.so.1 (0xb7f11000) libc.so.6 => /lib/tls/libc.so.6 (0xb7dd9000) libpthread.so.0 => /lib/tls/libpthread.so.0 (0xb7dc7000) /lib/ld-linux.so.2 (0xb7f4d000) libattr.so.1 => /lib/libattr.so.1 (0xb7dc2000) libdl.so.2 => /lib/tls/libdl.so.2 (0xb7dbe000) libsepol.so.1 => /lib/libsepol.so.1 (0xb7d84000)
Dette giver en liste over de libraries og deres korrekte sti. Kopier disse ind i environmentet efter samme fremgangsmaade som benyttet ovenfor, hvor kommandoer blev tilfoejet. Husk at det er _alle_ noedvendige libraries som skal tilfoejes, altsaa ogsaa dem f.eks. /usr/lib/sftp-server afhaenger af.
Naar dette beskidte arbejde er gjort kan det nye environment testes. Skift til en super user, og koer kommandoen:
chroot $CHROOTPATH$ $KOMMANDOER SOM SKAL UDFOERES$ f.eks. chroot /home/chroot /bin/sh eller chroot /home/chroot /usr/lib/sftp-server
Hvis dette virker skulle dit nye environment vaere klar til brug.
Openssh-chroot benytter sig af et magisk token '.' (et punktum) for at bestemme hvornaar en bruger skal overfoeres til et andet environment ved login. Det magiske token indsaettes i den sti som henviser til brugerens home dir. Formatet er som foelger:
$CHROOTPATH$/.$USER_HOMEDIR$ f.eks. /home/chroot/./home/chroot/home/my_user
Naar brugeren er oprettet, som man normalt vil foretraekke det (se 'man adduser'). For at aendre en bruges home dir aendres der i filen '/etc/passwd', som indeholder diverse informationer om de forskellige brugere (se 'man 5 passwd'). Et eksempel paa linier fra filen er foelgende:
root:x:0:0:root:/root:/bin/bash nobody:x:65534:65534:nobody:/nonexistent:/bin/sh nemo:x:1000:1000::/home/nemo:/bin/bash sshd:x:100:65534::/var/run/sshd:/bin/false
Den - i dette tilfaelde - interessante del er stien umiddelbart foer det sidste ':', der peger paa den tilsvarende brugers home dir.
Denne sti aendres nu til en som overholder formatet omtalt ovenfor.
f.eks. nemo:x:1000:1000::/home/nemo:/bin/bash til nemo:x:1000:1000::/home/chroot/./home/nemo:/bin/bash
Openssh-chroot vil nu ved naeste login fra denne bruger aendre environment til det indsatte i filen.
Et yderligere kig paa '/etc/passwd' viser at information om hvilken shell brugeren benytter ogsaa findes heri. Hvis man kun oensker at giver brugeren adgang med sftp skal hans shell aendres til den sti hvori 'sftp-server' blev placeret.
f.eks. nemo:x:1000:1000::/home/chroot/./home/nemo:/usr/lib/sftp-server
Nu skulle alt gerne vaere konfigureret. Husk at starte openssh-chroot og ssh til denne med den korrekte bruger.
* Tilfoej et rc-script til at starte serveren seperat. * Skriv 'Download og kompiler'-afsnittet. * [[http://cvresumewritingservices.org/|resume writing]]