chroot Umgebung - mini HowTo
chroot Umgebung - mini HowTo
Bitte zahlreiche Kommentare & Verbesserungen ;-)
Source downloaden und kompillieren:
# cd /usr/local/src
# wget http://www.gsyc.inf.uc3m.es/~assman/dow ... 1.9.tar.gz
# tar xzf jail_1.9.tar.gz
# cd jail_1-9_stable/src
# make
# make install
chroot Umgebung erstellen:
# /usr/local/bin/mkjailenv /var/chroot
# /usr/local/bin/addjailsw /var/chroot
Neuen Systembenutzer anlegen:
#/root/confixx/confixx_useradd.pl -h /var/chroot -p Passwort (verschlüsselt) -g users -s /usr/local/bin/jail chrootuser1
Systembenutzer in der chroot Umgebung hinzufügen:
#/usr/local/bin/addjailuser /var/chroot /home/chrootuser1 /bin/bash chrootuser1
Zusätzliche Programme in der chroot Umgebung zur Verfügung stellen:
# /usr/local/bin/addjailsw /var/chroot -P <programmname>
Source downloaden und kompillieren:
# cd /usr/local/src
# wget http://www.gsyc.inf.uc3m.es/~assman/dow ... 1.9.tar.gz
# tar xzf jail_1.9.tar.gz
# cd jail_1-9_stable/src
# make
# make install
chroot Umgebung erstellen:
# /usr/local/bin/mkjailenv /var/chroot
# /usr/local/bin/addjailsw /var/chroot
Neuen Systembenutzer anlegen:
#/root/confixx/confixx_useradd.pl -h /var/chroot -p Passwort (verschlüsselt) -g users -s /usr/local/bin/jail chrootuser1
Systembenutzer in der chroot Umgebung hinzufügen:
#/usr/local/bin/addjailuser /var/chroot /home/chrootuser1 /bin/bash chrootuser1
Zusätzliche Programme in der chroot Umgebung zur Verfügung stellen:
# /usr/local/bin/addjailsw /var/chroot -P <programmname>
Re: chroot Umgebung - mini HowTo
/usr/local/bin/addjailsw /var/chroot -P bash
fehlt dort noch.. :)
ich habe früher schonmal jail getestet, was ich aber nie hinbekommen habe ist, das die jail user kompilieren können. hab verschiedene libs, gcc & make mit eingebunden aber es hat nie geklappt.
wenn einer weiss wie es geht soll er sich bitte mal melden. :)
cu
fehlt dort noch.. :)
ich habe früher schonmal jail getestet, was ich aber nie hinbekommen habe ist, das die jail user kompilieren können. hab verschiedene libs, gcc & make mit eingebunden aber es hat nie geklappt.
wenn einer weiss wie es geht soll er sich bitte mal melden. :)
cu
-
- Userprojekt
- Posts: 916
- Joined: 2002-06-17 16:09
Re: chroot Umgebung - mini HowTo
Du musst den GCC im und die Glibc in der Chroot-Umgebung kompilieren.v00dY wrote:ich habe früher schonmal jail getestet, was ich aber nie hinbekommen habe ist, das die jail user kompilieren können. hab verschiedene libs, gcc & make mit eingebunden aber es hat nie geklappt.
wenn einer weiss wie es geht soll er sich bitte mal melden. :)
Wie das geht, erfährst du unter http://www.linuxfromscratch.org/ - diese Anletiung ist eigentlich für die Kompilierung eines komplett neuen Linux-Systems gedacht, mit ein paar Anpassungen lässt sie sich aber auch sehr gut für ein Jail verwenden.
Erst nachlesen, dann nachdenken, dann nachfragen... :)
Warum man sich an diese Reihenfolge halten sollte...
Warum man sich an diese Reihenfolge halten sollte...
Re: chroot Umgebung - mini HowTo
Hat bei mir grad wunderbar gefunzzt ;) (chroot User anlegen)
Re: chroot Umgebung - mini HowTo
Ist das wirklich eine gute Idee, erst ein chroot jail zu machen und dann dort den gcc zu installieren? Die chroot Funktion ist eigentlich nicht als Security Feature entwickelt worden, auch wenn sie häufig so eingesetzt wird.
Hier die Anleitung, nach der ich vorgegangen bin (Google-Cache, die Original Website scheint down zu sein):
http://216.239.39.100/search?q=cache:21 ... n&ie=UTF-8
- * Der neue Apache Worm (siehe Security Forum) kann nur aktiv werden, wenn er den gcc hat.
* Es soll Möglichkeiten geben, ein C Programm zu schreiben, das seine chroot Umgebung verlassen kann. Ich kenne aber keine Details.
Hier die Anleitung, nach der ich vorgegangen bin (Google-Cache, die Original Website scheint down zu sein):
http://216.239.39.100/search?q=cache:21 ... n&ie=UTF-8
-
- Userprojekt
- Posts: 916
- Joined: 2002-06-17 16:09
Re: chroot Umgebung - mini HowTo
Also ich kenne keine Methode aus einer chroot-Umgebung auszubrechen (davon ausgegangen, dass alle Programme, die nicht im chroot laufen, korrekt programmiert sind).nn4l wrote:Es soll Möglichkeiten geben, ein C Programm zu schreiben, das seine chroot Umgebung verlassen kann. Ich kenne aber keine Details.
Ã?berleg dir mal folgendes: Wenn es möglich ist ein solches Programm zu schreiben, dann kann ich es auch zu Hause kompilieren und die Binär-Datei hochladen.
Erst nachlesen, dann nachdenken, dann nachfragen... :)
Warum man sich an diese Reihenfolge halten sollte...
Warum man sich an diese Reihenfolge halten sollte...
Re: chroot Umgebung - mini HowTo
Es gibt definitiv unter Linux die Möglichkeit, mit einem 10-Zeiler in C aus einer chroot-Umgebung auszubrechen. Um dies abzuschalten, ist ein Linux-Kernel-Patch notwendig, der Teil des GRSecurity-Kernel-Patches (http://www.grsecurity.org/) ist.MajorTermi wrote:[Also ich kenne keine Methode aus einer chroot-Umgebung auszubrechen (davon ausgegangen, dass alle Programme, die nicht im chroot laufen, korrekt programmiert sind).
Ã?berleg dir mal folgendes: Wenn es möglich ist ein solches Programm zu schreiben, dann kann ich es auch zu Hause kompilieren und die Binär-Datei hochladen.
Die von mir gepostete chroot-Umgebung für ssh läuft nicht mit einigen Optionen des grsecurity-Patches.
Achja, User-Partitionen sollten eigentlich mit nodev, nosuid und noexec gemountet werden. Für jeden User gibts dann ein /chroot/user/bin, das als Loopback mit exec gemountet wird und die User-Binaries enthält. Dann kannst Du auch keine Programme von zu Hause einspielen und alle sind glücklich...
Ciao, (M)
-
- Userprojekt
- Posts: 916
- Joined: 2002-06-17 16:09
Re: chroot Umgebung - mini HowTo
Ich habe mir mal die Homepage des GRSecurity-Patches angeschaut, konnte dort aber nichts im Bezug auf Probleme mit chroot finden.Mirza wrote:Es gibt definitiv unter Linux die Möglichkeit, mit einem 10-Zeiler in C aus einer chroot-Umgebung auszubrechen. Um dies abzuschalten, ist ein Linux-Kernel-Patch notwendig, der Teil des GRSecurity-Kernel-Patches (http://www.grsecurity.org/) ist.
Könntest du bitte mal den Link auf die Beschreibung eines entsprechenden Exploit posten?
Das Problem ist nämlich, dass du Usern die Ausführung von Programmen in Ihrem Homeverzeichnis erlauben musst, wenn Sie CGI-Skripte benutzen können sollen.
Erst nachlesen, dann nachdenken, dann nachfragen... :)
Warum man sich an diese Reihenfolge halten sollte...
Warum man sich an diese Reihenfolge halten sollte...
-
- Posts: 483
- Joined: 2002-04-28 13:30
- Location: Hannover
Re: chroot Umgebung - mini HowTo
ein generelles problem der "jails" bei linux ist wohl, dass sie zwar das filesystem beschränken, aber nicht den prozessraum. ein beliebter angriff - wenn auch nicht der einzige ;) - ist, mit race-condition+setuid+temp eine root shell zu bekommen.
eine bessere lösung wäre, uid 0 auf den user zu mappen, was imho zur zeit aber nur mit bsd möglich ist: virtuelles prozessmanagement mit eigenem environment. sollte uid 0 kompromittiert sein, dann beträfe das nur einen speziellen prozessraum.
insofern sind beide hier dargelegten jail-umgebungen gleichwertig, wobei mir die mit der busybox die elegantere und performantere zu sein scheint 8)
"back to the roots"
eine bessere lösung wäre, uid 0 auf den user zu mappen, was imho zur zeit aber nur mit bsd möglich ist: virtuelles prozessmanagement mit eigenem environment. sollte uid 0 kompromittiert sein, dann beträfe das nur einen speziellen prozessraum.
insofern sind beide hier dargelegten jail-umgebungen gleichwertig, wobei mir die mit der busybox die elegantere und performantere zu sein scheint 8)
"back to the roots"
Cahn's Axiom:
When all else fails, read the instructions
When all else fails, read the instructions
-
- Userprojekt
- Posts: 916
- Joined: 2002-06-17 16:09
Re: chroot Umgebung - mini HowTo
@rootmaster:
Natürlich kann man sich auch fragen, wofür man in einem Jail SetUID-Root Binaries braucht...
Aber prinzipiell gebe ich dir recht: Das Problem ist, wie ich bereits einmal angesprochen habe, fehlerhafte Software, die nicht im Chroot läuft.
Natürlich kann man sich auch fragen, wofür man in einem Jail SetUID-Root Binaries braucht...
Aber prinzipiell gebe ich dir recht: Das Problem ist, wie ich bereits einmal angesprochen habe, fehlerhafte Software, die nicht im Chroot läuft.
Erst nachlesen, dann nachdenken, dann nachfragen... :)
Warum man sich an diese Reihenfolge halten sollte...
Warum man sich an diese Reihenfolge halten sollte...
Re: chroot Umgebung - mini HowTo
Salve!
Wie mache ich das ganze denn wenn ich kein Confixx mehr auf dem Server habe?
So wie ich mir das dachte geht das nicht:
Benutzer "Hugo" anlegen.
Home: /home/chroot/hugo
Login-Shell -> /usr/local/bin/jail
Dann:
Wenn ich mich dann einloggen möchte:
Wo ist der blöde Fehler?
Hugo ;)
Wie mache ich das ganze denn wenn ich kein Confixx mehr auf dem Server habe?
So wie ich mir das dachte geht das nicht:
Benutzer "Hugo" anlegen.
Home: /home/chroot/hugo
Login-Shell -> /usr/local/bin/jail
Dann:
Code: Select all
/usr/local/bin/addjailuser /var/chroot /home/chroot/hugo /bin/bash hugo
Code: Select all
jail: chrooted directory /home/chroot/hugo is not configuredfor jail (bad passwd file); bailing out.
Hugo ;)
Re: chroot Umgebung - mini HowTo
Hi,
das ~home für den "echten" Systemuser muss /var/chroot sein.
das ~home für den "echten" Systemuser muss /var/chroot sein.
Re: chroot Umgebung - mini HowTo
Salve!
Also irgendewas stimmt nicht. Wenn ich mich z.B. mit WinSCP einlogge kommt direkt:
Er macht dann weiter, aber uppen kann ich nichts...
Ich habe das wie folgt gemacht:
Alles nach Anleitung und ab "Neuen Systembenutzer anlegen" so:
Hugo ;)
Also irgendewas stimmt nicht. Wenn ich mich z.B. mit WinSCP einlogge kommt direkt:
Code: Select all
Command "groups"
failed with return code 127 and error message
-jail: groups: command not found.
Ich habe das wie folgt gemacht:
Alles nach Anleitung und ab "Neuen Systembenutzer anlegen" so:
Code: Select all
useradd -d /var/chroot -p Passwort -g users -s /usr/local/bin/jail hugo
Code: Select all
/usr/local/bin/addjailuser /var/chroot /home/chroot/hugo /bin/bash hugo
Re: chroot Umgebung - mini HowTo
Aehm :) wir ham auf confixx 1.6.3 upgegradet, da gibt es scheinbar keine confixx_adduser.pl
wie ginge es denn theoretisch weiter? wie können wir einen User via Jail Rechte für 'sein' Verzeichnis geben?
wie ginge es denn theoretisch weiter? wie können wir einen User via Jail Rechte für 'sein' Verzeichnis geben?
Re: chroot Umgebung - mini HowTo
Die Anleitung habe ich auch befolgt, kommt von weiter oben... :DHugo wrote:Ich habe das wie folgt gemacht:
Alles nach Anleitung und ab "Neuen Systembenutzer anlegen" so:Code: Select all
useradd -d /var/chroot -p Passwort -g users -s /usr/local/bin/jail hugo
Hugo ;)Code: Select all
/usr/local/bin/addjailuser /var/chroot /home/chroot/hugo /bin/bash hugo
[EDIT] P.S.: Das Problem mit SCP habe ich auch... / Ich meine es lassen sich bei mir generell keine Progs dazufügen, aber das ist wohl ein Problem von mir, habe die bash einfach reinkopiert, und dann kann ich mich auch anmelden...[/EDIT]
Grüße
Knollo
Re: chroot Umgebung - mini HowTo
Wenn ich als Homeverzeichnis /var/chroot angeben muss, gehe ich recht in der Annahme dass dann Suexec nicht mehr laufen würde?
Re: chroot Umgebung - mini HowTo
Ja das ist richtig. Du kannst die Verzeichnise natürlich auch unter /home/www/ anlegen.
Re: chroot Umgebung - mini HowTo
Hi,
wenn ich Software in ins Jail hinzufügen möchte bekomme ich folge Fehlermeldung:
usr/local/bin/addjailsw /var/chroot -P bash
addjailsw
A component of Jail (version 1.9 for linux)
http://www.gsyc.inf.uc3m.es/~assman/jail/
Juan M. Casillas <assman@gsyc.inf.uc3m.es>
Guessing bash args(0)
Can't build dependencies for /bin/bash
Done.
Woran kann das liegen?
bigbuTT
wenn ich Software in ins Jail hinzufügen möchte bekomme ich folge Fehlermeldung:
usr/local/bin/addjailsw /var/chroot -P bash
addjailsw
A component of Jail (version 1.9 for linux)
http://www.gsyc.inf.uc3m.es/~assman/jail/
Juan M. Casillas <assman@gsyc.inf.uc3m.es>
Guessing bash args(0)
Can't build dependencies for /bin/bash
Done.
Woran kann das liegen?
bigbuTT
Re: chroot Umgebung - mini HowTo
Hallo,
mein erstes Problem ist gelöst :-D
Nun hab ich aber ein neues :(
Wenn ich das richtig verstanden habe hat jeder JailUser sein HomeDirectory in /var/chroot. Das heisst alle persönlichen Files wandern in /var/chroot. Wenn ich aber mehrer JailUser habe bekomme ich da aber ein Problem :(
Am liebsten würde ich in der NichtChrootPasswd /var/chroot/home/UserXX als HomeDirectory eintragen. Geht aber nicht :)
Gibt es eine andere Lösung?
bigbuTT
mein erstes Problem ist gelöst :-D
Nun hab ich aber ein neues :(
Wenn ich das richtig verstanden habe hat jeder JailUser sein HomeDirectory in /var/chroot. Das heisst alle persönlichen Files wandern in /var/chroot. Wenn ich aber mehrer JailUser habe bekomme ich da aber ein Problem :(
Am liebsten würde ich in der NichtChrootPasswd /var/chroot/home/UserXX als HomeDirectory eintragen. Geht aber nicht :)
Gibt es eine andere Lösung?
bigbuTT
Re: chroot Umgebung - mini HowTo
DEL - Hab meinen Beitrag wegen unnötiger Wiederholung wieder gelöscht.
BTW: Hier fehlt der Löschknopp. ;-)
[TOM]
BTW: Hier fehlt der Löschknopp. ;-)
[TOM]
Re: chroot Umgebung - mini HowTo
@[TOM] warum gelöscht?
Lag es an meiner dämlichen Frage? Wegen Wiederholung?
bigbuTT
Lag es an meiner dämlichen Frage? Wegen Wiederholung?
bigbuTT
Re: chroot Umgebung - mini HowTo
hmm :-( wo liegt der fehler?
kiste:/var/chroot# /usr/local/bin/addjailsw /var/chroot
addjailsw
A component of Jail (version 1.9 for linux)
http://www.gsyc.inf.uc3m.es/~assman/jail/
Juan M. Casillas <assman@gsyc.inf.uc3m.es>
Guessing head args()
Can't build dependencies for /usr/bin/head
Guessing cat args()
Can't build dependencies for /bin/cat
Guessing pwd args()
Can't build dependencies for /bin/pwd
Guessing ln args()
Can't build dependencies for /bin/ln
Guessing mkdir args()
Can't build dependencies for /bin/mkdir
Guessing rmdir args()
Can't build dependencies for /bin/rmdir
Guessing ls args()
Can't build dependencies for /bin/ls
Guessing sh args()
Can't build dependencies for /bin/sh
Guessing mv args()
Can't build dependencies for /bin/mv
Guessing rm args()
Can't build dependencies for /bin/rm
Guessing more args()
Can't build dependencies for /bin/more
Guessing grep args()
Can't build dependencies for /bin/grep
Guessing vi args(-c q)
Can't build dependencies for /usr/bin/vi
Guessing id args()
Can't build dependencies for /usr/bin/id
Guessing cp args()
Can't build dependencies for /bin/cp
Guessing tail args()
Can't build dependencies for /usr/bin/tail
Guessing touch args()
Can't build dependencies for /bin/touch
Done.
Re: chroot Umgebung - mini HowTo
*ja ich weiß, ich seh es selbst nicht so gerne, aber *schieb** .. :>
-
- Posts: 68
- Joined: 2003-04-08 16:15
- Contact:
Re: chroot Umgebung - mini HowTo
bin wohl zu doof dazu... :oops:
Bei mir kann der user sich nachher noch Frei im system bewegen :(
das einzige was ich anders gemacht habe ist das ich den user per yast erstellt hab
Bei mir kann der user sich nachher noch Frei im system bewegen :(
das einzige was ich anders gemacht habe ist das ich den user per yast erstellt hab