Bearbeiten von „StuRa:Server/FreeBSD

Zur Navigation springen Zur Suche springen
Warnung: Du bist nicht angemeldet. Deine IP-Adresse wird bei Bearbeitungen öffentlich sichtbar. Melde dich an oder erstelle ein Benutzerkonto, damit Bearbeitungen deinem Benutzernamen zugeordnet werden. Ein eigenes Benutzerkonto hat eine ganze Reihe von Vorteilen.

Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und veröffentliche dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.

Aktuelle Version Dein Text
Zeile 141: Zeile 141:


== Jails ==
== Jails ==
Jails dienen der Virtualisierung von Betriebssysteminstanzen. Näheres dazu im [[FreeBSD-Handbuch:jails.html | Das FreeBSD Handbuch: Kapitel 15 - Jails].
Jails dienen der Virtualisierung von Betriebssysteminstanzen. Näheres dazu im [http://www.freebsd.org/doc/de_DE.ISO8859-1/books/handbook/jails.html FreeBSD Handbuch Kapitel 15 - Jails].


=== Jail Verzeichnis mit ZFS anlegen ===
=== Jail Verzeichnis mit ZFS anlegen ===
* beim ersten Mal
* beim ersten Mal
*: <code>zfs create zpool/jails</code>
 
*: <code>zfs set mountpoint=/usr/home/jails zpool/jails</code>
<code>
# zfs create zpool/jails
# zfs set mountpoint=/usr/home/jails zpool/jails
</code>


* ansonsten reicht es
* ansonsten reicht es
*: <code>zfs create zpool/jails/$JAILNAME</code>


=== Anlegen einer Jail ===
<code>
; auf dem Hauptsystem
# zfs create zpool/jails/$JAILNAME
*: <code>cd /usr/src</code>
</code>
* falls notwendig, müssen erst Sources installiert werden
 
*: <code>sysinstall</code>
=== Anlegen eines Jails ===
*:* <code>Configure</code> wählen
* <code># cd /usr/src</code>
*:* <code>Distributions</code> wählen
* evtl. erst Sourcen installieren: sysinstall-> configure -> distributions
*:* <code>Sources</code> anwählen
* evtl. <code># make buildworld</code>
* falls notwendig, müssen die Systemanwendungen neu erstellt werden
* Jails liegen unter /home/jails/$JAILNAME
*: <code>make buildworld</code>
* System für jail bauen:
* Jails liegen unter <code>/home/jails/''$JAILNAME''</code>
<code>
* System für Jail bauen:
# make installworld DESTDIR=/home/jails/$JAILNAME
*: <code>make installworld DESTDIR=/home/jails/''$JAILNAME''</code>
# make distribution DESTDIR=/home/jails/$JAILNAME
*: <code>make distribution DESTDIR=/home/jails/''$JAILNAME''</code>
</code>
* device nodes ins Jail packen
* device nodes ins jail packen
*: <code>mount -t devfs devfs /home/jails/''$JAILNAME''/dev</code>
** <code># mount -t devfs devfs /home/jails/$JAILNAME/dev</code>
* <code>/etc/resolv.conf</code> kopieren
* resolv.conf vom Host kopieren
*: <code>cp /etc/resolv.conf /home/jails/''$JAILNAME''/etc/resolv.conf</code>
** <code># cp /etc/resolv.conf /home/jails/$JAILNAME/etc/resolv.conf</code>
* Vermerk (der Existenz) der Jails im Hauptsystem
* rc.conf editieren:
** <code>/etc/rc.conf</code> anpassen
jail_enable="YES"
<pre>
jail_list="$JAILNAME"
jail_enable="YES"
ifconfig_bce0_alias0="$JAIL_IP netmask 255.255.255.0"
jail_list="$JAILNAME"
jail_$JAILNAME_rootdir="/path/to/jails/$JAILNAME"
ifconfig_bce0_alias0="$JAIL_IP netmask 255.255.255.0"
jail_$JAILNAME_hostname="$JAILNAME.domain.tld"
jail_$JAILNAME_rootdir="/path/to/jails/$JAILNAME"
jail_$JAILNAME_ip="$JAIL_IP"
jail_$JAILNAME_hostname="$JAILNAME.domain.tld"
jail_$JAILNAME_devfs_enable="YES"
jail_$JAILNAME_ip="$JAIL_IP"
jail_$JAILNAME_devfs_ruleset="devfsrules_jail"
jail_$JAILNAME_devfs_enable="YES"
* jail starten  
jail_$JAILNAME_devfs_ruleset="devfsrules_jail"
** <code># /etc/rc.d/jail start</code>
</pre>
* Prozess im jail starten
* Jail starten
** <code># jexec $JAIL_ID tcsh</code>
*: <code>/etc/rc.d/jail start</code>
** $JAIL_ID ermitteln mit
*:* Es wurde eine Jail gestartete, die eine ''$JAIL_ID'' erzeugte.
*** <code># jls</code>
*:* Die ''$JAIL_ID'' kann ermittelt werden.
*:*: <code>jls</code>
* Shell (tcsh), als Prozess, in der Jail starten
*: <code>jexec ''$JAIL_ID'' tcsh</code>
; in der Jail
* Defaultrouting einstellen
* Defaultrouting einstellen
** <code>/etc/rc.conf</code> anpassen
** etc/rc.conf
**: ''$IP'' ist dabei eine ''IP'' oder ein ''interfacename''.
*** defaultrouting="<'''IP''' oder '''interfacename''':network>"
<pre>
defaultrouting="<$IP:network>"
</pre>
* portscollection installieren
* portscollection installieren
** <code>portsnap fetch extract </code>
** <code># portsnap fetch extract </code>
* portscollection updaten
* portscollection updaten
** <code>portsnap fetch update </code>
** <code># portsnap fetch update </code>
* falls noch notwendig, ssh (erstmal einmalig) anschalten
* evtl. ssh anschalten (in rc.conf)
*: <code>service sshd onestart</code>
<code>sshd_enable="YES"</code>
* falls noch notwendig, ssh (dauerhaft) anschalten
* /etc/host
** <code>/ect/rc.conf</code> anpassen
<code> #.#.#.#  JAILNAME.stura.htw-dresden.de </code>
<pre>
sshd_enable="YES"
</pre>
*
** <code>/etc/hosts</code> anpassen
<pre>
#.#.#.#  $JAILNAME.stura.htw-dresden.de
</pre>


=== Löschen eines Jails ===
=== Löschen eines Jails ===
; auf dem Hauptsystem
* ins jailroot wechseln (/home/jails/$JAILNAME)
* in (Root-)Verzeichnis der Jail wechseln
<code>
*: <code>cd /home/jails/''$JAILNAME''</code>
# chflags -R noschg *
* alles in der Jail '''kaputt''' machen
# rm -rf *
*: <code>chflags -R noschg *</code>
# cd .. && rm -r $JAILNAME (ohne ZFS)
*: <code>rm -rf *</code>
# cd .. && zfs destroy tank/PATH/$JAILNAME (mit ZFS)
* Jail '''kaputt''' machen
</code>
** ohne ZFS
**: <code>cd .. && rm -r ''$JAILNAME''</code>
** mit ZFS
**: <code>cd .. && zfs destroy tank/PATH/''$JAILNAME''</code>


=== Tricks, Probleme etc. ===
=== Tricks, Probleme etc. ===
* sich evtl. [http://svnweb.freebsd.org/ports/head/sysutils/ezjail/ ezjail] mal anschauen (war damals kaputt)
* sich evtl. ezjail mal anschauen (war damals kaputt)
* ping aus jails heraus erlauben
* ping aus jails heraus erlauben
** host: allow_raw_socket=1 via
** host: allow_raw_socket=1 via
**: <code>sysctl security.jail.allow_raw_sockets=1</code>
*** <code># sysctl security.jail.allow_raw_sockets=1</code>
*** bzw. in <code>/etc/sysctl.conf</code> setzen
*** bzw. in /etc/sysctl.conf setzen
*** [http://www.cyberciti.biz/faq/freebsd-jail-allow-ping-tracerouter-commands/ Quelle]
*** [http://www.cyberciti.biz/faq/freebsd-jail-allow-ping-tracerouter-commands/ Quelle]
* ssh
* ssh:
** <code>etc/ssh/sshd_config</code> anpassen
** etc/ssh/sshd_config:
<pre>
<code>ListenAddress 0.0.0.0</code>
ListenAddress 0.0.0.0
</pre>
* [http://www.freebsd.org/cgi/url.cgi?ports/ports-mgmt/jailaudit/pkg-descr jailaudit]
* [http://www.freebsd.org/cgi/url.cgi?ports/ports-mgmt/jailaudit/pkg-descr jailaudit]
* Apache [http://www.freebsd.org/cgi/url.cgi?ports/www/mod_jail/pkg-descr mod_jail] als Alternative zu mod_chroot
* Apache [http://www.freebsd.org/cgi/url.cgi?ports/www/mod_jail/pkg-descr mod_jail] als Alternative zu mod_chroot

Bitte beachte, dass alle Beiträge zu Wiki StuRa HTW Dresden von anderen Mitwirkenden bearbeitet, geändert oder gelöscht werden können. Reiche hier keine Texte ein, falls du nicht willst, dass diese ohne Einschränkung geändert werden können.

Du bestätigst hiermit auch, dass du diese Texte selbst geschrieben hast oder diese von einer gemeinfreien Quelle kopiert hast (weitere Einzelheiten unter StuRa HTW Dresden:Urheberrechte). ÜBERTRAGE OHNE GENEHMIGUNG KEINE URHEBERRECHTLICH GESCHÜTZTEN INHALTE!

Bitte beantworte die folgende Frage, um diese Seite speichern zu können (weitere Informationen):

Abbrechen Bearbeitungshilfe (wird in einem neuen Fenster geöffnet)

Die folgende Vorlage wird auf dieser Seite verwendet: