Chroot SSH ?
Hej..
Er her nogen der kender en go måde at chroot'e users til ders home dir på min server? Jeg har prøvet denne guide til Debian Lenny men den spiller ikke helt. http://www.howtoforge.com/chrooted-ssh-sftp-tutorial-debian-lenny
Jeg kunne ikke køre nogle programmer også opretter den en masse etc, bin mapper i ens home. Det vil jeg ikke have.
Mit fortrukne OS er Debian men bruger da gerne andre for at få det til at fungere.
Hvordan fixer jeg lige det bedst ?
Er her nogen der kender en go måde at chroot'e users til ders home dir på min server? Jeg har prøvet denne guide til Debian Lenny men den spiller ikke helt. http://www.howtoforge.com/chrooted-ssh-sftp-tutorial-debian-lenny
Jeg kunne ikke køre nogle programmer også opretter den en masse etc, bin mapper i ens home. Det vil jeg ikke have.
Mit fortrukne OS er Debian men bruger da gerne andre for at få det til at fungere.
Hvordan fixer jeg lige det bedst ?
Kommentarer14
Fra din korte beskrivelse
Chroot er et lukket miljø, som processer kan kører i for ikke at kunne få adgang til resten af fil systemet.
Det har den konsekvens at du skal have kopieret en masse programfiler ind i din chroot, herunder noget fra bin. Dette kan _ikke_ undgås, uden disse filer og mappe, så kan din chroot ikke fungere.
Det kan måske hjælpe dig at se det der er i chroot som et separat system fra resten af dit OS.
Når du ikke kan køre nogle programmer, så antager jeg der er fordi du ikke har kopiere dem ind i dit chroot.
#1 har helt ret i alt hvad
#!/bin/bash
chroot=`which chroot 2>/dev/null | cut -f2`
busybox=`which busybox 2> /dev/null | cut -f2`
[ -z "$chroot" ] && missing="chroot"
[ -z "$busybox" ] && missing="busybox $missing"
[ ! -z "$missing" ] && echo "Installer: $missing" && exit
mkdir -p jail/bin
install -m755 $busybox jail/bin/
export PS1="chroot> "
export PATH="/bin"
$chroot jail/ /bin/busybox sh
chroot ssh
Jeg bruger følgende metode http://www.linuxin.dk/node/16458. Det er godnok ubuntu, men mon ikke det går.
Hmm måske jeg har
Det jeg gerne vil er at når jeg laver en bruger til en ven at han kan få shell adgang og bruge de programmer der nu er som irssi eller centerim osv. UDEN at han kan komme ud af sin hjemme mappe.
divineant @ kan du ikke forklar lidt mere om Busybox ? Lyder interessant...
Hvordan virker det? Hvordan kan jeg bruge det ?
kajo @ Ser fint ud men der må være en måde man kan låse den inde i ders hjemme mappe uden at skulle lave en extra mappe i den.
Det jeg gerne vil er at når
Det er det som chroot lader dig gøre. MEN de programmer han skal kunne kører skal ligge inde i dit chroot, sammen med alle biblioteker og evt. andre filer.
kajo @ Ser fint ud men der må være en måde man kan låse den inde i ders hjemme mappe uden at skulle lave en extra mappe i den.
Du kan kun undgå det ved at have dem på et højere niveau.
Fx. kan du lave en chroot i stien /chroot, men have brugerens home til at være /chroot/$USER. Så skal etc, bin, lib, usr/lib, dev osv. ligge i /chroot.
Jeg vil anbefale dig at kigge på jailkit, http://olivier.sessink.nl/jailkit/
Det er en samling scripts til at sætte chroot op til brugere, jeg bruger det på en webserver* til at låse hvert domæne inde.
Jailkit kan sættes op til at kopiere program filerne ind i din chroot,
Personligt ville jeg holde mig fra busybox, med mindre diskpladsen er et problem. De utils der er i busybox er meget begrænset ifht. dem du måske er vant til fra coreutils.
*) Inde i hver af mine chroots har jeg følgende mappe struktur:
/etc - Indeholder config-filer specifik for min chroot.
/bin - indeholder sh, bash, cp osv.
/lib - Indeholder libs for /bin
/home/$USER - Domænets standard brugers home-dir, fx. web1
/usr
/usr/bin - Indeholder php5-cgi og andre eksekverbare filer nødvendig for webhotellet
/usr/lib - Libs for /usr/bin
/usr/share - filer som php skal bruge for at køre ordenligt.
/tmp
/log
/dev - en meget begrænset udgave af dev, har null, zero, urandom og et par andre men ingen disk-enheder.
Hvert domæne har en standard bruger som apache skifter til ved hvert kald og en bruger til sftp/ssh.
Kort fortalt er busybox en
Scriptet jeg skrev i #2 er en hurtig demo som opretter et chroot jail som benytter busybox, prøv at kør den, og se hvad der sker.
sudo sh jailme.sh
divineant @ Har installert
/usr/sbin/chroot: cannot run command `/bin/busybox': No such file or directory
Og det forstår jeg ikke.. /bin/busybox er der..
ls -l /bin | grep busy
-rwxrwxr-x 1 root root 376108 8 sep 2008 busybox
Hvad er det der er ivejen ? ..
m_abs @ Vil kigge på de scripts i aften når jeg kommer hjem fra arbejde :) Tak
#7
Du mangler nok nogle
Du mangler nok nogle biblioteker. Prøv uden for chroot:
ldd /bin/busybox
Det kan også være at du mangler de symlinks som busybox skal bruge, såvidt jeg husker så linker fx. cp, sh, ln, mv osv til busybox inde i din bin-mappe.
Uden for chroot ? .. Hva
#8 tricket med busybox er at
#7, Det lyder da mystisk.
Den /bin/busybox chroot refererer til er i ikke /bin/busybox, men derimod jail/bin/busybox, som jo bliver til /bin/busybox inden i chrooten.
kan du ikke sikre dig at scriptet rent faktisk opretter følgende struktur
jail/
jail/bin
jail/bin/busybox
og så manuelt køre
sudo chroot jail /bin/busybox sh
#8 tricket med busybox er at
I de maskiner jeg har med busybox er alle filer i /bin synlinks til /bin/busybox.
Uden at vide noget om det
Nu ved jeg ikke hvorfor mit script i #2 ikke virker for #7, men hos mig virker det ganske glimrende.
Kan stadig ikke få det
Filerne er der.
$ ls -l /home/z4ndx/jail/bin/
-rwxr-xr-x 1 root root 376108 5 okt 16:31 busybox
Fra min home mappe.
sudo chroot jail /bin/busybox sh
chroot: cannot run command `/bin/busybox': No such file or directory
Hmm.. Sku jeg kører dit
Prøvede lige uden sudo også skrev den bare "Installer: chroot"
Hva så nu ?