svn commit: r48740 - head/de_DE.ISO8859-1/books/handbook/jails
Bjoern Heidotting
bhd at FreeBSD.org
Wed Apr 27 18:44:40 UTC 2016
Author: bhd
Date: Wed Apr 27 18:44:38 2016
New Revision: 48740
URL: https://svnweb.freebsd.org/changeset/doc/48740
Log:
Update to r45496:
Add new sysutils/ezjail section.
Reviewed by: bcr
Differential Revision: https://reviews.freebsd.org/D6111
Modified:
head/de_DE.ISO8859-1/books/handbook/jails/chapter.xml
Modified: head/de_DE.ISO8859-1/books/handbook/jails/chapter.xml
==============================================================================
--- head/de_DE.ISO8859-1/books/handbook/jails/chapter.xml Wed Apr 27 13:57:27 2016 (r48739)
+++ head/de_DE.ISO8859-1/books/handbook/jails/chapter.xml Wed Apr 27 18:44:38 2016 (r48740)
@@ -5,7 +5,7 @@
$FreeBSD$
$FreeBSDde: de-docproj/books/handbook/jails/chapter.xml,v 1.23 2011/05/25 20:42:25 jkois Exp $
- basiert auf: r44908
+ basiert auf: r45496
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="jails">
<info><title>Jails</title>
@@ -615,10 +615,12 @@ jail_<replaceable>www</replaceable>_devf
<note>
<para>Es existieren auch einfachere Lösungen, wie zum
- Beispiel <package>sysutils/ezjail</package>, das
+ Beispiel <application>ezjail</application>, das
einfachere Methoden zur Administration von Jails verwendet
und daher nicht so anspruchsvoll ist, wie der hier
- beschriebene Aufbau.</para>
+ beschriebene Aufbau. <application>ezjail</application>
+ wird in <xref linkend="jails-ezjail"/> ausführlich
+ behandelt.</para>
</note>
<para>Die Ziele des in diesem Abschnitt beschriebenen Aufbaus
@@ -1027,4 +1029,690 @@ jail_www_devfs_enable="YES"</programlist
Konfigurationsdateien aktualisiert werden.</para>
</sect2>
</sect1>
+
+ <sect1 xml:id="jails-ezjail">
+ <info>
+ <title>Verwaltung von Jails mit
+ <application>ezjail</application></title>
+
+ <authorgroup>
+ <author>
+ <personname>
+ <firstname>Warren</firstname>
+ <surname>Block</surname>
+ </personname>
+ <contrib>Beigetragen von </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <personname>
+ <firstname>Björn</firstname>
+ <surname>Heidotting</surname>
+ </personname>
+ <contrib>Übersetzt von </contrib>
+ </author>
+ </authorgroup>
+ </info>
+
+ <para>Das Erstellen und Verwalten von mehreren Jails kann schnell
+ zeitaufwändig und fehleranfällig werden. Dirk Engling's
+ <application>ezjail</application> automatisiert und vereinfacht
+ viele dieser Aufgaben. Als Vorlage wird ein
+ <emphasis>Basejail</emphasis> erzeugt. Zusätzliche Jails nutzen
+ &man.mount.nullfs.8; um viele Verzeichnisse aus der Basejail zu
+ teilen, ohne dabei zusätzlichen Speicherplatz zu belegen. Jedes
+ weitere Jail benötigt daher nur wenige Megabyte an
+ Speicherplatz, bevor die Anwendungen installiert werden.</para>
+
+ <para>Weitere Vorteile und Merkmale werden im Detail auf der
+ Webseite von <application>ezjail</application> beschrieben:
+ <link
+ xlink:href="https://erdgeist.org/arts/software/ezjail/"></link>.</para>
+
+ <sect2 xml:id="jails-ezjail-install">
+ <title><application>ezjail</application> installieren</title>
+
+ <para>Für die Installation von <application>ezjail</application>
+ wird zunächst eine Loopback-Schnittstelle für die Jails
+ benötigt. Anschließend kann
+ <application>ezjail</application> installiert und der
+ dazugehörige Dienst aktiviert werden.</para>
+
+ <procedure xml:id="jails-ezjail-install-procedure">
+ <step>
+ <para>Damit der Verkehr auf der Loopback-Schnittstelle des
+ Jails vom Host-System separiert ist, wird eine zweite
+ Loopback-Schnittstelle in
+ <filename>/etc/rc.conf</filename> erstellt:</para>
+
+ <programlisting>cloned_interfaces="lo1"</programlisting>
+
+ <para>Die zusätzliche Schnittstelle <literal>lo1</literal>
+ wird erstellt, wenn das System neu gestartet wird. Die
+ Schnittstelle kann auch ohne Neustart manuell erstellt
+ werden:</para>
+
+ <screen>&prompt.root; <userinput>service netif cloneup</userinput>
+Created clone interfaces: lo1.</screen>
+
+ <para>Jails können die Aliase dieser sekundären
+ Schnittstelle verwenden, ohne dabei das Host-System zu
+ stören.</para>
+
+ <para>Der Zugang zur Loopback-Adresse <systemitem
+ class="ipaddress">127.0.0.1</systemitem> wird an die
+ erste <acronym>IP</acronym>-Adresse umgeleitet, die dem
+ Jail zugewiesen ist. Damit die Loopback-Schnittstelle des
+ Jails der neuen <literal>lo1</literal>-Schnittstelle
+ zugeordnet werden kann, muss beim Erstellen der Jail diese
+ Schnittstelle als erstes in der Liste der
+ <acronym>IP</acronym>-Adressen angegeben werden.</para>
+
+ <para>Teilen Sie jedem Jail eine Loopback-Adresse aus dem
+ Netzblock <systemitem
+ class="ipaddress">127.0.0.0</systemitem><systemitem
+ class="netmask">/8</systemitem> zu.</para>
+ </step>
+
+ <step>
+ <para>Installieren Sie
+ <package>sysutils/ezjail</package>:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/sysutils/ezjail</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+ </step>
+
+ <step>
+ <para>Aktivieren Sie <application>ezjail</application>,
+ indem Sie folgende Zeile in
+ <filename>/etc/rc.conf</filename> hinzufügen:</para>
+
+ <programlisting>ezjail_enable="YES"</programlisting>
+ </step>
+
+ <step>
+ <para>Der Dienst wird automatisch gestartet, wenn das System
+ bootet. Er kann auch direkt für die aktuelle Sitzung
+ gestartet werden:</para>
+
+ <screen>&prompt.root; <userinput>service ezjail start</userinput></screen>
+ </step>
+ </procedure>
+ </sect2>
+
+ <sect2 xml:id="jails-ezjail-initialsetup">
+ <title>Einrichtung</title>
+
+ <para>Nach erfolgreicher Installation von
+ <application>ezjail</application> kann die Verzeichnisstruktur
+ für die Basejail erstellt und befüllt werden. Dieser Schritt
+ wird einmalig auf dem Host-System ausgeführt.</para>
+
+ <para>In diesen beiden Beispielen wird <option>-p</option>
+ verwendet, um die Ports-Sammlung mit &man.portsnap.8; in die
+ Basejail herunterzuladen. Diese Kopie kann dann von allen
+ Jails gemeinsam genutzt werden. Eine separate Kopie der
+ Ports-Sammlung für die Jails ermöglicht die Isolierung der
+ Ports vom Host-System. Die <acronym>FAQ</acronym> von
+ <application>ezjail</application> erklärt dies im Detail:
+ <link
+ xlink:href="https://erdgeist.org/arts/software/ezjail/#FAQ"></link>.</para>
+
+ <procedure xml:id="jails-ezjail-initialsetup-procedure">
+ <step>
+ <stepalternatives>
+ <step>
+ <title>Die Jail mit &os;-RELEASE installieren</title>
+
+ <para>Benutzen Sie <command>install</command>, wenn das
+ &os;-RELEASE für die Jail der Version auf dem
+ Host-System entspricht. Wenn beispielsweise auf dem
+ Host-System &os; 10-STABLE installiert ist, wird
+ in der Jail das neueste RELEASE von &os;-10
+ installiert:</para>
+
+ <screen>&prompt.root; <userinput>ezjail-admin install -p</userinput></screen>
+ </step>
+
+ <step>
+ <title>Die Jail mit <command>installworld</command>
+ installieren</title>
+
+ <para>Mit <command>ezjail-admin update</command> kann
+ die Basejail mit den Binärdateien aus dem Host-System
+ befüllt werden. Diese Dateien wurden auf dem
+ Host-System mittels
+ <buildtarget>buildworld</buildtarget> erzeugt.</para>
+
+ <para>In diesem Beispiel wird &os; 10-STABLE aus
+ den Quellen gebaut. Die Verzeichnisse für die Jail
+ wurden bereits erstellt. Anschließend wird
+ <command>installworld</command> ausgeführt, das
+ <filename>/usr/obj</filename> aus dem Host-System in
+ die Basejail installiert.</para>
+
+ <screen>&prompt.root; <userinput>ezjail-admin update -i -p</userinput></screen>
+
+ <para>In der Voreinstellung wird
+ <filename>/usr/src</filename> des Host-Systems
+ verwendet. Ein anderes Quellverzeichnis kann durch
+ die Angabe von <option>-s</option>, oder durch Setzen
+ der Variable <varname>ezjail_sourcetree</varname> in
+ <filename>/usr/local/etc/ezjail.conf</filename>
+ definiert werden.</para>
+ </step>
+ </stepalternatives>
+ </step>
+ </procedure>
+
+ <tip>
+ <para>Die Ports-Sammlung der Basejail wird mit den anderen
+ Jails geteilt, jedoch werden die heruntergeladenen
+ Distfiles im jeweiligen Jail gespeichert. In der
+ Voreinstellung werden diese Dateien in
+ <filename>/var/ports/distfiles</filename> der Jail
+ gespeichert. Wenn die Ports gebaut werden, wird
+ <filename>/var/ports</filename> im Jail als
+ Arbeitsverzeichnis genutzt.</para>
+ </tip>
+ </sect2>
+
+ <sect2 xml:id="jails-ezjail-create">
+ <title>Eine neue Jail erstellen und starten</title>
+
+ <para>Neue Jails werden mit <command>ezjail-admin
+ create</command> erstellt. In diesen Beispielen wird die
+ <literal>lo1</literal> Loopback-Schnittstelle, wie oben
+ beschrieben, verwendet.</para>
+
+ <procedure xml:id="jails-ezjail-create-steps">
+ <title>Eine neue Jail erstellen und starten</title>
+
+ <step>
+ <para>Geben Sie bei der Erstellung der Jail einen Namen
+ und die verwendeten Loopback- und Netzwerk-Schnittstellen
+ mit den <acronym>IP</acronym>-Adressen an. In diesem
+ Beispiel trägt die Jail den Namen
+ <literal>dnsjail</literal>.</para>
+
+ <screen>&prompt.root; <userinput>ezjail-admin create <replaceable>dnsjail</replaceable> '<replaceable>lo1|127.0.1.1</replaceable>,<replaceable>em0</replaceable>|<replaceable>192.168.1.50</replaceable>'</userinput></screen>
+
+ <tip xml:id="jails-ezjail-raw-network-sockets">
+ <para>Die meisten Netzwerkdienste laufen problemlos in
+ einer Jail. Ein paar wenige Netzwerkdienste, vor allem
+ &man.ping.8; verwenden Netzwerk-Sockets. Aus
+ Sicherheitsgründen werden Netzwerk-Sockets innerhalb der
+ Jails deaktiviert, so dass Dienste, die diese Sockets
+ benötigten, nicht funktionieren werden. Gelegentlich
+ benötigt ein Jail jedoch den Zugriff auf Raw-Sockets.
+ Beispielsweise verwenden Netzwerk-Monitoring-Anwendungen
+ &man.ping.8;, um die Verfügbarkeit von anderen Rechnern
+ zu überprüfen. Sollten diese Sockets tatsächlich
+ benötigt werden, können sie durch einen Eintrag in der
+ Konfigurationsdatei von
+ <application>ezjail</application>,
+ <filename>/usr/local/etc/<replaceable>jailname</replaceable></filename>,
+ für einzelne Jails aktiviert werden. Bearbeiten Sie den
+ Eintrag <literal>parameters</literal>:</para>
+
+ <programlisting>export jail_<replaceable>jailname</replaceable>_parameters="allow.raw_sockets=1"</programlisting>
+
+ <para>Aktivieren Sie keine Netzwerk-Sockets, solange
+ die Dienste im Jail sie nicht tatsächlich
+ benötigen.</para>
+ </tip>
+ </step>
+
+ <step>
+ <para>Starten Sie die Jail:</para>
+
+ <screen>&prompt.root; <userinput>ezjail-admin start <replaceable>dnsjail</replaceable></userinput></screen>
+ </step>
+
+ <step>
+ <para>Starten Sie eine Konsole in der Jail:</para>
+
+ <screen>&prompt.root; <userinput>ezjail-admin console <replaceable>dnsjail</replaceable></userinput></screen>
+ </step>
+ </procedure>
+
+ <para>Die Jail ist jetzt in Betrieb und die zusätzliche
+ Konfiguration kann nun abgeschlossen werden. Typische
+ Einstellungen an dieser Stelle sind:</para>
+
+ <procedure>
+ <step>
+ <title>Das <systemitem
+ class="username">root</systemitem>-Passwort
+ setzen</title>
+
+ <para>Verbinden Sie sich mit der Jail und setzen Sie das
+ Passwort für den Benutzer
+ <systemitem class="username">root</systemitem>:</para>
+
+ <screen>&prompt.root; <userinput>ezjail-admin console <replaceable>dnsjail</replaceable></userinput>
+&prompt.root; <userinput>passwd</userinput>
+Changing local password for root
+New Password:
+Retype New Password:</screen>
+ </step>
+
+ <step>
+ <title>Konfiguration der Zeitzone</title>
+
+ <para>Die Zeitzone kann innerhalb der Jail mit
+ &man.tzsetup.8; gesetzt werden. Um störende
+ Fehlermeldungen zu vermeiden, kann der Eintrag
+ &man.adjkerntz.8; in <filename>/etc/crontab</filename>
+ auskommentiert werden. Dieser Job versucht die
+ Uhr des Rechners zu aktualisieren, was jedoch in einem
+ Jail fehlschlägt, da die Jail nicht auf diese Hardware
+ zugreifen darf.</para>
+ </step>
+
+ <step>
+ <title><acronym>DNS</acronym>-Server</title>
+
+ <para>Tragen Sie die Zeilen für die Nameserver der Domäne
+ in <filename>/etc/resolv.conf</filename> ein, damit die
+ Namensauflösung in der Jail funktioniert.</para>
+ </step>
+
+ <step>
+ <title><filename>/etc/hosts</filename> anpassen</title>
+
+ <para>Ändern Sie die Adresse und fügen Sie den Namen der
+ Jail zu den <literal>localhost</literal>-Einträgen in
+ <filename>/etc/hosts</filename> hinzu.</para>
+ </step>
+
+ <step>
+ <title><filename>/etc/rc.conf</filename>
+ konfigurieren</title>
+
+ <para>Tragen Sie Konfigurationseinstellungen in
+ <filename>/etc/rc.conf</filename> ein. Der Rechnername
+ und die <acronym>IP</acronym>-Adresse werden nicht
+ eingestellt, da diese Werte bereits durch die
+ Jail-Konfiguration zur Verfügung gestellt werden.</para>
+ </step>
+ </procedure>
+
+ <para>Nach der Konfiguration der Jail können die Anwendungen,
+ für die die Jail erstellt wurde, installiert werden.</para>
+
+ <tip>
+ <para>Einige Ports müssen mit speziellen Optionen gebaut
+ werden, damit sie in der Jail verwendet werden können. Zum
+ Beispiel haben die Netzwerk-Monitoring-Pakete
+ <package>net-mgmt/nagios-plugins</package> und
+ <package>net-mgmt/monitoring-plugins</package> eine Option
+ <literal>JAIL</literal>, die aktiviert werden muss, damit
+ diese Werkzeuge innerhalb einer Jail funktionieren.</para>
+ </tip>
+ </sect2>
+
+ <sect2 xml:id="jails-ezjail-update">
+ <title>Jails aktualisieren</title>
+
+ <sect3 xml:id="jails-ezjail-update-os">
+ <title>Das Betriebssystem aktualisieren</title>
+
+ <para>Da das Basissystem der Basejail von den anderen Jails
+ gemeinsam genutzt wird, werden bei einem Update der Basejail
+ automatisch alle anderen Jails aktualisiert. Die
+ Aktualisierung kann entweder über den Quellcode oder über
+ binäre Updates erfolgen.</para>
+
+ <para>Um das Basissystem auf dem Host-System zu bauen und in
+ der Basejail zu installieren, geben Sie folgendes
+ ein:</para>
+
+ <screen>&prompt.root; <userinput>ezjail-admin update -b</userinput></screen>
+
+ <para>Wenn das Basissystem bereits auf dem Host-System gebaut
+ wurde, kann es in der Basejail installiert werden:</para>
+
+ <screen>&prompt.root; <userinput>ezjail-admin update -i</userinput></screen>
+
+ <para>Binär-Updates verwenden &man.freebsd-update.8;. Das
+ Update unterliegt dabei den gleichen Einschränkungen, als
+ wenn &man.freebsd-update.8; direkt ausgeführt würde. Vor
+ allem stehen mit dieser Methode nur -RELEASE Versionen von
+ &os; zur Verfügung.</para>
+
+ <para>Aktualisieren Sie die Basejail auf die neueste
+ &os;-Version des Host-Systems. Zum Beispiel von
+ RELEASE-p1 auf RELEASE-p2.</para>
+
+ <screen>&prompt.root; <userinput>ezjail-admin update -u</userinput></screen>
+
+ <para>Damit das Basejail aktualisiert werden kann, muss
+ zunächst das Host-System, wie in <xref
+ linkend="freebsdupdate-upgrade"/> beschrieben,
+ aktualisiert werden. Sobald das Host-System aktualisiert
+ und neu gestartet wurde, kann die Basejail aktualisiert
+ werden. Da &man.freebsd-update.8; keine Möglichkeit
+ besitzt, die derzeit installierte Version der Basejail zu
+ bestimmen, muss die ursprüngliche Version beim Aufruf mit
+ angegeben werden. Benutzen Sie &man.file.1; um die
+ ursprüngliche Version der Basejail zu bestimmen:</para>
+
+ <screen>&prompt.root; <userinput>file /usr/jails/basejail/bin/sh</userinput>
+/usr/jails/basejail/bin/sh: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), dynamically linked (uses shared libs), for FreeBSD 9.3, stripped</screen>
+
+ <para>Nutzen Sie diese Information, um die Aktualisierung von
+ <literal>9.3-RELEASE</literal> auf die aktuelle Version des
+ Host-Systems durchzuführen:</para>
+
+ <screen>&prompt.root; <userinput>ezjail-admin update -U -s <replaceable>9.3-RELEASE</replaceable></userinput></screen>
+
+ <para>Nachdem die Basejail aktualisiert ist, muss in jeder
+ Jail &man.mergemaster.8; ausgeführt werden, um die
+ Konfigurationsdateien zu aktualisieren.</para>
+
+ <para>Wie &man.mergemaster.8; verwendet wird, hängt stark vom
+ Zweck und Vertrauenswürdigkeit der Jail ab. Wenn die
+ Dienste oder Benutzer nicht vertrauenswürdig sind, dann
+ sollte &man.mergemaster.8; nur innerhalb der Jail ausgeführt
+ werden:</para>
+
+ <example xml:id="jails-ezjail-update-mergemaster-untrusted">
+ <title>&man.mergemaster.8; in einer nicht vertrauenswürdigen
+ Jail ausführen</title>
+
+ <para>Entfernen Sie die Verknüpfung von
+ <filename>/usr/src</filename> des Jails zur Basejail und
+ erstellen Sie ein neues <filename>/usr/src</filename> als
+ Mountpunkt für die Jail. Hängen Sie
+ <filename>/usr/src</filename> vom Host-System
+ schreibgeschützt in den Mountpunkt für die Jail
+ ein:</para>
+
+ <screen>&prompt.root; <userinput>rm /usr/jails/<replaceable>jailname</replaceable>/usr/src</userinput>
+&prompt.root; <userinput>mkdir /usr/jails/<replaceable>jailname</replaceable>/usr/src</userinput>
+&prompt.root; <userinput>mount -t nullfs -o ro /usr/src /usr/jails/<replaceable>jailname</replaceable>/usr/src</userinput></screen>
+
+ <para>Öffnen Sie eine Konsole in der Jail:</para>
+
+ <screen>&prompt.root; <userinput>ezjail-admin console <replaceable>jailname</replaceable></userinput></screen>
+
+ <para>Innerhalb der Jail führen Sie dann &man.mergemaster.8;
+ aus. Danach verlassen Sie die Konsole:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/src</userinput>
+&prompt.root; <userinput>mergemaster -U</userinput>
+&prompt.root; <userinput>exit</userinput></screen>
+
+ <para>Abschließend können Sie <filename>/usr/src</filename>
+ aus der Jail aushängen:</para>
+
+ <screen>&prompt.root; <userinput>umount /usr/jails/<replaceable>jailname</replaceable>/usr/src</userinput></screen>
+ </example>
+
+ <example xml:id="jails-ezjail-update-mergemaster-trusted">
+ <title>&man.mergemaster.8; in einer vertrauenswürdigen Jail
+ ausführen</title>
+
+ <para>Wenn den Benutzern und den Diensten in der Jail
+ vertraut wird, kann &man.mergemaster.8; auf dem
+ Host-System ausgeführt werden:</para>
+
+ <screen>&prompt.root; <userinput>mergemaster -U -D /usr/jails/<replaceable>jailname</replaceable></userinput></screen>
+ </example>
+ </sect3>
+
+ <sect3 xml:id="jails-ezjail-update-ports">
+ <title>Ports aktualisieren</title>
+
+ <para>Die Ports-Sammlung der Basejail wird von den anderen
+ Jails gemeinsam genutzt. Somit genügt es, die
+ Ports-Sammlung in der Basejail zu aktualisieren.</para>
+
+ <para>Die Ports-Sammlung der Basejail wird mit
+ &man.portsnap.8; aktualisiert:</para>
+
+ <screen>&prompt.root; <userinput>ezjail-admin update -P</userinput></screen>
+ </sect3>
+ </sect2>
+
+ <sect2 xml:id="jails-ezjail-control">
+ <title>Jails verwalten</title>
+
+ <sect3 xml:id="jail-ezjail-control-stop-start">
+ <title>Jails starten und stoppen</title>
+
+ <para><application>ezjail</application> startet automatisch
+ alle Jails, wenn das System hochfährt. Jails können auch
+ manuell mit <command>stop</command> und
+ <command>start</command> gestoppt und neu gestartet
+ werden:</para>
+
+ <screen>&prompt.root; <userinput>ezjail-admin stop <replaceable>sambajail</replaceable></userinput>
+Stopping jails: sambajail</screen>
+
+ <para>In der Voreinstellung werden die Jails automatisch
+ gestartet, wenn das Host-System hochfährt. Der automatische
+ Start kann mit <command>config</command> deaktiviert
+ werden:</para>
+
+ <screen>&prompt.root; <userinput>ezjail-admin config -r norun <replaceable>seldomjail</replaceable></userinput></screen>
+
+ <para>Diese Einstellung wird aktiviert, wenn das Host-System
+ das nächste mal neu gestartet wird. Eine Jail, die bereits
+ läuft, wird hiermit nicht gestoppt.</para>
+
+ <para>Der automatische Start kann auch aktiviert
+ werden:</para>
+
+ <screen>&prompt.root; <userinput>ezjail-admin config -r run <replaceable>oftenjail</replaceable></userinput></screen>
+ </sect3>
+
+ <sect3 xml:id="jails-ezjail-control-backup">
+ <title>Jails archivieren und wiederherstellen</title>
+
+ <para>Benutzen Sie <command>archive</command> um ein
+ <filename>.tar.gz</filename>-Archiv einer Jail zu erstellen.
+ Der Dateiname wird aus dem Namen der Jail und dem aktuellen
+ Datum zusammengesetzt. Archivdateien werden in
+ <filename>/usr/jails/ezjail_archives</filename> abgelegt.
+ Ein alternatives Verzeichnis für die Ablage kann in der
+ Variable <varname>ezjail_archivedir</varname> der
+ Konfigurationsdatei definiert werden.</para>
+
+ <para>Die Archivdatei kann an anderer Stelle als Sicherung
+ gespeichert werden, oder eine andere Jail kann daraus
+ mit <command>restore</command> wiederhergestellt werden.
+ Eine neue Jail kann auch aus dem Archiv erstellt werden, was
+ eine bequeme Möglichkeit bietet, bestehende Jails zu
+ klonen.</para>
+
+ <para>Die Jail <literal>wwwserver</literal> stoppen und
+ archivieren:</para>
+
+ <screen>&prompt.root; <userinput>ezjail-admin stop <replaceable>wwwserver</replaceable></userinput>
+Stopping jails: wwwserver.
+&prompt.root; <userinput>ezjail-admin archive <replaceable>wwwserver</replaceable></userinput>
+&prompt.root; <userinput>ls /usr/jails/ezjail-archives/</userinput>
+wwwserver-201407271153.13.tar.gz</screen>
+
+ <para>Erstellen Sie aus dem eben erzeugten Archiv eine neue
+ Jail namens <literal>wwwserver-clone</literal>. Verwenden
+ Sie die Schnittstelle <filename>em1</filename> und weisen
+ Sie eine neue <acronym>IP</acronym>-Adresse zu, um einen
+ Konflikt mit dem Original zu vermeiden:</para>
+
+ <screen>&prompt.root; <userinput>ezjail-admin create -a /usr/jails/ezjail_archives/wwwserver-201407271153.13.tar.gz <replaceable>wwwserver-clone</replaceable> 'lo1|127.0.3.1,em1|192.168.1.51'</userinput></screen>
+ </sect3>
+ </sect2>
+
+ <sect2 xml:id="jails-ezjail-example-bind">
+ <title>Vollständiges Beispiel: <application>BIND</application>
+ in einer Jail</title>
+
+ <para>Einen <application>BIND</application>
+ <acronym>DNS</acronym>-Server innerhalb einer Jail zu
+ betreiben erhöht die Sicherheit, da der Dienst isoliert
+ wird. Dieses Beispiel erstellt einen einfachen
+ <foreignphrase>caching-only</foreignphrase> Nameserver.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Die Jail bekommt den Namen
+ <literal>dns1</literal>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Die Jail erhält die <acronym>IP</acronym>-Adresse
+ <literal>192.168.1.240</literal> auf der Schnittstelle
+ <literal>re0</literal> des Host-Systems.</para>
+ </listitem>
+
+ <listitem>
+ <para>Die Upstream-<acronym>DNS</acronym>-Server des
+ <acronym>ISP</acronym>s lauten
+ <literal>10.0.0.62</literal> und
+ <literal>10.0.0.61</literal>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Die Basejail wurde bereits erstellt und die
+ Ports-Sammlung ist installiert.</para>
+ </listitem>
+ </itemizedlist>
+
+ <example xml:id="jails-ezjail-example-bind-steps">
+ <title><application>BIND</application> in einer Jail laufen
+ lassen</title>
+
+ <para>Erstellen Sie eine geklonte Loopback-Schnittstelle durch
+ einen Eintrag in <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>cloned_interfaces="lo1"</programlisting>
+
+ <para>Erzeugen Sie jetzt die Loopback-Schnittstelle:</para>
+
+ <screen>&prompt.root; <userinput>service netif cloneup</userinput>
+Created clone interface: lo1</screen>
+
+ <para>Erstellen Sie die Jail:</para>
+
+ <screen>&prompt.root; <userinput>ezjail-admin create dns1 'lo1|127.0.2.1,re0|192.168.1.240'</userinput></screen>
+
+ <para>Starten Sie die Jail, verbinden Sie sich mit der Konsole
+ und führen Sie die grundlegende Konfiguration durch:</para>
+
+ <screen>&prompt.root; <userinput>ezjail-admin start dns1</userinput>
+&prompt.root; <userinput>ezjail-admin console dns1</userinput>
+&prompt.root; <userinput>passwd</userinput>
+Changing local password for root
+New Password:
+Retype New Password:
+&prompt.root; <userinput>tzsetup</userinput>
+&prompt.root; <userinput>sed -i .bak -e '/adjkerntz/ s/^/#/' /etc/crontab</userinput>
+&prompt.root; <userinput>sed -i .bak -e 's/127.0.0.1/127.0.2.1/g; s/localhost.my.domain/dns1.my.domain dns1/' /etc/hosts</userinput></screen>
+
+ <para>Setzen Sie vorübergehend die
+ Upstream-<acronym>DNS</acronym>-Server in
+ <filename>/etc/resolv.conf</filename>, damit die
+ Ports-Sammlung heruntergeladen werden kann:</para>
+
+ <programlisting>nameserver 10.0.0.62
+nameserver 10.0.0.62</programlisting>
+
+ <para>Immer noch in der Konsole der Jail, installieren Sie
+ <package>dns/bind99</package>.</para>
+
+ <screen>&prompt.root; <userinput>make -C /usr/ports/dns/bind99 install clean</userinput></screen>
+
+ <para>Konfigurieren Sie den Nameserver in
+ <filename>/usr/local/etc/namedb/named.conf</filename>.</para>
+
+ <para>Erstellen Sie eine Zugriffskontrollliste
+ (<acronym>ACL</acronym>) der Adressen und Netzwerke, die
+ <acronym>DNS</acronym>-Anfragen an diesen Nameserver senden
+ dürfen. Diese Sektion wird vor der Sektion
+ <literal>options</literal> hinzugefügt, die sich bereits in
+ der Datei befindet:</para>
+
+ <programlisting>...
+// or cause huge amounts of useless Internet traffic.
+
+acl "trusted" {
+ 192.168.1.0/24;
+ localhost;
+ localnets;
+};
+
+options {
+...</programlisting>
+
+ <para>Verwenden Sie die <acronym>IP</acronym>-Adresse der
+ Jail in der Direktive <literal>listen-on</literal>, um
+ <acronym>DNS</acronym>-Anfragen von anderen Rechnern aus
+ dem Netzwerk zu akzeptieren:</para>
+
+ <programlisting> listen-on { 192.168.1.240; };</programlisting>
+
+ <para>Entfernen Sie die Kommentarzeichen <literal>/*</literal>
+ und <literal>*/</literal>. Tragen Sie die
+ <acronym>IP</acronym>-Adressen der
+ Upstream-<acronym>DNS</acronym>-Server ein. Unmittelbar
+ nach der Sektion <literal>forwarders</literal> fügen Sie
+ Verweise auf die bereits definierten <acronym>ACL</acronym>s
+ ein:</para>
+
+ <programlisting> forwarders {
+ 10.0.0.62;
+ 10.0.0.61;
+ };
+
+ allow-query { any; };
+ allow-recursion { trusted; };
+ allow-query-cache { trusted; };</programlisting>
+
+ <para>Aktivieren Sie den Dienst in
+ <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>named_enable="YES"</programlisting>
+
+ <para>Starten und testen Sie den Nameserver:</para>
+
+ <screen>&prompt.root; <userinput>service named start</userinput>
+wrote key file "/usr/local/etc/namedb/rndc.key"
+Starting named.
+&prompt.root; <userinput>/usr/local/bin/dig @192.168.1.240 freebsd.org</userinput></screen>
+
+ <para>Beinhaltet die Antwort</para>
+
+ <screen>;; Got answer;</screen>
+
+ <para>dann funktioniert der Nameserver. Eine längere
+ Verzögerung, gefolgt von der Antwort</para>
+
+ <screen>;; connection timed out; no servers could be reached</screen>
+
+ <para>weist auf ein Problem hin. Überprüfen Sie die
+ Konfigurationseinstellungen und stellen Sie sicher, dass
+ alle lokalen Firewalls den <acronym>DNS</acronym>-Zugriff
+ auf die Upstream-<acronym>DNS</acronym>-Server
+ erlauben.</para>
+
+ <para>Wie auch jeder andere lokale Rechner, kann der
+ <acronym>DNS</acronym>-Server Anfragen für Namensauflösung
+ an sich selbst stellen. Tragen Sie die Adresse des
+ <acronym>DNS</acronym>-Servers in die
+ <filename>/etc/resolv.conf</filename> der
+ Client-Rechner:</para>
+
+ <programlisting>nameserver 192.168.1.240</programlisting>
+
+ <para>Ein lokaler <acronym>DHCP</acronym>-Server kann die
+ Adresse eines lokalen <acronym>DNS</acronym>-Servers
+ automatisch für alle <acronym>DHCP</acronym>-Clients zur
+ Verfügung stellen.</para>
+ </example>
+ </sect2>
+ </sect1>
</chapter>
More information about the svn-doc-all
mailing list