petterg Skrevet 9. mars 2004 Del Skrevet 9. mars 2004 (endret) Instalasjon av chrootet openssh sftp server. Jeg er relativt nybegynner i linux miljø, så det kan tenkes dette er alment kjent for mange, men jeg vet at en instruksjons veiledning som denne ville spart meg endel timer. Håper den kan være til nytte for noen. Systemet som er brukt kjører Gentoo 1.4 Last ned den versjonen du ønsker fra http://chrootssh.sourceforge.net/download/ Jeg har brukt openssh-3.8.p1-chroot.tar.gz Pakker ut fila #tar -xzpvf openssh-3.8.p1-chroot.tar.gz Går til katalogen med kildekode cd openssh-3.8.p1-chroot Konfigurerer #./configure --prefix=/usr --libexecdir=/usr/lib/misc --sysconfdir=/etc/ssh --with-pam --with-md5-passwords Jeg har valgt å endre hoved install-dir fra /usr/local til /usr. Har også valgt å endre libexecdir fra $prefix/libexec til /usr/lib/misc og sysconfdir fra $prefix/etc til /etc/ssh. Grunnen til disse endringene er at det er slik openssh ville instalert seg om jeg hadde instalert det med emerge openssh. Kompilerer #make #make install Oppsett av chroot På mitt system ville jeg at alle "usikre" brukere skulle ha sitt hjemmeområde i /home/gjester/$username, og holdes innenfor /home/gjester. Oppretter katalogen for chroot #mkdir /home/gjester Gir alle brukere tilgang til underkataloger, men fjerner ls rettighetene på root katalogen innenfor "fengselet". #chmod 755 /home/gjester For at chroot skal kjøre, kreves at den har tilgang på de kommandoene og bibliotekene brukeren skal kunne bruke. Pass for alldel på å ikke gi brukeren tilgang på chroot kommandoen! Siden jeg bare skal ha en sftp server er det ikke mye som trengs. Lager kataloger for systemfiler: (hva katalogen heter avhenger av hvilke parametere du ga ved konfigurering. #cd /home/gjester #mkdir bin #mkdir dev #mkdir etc #mkdir home #mkdir lib #mkdir usr #mkdir usr/lib #mkdir usr/lib/misc #chmod -R 755 * Siden brukerens hjemmekatalog er /home/gjester/$username, trengs det også en link som gjør at /home/gjester i "root fengselet" fører samme sted som /home/gjester i systemet ellers: Lager brukerens hjemmekatalog-symlink #ln -s ../ home/gjester Kopierer inn de system kommandoene som trengs #cp /bin/cp bin/ #cp /bin/ls bin/ #cp /bin/mv bin/ #cp /bin/rm bin/ #cp /bin/mkdir bin/ #cp /bin/rmdir bin/ #cp /bin/bash bin/ Alle disse må være lesbare for alle brukere. Lager en sh symlink slik at dersom openssh skulle prøve å kjøre bin/sh, vil den kjøre bin/bash. #ln -s bash bin/sh Opretter dev/null og dev/zero #cd dev #mknod zero c 13 12 #mknod null c 13 2 #chmod go+w * #cd .. Kopierer /ect/passwd #cp /etc/passwd etc/ Kopierer sftp-server program. #cp /usr/lib/misc/sftp-server usr/lib/misc (Avhengig av hvilke parametere du konfigurerte varierer denne kodelinja. Hovedpoenget er at den skal være #cp /[path]/sftp-server [path]/ I en instalasjonsguide står det at man skal utføre #chmod +s usr/lib/misc/sftp-server Dette må IKKE gjøres! Det vil medføre at sftp klienter får root tilgang innen fengselet! Det er nå på tide å finne filene som trengs fra /lib og /usr/lib. Dette gjøres med kommandoene #ldd /usr/lib/misc/sftp-server (også den linja er avhengig av konfigurering. Bruk find / -name "sshd" om du ikke finner den selv) Noen systemer bruker strace isteden for ldd. ldd (eller strace) vil liste opp endel filer. F.x får jeg libresolv.so.2 => /lib/libresolv.so.2 libcrypto.so.0.9.7 => /usr/lib/libcrypto.so.0.9.7 [...] Man må kopiere alle disse filene slik at filreferansene stemmer i den nye rooten. Derfor: #cp /lib/libresolv.so.2 lib/libresolve.so.2 #cp /usr/lib/libcrypto.so.0.9.7 usr/lib/libcrypto.so.0.9.7 [...] Dette må gjøres for alle filene som listes! Tilsvarende må gjøres med alle filene som ligger i den ny bin katalogen #ldd /bin/bash #ldd /bin/cp #ldd /bin/ls #ldd /bin/mv #ldd /bin/rm #ldd /bin/mkdir #ldd /bin/rmdir Så er det bare å opprette brukere og hjemmekataloger. Merk den ekstra "/." i katalog spesifiseringen. Eksempel for å opprette bruker med navn demo #useradd -d /home/gjester/./demo demo #passwd demo Så er det bare å starte sshd, og alt skulle være klart til bruk. -pg Edit: La til --with-pam i konfigureringa. Endret 10. mars 2004 av petterg Lenke til kommentar
magikern Skrevet 14. mars 2006 Del Skrevet 14. mars 2006 hei, ser at denne er veldig gammel, men sliter med å få inn chrooted-sftp nå... etter å ha fulgt denne først en guide hvor man måtte sette chmod +s på sftp-server fikk jeg alt til å fungere, men har etterhvert funnet ut at det ikke er så trygt så droppa det fort, kom da over denne posten og fulgte alt her til punkt og prikke, men så når jeg logget på med en test bruker kunne jeg blant annet cd ut av "chroot" folderen og da forsvinner jo hele meningen med å chroot'e (ihvertfall for mitt bruk)... bruker debian stable med OpenSSH 3.8.1p1-8.sarg noen tips om hva jeg eventuellt kan ha gjort galt? Lenke til kommentar
petterg Skrevet 14. mars 2006 Forfatter Del Skrevet 14. mars 2006 Jeg har fulgt mange oppskrifter på hvordan man skal komme seg ut av fengselet, det har ikke virket med noen av dem. På et eller annet sted har du gjort noe anderledes enn meg. Hvis en fengslet bruker kjører ls -l / Får han opp samme liste som om en ikke-fengslet kjører samme kommando? (Sammenlign dato og klokkeslett på mappene) Det skal jo i utgangspunktet se ganske likt ut, men siden de er laget på forskjellig tidspunkter skal tider være forskjellige. Jeg bruker ikke denne metoden for installasjon lenger. Grunnen er at den patchen har kommet med i gentoo-portage, slik at den blir kompilert inn automatisk. Metoden for oppbygningen av fengselet er fortsatt den samme. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå