Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F142139036
D6111.id15629.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
27 KB
Referenced Files
None
Subscribers
None
D6111.id15629.diff
View Options
Index: jails/chapter.xml
===================================================================
--- jails/chapter.xml
+++ jails/chapter.xml
@@ -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 @@
<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 @@
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>-Client zur
+ Verfügung stellen.</para>
+ </example>
+ </sect2>
+ </sect1>
</chapter>
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Jan 17, 9:56 AM (6 h, 23 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27688333
Default Alt Text
D6111.id15629.diff (27 KB)
Attached To
Mode
D6111: Update de_DE/books/handbook/jails/chapter.xml to r45496
Attached
Detach File
Event Timeline
Log In to Comment