Date: Wed, 27 Apr 2016 18:44:39 +0000 (UTC) From: Bjoern Heidotting <bhd@FreeBSD.org> To: doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org Subject: svn commit: r48740 - head/de_DE.ISO8859-1/books/handbook/jails Message-ID: <201604271844.u3RIidVs070430@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201604271844.u3RIidVs070430>