Jail: Unterschied zwischen den Versionen
Mile (Diskussion | Beiträge) K (Was im Jail nicht geht (Anfang)) |
Rabe (Diskussion | Beiträge) K (link-vorlage verwenden) |
||
(19 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 7: | Zeile 7: | ||
Bis auf ein paar Einschränkungen ist ein Jail genauso funktional wie das native Hostsystem. | Bis auf ein paar Einschränkungen ist ein Jail genauso funktional wie das native Hostsystem. | ||
Im Detail funktionieren nicht: | Im Detail funktionieren nicht: | ||
* [[Ping]] | * [[Mount]]en und unmounten von Dateisystemen, | ||
* Abhängig von der Policy, Dienste die ''Raw Sockets'' benötigen: [[Ping]], [[Traceroute]], ... | |||
* Shared Memory | |||
* Das Anlegen von Paketfilter-Regeln | |||
Diese Einschränkungen sind derzeit aktuell. An einigen Stellen wird bereits aktiv gearbeitet, andere Einschränkungen sind zu mindest schon auf der ToDo-Liste der Entwickler gelandet. Man darf also gespannt bleiben. | |||
Manche Einschränkungen können global, manche auch Jail-individuell gelockert werden. Dieser Punkt ist stetigen Änderungen unterworfen, es empfiehlt sich daher, den aktuellen Stand von {{man|freebsd|8|jail}} unter '''Sysctl MIB Entries''' zu studieren. | |||
== Entwicklung == | |||
; CVS: | |||
* [http://www.freebsd.org/cgi/cvsweb.cgi/src/etc/rc.d/jail src/etc/rc.d/jail] Startscript | |||
* [http://www.freebsd.org/cgi/cvsweb.cgi/src/usr.sbin/jail/ src/usr.sbin/jail/] jail(8) | |||
* [http://www.freebsd.org/cgi/cvsweb.cgi/src/usr.sbin/jls/ src/usr.sbin/jls/] jls(8) | |||
* [http://www.freebsd.org/cgi/cvsweb.cgi/src/usr.sbin/jexec/ src/usr.sbin/jexec/] jexec(8) | |||
* [http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/kern/kern_jail.c src/sys/kern/kern_jail.c] | |||
; Jail Resource Limits: | |||
: CPU- und Speicherverbrauch in den einzelnen Jails limitieren bzw. ''gerecht'' aufteilen. | |||
: Soll verhindern, dass ein Jail alle verfügbaren Ressourcen binden kann. | |||
:* [http://code.google.com/soc/freebsd/appinfo.html?csaid=B7593C2466CC95B7 Google Summer of Code] | |||
:* http://wikitest.freebsd.org/JailResourceLimits | |||
;Jail2: | |||
: Einer Überarbeitung des Jail-Konzepts wird in [[Jail2|FreeBSD Jail2]] einfließen. | |||
: Einen Überblick über das Projekt bietet die [http://docs.freevps.com/doku.php?id=freebsd:index FreeVPS Projektseite]. | |||
==Siehe auch== | ==Siehe auch== | ||
* [[ | * [http://wiki.freebsd.org/Jails wiki.freebsd.org/Jails] | ||
* [http://www.freebsd.org/cgi/man.cgi?query=jail&sektion=0&manpath=FreeBSD+7.0-RELEASE&apropos=1&format=html Jail relevante Manpages in 7.0] | |||
* [[top.uugrn.org/Jailkonzept]] zur Umsetzung bei der {{UUGRN}}. | |||
* [[Real Virtuality#Jails|Paper zu FreeBSD Jails auf Real Virtuality]]: | |||
:* [http://rabe.uugrn.org/FreeBSD/Jails/Real_Virtuality_2006_Vortrag_Jails.odp Vortragsfolien zu FreeBSD Jails] als ODP (OASIS OpenDocument Präsentation / [[OpenOffice]]) | |||
:* [http://rabe.uugrn.org/FreeBSD/Jails/Real_Virtuality_2006_Vortrag_Jails.pdf Vortragsfolien zu FreeBSD Jails] als PDF | |||
* [http://www.heise.de/ix/artikel/2002/03/138/ BSD-Jails als Werkzeug zur Systemabsicherung] iX 3/2002 | |||
[[Kategorie: | [[Kategorie:FreeBSD]] | ||
[[Kategorie:Virtualisierung]] | [[Kategorie:Virtualisierung]] | ||
[[Kategorie:Jail| ]] |
Aktuelle Version vom 27. April 2013, 13:32 Uhr
Jails sind eine einfache Lösung zur Virtualisierung von Computersystemen im FreeBSD Betriebssystem. Im Gegensatz zu den meisten gängigen Virtualisierungslösungen wird eine virtuelle Maschine nur sehr rudimentär implementiert. So findet keine tatsächliche Emulation eines vollständigen eigenen Systems samt entsprechender virtueller Hardware statt. Vielmehr läuft ein Jail auf der selben Kernel-Instanz wie das Hostsystem und wird darunter nach einem chroot in ein eigenes Unterverzeichnis in einer eigenen Prozessgruppe gestartet. Der Kernel kapselt dabei die Prozesstabellen ab, so dass ein Jail stets nur seine eigenen Prozesse sehen kann. Ausschließlich das Hostsystem hat Zugriff auf die vollständige Prozesstabelle.
Genaugenommen handelt es sich bei einem Jail mehr oder weniger um ein aufgebohrtes chroot. Dadurch muss der Kernel zwingend ein gleichartiges Betriebssystem im Jail starten.
Einschränkungen[Bearbeiten]
Bis auf ein paar Einschränkungen ist ein Jail genauso funktional wie das native Hostsystem. Im Detail funktionieren nicht:
- Mounten und unmounten von Dateisystemen,
- Abhängig von der Policy, Dienste die Raw Sockets benötigen: Ping, Traceroute, ...
- Shared Memory
- Das Anlegen von Paketfilter-Regeln
Diese Einschränkungen sind derzeit aktuell. An einigen Stellen wird bereits aktiv gearbeitet, andere Einschränkungen sind zu mindest schon auf der ToDo-Liste der Entwickler gelandet. Man darf also gespannt bleiben.
Manche Einschränkungen können global, manche auch Jail-individuell gelockert werden. Dieser Punkt ist stetigen Änderungen unterworfen, es empfiehlt sich daher, den aktuellen Stand von jail(8) unter Sysctl MIB Entries zu studieren.
Entwicklung[Bearbeiten]
- CVS
- src/etc/rc.d/jail Startscript
- src/usr.sbin/jail/ jail(8)
- src/usr.sbin/jls/ jls(8)
- src/usr.sbin/jexec/ jexec(8)
- src/sys/kern/kern_jail.c
- Jail Resource Limits
- CPU- und Speicherverbrauch in den einzelnen Jails limitieren bzw. gerecht aufteilen.
- Soll verhindern, dass ein Jail alle verfügbaren Ressourcen binden kann.
- Jail2
- Einer Überarbeitung des Jail-Konzepts wird in FreeBSD Jail2 einfließen.
- Einen Überblick über das Projekt bietet die FreeVPS Projektseite.
Siehe auch[Bearbeiten]
- wiki.freebsd.org/Jails
- Jail relevante Manpages in 7.0
- top.uugrn.org/Jailkonzept zur Umsetzung bei der UUGRN.
- Paper zu FreeBSD Jails auf Real Virtuality:
- Vortragsfolien zu FreeBSD Jails als ODP (OASIS OpenDocument Präsentation / OpenOffice)
- Vortragsfolien zu FreeBSD Jails als PDF