From owner-svn-doc-all@freebsd.org Wed Apr 27 18:44:40 2016 Return-Path: Delivered-To: svn-doc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 381E4B1EF71; Wed, 27 Apr 2016 18:44:40 +0000 (UTC) (envelope-from bhd@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D61B61F6C; Wed, 27 Apr 2016 18:44:39 +0000 (UTC) (envelope-from bhd@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u3RIidD1070431; Wed, 27 Apr 2016 18:44:39 GMT (envelope-from bhd@FreeBSD.org) Received: (from bhd@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u3RIidVs070430; Wed, 27 Apr 2016 18:44:39 GMT (envelope-from bhd@FreeBSD.org) Message-Id: <201604271844.u3RIidVs070430@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bhd set sender to bhd@FreeBSD.org using -f From: Bjoern Heidotting Date: Wed, 27 Apr 2016 18:44:39 +0000 (UTC) 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 X-SVN-Group: doc-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-doc-all@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "SVN commit messages for the entire doc trees \(except for " user" , " projects" , and " translations" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Apr 2016 18:44:40 -0000 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 --> Jails @@ -615,10 +615,12 @@ jail_www_devf Es existieren auch einfachere Lösungen, wie zum - Beispiel sysutils/ezjail, das + Beispiel ezjail, das einfachere Methoden zur Administration von Jails verwendet und daher nicht so anspruchsvoll ist, wie der hier - beschriebene Aufbau. + beschriebene Aufbau. ezjail + wird in ausführlich + behandelt. Die Ziele des in diesem Abschnitt beschriebenen Aufbaus @@ -1027,4 +1029,690 @@ jail_www_devfs_enable="YES" + + + + Verwaltung von Jails mit + <application>ezjail</application> + + + + + Warren + Block + + Beigetragen von + + + + + + Björn + Heidotting + + Übersetzt von + + + + + Das Erstellen und Verwalten von mehreren Jails kann schnell + zeitaufwändig und fehleranfällig werden. Dirk Engling's + ezjail automatisiert und vereinfacht + viele dieser Aufgaben. Als Vorlage wird ein + Basejail 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. + + Weitere Vorteile und Merkmale werden im Detail auf der + Webseite von ezjail beschrieben: + . + + + <application>ezjail</application> installieren + + Für die Installation von ezjail + wird zunächst eine Loopback-Schnittstelle für die Jails + benötigt. Anschließend kann + ezjail installiert und der + dazugehörige Dienst aktiviert werden. + + + + Damit der Verkehr auf der Loopback-Schnittstelle des + Jails vom Host-System separiert ist, wird eine zweite + Loopback-Schnittstelle in + /etc/rc.conf erstellt: + + cloned_interfaces="lo1" + + Die zusätzliche Schnittstelle lo1 + wird erstellt, wenn das System neu gestartet wird. Die + Schnittstelle kann auch ohne Neustart manuell erstellt + werden: + + &prompt.root; service netif cloneup +Created clone interfaces: lo1. + + Jails können die Aliase dieser sekundären + Schnittstelle verwenden, ohne dabei das Host-System zu + stören. + + Der Zugang zur Loopback-Adresse 127.0.0.1 wird an die + erste IP-Adresse umgeleitet, die dem + Jail zugewiesen ist. Damit die Loopback-Schnittstelle des + Jails der neuen lo1-Schnittstelle + zugeordnet werden kann, muss beim Erstellen der Jail diese + Schnittstelle als erstes in der Liste der + IP-Adressen angegeben werden. + + Teilen Sie jedem Jail eine Loopback-Adresse aus dem + Netzblock 127.0.0.0/8 zu. + + + + Installieren Sie + sysutils/ezjail: + + &prompt.root; cd /usr/ports/sysutils/ezjail +&prompt.root; make install clean + + + + Aktivieren Sie ezjail, + indem Sie folgende Zeile in + /etc/rc.conf hinzufügen: + + ezjail_enable="YES" + + + + Der Dienst wird automatisch gestartet, wenn das System + bootet. Er kann auch direkt für die aktuelle Sitzung + gestartet werden: + + &prompt.root; service ezjail start + + + + + + Einrichtung + + Nach erfolgreicher Installation von + ezjail kann die Verzeichnisstruktur + für die Basejail erstellt und befüllt werden. Dieser Schritt + wird einmalig auf dem Host-System ausgeführt. + + In diesen beiden Beispielen wird + 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 FAQ von + ezjail erklärt dies im Detail: + . + + + + + + Die Jail mit &os;-RELEASE installieren + + Benutzen Sie install, 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: + + &prompt.root; ezjail-admin install -p + + + + Die Jail mit <command>installworld</command> + installieren + + Mit ezjail-admin update kann + die Basejail mit den Binärdateien aus dem Host-System + befüllt werden. Diese Dateien wurden auf dem + Host-System mittels + buildworld erzeugt. + + In diesem Beispiel wird &os; 10-STABLE aus + den Quellen gebaut. Die Verzeichnisse für die Jail + wurden bereits erstellt. Anschließend wird + installworld ausgeführt, das + /usr/obj aus dem Host-System in + die Basejail installiert. + + &prompt.root; ezjail-admin update -i -p + + In der Voreinstellung wird + /usr/src des Host-Systems + verwendet. Ein anderes Quellverzeichnis kann durch + die Angabe von , oder durch Setzen + der Variable ezjail_sourcetree in + /usr/local/etc/ezjail.conf + definiert werden. + + + + + + + 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 + /var/ports/distfiles der Jail + gespeichert. Wenn die Ports gebaut werden, wird + /var/ports im Jail als + Arbeitsverzeichnis genutzt. + + + + + Eine neue Jail erstellen und starten + + Neue Jails werden mit ezjail-admin + create erstellt. In diesen Beispielen wird die + lo1 Loopback-Schnittstelle, wie oben + beschrieben, verwendet. + + + Eine neue Jail erstellen und starten + + + Geben Sie bei der Erstellung der Jail einen Namen + und die verwendeten Loopback- und Netzwerk-Schnittstellen + mit den IP-Adressen an. In diesem + Beispiel trägt die Jail den Namen + dnsjail. + + &prompt.root; ezjail-admin create dnsjail 'lo1|127.0.1.1,em0|192.168.1.50' + + + 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 + ezjail, + /usr/local/etc/jailname, + für einzelne Jails aktiviert werden. Bearbeiten Sie den + Eintrag parameters: + + export jail_jailname_parameters="allow.raw_sockets=1" + + Aktivieren Sie keine Netzwerk-Sockets, solange + die Dienste im Jail sie nicht tatsächlich + benötigen. + + + + + Starten Sie die Jail: + + &prompt.root; ezjail-admin start dnsjail + + + + Starten Sie eine Konsole in der Jail: + + &prompt.root; ezjail-admin console dnsjail + + + + Die Jail ist jetzt in Betrieb und die zusätzliche + Konfiguration kann nun abgeschlossen werden. Typische + Einstellungen an dieser Stelle sind: + + + + Das <systemitem + class="username">root</systemitem>-Passwort + setzen + + Verbinden Sie sich mit der Jail und setzen Sie das + Passwort für den Benutzer + root: + + &prompt.root; ezjail-admin console dnsjail +&prompt.root; passwd +Changing local password for root +New Password: +Retype New Password: + + + + Konfiguration der Zeitzone + + 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 /etc/crontab + 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. + + + + <acronym>DNS</acronym>-Server + + Tragen Sie die Zeilen für die Nameserver der Domäne + in /etc/resolv.conf ein, damit die + Namensauflösung in der Jail funktioniert. + + + + <filename>/etc/hosts</filename> anpassen + + Ändern Sie die Adresse und fügen Sie den Namen der + Jail zu den localhost-Einträgen in + /etc/hosts hinzu. + + + + <filename>/etc/rc.conf</filename> + konfigurieren + + Tragen Sie Konfigurationseinstellungen in + /etc/rc.conf ein. Der Rechnername + und die IP-Adresse werden nicht + eingestellt, da diese Werte bereits durch die + Jail-Konfiguration zur Verfügung gestellt werden. + + + + Nach der Konfiguration der Jail können die Anwendungen, + für die die Jail erstellt wurde, installiert werden. + + + 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 + net-mgmt/nagios-plugins und + net-mgmt/monitoring-plugins eine Option + JAIL, die aktiviert werden muss, damit + diese Werkzeuge innerhalb einer Jail funktionieren. + + + + + Jails aktualisieren + + + Das Betriebssystem aktualisieren + + 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. + + Um das Basissystem auf dem Host-System zu bauen und in + der Basejail zu installieren, geben Sie folgendes + ein: + + &prompt.root; ezjail-admin update -b + + Wenn das Basissystem bereits auf dem Host-System gebaut + wurde, kann es in der Basejail installiert werden: + + &prompt.root; ezjail-admin update -i + + 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. + + Aktualisieren Sie die Basejail auf die neueste + &os;-Version des Host-Systems. Zum Beispiel von + RELEASE-p1 auf RELEASE-p2. + + &prompt.root; ezjail-admin update -u + + Damit das Basejail aktualisiert werden kann, muss + zunächst das Host-System, wie in 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: + + &prompt.root; file /usr/jails/basejail/bin/sh +/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 + + Nutzen Sie diese Information, um die Aktualisierung von + 9.3-RELEASE auf die aktuelle Version des + Host-Systems durchzuführen: + + &prompt.root; ezjail-admin update -U -s 9.3-RELEASE + + Nachdem die Basejail aktualisiert ist, muss in jeder + Jail &man.mergemaster.8; ausgeführt werden, um die + Konfigurationsdateien zu aktualisieren. + + 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: + + + &man.mergemaster.8; in einer nicht vertrauenswürdigen + Jail ausführen + + Entfernen Sie die Verknüpfung von + /usr/src des Jails zur Basejail und + erstellen Sie ein neues /usr/src als + Mountpunkt für die Jail. Hängen Sie + /usr/src vom Host-System + schreibgeschützt in den Mountpunkt für die Jail + ein: + + &prompt.root; rm /usr/jails/jailname/usr/src +&prompt.root; mkdir /usr/jails/jailname/usr/src +&prompt.root; mount -t nullfs -o ro /usr/src /usr/jails/jailname/usr/src + + Öffnen Sie eine Konsole in der Jail: + + &prompt.root; ezjail-admin console jailname + + Innerhalb der Jail führen Sie dann &man.mergemaster.8; + aus. Danach verlassen Sie die Konsole: + + &prompt.root; cd /usr/src +&prompt.root; mergemaster -U +&prompt.root; exit + + Abschließend können Sie /usr/src + aus der Jail aushängen: + + &prompt.root; umount /usr/jails/jailname/usr/src + + + + &man.mergemaster.8; in einer vertrauenswürdigen Jail + ausführen + + Wenn den Benutzern und den Diensten in der Jail + vertraut wird, kann &man.mergemaster.8; auf dem + Host-System ausgeführt werden: + + &prompt.root; mergemaster -U -D /usr/jails/jailname + + + + + Ports aktualisieren + + Die Ports-Sammlung der Basejail wird von den anderen + Jails gemeinsam genutzt. Somit genügt es, die + Ports-Sammlung in der Basejail zu aktualisieren. + + Die Ports-Sammlung der Basejail wird mit + &man.portsnap.8; aktualisiert: + + &prompt.root; ezjail-admin update -P + + + + + Jails verwalten + + + Jails starten und stoppen + + ezjail startet automatisch + alle Jails, wenn das System hochfährt. Jails können auch + manuell mit stop und + start gestoppt und neu gestartet + werden: + + &prompt.root; ezjail-admin stop sambajail +Stopping jails: sambajail + + In der Voreinstellung werden die Jails automatisch + gestartet, wenn das Host-System hochfährt. Der automatische + Start kann mit config deaktiviert + werden: + + &prompt.root; ezjail-admin config -r norun seldomjail + + 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. + + Der automatische Start kann auch aktiviert + werden: + + &prompt.root; ezjail-admin config -r run oftenjail + + + + Jails archivieren und wiederherstellen + + Benutzen Sie archive um ein + .tar.gz-Archiv einer Jail zu erstellen. + Der Dateiname wird aus dem Namen der Jail und dem aktuellen + Datum zusammengesetzt. Archivdateien werden in + /usr/jails/ezjail_archives abgelegt. + Ein alternatives Verzeichnis für die Ablage kann in der + Variable ezjail_archivedir der + Konfigurationsdatei definiert werden. + + Die Archivdatei kann an anderer Stelle als Sicherung + gespeichert werden, oder eine andere Jail kann daraus + mit restore wiederhergestellt werden. + Eine neue Jail kann auch aus dem Archiv erstellt werden, was + eine bequeme Möglichkeit bietet, bestehende Jails zu + klonen. + + Die Jail wwwserver stoppen und + archivieren: + + &prompt.root; ezjail-admin stop wwwserver +Stopping jails: wwwserver. +&prompt.root; ezjail-admin archive wwwserver +&prompt.root; ls /usr/jails/ezjail-archives/ +wwwserver-201407271153.13.tar.gz + + Erstellen Sie aus dem eben erzeugten Archiv eine neue + Jail namens wwwserver-clone. Verwenden + Sie die Schnittstelle em1 und weisen + Sie eine neue IP-Adresse zu, um einen + Konflikt mit dem Original zu vermeiden: + + &prompt.root; ezjail-admin create -a /usr/jails/ezjail_archives/wwwserver-201407271153.13.tar.gz wwwserver-clone 'lo1|127.0.3.1,em1|192.168.1.51' + + + + + Vollständiges Beispiel: <application>BIND</application> + in einer Jail + + Einen BIND + DNS-Server innerhalb einer Jail zu + betreiben erhöht die Sicherheit, da der Dienst isoliert + wird. Dieses Beispiel erstellt einen einfachen + caching-only Nameserver. + + + + Die Jail bekommt den Namen + dns1. + + + + Die Jail erhält die IP-Adresse + 192.168.1.240 auf der Schnittstelle + re0 des Host-Systems. + + + + Die Upstream-DNS-Server des + ISPs lauten + 10.0.0.62 und + 10.0.0.61. + + + + Die Basejail wurde bereits erstellt und die + Ports-Sammlung ist installiert. + + + + + <application>BIND</application> in einer Jail laufen + lassen + + Erstellen Sie eine geklonte Loopback-Schnittstelle durch + einen Eintrag in /etc/rc.conf: + + cloned_interfaces="lo1" + + Erzeugen Sie jetzt die Loopback-Schnittstelle: + + &prompt.root; service netif cloneup +Created clone interface: lo1 + + Erstellen Sie die Jail: + + &prompt.root; ezjail-admin create dns1 'lo1|127.0.2.1,re0|192.168.1.240' + + Starten Sie die Jail, verbinden Sie sich mit der Konsole + und führen Sie die grundlegende Konfiguration durch: + + &prompt.root; ezjail-admin start dns1 +&prompt.root; ezjail-admin console dns1 +&prompt.root; passwd +Changing local password for root +New Password: +Retype New Password: +&prompt.root; tzsetup +&prompt.root; sed -i .bak -e '/adjkerntz/ s/^/#/' /etc/crontab +&prompt.root; sed -i .bak -e 's/127.0.0.1/127.0.2.1/g; s/localhost.my.domain/dns1.my.domain dns1/' /etc/hosts + + Setzen Sie vorübergehend die + Upstream-DNS-Server in + /etc/resolv.conf, damit die + Ports-Sammlung heruntergeladen werden kann: + + nameserver 10.0.0.62 +nameserver 10.0.0.62 + + Immer noch in der Konsole der Jail, installieren Sie + dns/bind99. + + &prompt.root; make -C /usr/ports/dns/bind99 install clean + + Konfigurieren Sie den Nameserver in + /usr/local/etc/namedb/named.conf. + + Erstellen Sie eine Zugriffskontrollliste + (ACL) der Adressen und Netzwerke, die + DNS-Anfragen an diesen Nameserver senden + dürfen. Diese Sektion wird vor der Sektion + options hinzugefügt, die sich bereits in + der Datei befindet: + + ... +// or cause huge amounts of useless Internet traffic. + +acl "trusted" { + 192.168.1.0/24; + localhost; + localnets; +}; + +options { +... + + Verwenden Sie die IP-Adresse der + Jail in der Direktive listen-on, um + DNS-Anfragen von anderen Rechnern aus + dem Netzwerk zu akzeptieren: + + listen-on { 192.168.1.240; }; + + Entfernen Sie die Kommentarzeichen /* + und */. Tragen Sie die + IP-Adressen der + Upstream-DNS-Server ein. Unmittelbar + nach der Sektion forwarders fügen Sie + Verweise auf die bereits definierten ACLs + ein: + + forwarders { + 10.0.0.62; + 10.0.0.61; + }; + + allow-query { any; }; + allow-recursion { trusted; }; + allow-query-cache { trusted; }; + + Aktivieren Sie den Dienst in + /etc/rc.conf: + + named_enable="YES" + + Starten und testen Sie den Nameserver: + + &prompt.root; service named start +wrote key file "/usr/local/etc/namedb/rndc.key" +Starting named. +&prompt.root; /usr/local/bin/dig @192.168.1.240 freebsd.org + + Beinhaltet die Antwort + + ;; Got answer; + + dann funktioniert der Nameserver. Eine längere + Verzögerung, gefolgt von der Antwort + + ;; connection timed out; no servers could be reached + + weist auf ein Problem hin. Überprüfen Sie die + Konfigurationseinstellungen und stellen Sie sicher, dass + alle lokalen Firewalls den DNS-Zugriff + auf die Upstream-DNS-Server + erlauben. + + Wie auch jeder andere lokale Rechner, kann der + DNS-Server Anfragen für Namensauflösung + an sich selbst stellen. Tragen Sie die Adresse des + DNS-Servers in die + /etc/resolv.conf der + Client-Rechner: + + nameserver 192.168.1.240 + + Ein lokaler DHCP-Server kann die + Adresse eines lokalen DNS-Servers + automatisch für alle DHCP-Clients zur + Verfügung stellen. + + +