aboutsummaryrefslogtreecommitdiff
path: root/de_DE.ISO8859-1
diff options
context:
space:
mode:
authorBenedict Reuschling <bcr@FreeBSD.org>2010-02-26 12:13:07 +0000
committerBenedict Reuschling <bcr@FreeBSD.org>2010-02-26 12:13:07 +0000
commit09f6212b20d99d98d9617860eafce009ffc3382f (patch)
treef8e838909d5bbbb3ba4b9104937c3a59d0e234f0 /de_DE.ISO8859-1
parent822ee24f898b274bb073e06cf5a008c4b85a6daa (diff)
downloaddoc-09f6212b20d99d98d9617860eafce009ffc3382f.tar.gz
doc-09f6212b20d99d98d9617860eafce009ffc3382f.zip
MFde: Update the german documentation set.
Thanks to the tireless efforts of Frank Boerner, we were able to resync many parts of the documentation with the latest version. articles/version-guide/article.sgml 1.13 -> 1.15 [1] books/developers-handbook/l10n/chapter.sgml 1.10 -> 1.13 [1] books/developers-handbook/policies/chapter.sgml 1.33 -> 1.34 [1] books/developers-handbook/x86/chapter.sgml 1.17 -> 1.18 [1] books/handbook/disks/chapter.sgml 1.292 -> 1.293 [1] books/handbook/eresources/chapter.sgml 1.199 -> 1.200 books/handbook/firewalls/chapter.sgml 1.83 -> 1.92 [1] books/handbook/l10n/chapter.sgml 1.131 -> 1.132 [1] books/handbook/linuxemu/chapter.sgml 1.139 -> 1.140 [1] books/handbook/mirrors/chapter.sgml 1.474 -> 1.476 [1] books/handbook/security/chapter.sgml 1.320 -> 1.336 [1] books/handbook/virtualization/chapter.sgml 1.22 -> 1.23 [1] books/porters-handbook/book.sgml 1.1015 -> 1.1016 [1] share/sgml/mailing-lists.ent 1.68 -> 1.69 [1] Contributed by: Frank Boerner Obtained from: The FreeBSD German Documentation Project
Notes
Notes: svn path=/head/; revision=35405
Diffstat (limited to 'de_DE.ISO8859-1')
-rw-r--r--de_DE.ISO8859-1/articles/version-guide/article.sgml9
-rw-r--r--de_DE.ISO8859-1/books/developers-handbook/l10n/chapter.sgml313
-rw-r--r--de_DE.ISO8859-1/books/developers-handbook/x86/chapter.sgml6
-rw-r--r--de_DE.ISO8859-1/books/handbook/disks/chapter.sgml44
-rw-r--r--de_DE.ISO8859-1/books/handbook/eresources/chapter.sgml11
-rw-r--r--de_DE.ISO8859-1/books/handbook/firewalls/chapter.sgml163
-rw-r--r--de_DE.ISO8859-1/books/handbook/l10n/chapter.sgml8
-rw-r--r--de_DE.ISO8859-1/books/handbook/linuxemu/chapter.sgml6
-rw-r--r--de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml22
-rw-r--r--de_DE.ISO8859-1/books/handbook/security/chapter.sgml1512
-rw-r--r--de_DE.ISO8859-1/books/handbook/virtualization/chapter.sgml22
-rw-r--r--de_DE.ISO8859-1/books/porters-handbook/book.sgml10
-rw-r--r--de_DE.ISO8859-1/share/sgml/mailing-lists.ent10
13 files changed, 993 insertions, 1143 deletions
diff --git a/de_DE.ISO8859-1/articles/version-guide/article.sgml b/de_DE.ISO8859-1/articles/version-guide/article.sgml
index dd901b98e7..8875d1a39a 100644
--- a/de_DE.ISO8859-1/articles/version-guide/article.sgml
+++ b/de_DE.ISO8859-1/articles/version-guide/article.sgml
@@ -2,8 +2,8 @@
The FreeBSD German Documentation Project
$FreeBSD$
- $FreeBSDde: de-docproj/articles/version-guide/article.sgml,v 1.5 2009/01/10 12:39:50 jkois Exp $
- basiert auf: 1.13
+ $FreeBSDde: de-docproj/articles/version-guide/article.sgml,v 1.7 2010/02/22 17:13:51 fboerner Exp $
+ basiert auf: 1.15
-->
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
@@ -309,11 +309,6 @@
geplante &Auml;nderungen wird es f&uuml;r Anwender, Entwickler
von externen Programmen sowie &os;-Entwickler einfacher werden,
eigene Planungen zu erstellen.</para>
-
- <para>Diese &Uuml;berlegungen, und nicht die Anpassung an die
- Hauptversionsnummern anderer Betriebssysteme, sind die
- Hauptmotivation f&uuml;r die &Auml;nderung des
- Entwicklungszyklusses.</para>
</sect1>
<sect1 id="future-goals">
diff --git a/de_DE.ISO8859-1/books/developers-handbook/l10n/chapter.sgml b/de_DE.ISO8859-1/books/developers-handbook/l10n/chapter.sgml
index fc24547ef9..1112f515b8 100644
--- a/de_DE.ISO8859-1/books/developers-handbook/l10n/chapter.sgml
+++ b/de_DE.ISO8859-1/books/developers-handbook/l10n/chapter.sgml
@@ -3,8 +3,8 @@
The FreeBSD German Documentation Project
$FreeBSD$
- $FreeBSDde: de-docproj/books/developers-handbook/l10n/chapter.sgml,v 1.9 2007/09/28 16:25:36 jkois Exp $
- basiert auf: 1.10
+ $FreeBSDde: de-docproj/books/developers-handbook/l10n/chapter.sgml,v 1.12 2010/02/18 20:27:20 fboerner Exp $
+ basiert auf: 1.13
-->
<chapter id="l10n">
@@ -85,20 +85,305 @@
Behandlung von Unicode-Zeichen. Bitte nutzen Sie diese
f&uuml;r I18N-Konformit&auml;t.</para>
- <para>Auf &auml;lteren FreeBSD-Versionen erzeugt Perl
- m&ouml;glicherweise Warnmeldungen wegen nicht installierter
- Unterst&uuml;tzung f&uuml;r Unicode-Zeichen auf Ihrem System.
- Sie k&ouml;nnen hierf&uuml;r die Umgebungsvariable
- <envar>LD_PRELOAD</envar> in ihrer Shell auf
- <filename>/usr/lib/libxpg4.so</filename> setzen.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="posix-nls">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>G&aacute;bor</firstname>
+ <surname>K&ouml;vesd&aacute;n</surname>
+ <contrib>Beigetragen von </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <title>Lokalisierte Nachrichten mit POSIX.1 Native Language
+ Support (NLS)</title>
+
+ <para>&Uuml;ber die Basisfunktionen von I18N hinaus, wie das Bereitstellen
+ von verschiedenen Eingabecodierungen oder die diversen nationalen
+ Konventionen, zum Beispiel die verschiedenen Dezimalpunkte, ist es
+ auf einem h&ouml;heren Level von I18N m&ouml;glich, die Ausgabe
+ von Programmen zu lokalisieren. Ein Weg dies zu tun besteht in der
+ Nutzung der POSIX.1 NLS-Funktionen von &os;.</para>
+
+ <sect2 id="nls-catalogs">
+ <title>Organisation von lokalisierten Mitteilungen in Katalog
+ Dateien</title>
+
+ <para>POSIX.1 NLS basiert auf Katalogdateien, welche die lokalisierten
+ Mitteilungen in der entsprechenden Codierung enthalten. Die
+ Mitteilungen sind in Sets organisiert und jede Mitteilung ist
+ durch eine eindeutige Zahl in dem jeweilgen Set identifiziert.
+ Die Katalogdateien werden nach der Lokale, von den jeweiligen
+ lokalisierten Mitteilungen, die sie enthalten, gefolgt von der
+ <literal>.msg</literal> Endung benannt. Zum Beispiel werden die
+ ungarischen Mitteilungen f&uuml;r das ISO8859-2 Encoding in
+ einer Datei mit dem Dateinamen <filename>hu_HU.ISO8859-2</filename>
+ gespeichert.</para>
+
+ <para>Diese Katalogdateien sind normale Textdateien, welche die
+ nummerierten Mitteilungen enthalten. Es ist m&ouml;glich
+ Kommentare in die Dateien zu schreiben, indem Sie ein
+ <literal>$</literal>-Zeichen an den Anfang der Zeile setzen.
+ Das Setzen von Grenzen wird ebenfalls durch spezielle Kommentare
+ m&ouml;glich wobei das Schl&uuml;sselwort <literal>set</literal>
+ direkt nach dem <literal>$</literal>-Zeichen folgen muss. Dem
+ Schl&uuml;sselwort <literal>set</literal> folgt dann die Set-Nummer.
+ Ein Beispiel:</para>
+
+ <programlisting>$set 1</programlisting>
+
+ <para>Der aktuelle Mitteilungseintrag startet mit der
+ Mitteilungsnummer gefolgt von der lokalisierten Nachricht. Die
+ bekannten Modifikatoren von &man.printf.3; werden akzeptiert:</para>
+
+ <programlisting>15 "File not found: %s\n"</programlisting>
+
+ <para>Die Katalogdateien m&uuml;ssen in bin&auml;rer Form vorliegen,
+ bevor sie von einem Programm benutzt werden k&ouml;nnen. Dies wird
+ mit dem &man.gencat.1; Tool durchgef&uuml;hrt. Das erste Argument
+ ist der Dateiname des kompilierten Katalogs und die weiteren
+ Argumente sind die Eingabekataloge. Die lokalisierten
+ Mitteilungen k&ouml;nnen auf mehrere Katalogdateien aufgeteilt
+ sein. Danach werden dann alle auf einmal mit dem &man.gencat.1;
+ Tool kompiliert.</para>
+
+ </sect2>
+
+ <sect2 id="nls-using">
+ <title>Nutzung der Katalogdateien im Quellcode</title>
+
+ <para> Das Benutzen der Katalogdateien ist einfach. Um die
+ relevante Funktion zu nutzen, muss <filename
+ class="headerfile">nl_types.h</filename> in die Quelldatei
+ eingef&uuml;gt werden. Bevor ein Katalog benutzt werden
+ kann, muss er mit &man.catopen.3; ge&ouml;ffnet werden.
+ Die Funktion hat 2 Argumente. Der erste Parameter ist der
+ Name des installierten und kompilierten Katalogs. Normalerweise
+ wird der Name des Programmes, zum Beispiel
+ <application>grep</application>, genutzt. Dieser Name wird
+ zum Suchen der kompilierten Katalogdatei benutzt. Der Aufruf
+ von &man.catopen.3; sucht nach dieser Datei in <filename
+ class="directory">/usr/share/nls/<replaceable>locale</replaceable>/<replaceable>catname</replaceable></filename>
+ und in <filename
+ class="directory">/usr/local/share/nls/<replaceable>locale</replaceable>/<replaceable>catname</replaceable></filename>,
+ wobei <literal>locale</literal> die gesetzte Lokale und
+ <literal>catname</literal> der Katalogname ist. Der zweite
+ Parameter ist eine Konstante, die zwei Werte haben kann:</para>
+
+ <itemizedlist>
+ <listitem>
+
+ <para><literal>NL_CAT_LOCALE</literal>, hat die Bedeutung,
+ dass die benutzte Katalogdatei auf
+ <envar>LC_MESSAGES</envar> basiert.</para>
+
+ </listitem>
+
+ <listitem>
+
+ <para><literal>0</literal>, hat die Bedeutung, dass
+ <envar>LANG</envar> benutzt wird, um die Katalogdatei
+ zu &ouml;ffnen.
+ </para>
+
+ </listitem>
+ </itemizedlist>
+
+ <para>Der &man.catopen.3; Aufruf gibt einen Katalogidentifizierer
+ vom Type <literal>nl_catd</literal> zur&uuml;ck. Sehen Sie in der
+ Manualpage nach, um eine Liste mit m&ouml;glichen Fehlercodes
+ zu erhalten.</para>
+
+ <para>Nach dem &Ouml;ffnen eines Katalogs, kann &man.catgets.3;
+ benutzt werden, um Mitteilungen zu erhalten. Der erste
+ Parameter ist der Katalogidentifizierer, der von
+ &man.catopen.3; zur&uuml;ck gegeben wurde, das zweite ist die
+ Nummer des Sets, das dritte die Nummer der Mitteilung und das
+ vierte ist eine Fallbackmitteilung, die angezeigt wird,
+ falls die gew&uuml;nschte Mitteilung in der Katalogdatei
+ nicht verf&uuml;gbar ist.</para>
+
+ <para>Nach der Nutzung der Katalogdatei, muss sie mit dem
+ Kommando &man.catclose.3;, geschlossen werden. Es besitzt
+ ein Argument, die Katalog ID.</para>
+
+ </sect2>
+
+ <sect2 id="nls-example">
+ <title>Ein Beispiel aus der Praxis</title>
+
+ <para>Das folgende Beispiel zeigt einen einfachen Weg wie man
+ NLS-Kataloge flexibel nutzen kann.</para>
+
+ <para>Die nachfolgenden Zeilen m&uuml;ssen in eine allgemeine
+ Headerdatei, die in allen Quelldateien vorhanden ist, die
+ lokalisierte Mitteilungen benutzen, eingef&uuml;gt werden:</para>
+
+ <programlisting>
+#ifdef WITHOUT_NLS
+#define getstr(n) nlsstr[n]
+#else
+#include &lt;nl_types.h&gt;
+
+extern nl_catd catalog;
+#define getstr(n) catgets(catalog, 1, n, nlsstr[n])
+#endif
+
+extern char *nlsstr[];
+ </programlisting>
+
+ <para>Als n&auml;chstes f&uuml;gen Sie die folgenden Zeilen
+ in den globalen Deklarationsteil der Hauptquelldatei ein:</para>
+
+ <programlisting>
+#ifndef WITHOUT_NLS
+#include &lt;nl_types.h&gt;
+nl_catd catalog;
+#endif
- <para>In <literal>sh</literal>-basierten Shells:</para>
+/*
+* Default messages to use when NLS is disabled or no catalog
+* is found.
+*/
+char *nlsstr[] = {
+ "",
+/* 1*/ "some random message",
+/* 2*/ "some other message"
+};
+ </programlisting>
+
+ <para>Als n&auml;chstes kommt der Code der den Katalog
+ &ouml;ffnet, liest und schlie&szlig;t:</para>
+
+ <programlisting>
+#ifndef WITHOUT_NLS
+ catalog = catopen("myapp", NL_CAT_LOCALE);
+#endif
- <programlisting><envar>LD_PRELOAD=/usr/lib/libxpg4.so</envar></programlisting>
+...
- <para>In <literal>C</literal>-basierten Shells:</para>
+printf(getstr(1));
- <programlisting><envar>setenv LD_PRELOAD /usr/lib/libxpg4.so</envar></programlisting>
- </sect2>
- </sect1>
+...
+
+#ifndef WITHOUT_NLS
+ catclose(catalog);
+#endif
+ </programlisting>
+
+ <sect3>
+ <title>Reduzierung von zu lokalisierenden Zeichenketten</title>
+
+ <para>Es gibt einen guten Weg, Zeichenketten die lokalisert
+ werden m&uuml;ssen, durch den Einsatz von
+ <application>libc</application>-Fehlermeldungen zu reduzieren.
+ Dadurch vermeidet man Duplikate und erstellt gleiche Meldungen
+ f&uuml;r h&auml;ufige Fehlermeldungen, die bei vielen
+ Programmen auftreten k&ouml;nnen.</para>
+
+ <para>Als erstes ist hier ein Beispiel, dass keine
+ <application>libc</application>-Fehlermeldungen benutzt:</para>
+
+ <programlisting>
+#include &lt;err.h&gt;
+...
+if (!S_ISDIR(st.st_mode))
+ err(1, "argument is not a directory");
+ </programlisting>
+
+ <para>Dies kann so abge&auml;ndert werden, dass eine
+ Fehlermeldung durch Auslesen der Variabel <varname>errno</varname>
+ ausgegeben wird. Die Fehlermeldung wird entspechend dem Beispiel
+ ausgegeben:</para>
+
+ <programlisting>
+#include &lt;err.h&gt;
+#include &lt;errno.h&gt;
+...
+if (!S_ISDIR(st.st_mode)) {
+ errno = ENOTDIR;
+ err(1, NULL);
+}
+ </programlisting>
+
+ <para>In diesem Beispiel wurde die benutzerdefinierte
+ Zeichenkette entfernt. &Uuml;bersetzer haben weniger Arbeit,
+ wenn sie ein Programm lokalisieren und die Benutzer sehen die
+ &uuml;bliche <quote>&quot;Not a directory&quot;</quote>
+ Fehlermeldung, wenn dieser Fehler auftritt. Diese Meldung wird
+ ihnen wahrscheinlich vertraut erscheinen. Bitte beachten Sie,
+ dass es notwendig ist,
+ <filename class="headerfile">errno.h</filename>
+ hinzuzuf&uuml;gen um einen direkten Zugriff auf
+ <varname>errno</varname> zu haben.</para>
+
+ <para>Es lohnt sich darauf hinzuweisen, dass es F&auml;lle gibt,
+ in denen <varname>errno</varname> automatisch aufgerufen wird,
+ so dass es nicht notwendig ist, es explizit zu tun:</para>
+
+ <programlisting>
+#include &lt;err.h&gt;
+...
+if ((p = malloc(size)) == NULL)
+ err(1, NULL);
+ </programlisting>
+ </sect3>
+ </sect2>
+
+ <sect2 id="nls-mk">
+ <title>Benutzung von <filename>bsd.nls.mk</filename></title>
+
+ <para>Das Benutzen von Katalogdateien setzt einige sich
+ wiederholende Schritte, wie das kompilieren und installieren
+ der Kataloge, voraus. Um diese Schritte zu vereinfachen,
+ stellt <filename>bsd.nls.mk</filename> einige Makros zur
+ Verf&uuml;gung. Es ist nicht notwendig
+ <filename>bsd.nls.mk</filename> explizit hinein zu kopieren,
+ es wird automatisch aus den allgemeinen Makefiles wie
+ <filename>bsd.prog.mk</filename> oder
+ <filename>bsd.lib.mk</filename> gezogen.</para>
+
+ <para>Normalerweise reicht es, <makevar>NLSNAME</makevar> zu
+ definieren, die den Namen des Kataloges als erstes
+ Argument von &man.catopen.3; enthalten sollte und die
+ Katalogdateien in <makevar>NLS</makevar> ohne ihre Endung
+ <literal>.msg</literal> auflistet. Hier ist ein Beispiel, das
+ es erm&ouml;glicht, NLS mit dem obigen Code zu deaktivieren.
+ Die <makevar>WITHOUT_NLS</makevar> Variable von &man.make.1;
+ muss so definiert werden, dass das Programm ohne
+ NLS-Unterst&uuml;tzung gebaut wird.</para>
+
+ <programlisting>
+.if !defined(WITHOUT_NLS)
+NLS= es_ES.ISO8859-1
+NLS+= hu_HU.ISO8859-2
+NLS+= pt_BR.ISO8859-1
+.else
+CFLAGS+= -DWITHOUT_NLS
+.endif
+ </programlisting>
+
+ <para>Normalerweise werden die Katalogdateien in dem
+ <filename class="directory">nls</filename>-Unterverzeichnis
+ abgelegt. Dies ist der Standard von
+ <filename>bsd.nls.mk</filename>. Es ist m&ouml;glich, mit der
+ <makevar>NLSSRCDIR</makevar>-Variablen von &man.make.1; diese zu
+ &uuml;berschreiben. Der Standardname der vorkompilierten
+ Katalogdateien folgt den Namenskonventionen, wie oben beschrieben.
+ Er kann durch die <makevar>NLSNAME</makevar>-Variablen
+ &uuml;berschrieben werden. Es gibt noch weitere Optionen, um
+ eine Feinabstimmung zur Verarbeitung der Katalogdateien
+ zu erreichen. Da sie nicht notwendig sind, werden sie hier
+ nicht weiter beschrieben. Weitere Informationen &uuml;ber
+ <filename>bsd.nls.mk</filename> finden Sie in der Datei selbst.
+ Der Text ist kurz und leicht zu verstehen.</para>
+
+ </sect2>
+
+ </sect1>
+
</chapter>
diff --git a/de_DE.ISO8859-1/books/developers-handbook/x86/chapter.sgml b/de_DE.ISO8859-1/books/developers-handbook/x86/chapter.sgml
index 27aa36e960..929e597054 100644
--- a/de_DE.ISO8859-1/books/developers-handbook/x86/chapter.sgml
+++ b/de_DE.ISO8859-1/books/developers-handbook/x86/chapter.sgml
@@ -17,8 +17,8 @@
content so it should stay.
$FreeBSD$
- $FreeBSDde: de-docproj/books/developers-handbook/x86/chapter.sgml,v 1.21 2009/08/05 19:06:29 bcr Exp $
- basiert auf: 1.17
+ $FreeBSDde: de-docproj/books/developers-handbook/x86/chapter.sgml,v 1.22 2010/02/18 20:29:39 fboerner Exp $
+ basiert auf: 1.18
-->
<chapter id="x86">
@@ -246,7 +246,7 @@ open:
die ausf&uuml;hrbare Datei kennzeichnen:</para>
<screen>&prompt.user;
- <userinput>brandelf -f Linux
+ <userinput>brandelf -t Linux
<replaceable>filename</replaceable></userinput></screen>
</sect2>
diff --git a/de_DE.ISO8859-1/books/handbook/disks/chapter.sgml b/de_DE.ISO8859-1/books/handbook/disks/chapter.sgml
index dfc9938112..5d7b8f7dcd 100644
--- a/de_DE.ISO8859-1/books/handbook/disks/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/disks/chapter.sgml
@@ -3,8 +3,8 @@
The FreeBSD German Documentation Project
$FreeBSD$
- $FreeBSDde: de-docproj/books/handbook/disks/chapter.sgml,v 1.164 2009/09/24 18:50:15 bcr Exp $
- basiert auf: 1.292
+ $FreeBSDde: de-docproj/books/handbook/disks/chapter.sgml,v 1.166 2010/01/27 20:30:52 fboerner Exp $
+ basiert auf: 1.293
-->
<chapter id="disks">
@@ -1743,6 +1743,46 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c
Schreibgeschwindigkeit vorgeben m&ouml;chten, verwenden
Sie den Parameter <option>-speed=</option>. Weiteres
erfahren Sie in der Hilfeseite &man.growisofs.1;.</para>
+
+ <note>
+ <para>Um gr&ouml;ssere Dateien als 4.38GB in ihre Sammlung
+ aufzunehmen, ist es notwendig ein UDF/ISO-9660 Hybrid-Dateisystem
+ zu erstellen. Dieses Dateisystem muss mit zus&auml;tzlichen
+ Parametern <option>-udf -iso-level 3</option> bei &man.mkisofs.8;
+ und allen relevanten Programmen (z.B. &man.growisofs.1;) erzeugt
+ werden. Dies ist nur notwendig wenn Sie ein ISO-Image erstellen
+ oder direkt auf eine DVD schreiben wollen. DVDs, die in dieser
+ Weise hergestellt worden sind, m&uuml;ssen als UDF-Dateisystem
+ mit &man.mount.udf.8; eingehangen werden. Sie sind nur auf
+ Betriebssystemen, die UDF unterst&uuml;tzen brauchbar, ansonsten
+ sieht es so aus, als ob sie kaputte Dateien enthalten w&uuml;rden.
+ </para>
+
+ <para>Um so eine ISO Datei zu bauen, geben Sie den folgenden
+ Befehl ein:</para>
+
+<screen>&prompt.user; <userinput>mkisofs -R -J -udf -iso-level 3 -o <replaceable>imagefile.iso</replaceable> <replaceable>/path/to/data</replaceable></userinput></screen>
+
+ <para>Um Daten direkt auf eine DVD zu brennen, geben Sie den
+ folgenden Befehl ein:</para>
+
+<screen>&prompt.root; <userinput>growisofs -dvd-compat -udf -iso-level 3 -Z <replaceable>/dev/cd0</replaceable> -J -R <replaceable>/path/to/data</replaceable></userinput></screen>
+
+ <para>Wenn Sie ein ISO-Image haben das bereits grosse Dateien
+ enth&auml;lt, sind keine weiteren zus&auml;tzlichen Optionen f&uuml;r
+ &man.growisofs.1; notwendig, um das Image auf die DVD zu
+ brennen.</para>
+
+ <para>Beachten Sie noch, dass Sie die aktuelle Version von
+ <filename role="package">sysutils/cdrtools</filename> haben (welche
+ &man.mkisofs.8; enth&auml;lt), da die &auml;lteren Versionen nicht
+ den Support f&uuml;r grosse Dateien enthalten. Wenn Sie Probleme
+ haben sollten, k&ouml;nnen Sie auch das Entwicklerpaket
+ von <filename role="package">sysutils/cdrtools-devel</filename>
+ einsetzen und lesen Sie die &man.mkisofs.8; Manualpage.</para>
+
+ </note>
+
</sect2>
<indexterm>
diff --git a/de_DE.ISO8859-1/books/handbook/eresources/chapter.sgml b/de_DE.ISO8859-1/books/handbook/eresources/chapter.sgml
index b21021ba30..d4bc2de6e7 100644
--- a/de_DE.ISO8859-1/books/handbook/eresources/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/eresources/chapter.sgml
@@ -3,8 +3,8 @@
The FreeBSD German Documentation Project
$FreeBSD$
- $FreeBSDde: de-docproj/books/handbook/eresources/chapter.sgml,v 1.87 2009/06/08 20:25:34 bcr Exp $
- basiert auf: 1.199
+ $FreeBSDde: de-docproj/books/handbook/eresources/chapter.sgml,v 1.88 2010/02/05 16:22:06 bcr Exp $
+ basiert auf: 1.200
-->
<appendix id="eresources">
@@ -763,6 +763,13 @@
</row>
<row>
+ <entry>&a.svn-src-stable-8.name;</entry>
+ <entry><filename>/usr/src</filename></entry>
+ <entry>&Auml;nderungen im <filename>stable/8</filename>
+ Zweig des src Subversion Repository</entry>
+ </row>
+
+ <row>
<entry>&a.svn-src-stable-other.name;</entry>
<entry><filename>/usr/src</filename></entry>
<entry>&Auml;nderungen an &auml;lteren
diff --git a/de_DE.ISO8859-1/books/handbook/firewalls/chapter.sgml b/de_DE.ISO8859-1/books/handbook/firewalls/chapter.sgml
index 8c9ae6aee4..4e98394ebd 100644
--- a/de_DE.ISO8859-1/books/handbook/firewalls/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/firewalls/chapter.sgml
@@ -3,8 +3,8 @@
The FreeBSD German Documentation Project
$FreeBSD$
- $FreeBSDde: de-docproj/books/handbook/firewalls/chapter.sgml,v 1.16 2009/09/22 19:38:31 bcr Exp $
- basiert auf: 1.83
+ $FreeBSDde: de-docproj/books/handbook/firewalls/chapter.sgml,v 1.24 2010/02/18 19:11:10 fboerner Exp $
+ basiert auf: 1.92
-->
<chapter id="firewalls">
@@ -141,15 +141,24 @@
das genaue Gegenteil. Sie l&auml;sst Datenverkehr nur dann
durch, wenn er einer der definierten Regeln entspricht.</para>
- <para>Einschlie&szlig;ende Firewalls sind tendentiell sicherer als
- ausschlie&szlig;ende Firewalls, da sie das Risiko, dass
- unerw&uuml;nschter Datenverkehr die Firewall passiert, signifikant
+ <para>Eine inclusive Firewall bietet eine wesentlich bessere Kontrolle
+ des ausgehenden Verkehrs, macht sie zur besseren Wahl f&uuml;r Systeme,
+ die Services f&uuml;r das Internet anbieten. Sie kontrolliert
+ auch den Verkehr vom Internet zu ihrem privaten Netzwerk. Jeder Verkehr,
+ der keiner Regel entspricht wird geblockt und geloggt. Inclusive
+ Firewalls sind generell sicherer als exclusive Firewalls, da sie das
+ Risiko, dass unerw&uuml;nschter Verkehr hindurch geht, drastisch
reduzieren.</para>
+
+ <note>
+ <para>Wenn nicht anders vermerkt, verwenden alle Konfigurationen
+ und Beispielregelsets dieses Kapitels inclusive Firewalls.</para>
+ </note>
<para>Die Sicherheit einer Firewall kann durch den Einsatz einer
<quote>zustandsabh&auml;ngigen Firewall</quote>
(<foreignphrase>stateful firewall</foreignphrase>) weiter
- erh&ouml;ht werden. Eine zustandsabh&auml;ngige Firewall
+ erh&ouml;ht werden. Dieser Typ einer Firewall
&uuml;berwacht alle durch die Firewall gehenden offenen
Verbindungen und erlaubt nur schon bestehenden Verkehr oder
Datenverkehr, der eine neue Verbindung &ouml;ffnet. Der Nachteil
@@ -159,7 +168,7 @@
erstellt werden. Bei den meisten Firewalls k&ouml;nnen Sie eine
Kombination aus zustandsabh&auml;ngigem und nicht
zustandsabh&auml;ngigem Verhalten verwenden, um eine f&uuml;r Ihre
- Bed&uuml;rfnisse optimale Fireall einzurichten.</para>
+ Bed&uuml;rfnisse optimale Firewall einzurichten.</para>
</sect1>
<sect1 id="firewalls-apps">
@@ -178,8 +187,8 @@
in enger Verbindung mit <acronym>IPFW</acronym>, w&auml;hrend
<acronym>ALTQ</acronym> gemeinsam mit
<acronym>PF</acronym> eingesetzt wird.
- Traffic Shaping f&uuml;r <acronym>IPFILTER</acronym> ist derzeit
- mit <acronym>IPFILTER</acronym> f&uuml;r NAT sowie Filterung und
+ Traffic Shaping f&uuml;r IPFILTER ist derzeit
+ mit IPFILTER f&uuml;r NAT sowie Filterung und
mit <acronym>IPFW</acronym> und &man.dummynet.4;
<emphasis>oder</emphasis> durch die Kombination von
<acronym>PF</acronym> mit <acronym>ALTQ</acronym> m&ouml;glich.
@@ -204,7 +213,7 @@
<para>Da alle Firewalls auf der Untersuchung der Werte
ausgew&auml;hlter Kontrollfelder von Datenpaketen basieren, ist es
f&uuml;r die Erstellung von Firewallregeln notwendig, die
- Funktionsweise von <acronym>TCP</acronym>/IP zu verstehen.
+ Funktionsweise von <acronym>TCP/IP</acronym> zu verstehen.
Au&szlig;erdem muss man dazu wissen, was die Werte der einzelnen
Kontrollfelder bedeuten und wie diese w&auml;hrend einer
Verbindung eingesetzt werden. Eine gute Erkl&auml;rung dieser
@@ -256,24 +265,31 @@
Sie unter <ulink url="http://pf4freebsd.love2party.net/"></ulink>.</para>
<sect2>
- <title>Verwendung des PF-Kernelmoduls</title>
-
- <para>Seit der Ver&ouml;ffentlichung von &os;&nbsp;5.3 ist PF als ein
- separates, zur Laufzeit ladbares Modul enthalten. Das System l&auml;dt
- das PF-Kernelmodul automatisch, wenn die &man.rc.conf.5;-Anweisung
- <literal>pf_enable="YES"</literal> verwendet wird. Allerdings wird
- das <acronym>PF</acronym>-Modul nicht geladen, wenn das System keine
- Konfigurationsdatei mit einem Regelwerk finden kann. Der Standardpfad
- ist <filename>/etc/pf.conf</filename>. Wenn ihr
- <acronym>PF</acronym>-Regelwerk irgendwo anders abgelegt ist, tragen
- Sie <literal>pf_rules="<replaceable>/path/pf.rules</replaceable>"</literal>
- in ihre <filename>/etc/rc.conf</filename> ein, um den Pfad zu der
- Konfigurationsdatei anzugeben.</para>
+ <title>Verwendung der PF-Kernelmodule</title>
+
+ <para>Um die PF Kernel Module zu laden, f&uuml;gen Sie folgende
+ Zeile in ihre <filename>/etc/rc.conf</filename> ein:</para>
+
+ <programlisting>pf_enable="YES"</programlisting>
+
+ <para>Danach starten Sie das Startup Script um die Module
+ zu laden:</para>
+
+ <screen>&prompt.root; <userinput>/etc/rc.d/pf start</userinput></screen>
+
+ <para>Das PF Modul wird nicht geladen, falls es die Ruleset
+ Konfigurationsdatei nicht findet. Standardm&auml;ssig befindet
+ sich diese Datei in <filename>/etc/pf.conf</filename>. Falls das
+ PF Ruleset sich an einem anderen Platz befindet, k&ouml;nnen Sie das
+ durch Hinzuf&uuml;gen einer Zeile &auml;hnlich der folgenden, in
+ ihrer <filename>/etc/rc.conf</filename> &auml;ndern:</para>
+
+ <programlisting>pf_rules="<replaceable>/path/to/pf.conf</replaceable>"</programlisting>
<note>
<para>Seit &os;&nbsp;7.0 ist die Beispiel-<filename>pf.conf</filename>
- aus dem Verzeichnis <filename role="directory">/etc</filename> nach
- <filename role="directory">/usr/share/examples/pf/</filename>
+ aus dem Verzeichnis <filename class="directory">/etc</filename> nach
+ <filename class="directory">/usr/share/examples/pf/</filename>
gewandert. Bei &os; Versionen vor 7.0 existiert standardm&auml;ssig
eine Datei <filename>/etc/pf.conf</filename>.</para>
</note>
@@ -282,12 +298,23 @@
Kommandozeile geladen werden:</para>
<screen>&prompt.root; <userinput>kldload pf.ko</userinput></screen>
+
+ <para>Protokollierungsfunktionen f&uuml;r PF werden durch das Modul
+ <literal>pflog.ko</literal> zur Verf&uuml;gung gestellt und
+ k&ouml;nnen durch folgenden Eintrag in der
+ <filename>/etc/rc.conf</filename> aktiviert werden:</para>
+
+ <programlisting>pflog_enable="YES"</programlisting>
+
+ <para>Danach starten Sie das Startup Script, um das Modul
+ zu laden:</para>
+
+ <screen>&prompt.root; <userinput>/etc/rc.d/pflog start</userinput></screen>
+
+ <para>Falls Sie noch weitere Features f&uuml;r
+ <acronym>PF</acronym> ben&ouml;tigen, m&uuml;ssen Sie diese in den
+ Kernel einbauen.</para>
- <para>Das Kernelmodul wurde mit aktiviertem &man.pflog.4; erstellt,
- welches Unterst&uuml;tzung f&uuml;r Protokollierung liefert. Falls Sie
- andere Eigenschaften von <acronym>PF</acronym> ben&ouml;tigen,
- m&uuml;ssen Sie <acronym>PF</acronym>-Unterst&uuml;tzung mit in den
- Kernel kompilieren.</para>
</sect2>
<sect2>
@@ -320,8 +347,8 @@
&Auml;nderungen der <acronym>PF</acronym>-Zustandstabelle offenlegt.
Es kann mit &man.carp.4; kombiniert werden, um ausfallsichere
Firewalls mit <acronym>PF</acronym> zu realisieren. Weitere
- Informationen zu <acronym>CARP</acronym> erhalten Sie in <link
- linkend="carp">Kapitel 29</link> des Handbuchs.</para>
+ Informationen zu <acronym>CARP</acronym> erhalten Sie in
+ <xref linkend="carp"> des Handbuchs.</para>
<para>Die Kernelkonfigurationsoptionen von <acronym>PF</acronym> befinden
sich in <filename>/usr/src/sys/conf/NOTES</filename> und sind im
@@ -380,41 +407,27 @@ pflog_flags="" # zus&auml;tzliche Parameter f&uuml;r den Start
<acronym>PF</acronym>-Regelwerks lesen Sie bitte die <ulink
url="http://www.openbsd.org/faq/pf/">PF FAQ</ulink>.</para>
- <warning>
- <para>Beim Lesen der <ulink
- url="http://www.openbsd.org/faq/pf/">PF FAQ</ulink> wollten Sie
- darauf achten, dass verschiedene Versionen von &os; auch
- unterschiedliche Versionen von PF enthalten:</para>
-
- <itemizedlist>
- <listitem>
- <para>&os;&nbsp;5.<replaceable>X</replaceable> -
- <acronym>PF</acronym>-Version von OpenBSD&nbsp;3.5</para>
- </listitem>
-
- <listitem>
- <para>&os;&nbsp;6.<replaceable>X</replaceable> -
- <acronym>PF</acronym>-Version von OpenBSD&nbsp;3.7</para>
- </listitem>
-
- <listitem>
- <para>&os;&nbsp;7.<replaceable>X</replaceable> -
- <acronym>PF</acronym>-Version von OpenBSD&nbsp;4.1</para>
- </listitem>
- </itemizedlist>
- </warning>
+ <warning>
+ <para>Beim Lesen der <ulink
+ url="http://www.openbsd.org/faq/pf/">PF FAQ</ulink> wollten Sie
+ darauf achten, dass verschiedene Versionen von &os; auch
+ unterschiedliche Versionen von PF enthalten. Das aktuelle
+ &os;&nbsp;7.<replaceable>X</replaceable> und neuere Versionen
+ benutzen die selbe Version von <acronym>PF</acronym> wie
+ OpenBSD&nbsp;4.1.</para>
+ </warning>
- <para>Die &a.pf; ist eine erste Anlaufstelle f&uuml;r
- Fragen zur Konfiguration und dem Einsatz der <acronym>PF</acronym>
- Firewall. Vergessen Sie nicht, vorher die Mailinglistenarchive zu
- durchsuchen, bevor Sie dort eine Frage stellen!</para>
+ <para>Die &a.pf; ist eine erste Anlaufstelle f&uuml;r
+ Fragen zur Konfiguration und dem Einsatz der <acronym>PF</acronym>
+ Firewall. Vergessen Sie nicht, vorher die Mailinglistenarchive zu
+ durchsuchen, bevor Sie dort eine Frage stellen!</para>
</sect2>
<sect2>
<title>Arbeiten mit PF</title>
<para>Benutzen Sie &man.pfctl.8;, um <acronym>PF</acronym> zu steuern.
- Unten finden sie ein paar n&uuml;tzliche Befehle (lesen Sie auch die
+ Unten finden Sie ein paar n&uuml;tzliche Befehle (lesen Sie auch die
Manualpage zu &man.pfctl.8;, um alle verf&uuml;gbaren Optionen
nachzuschlagen):</para>
@@ -487,36 +500,36 @@ options ALTQ_NOPCC # Wird von SMP ben&ouml;tigt</programlisting>
<acronym>ALTQ</acronym>-Framework.</para>
<para><literal>options ALTQ_CBQ</literal> aktiviert das
- <foreignphrase>Class Based Queuing</foreignphrase>
+ <emphasis>Class Based Queuing</emphasis>
(<acronym>CBQ</acronym>). <acronym>CBQ</acronym> erlaubt es, die
Bandbreite einer Verbindung in verschiedene Klassen oder
Warteschlangen zu unterteilen, um die Priorit&auml;t von
Datenpaketen basierend auf Filterregeln zu &auml;ndern.</para>
- <para><literal>options ALTQ_RED</literal> aktiviert
- <foreignphrase>Random Early Detection</foreignphrase>
- (<acronym>RED</acronym>). <acronym>RED</acronym> wird
- zur Vermeidung einer Netzwerkverstopfung verwendet. Dazu
- ermittelt <acronym>RED</acronym> die Gr&ouml;&szlig;e der
- Warteschlange und vergleicht diesen Wert mit den minimalen
- und maximalen Grenzwerten der Warteschlange. Ist die
- Warteschlange gr&ouml;&szlig;er als das erlaubte Maximum,
- werden alle neuen Pakete verworfen. Getreu seinem Namen
- verwirft <acronym>RED</acronym> Pakete unterschiedlicher
+ <para><literal>options ALTQ_RED</literal> aktiviert
+ <emphasis>Random Early Detection</emphasis>
+ (<acronym>RED</acronym>). <acronym>RED</acronym> wird
+ zur Vermeidung einer Netzwerkverstopfung verwendet. Dazu
+ ermittelt <acronym>RED</acronym> die Gr&ouml;&szlig;e der
+ Warteschlange und vergleicht diesen Wert mit den minimalen
+ und maximalen Grenzwerten der Warteschlange. Ist die
+ Warteschlange gr&ouml;&szlig;er als das erlaubte Maximum,
+ werden alle neuen Pakete verworfen. Getreu seinem Namen
+ verwirft <acronym>RED</acronym> Pakete unterschiedlicher
Verbindungen nach dem Zufallsprinzip.</para>
<para><literal>options ALTQ_RIO</literal> aktiviert
- <foreignphrase>Random Early Detection In and
- Out</foreignphrase>.</para>
+ <emphasis>Random Early Detection In and
+ Out</emphasis>.</para>
<para><literal>options ALTQ_HFSC</literal> aktiviert den
- <foreignphrase>Hierarchical Fair Service Curve</foreignphrase>
+ <emphasis>Hierarchical Fair Service Curve</emphasis>
-Paketplaner. Weitere Informationen zu <acronym>HFSC</acronym>
finden Sie unter <ulink
url="http://www-2.cs.cmu.edu/~hzhang/HFSC/main.html"></ulink>.</para>
<para><literal>options ALTQ_PRIQ</literal> aktiviert
- <foreignphrase>Priority Queuing</foreignphrase>
+ <emphasis>Priority Queuing</emphasis>
(<acronym>PRIQ</acronym>). <acronym>PRIQ</acronym>
l&auml;sst Verkehr einer Warteschlange mit h&ouml;herer
Priorit&auml;t zuerst durch.</para>
diff --git a/de_DE.ISO8859-1/books/handbook/l10n/chapter.sgml b/de_DE.ISO8859-1/books/handbook/l10n/chapter.sgml
index 3c347f5d61..f1a1d6478f 100644
--- a/de_DE.ISO8859-1/books/handbook/l10n/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/l10n/chapter.sgml
@@ -3,8 +3,8 @@
The FreeBSD German Documentation Project
$FreeBSD$
- $FreeBSDde: de-docproj/books/handbook/l10n/chapter.sgml,v 1.64 2010/01/08 22:30:13 bcr Exp $
- basiert auf: 1.131
+ $FreeBSDde: de-docproj/books/handbook/l10n/chapter.sgml,v 1.65 2010/02/25 19:00:38 fboerner Exp $
+ basiert auf: 1.132
-->
<chapter id="l10n">
@@ -366,7 +366,7 @@ me:\
m&uuml;ssen in <filename>/etc/login.conf</filename>
vorgenommen werden:</para>
- <programlisting><replaceable>Sprache</replaceable>:<replaceable>Beschreibung</replaceable>:\
+ <programlisting><replaceable>Sprache</replaceable>|<replaceable>Account-Typ-Beschreibung</replaceable>:\
:charset=<replaceable>MIME_Zeichensatz</replaceable>:\
:lang=<replaceable>Locale</replaceable>:\
:tc=default:</programlisting>
@@ -374,7 +374,7 @@ me:\
<para>Die f&uuml;r Latin-1 erforderlichen Eintr&auml;ge
sehen wie folgt aus:</para>
- <programlisting>german:German Users Accounts:\
+ <programlisting>german|German Users Accounts:\
:charset=ISO-8859-1:\
:lang=de_DE.ISO8859-1:\
:tc=default:</programlisting>
diff --git a/de_DE.ISO8859-1/books/handbook/linuxemu/chapter.sgml b/de_DE.ISO8859-1/books/handbook/linuxemu/chapter.sgml
index 441f66b24f..174a9a4a9d 100644
--- a/de_DE.ISO8859-1/books/handbook/linuxemu/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/linuxemu/chapter.sgml
@@ -3,8 +3,8 @@
The FreeBSD German Documentation Project
$FreeBSD$
- $FreeBSDde: de-docproj/books/handbook/linuxemu/chapter.sgml,v 1.89 2009/09/15 18:52:49 bcr Exp $
- basiert auf: 1.139
+ $FreeBSDde: de-docproj/books/handbook/linuxemu/chapter.sgml,v 1.90 2010/02/05 16:30:28 bcr Exp $
+ basiert auf: 1.140
-->
<chapter id="linuxemu">
@@ -364,7 +364,7 @@ Abort</screen>
<para>Damit der FreeBSD-Kernel eine Linux-ELF-Datei von einer
FreeBSD-ELF-Datei unterscheiden kann, gibt es das Werkzeug
- &man.brandelf.1;:</para>
+ &man.brandelf.1;.</para>
<screen>&prompt.user; <userinput>brandelf -t Linux my-linux-elf-binary</userinput></screen>
diff --git a/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml b/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml
index 1713d5b6fc..53b9a869d6 100644
--- a/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml
@@ -3,8 +3,8 @@
The FreeBSD German Documentation Project
$FreeBSD$
- $FreeBSDde: de-docproj/books/handbook/mirrors/chapter.sgml,v 1.160 2009/12/28 23:17:51 bcr Exp $
- basiert auf: 1.474
+ $FreeBSDde: de-docproj/books/handbook/mirrors/chapter.sgml,v 1.162 2010/02/19 19:20:24 fboerner Exp $
+ basiert auf: 1.476
-->
<appendix id="mirrors">
@@ -2511,6 +2511,16 @@ doc/zh_*</screen>
&os; 7-STABLE bekannt.</para>
</listitem>
</varlistentry>
+
+ <varlistentry>
+ <term>RELENG_7_3</term>
+
+ <listitem>
+ <para>Der Zweig, auf dem sicherheitsrelevante oder kritische
+ Fehlerbehebungen f&uuml;r &os;&nbsp;7.3
+ durchgef&uuml;hrt werden.</para>
+ </listitem>
+ </varlistentry>
<varlistentry>
<term>RELENG_7_2</term>
@@ -2814,6 +2824,14 @@ doc/zh_*</screen>
<para>&os; 8.0</para>
</listitem>
</varlistentry>
+
+ <varlistentry>
+ <term>RELENG_7_3_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 7.3</para>
+ </listitem>
+ </varlistentry>
<varlistentry>
<term>RELENG_7_2_0_RELEASE</term>
diff --git a/de_DE.ISO8859-1/books/handbook/security/chapter.sgml b/de_DE.ISO8859-1/books/handbook/security/chapter.sgml
index 78aee98636..a21d11195e 100644
--- a/de_DE.ISO8859-1/books/handbook/security/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/security/chapter.sgml
@@ -3,8 +3,8 @@
The FreeBSD German Documentation Project
$FreeBSD$
- $FreeBSDde: de-docproj/books/handbook/security/chapter.sgml,v 1.157 2008/03/26 14:26:57 jkois Exp $
- basiert auf: 1.320
+ $FreeBSDde: de-docproj/books/handbook/security/chapter.sgml,v 1.174 2010/02/25 17:56:54 fboerner Exp $
+ basiert auf: 1.336
-->
<chapter id="security">
@@ -47,7 +47,7 @@
Integrit&auml;t und die Sicherheit Ihrer Systeme und Netzwerke
zu gew&auml;hrleisten.</para>
- <para>Nach dem Sie dieses Kapitel durchgearbeitet haben, werden
+ <para>Nachdem Sie dieses Kapitel durchgearbeitet haben, werden
Sie:</para>
<itemizedlist>
@@ -361,7 +361,7 @@
Anmeldungen als <username>root</username> verboten sind. F&uuml;r
<application>SSH</application> editieren Sie
<filename>/etc/ssh/sshd_config</filename> und &uuml;berpr&uuml;fen,
- dass <literal>PermitRootLogin</literal> auf <literal>NO</literal>
+ dass <literal>PermitRootLogin</literal> auf <literal>no</literal>
gesetzt ist. Beachten Sie jede Zugriffsmethode &ndash; Dienste
wie FTP werden oft vergessen. Nur an der Systemkonsole sollte
ein direktes Anmelden als <username>root</username> m&ouml;glich
@@ -550,8 +550,10 @@
<username>root</username>-Zugriff f&uuml;hren k&ouml;nnen, sind
die auf dem System installierten SUID- und SGID-Programme. Die
meisten dieser Programme wie <application>rlogin</application> stehen
- in <filename>/bin</filename>, <filename>/sbin</filename>,
- <filename>/usr/bin</filename>, oder <filename>/usr/sbin</filename>.
+ in <filename class="directory">/bin</filename>,
+ <filename class="directory">/sbin</filename>,
+ <filename class="directory">/usr/bin</filename>, oder
+ <filename class="directory">/usr/sbin</filename>.
Obwohl nichts 100% sicher ist, k&ouml;nnen Sie davon ausgehen,
dass die SUID- und SGID-Programme des Basissystems ausreichend
sicher sind. Allerdings werden ab und an in diesen Programmen
@@ -646,30 +648,83 @@
Modulen in den Kernel: &man.kldload.8;. Ein unternehmungslustiger
Angreifer kann dies benutzen, um sein eigenes
<devicename>bpf</devicename> oder ein anderes zum Abh&ouml;ren
- geeignetes Ger&auml;t in den laufenden Kernel einzubringen. Um diese
- Probleme zu vermeiden, m&uuml;ssen Sie den Kernel auf einer
- h&ouml;heren Sicherheitsstufe, mindestens <literal>1</literal>,
- laufen lassen. Die Sicherheitsstufe wird durch die Variable
- <varname>kern.securelevel</varname>, die mit <command>sysctl</command>
- gesetzt werden kann, angegeben. Nachdem Sie die Sicherheitsstufe
- auf <literal>1</literal> gesetzt haben, sind schreibende Zugriffe
- auf rohe Ger&auml;te verboten und die speziellen
- <command>chflags</command> Optionen, wie <literal>schg</literal>
- werden erzwungen. Sie m&uuml;ssen sicherstellen, dass die
- <literal>schg</literal> Option auf allen kritischen Programmen,
- Verzeichnissen und Skripten, die bis zum Setzen der Option laufen,
- aktiviert ist. Das mag &uuml;bertrieben sein da eine Migration
- des Systems erschwert wird, wenn Sie auf einer h&ouml;heren
- Sicherheitsstufe arbeiten. Sie k&ouml;nnen einen Kompromiss
- erreichen, indem Sie das System auf einer erh&ouml;hten
- Sicherheitsstufe laufen lassen, aber die <literal>schg</literal>
- Option nicht f&uuml;r jede Datei und jedes Verzeichnis auf der Welt
- setzen. Eine andere M&ouml;glichkeit besteht darin,
- <filename>/</filename> und <filename>/usr</filename> einfach
- schreibgesch&uuml;tzt einzuh&auml;ngen. Bedenken Sie aber, dass
- Sie das Aufdecken eines Einbruchs vielleicht verhindern, wenn
- Sie zu drastische Ma&szlig;nahmen zum Schutz Ihres Systems
- verwenden.</para>
+ geeignetes Ger&auml;t in den laufenden Kernel einzubringen. Um
+ dieses Problem zu vermeiden, m&uuml;ssen Sie den Kernel auf
+ einem h&ouml;heren Sicherheitslevel laufen lassen, mindestens
+ auf securelevel 1.</para>
+
+ <para>Das Securelevel des Kernels kann auf verschiedene Wege
+ gesetzt werden. Der einfachste Weg ist das erh&ouml;hen des
+ Securelevel des laufenden Kernels durch ein
+ <command>sysctl</command> der <varname>kern.securelevel</varname>
+ Kernel Variablen:</para>
+
+ <screen>&prompt.root; <userinput>sysctl kern.securelevel=<replaceable>1</replaceable></userinput></screen>
+
+ <para>Standardm&auml;ssig bootet der &os; Kernel mit einem
+ Securelevel von -1. Der Securelevel wird solange bei -1 bleiben,
+ bis er entweder durch den Administrator oder von &man.init.8;
+ durch einen Eintrag im Startup Script ver&auml;ndert wird. Der
+ Securelevel kann w&auml;hrend des Systemstarts durch das Setzen
+ der Variable <varname>kern_securelevel_enable</varname> auf
+ <literal>YES</literal> und der Wert der Variable
+ <varname>kern_securelevel</varname> auf den gew&uuml;nschten
+ Securelevel in der <filename>/etc/rc.conf</filename>
+ erh&ouml;ht werden.</para>
+
+ <para>Der Standard Securelevel von einem &os;-System direkt nach
+ dem Start ist -1. Dies wird <quote>insecure mode</quote> genannt,
+ da zum Beispiel unver&auml;ndeliche Dateiflags abgeschaltet werden
+ k&ouml;nnten, von allen Ger&auml;ten gelesen und auf alle geschrieben
+ werden kann.</para>
+
+ <para>Sobald der Securelevel auf den Wert 1 oder h&ouml;her gesetzt
+ ist, werden die append-only und die unver&auml;nderlichen Dateien
+ gesch&uuml;tzt, die Flags k&ouml;nnen nicht abgeschaltet werden
+ und der Zugriff auf raw Devices ist verboten. H&ouml;here Levels
+ verbieten mehr Aktionen. F&uuml;r einen vollst&auml;ndige Liste
+ aller Securelevels, lesen Sie bitte die &man.security.7;
+ Manual Seite (oder die Manual Seite von &man.init.8; f&uuml;r
+ &auml;ltere Releases als &os; 7.0).</para>
+
+ <note>
+ <para>Das Erh&ouml;hen des Securelevels auf 1 oder h&ouml;her
+ kann einige Probleme mit X11 verursachen (Zugriff auf
+ <filename>/dev/io</filename> wird geblockt), ebenso die Installation
+ von &os; aus den Quellen (der <maketarget>installworld</maketarget>
+ Teil muss zeitweilig die append-only und die
+ unver&auml;nderlichen Flags einiger Dateien zur&uuml;cksetzen),
+ und auch noch in einigen anderen F&auml;llen. Manchmal kann es,
+ wie bei X11, durch das sehr fr&uuml;he Starten von &man.xdm.1;
+ im Boot Prozess m&ouml;glich sein, dies zu umgehen, wenn der
+ Securelevel noch niedrig genug ist.
+ Workarounds wie dieser sind nicht f&uml;r alle Securelevels
+ und f&uuml;r alle Einschr&auml;nkungen, die sie schaffen,
+ m&ouml;glich. Ein bisschen Vorausplanung ist eine gute
+ Idee. Das Verst&auml;ndnis f&uuml;r die Beschr&auml;nkungen,
+ die durch jedes Securelevel verursacht werden, ist wichtig, da sie
+ die einfache Benutzung des Systems verschlechtern. Es vereinfacht
+ auch die Wahl einer Standardeinstellung und sch&uuml;tzt vor
+ &Uuml;berraschungen.</para>
+ </note>
+
+ <para>Wenn das Securelevel des Kernel auf einen Wert von 1 oder
+ h&ouml;her gesetzt ist, kann es sinnvoll sein das
+ <literal>schg</literal> Flag auf kritische Startdateien,
+ Verzeichnisse und Scripte (z.B. alles was l&auml;uft bis zu
+ dem Punkt auf dem das Securelevel gesetzt ist) zu setzen. Dies
+ k&ouml;nnte etwas &uuml,bertrieben sein, und auch das Upgrade
+ des Systems ist sehr viel schwerer, wenn es auf einem hohen
+ Securelevel l&auml;uft. Ein strengerer Kompromiss ist es, das
+ System auf einem h&ouml;heren Securelevel laufen zu lassen, aber
+ keine <literal>schg</literal> Flags f&uuml;r alle Systemdateien
+ und Verzeichnisse zu setzen. Eine andere M&ouml;glichkeit ist es,
+ einfach die Verzeichnisse <filename class="directory">/</filename> und
+ <filename class="directory">/usr</filename> read-only zu mounten.
+ Es sei darauf hingewiesen, dass Sie nicht vor lauter &Uuml;berlegen
+ das Wichtigste, n&auml;mlich die Entdeckung eines Eindringens,
+ vergessen.</para>
+
</sect2>
<sect2 id="security-integrity">
@@ -679,8 +734,9 @@
nur so weit sch&uuml;tzen, wie es die Benutzbarkeit des
Systems nicht einschr&auml;nkt. Wenn Sie zum Beispiel
mit <command>chflags</command> die Option <literal>schg</literal>
- auf die meisten Dateien in <filename>/</filename> und
- <filename>/usr</filename> setzen, kann das Ihre Arbeit mehr behindern
+ auf die meisten Dateien in <filename class="directory">/</filename> und
+ <filename class="directory">/usr</filename> setzen, kann das Ihre
+ Arbeit mehr behindern
als n&uuml;tzen. Die Ma&szlig;nahme sch&uuml;tzt zwar die
Dateien, schlie&szlig;t aber auch eine M&ouml;glichkeit,
Ver&auml;nderungen zu entdecken, aus. Die letzte Schicht des
@@ -706,7 +762,7 @@
f&uuml;r das besonders gesch&uuml;tzte System exportieren, oder
Sie k&ouml;nnen der besonders gesch&uuml;tzten Maschine
<application>SSH</application> auf die anderen Maschinen erlauben,
- indem Sie <application>SSH</application> Schl&uuml;sselpaare
+ indem Sie <application>SSH</application>-Schl&uuml;sselpaare
installieren. Mit Ausnahme des verursachten Netzwerkverkehrs
ist die NFS-Methode die am wenigsten sichtbare. Sie erlaubt es Ihnen,
nahezu unentdeckt die Dateisysteme der Clients zu beobachten. Wenn
@@ -725,7 +781,8 @@
verwenden, k&ouml;nnen Sie dazu einfache Systemwerkzeuge wie
&man.find.1; und &man.md5.1; benutzen. Am besten berechnen
Sie einmal am Tag MD5-Pr&uuml;fsummen der Dateien, Konfigurationsdateien
- in <filename>/etc</filename> und <filename>/usr/local/etc</filename>
+ in <filename class="directory">/etc</filename> und
+ <filename class="directory">/usr/local/etc</filename>
sollten &ouml;fter &uuml;berpr&uuml;ft werden. Wenn Unstimmigkeiten
zwischen den auf der besonders gesch&uuml;tzten Maschine gehaltenen
MD5-Pr&uuml;fsummen und den ermittelten Pr&uuml;fsummen festgestellt
@@ -733,7 +790,8 @@
der den Unstimmigkeiten dann nachgehen sollte. Ein gutes Skript
&uuml;berpr&uuml;ft das System auch auf verd&auml;chtige
SUID-Programme sowie gel&ouml;schte oder neue Dateien in
- <filename>/</filename> und <filename>/usr</filename>.</para>
+ <filename class="directory">/</filename> und
+ <filename class="directory">/usr</filename>.</para>
<para>Wenn Sie <application>SSH</application> anstelle von NFS
benutzen, wird das Erstellen der Skripten schwieriger. Sie m&uuml;ssen
@@ -741,7 +799,7 @@
<command>scp</command> auf den Client kopieren. Damit machen
Sie die &Uuml;berpr&uuml;fung f&uuml;r einen Angreifer sichtbar.
Au&szlig;erdem kann der SSH-Client auf dem
- Zielsystem schon kompromittiert sein. Zusammenfassend, kann der
+ Zielsystem schon kompromittiert sein. Zusammenfassend kann der
Einsatz von <application>SSH</application> n&ouml;tig sein,
wenn Sie &uuml;ber ungesicherte Verbindungen arbeiten, aber
der Umgang mit dieser Methode ist auch sehr viel schwieriger.</para>
@@ -1138,7 +1196,7 @@
<para>In der Voreinstellung unterst&uuml;tzt &os;
OPIE (<foreignphrase>One-time Passwords in
- Everything</foreignphrase>, das in der Regel MD5-Hash-Funktionen
+ Everything</foreignphrase>), das in der Regel MD5-Hash-Funktionen
einsetzt.</para>
<para>Im Folgenden werden drei verschiedene
@@ -1447,7 +1505,7 @@ Enter secret pass phrase: <userinput>&lt;secret password&gt;</userinput>
und Beispiele f&uuml;r deren Konfiguration vorgestellt.</para>
<para>Die <acronym>TCP</acronym>-Wrapper erweitern die
- Steuerungsm&ouml;glichkeiten, die <command>inetd</command>
+ Steuerungsm&ouml;glichkeiten, die <application>inetd</application>
&uuml;ber die Dienste unter seiner Kontrolle hat.
Beispielsweise k&ouml;nnen Verbindungen protokolliert,
Nachrichten zur&uuml;ckgesandt oder nur interne Verbindungen
@@ -1464,7 +1522,7 @@ Enter secret pass phrase: <userinput>&lt;secret password&gt;</userinput>
<acronym>TCP</acronym>-Wrapper sind eine weitere
Sicherheitsschicht zum Schutz eines Systems.</para>
- <para>Da die Wrapper die Funktion von <command>inetd</command>
+ <para>Da die Wrapper die Funktion von <application>inetd</application>
erweitern, wird im Folgenden vorausgesetzt, dass Sie den
Abschnitt &uuml;ber die
<link linkend="network-inetd">inetd-Konfiguration</link>
@@ -1480,65 +1538,64 @@ Enter secret pass phrase: <userinput>&lt;secret password&gt;</userinput>
<sect2>
<title>TCP-Wrapper einrichten</title>
- <para>Um die <acronym>TCP</acronym>-Wrapper unter &os;
- zu benutzen, muss nur der <command>inetd</command>
- aus <filename>rc.conf</filename> mit den voreingestellten
- Optionen <option>-Ww</option> gestartet werden.
- Die Konfigurationsdatei <filename>/etc/hosts.allow</filename>
- darf keine Fehler enthalten; falls doch, werden die
- Fehler mit &man.syslogd.8; protokolliert.</para>
+ <para>Um die <acronym>TCP</acronym>-Wrapper unter &os;
+ zu benutzen, muss nur der <application>inetd</application>
+ aus <filename>rc.conf</filename> mit den voreingestellten
+ Optionen <option>-Ww</option> gestartet werden.
+ Die Konfigurationsdatei <filename>/etc/hosts.allow</filename>
+ darf keine Fehler enthalten; falls doch, werden die
+ Fehler mit &man.syslogd.8; protokolliert.</para>
<note>
- <para>Im Gegensatz zu anderen Implementationen der
- <acronym>TCP</acronym>-Wrapper wird vom Gebrauch
- der Datei <filename>hosts.deny</filename> abgeraten.
- Die Konfiguration sollte sich vollst&auml;ndig in der
- Datei <filename>/etc/hosts.allow</filename> befinden.</para>
+ <para>Im Gegensatz zu anderen Implementationen der
+ <acronym>TCP</acronym>-Wrapper wird vom Gebrauch
+ der Datei <filename>hosts.deny</filename> abgeraten.
+ Die Konfiguration sollte sich vollst&auml;ndig in der
+ Datei <filename>/etc/hosts.allow</filename> befinden.</para>
</note>
- <para>In der einfachsten Konfiguration werden Dienste
- abh&auml;ngig vom Inhalt der Datei
- <filename>/etc/hosts.allow</filename> erlaubt oder
- gesperrt. Unter &os; wird in der Voreinstellung
- jeder von <command>inetd</command> gestartete Dienst
- erlaubt. Sehen wir uns zun&auml;chst die Grundkonfiguration
- an.</para>
-
- <para>Eine Konfigurationszeile ist wie folgt aufgebaut:
- <literal>Dienst : Adresse : Aktion</literal>.
- <literal>Dienst</literal> ist der von <command>inetd</command>
- gestartete Dienst (auch Daemon genannt). Die
- <literal>Adresse</literal> kann ein g&uuml;ltiger
- Rechnername, eine <acronym>IP</acronym>-Adresse oder
- eine IPv6-Adresse in Klammern
- (<literal>[</literal>&nbsp;<literal>]</literal>) sein.
- Der Wert <literal>allow</literal> im Feld
- <literal>Aktion</literal> erlaubt Zugriffe, der Wert
- <literal>deny</literal> verbietet Zugriffe.
- Die Zeilen in <filename>hosts.allow</filename>
- werden f&uuml;r jede Verbindung der Reihe nach
- abgearbeitet. Trifft eine Zeile auf eine Verbindung
- zu, wird die entsprechende Aktion ausgef&uuml;hrt
- und die Abarbeitung ist beendet.</para>
-
- <para>Es gibt noch weitere Konfigurationsoptionen, die
- gleich erl&auml;utert werden. Das bisher Gesagte
- reicht, um eine einfache Regel aufzustellen. Wenn
- Sie einkommende <acronym>POP</acronym>3-Verbindungen
- f&uuml;r den Dienst
- <filename role="package">mail/qpopper</filename>
- erlauben wollen, erweitern Sie
- <filename>hosts.allow</filename> um die nachstehende
- Zeile:</para>
+ <para>In der einfachsten Konfiguration werden Dienste
+ abh&auml;ngig vom Inhalt der Datei
+ <filename>/etc/hosts.allow</filename> erlaubt oder
+ gesperrt. Unter &os; wird in der Voreinstellung
+ jeder von <application>inetd</application> gestartete Dienst
+ erlaubt. Sehen wir uns zun&auml;chst die Grundkonfiguration
+ an.</para>
+
+ <para>Eine Konfigurationszeile ist wie folgt aufgebaut:
+ <literal>Dienst : Adresse : Aktion</literal>.
+ <literal>Dienst</literal> ist der von <application>inetd</application>
+ gestartete Dienst (auch Daemon genannt). Die
+ <literal>Adresse</literal> kann ein g&uuml;ltiger
+ Rechnername, eine <acronym>IP</acronym>-Adresse oder
+ eine IPv6-Adresse in Klammern
+ (<literal>[</literal>&nbsp;<literal>]</literal>) sein.
+ Der Wert <literal>allow</literal> im Feld
+ <literal>Aktion</literal> erlaubt Zugriffe, der Wert
+ <literal>deny</literal> verbietet Zugriffe.
+ Die Zeilen in <filename>hosts.allow</filename>
+ werden f&uuml;r jede Verbindung der Reihe nach
+ abgearbeitet. Trifft eine Zeile auf eine Verbindung
+ zu, wird die entsprechende Aktion ausgef&uuml;hrt
+ und die Abarbeitung ist beendet.</para>
+
+ <para>Es gibt noch weitere Konfigurationsoptionen, die
+ gleich erl&auml;utert werden. Das bisher Gesagte
+ reicht, um eine einfache Regel aufzustellen. Wenn
+ Sie einkommende <acronym>POP</acronym>3-Verbindungen
+ f&uuml;r den Dienst
+ <filename role="package">mail/qpopper</filename>
+ erlauben wollen, erweitern Sie
+ <filename>hosts.allow</filename> um die nachstehende Zeile:</para>
<programlisting># This line is required for POP3 connections:
qpopper : ALL : allow</programlisting>
- <para>Nachdem Sie die Zeile hinzugef&uuml;gt haben, muss der
- <command>inetd</command> neu gestartet werden. Sie
- k&ouml;nnen dazu das Kommando &man.kill.1; verwenden
- oder <command>/etc/rc.d/inetd restart</command>
- ausf&uuml;hren.</para>
+ <para>Nachdem Sie die Zeile hinzugef&uuml;gt haben, muss der
+ <application>inetd</application> neu gestartet werden. Sie
+ k&ouml;nnen dazu das Kommando &man.kill.1; verwenden
+ oder <command>/etc/rc.d/inetd restart</command>
+ ausf&uuml;hren.</para>
</sect2>
<sect2>
@@ -1596,7 +1653,7 @@ ALL : ALL \
<para>Um einem Denial-of-Service-Angriff zu entgehen,
benutzen Sie die Option <option>spawn</option>.
- Wie die Option <option>twist</option> verbietet
+ Wie die Option <option>twist</option> verbietet die Option
<option>spawn</option> die Verbindung und f&uuml;hrt
externe Kommandos aus. Allerdings sendet die
Option <option>spawn</option> der Gegenstelle
@@ -1618,7 +1675,7 @@ ALL : .example.com \
und den Dienst, der angesprochen wurde.</para>
<para>In der Konfigurationsdatei wurde beispielsweise
- das Metazeichen %a verwendet. Es gibt weitere
+ das Metazeichen <literal>%a</literal> verwendet. Es gibt weitere
Metazeichen, die in der Hilfeseite &man.hosts.access.5;
beschrieben werden.</para>
</sect3>
@@ -1627,20 +1684,20 @@ ALL : .example.com \
<title>Wildcards</title>
<para>Bisher verwendeten die Beispiele immer die
- Wildcard <literal>ALL</literal>. Die Wildcard
+ Wildcard <literal>ALL</literal>. Es gibt andere Wildcards,
+ welche die Funktionalität ein bisschen erweitern. Die Wildcard
<literal>ALL</literal> passt beispielsweise auf
jeden Dienst, jede Domain oder jede
<acronym>IP</acronym>-Adresse. Eine andere
Wildcard ist <literal>PARANOID</literal>. Sie passt
- auf jeden Rechner dessen <acronym>IP</acronym>-Adresse
+ auf jeden Rechner, dessen <acronym>IP</acronym>-Adresse
m&ouml;glicherweise gef&auml;lscht ist. Dies ist dann
der Fall, wenn der Verbindungsaufbau von einer
<acronym>IP</acronym>-Adresse erfolgt, die nicht
- zu dem &uuml;bermittelten Rechnernamen passt.
- F&uuml;r solche F&auml;lle werden mit der
- Wildcard <literal>PARANOID</literal> Aktionen
- festgelegt, beispielsweise:</para>
-
+ zu dem &uuml;bermittelten Rechnernamen passt. Das folgende
+ Beispiel sollte das ganze etwas klarer werden lassen:
+ </para>
+
<programlisting># Block possibly spoofed requests to sendmail:
sendmail : PARANOID : deny</programlisting>
@@ -1654,14 +1711,15 @@ sendmail : PARANOID : deny</programlisting>
kann einen Dienst unbrauchbar machen, wenn der
Client oder der Server eine fehlerhafte
<acronym>DNS</acronym>-Konfiguration besitzt.
- Setzen Sie die Wildcard bitte umsichtig ein.</para>
+ Seien Sie daher besonders vorsichtig, wenn Sie diese Wildcard
+ in Ihre Konfiguration aufnehmen wollen.</para>
</caution>
<para>Weiteres &uuml;ber Wildcards und deren Funktion
lesen Sie bitte in der Hilfeseite &man.hosts.access.5;
nach.</para>
- <para>In der Voreinstellung sind alle Dienste erlaubt.
+ <para>
Damit die gezeigten Beispiele funktionieren, m&uuml;ssen
Sie die erste Konfigurationszeile in der Datei
<filename>hosts.allow</filename> auskommentieren.</para>
@@ -1735,8 +1793,8 @@ sendmail : PARANOID : deny</programlisting>
<para>Die folgenden Schritte werden nur auf dem Kerberos-Server
durchgef&uuml;hrt. Stellen Sie bitte vorher sicher, dass
keine alten Kerberos-Datenbanken mehr vorhanden sind. Im
- Verzeichnis <filename>/etc/kerberosIV</filename> sollten sich nur
- die folgenden Dateien befinden:</para>
+ Verzeichnis <filename class="directory">/etc/kerberosIV</filename>
+ sollten sich nur die folgenden Dateien befinden:</para>
<screen>&prompt.root; <userinput>cd /etc/kerberosIV</userinput>
&prompt.root; <userinput>ls</userinput>
@@ -1906,7 +1964,7 @@ Edit O.K.
die Dienste definieren, aus der Datenbank mit
<command>ext_srvtab</command> extrahieren. Die erstelle Datei
muss auf einem <emphasis>sicheren Weg</emphasis> in das
- Verzeichnis <filename>/etc</filename> jedes Clients
+ Verzeichnis <filename class="directory">/etc</filename> jedes Clients
kopiert werden. Die Datei muss auf jedem Server und auf
jedem Client vorhanden sein und ist unabdingbar f&uuml;r
Kerberos.</para>
@@ -1930,7 +1988,8 @@ Generating 'grunt-new-srvtab'....</screen>
<para>Wenn die Datei f&uuml;r ein Client-System bestimmt ist und das
Netzwerk nicht sicher ist, kopieren Sie die Datei auf ein bewegliches
Medium und transportieren sie physikalisch. Kopieren Sie die Datei
- auf den Client in das Verzeichnis <filename>/etc</filename>.
+ auf den Client in das Verzeichnis
+ <filename class="directory">/etc</filename>.
Benennen Sie die Datei in <filename>srvtab</filename> um und setzen Sie
schlie&szlig;lich noch die Berechtigungen auf 600:</para>
@@ -1981,7 +2040,8 @@ Edit O.K.
Wenn Sie <filename>/etc/rc.conf</filename> richtig angepasst haben,
passiert das automatisch, wenn Sie booten. Dieser Schritt ist nur
auf dem Kerberos-Server notwendig, die Clients bekommen alles
- was sie brauchen aus dem <filename>/etc/kerberosIV</filename>
+ was sie brauchen aus dem
+ <filename class="directory">/etc/kerberosIV</filename>
Verzeichnis.</para>
<screen>&prompt.root; <userinput>kerberos &amp;</userinput>
@@ -2440,7 +2500,7 @@ Aug 27 15:37:58 Aug 28 01:37:58 krbtgt/EXAMPLE.ORG@EXAMPLE.ORG</screen>
<para>Dieses Ticket kann, nachdem Sie Ihre Arbeit beendet haben,
zur&uuml;ckgezogen werden:</para>
- <screen>&prompt.user; <userinput>k5destroy</userinput></screen>
+ <screen>&prompt.user; <userinput>kdestroy</userinput></screen>
</sect2>
<sect2>
@@ -2818,7 +2878,8 @@ jdoe@example.org</screen>
(<ulink url="http://web.mit.edu/Kerberos/www/"></ulink>) des
<acronym>MIT</acronym>s. Achten Sie besonders auf den
Suchpfad f&uuml;r Anwendungen. Der <acronym>MIT</acronym>-Port
- wird standardm&auml;&szlig;ig in <filename>/usr/local/</filename>
+ wird standardm&auml;&szlig;ig in
+ <filename class="directory">/usr/local/</filename>
installiert. Wenn die Umgebungsvariable <envar>PATH</envar>
zuerst die Systemverzeichnisse enth&auml;lt, werden die
Systemprogramme anstelle der <acronym>MIT</acronym>-Programme
@@ -2849,7 +2910,7 @@ kadmind5_server_enable="YES"</programlisting>
<para>Diese Zeilen sind notwendig, weil die Anwendungen
von <acronym>MIT</acronym>-Kerberos Bin&auml;rdateien
unterhalb von <filename
- role="directory">/usr/local</filename> installieren.</para>
+ class="directory">/usr/local</filename> installieren.</para>
</sect2>
<sect2>
@@ -2884,7 +2945,7 @@ kadmind5_server_enable="YES"</programlisting>
<para>In Mehrbenutzer-Umgebungen ist
<application>Kerberos</application> unsicherer als in
Einbenutzer-Umgebungen, da die Tickets im f&uuml;r alle
- lesbaren Verzeichnis <filename>/tmp</filename>
+ lesbaren Verzeichnis <filename class="directory">/tmp</filename>
gespeichert werden. Wenn ein Rechner von mehreren
Benutzern verwendet wird, ist es m&ouml;glich, dass
Tickets gestohlen werden.</para>
@@ -3184,15 +3245,14 @@ define(`confSERVER_CERT',`/etc/certs/new.crt')dnl
define(`confSERVER_KEY',`/etc/certs/myca.key')dnl
define(`confTLS_SRV_OPTIONS', `V')dnl</programlisting>
- <para>Im Verzeichnis
- <filename class="directory">/etc/certs</filename>
- befindet sich der Schl&uuml;ssel und das Zertifikat.
- Bauen Sie danach im Verzeichnis
- <filename class="directory">/etc/mail</filename>
- mit dem Kommando <command>make install</command>
- die <filename>.cf</filename>-Datei und starten
- Sie anschlie&szlig;end <application>sendmail</application>
- mit <command>make restart</command> neu.</para>
+ <para>Im Verzeichnis <filename class="directory">/etc/certs</filename>
+ befindet sich der Schl&uuml;ssel und das Zertifikat. Bauen Sie danach
+ im Verzeichnis <filename class="directory">/etc/mail</filename>
+ mit dem Kommando <command>make
+ <maketarget>install</maketarget></command> die
+ <filename>.cf</filename>-Datei und starten Sie anschlie&szlig;end
+ <application>sendmail</application> mit <command>make
+ <maketarget>restart</maketarget></command> neu.</para>
<para>Wenn alles gut ging, erscheinen keine Fehlermeldungen
in der Datei <filename>/var/log/maillog</filename> und
@@ -3270,53 +3330,17 @@ Connection closed by foreign host.</screen>
<title>IPsec Grundlagen</title>
- <para>Dieser Abschnitt zeigt Ihnen, wie Sie IPsec einrichten
- und damit &os;-Systeme und &microsoft.windows; 2000/XP Systeme
- sicher miteinander verbinden. Um IPsec einzurichten,
- sollten Sie einen neuen Kernel erzeugen k&ouml;nnen (siehe
+ <para>Dieser Abschnitt zeigt Ihnen, wie Sie IPsec einrichten. Um IPsec
+ einzurichten, sollten Sie einen neuen Kernel bauen k&ouml;nnen (siehe
<xref linkend="kernelconfig">).</para>
<para>IPsec ist ein Protokoll, das auf dem Internet-Protokoll
(IP) aufbaut. Mit IPsec k&ouml;nnen mehrere Systeme
gesch&uuml;tzt miteinander kommunizieren. Das in
- &os; realisierte IPsec-Protokoll baut auf der
- <ulink url="http://www.kame.net/">KAME-Implementierung</ulink>
+ &os; realisierte IPsec-Protokoll baut auf der <ulink
+ url="http://www.kame.net/">KAME-Implementierung</ulink>
auf und unterst&uuml;tzt sowohl IPv4 als auch IPv6.</para>
- <note>
- <para>&os enth&auml;lt eine von Hardware
- beschleunigte Variante des IPsec-Protokolls. Diese
- Variante wurde von OpenBSD &uuml;bernommen und wird
- <quote>Fast-IPsec</quote> genannt. Das
- &man.crypto.4;-Subsystem arbeitet mit Kryptographie-Hardware
- zusammen, die IPsec beschleunigt. Das Subsystem
- ist neu und bietet noch nicht alle Funktionen, die
- KAME-IPsec bietet. Wenn Sie die Hardware-Beschleunigung
- nutzen wollen, f&uuml;gen Sie folgende Zeile der
- Kernelkonfiguration hinzu:</para>
-
- <indexterm>
- <primary>Kerneloption</primary>
- <secondary>FAST_IPSEC</secondary>
- </indexterm>
-
- <screen>options FAST_IPSEC # new IPsec (cannot define w/ IPSEC)</screen>
-
- <para>Momentan k&ouml;nnen Sie <quote>Fast-IPsec</quote>
- nicht zusammen mit KAME-IPsec benutzen. Weiteres zu
- <quote>Fast-IPsec</quote> erfahren Sie in der
- Hilfeseite &man.fast.ipsec.4;.</para>
- </note>
-
- <note>
- <para>Damit Firewalls den Status von &man.gif.4;-Tunneln
- &uuml;berwachen k&ouml;nnen, m&uuml;ssen Sie die Option
- <option>IPSEC_FILTERGIF</option> in Ihrer
- Kernelkonfiguration aktivieren:</para>
-
- <screen>options IPSEC_FILTERGIF #filter ipsec packets from a tunnel</screen>
- </note>
-
<indexterm>
<primary>IPsec</primary>
<secondary>ESP</secondary>
@@ -3339,7 +3363,7 @@ Connection closed by foreign host.</screen>
<listitem>
<para>Der <emphasis>Authentication Header (AH)</emphasis>
- enth&auml;t eine kryptographische Pr&uuml;summe,
+ enth&auml;t eine kryptographische Pr&uuml;fsumme,
die sicher stellt, dass ein IP-Paket nicht ver&auml;ndert
wurde. Der Authentication-Header folgt nach dem
normalen IP-Header und erlaubt dem Empf&auml;nger
@@ -3380,13 +3404,8 @@ Connection closed by foreign host.</screen>
<secondary>IPSEC</secondary>
</indexterm>
- <indexterm>
- <primary>Kerneloption</primary>
- <secondary>IPSEC_ESP</secondary>
- </indexterm>
-
<screen>options IPSEC #IP security
-options IPSEC_ESP #IP security (crypto; define w/ IPSEC)</screen>
+device crypto</screen>
<indexterm>
<primary>Kerneloption</primary>
@@ -3412,7 +3431,9 @@ options IPSEC_ESP #IP security (crypto; define w/ IPSEC)</screen>
</sect2>
<sect2>
- <title>VPN zwischen zwei Netzen &uuml;ber das Internet</title>
+ <title>Das Szenario: Zwei Netzwerke, ein Heim- und ein
+ Firmennetzwerk. Beide sind mit dem Internet verbunden und
+ verhalten sich dank <acronym>VPN</acronym> wie ein Netzwerk.</title>
<indexterm>
<primary>VPN</primary>
@@ -3431,7 +3452,7 @@ options IPSEC_ESP #IP security (crypto; define w/ IPSEC)</screen>
</listitem>
<listitem>
- <para>Beide Netzwerke sind &uuml;ber einen &os;-Gateway
+ <para>Beide Netzwerke sind &uuml;ber ein &os;-Gateway
mit dem Internet verbunden.</para>
</listitem>
@@ -3443,857 +3464,307 @@ options IPSEC_ESP #IP security (crypto; define w/ IPSEC)</screen>
<listitem>
<para>Die intern verwendeten IP-Adressen k&ouml;nnen
private oder &ouml;ffentliche Adressen sein.
- Der Gateway kann, wenn n&ouml;tig, IP-Adressen mit
- NAT umschreiben.</para>
- </listitem>
-
- <listitem>
- <para>Die IP-Adressen der internen Netzwerke
- <emphasis>d&uuml;rfen nicht &uuml;berlappen</emphasis>.
- Mit NAT lie&szlig;e sich diese Anforderung zwar umgehen, doch
- w&auml;re die Konfiguration und Pflege des resultierenden
- Netzwerks zu aufw&auml;ndig.</para>
+ Sie dürfen sich nicht &uuml;berlappen; zum Beispiel:
+ nicht beide sollten <hostid role="ipaddr">192.168.1.x</hostid>
+ benutzen.</para>
</listitem>
</itemizedlist>
+ </sect2>
- <para>Wenn die zu verbindenden Netzwerke intern dieselben
- IP-Adressen benutzen (beispielsweise
- <hostid role="ipaddr">192.168.1.x</hostid>), m&uuml;ssen
- einem der Netzwerke neue IP-Adressen zugewiesen werden.</para>
-
- <para>Die Netzwerktopologie sieht wie folgt aus:</para>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="security/ipsec-network" align="center">
- </imageobject>
-
- <textobject>
-<literallayout class="monospaced">Netzwerk #1 [ Interne Rechner ] Privates Netz, 192.168.1.2-254
- [ Win9x/NT/2K ]
- [ UNIX ]
- |
- |
- .---[fxp1]---. Private IP, 192.168.1.1
- | FreeBSD |
- `---[fxp0]---' &Ouml;ffentliche IP, A.B.C.D
- |
- |
- -=-=- Internet -=-=-
- |
- |
- .---[fxp0]---. &Ouml;ffentliche IP, W.X.Y.Z
- | FreeBSD |
- `---[fxp1]---' Private IP, 192.168.2.1
- |
- |
-Netzwerk #2 [ Interne Rechner ]
- [ Win9x/NT/2K ] Privates Netz, 192.168.2.2-254
- [ UNIX ]</literallayout>
- </textobject>
- </mediaobject>
-
- <para>Beachten Sie die beiden &ouml;ffentlichen IP-Adressen.
- Im Folgenden werden sie durch Buchstaben (als Platzhalter)
- gekennzeichnet. Setzen Sie hierf&uuml;r Ihre eigenen
- &ouml;ffentlichen IP-Adressen ein. Beide Gateways
- besitzen die interne Adresse
- <hostid role="ipaddr">x.x.x.1</hostid> und beide
- Netzwerke besitzen unterschiedliche private IP-Adressen:
- <hostid role="ipaddr">192.168.1.x</hostid> und
- <hostid role="ipaddr">192.168.2.x</hostid>. Die Default-Route
- aller internen Systeme ist jeweils die Gateway-Maschine
- (<hostid role="ipaddr">x.x.x.1</hostid>).</para>
-
- <para>Aus der Sicht der Systeme sollen jetzt beide
- Netzwerke wie &uuml;ber einen Router, der in diesem
- Fall etwas langsamer ist, verbunden werden.</para>
-
- <para>Auf dem Rechner <hostid role="ipaddr">192.168.1.20</hostid>
- soll also beispielsweise der folgende Befehl funktionieren:</para>
-
- <programlisting>ping 192.168.2.34</programlisting>
-
- <para>&windows;-Systeme sollen die Systeme auf dem anderen
- Netzwerk erkennen und Shares sollen funktionieren. Alles
- soll genauso wie in lokalen Netzwerken funktionieren.</para>
-
- <para>Zus&auml;tzlich soll die Kommunikation zwischen beiden
- Netzwerken noch verschl&uuml;sselt werden.</para>
-
- <para>Das VPN wird in mehreren Schritten aufgebaut:</para>
-
- <orderedlist>
- <listitem>
- <para>Zuerst wird eine virtuelle Verbindung zwischen
- beiden Netzwerken &uuml;ber das Internet eingerichtet.
- Die virtuelle Verbindung k&ouml;nnen Sie mit Werkzeugen
- wie &man.ping.8; pr&uuml;fen.</para>
- </listitem>
-
- <listitem>
- <para>Danach wird eine Sicherheitsrichtlinie
- (<foreignphrase>Security-Policy</foreignphrase>) festgelegt,
- die automatisch den Datenverkehr zwischen beiden
- Netzwerken verschl&uuml;sselt und entschl&uuml;sselt.
- Mit Werkzeugen wie &man.tcpdump.1; k&ouml;nnen Sie
- &uuml;berpr&uuml;fen, dass die Daten tats&auml;chlich
- verschl&uuml;sselt werden.</para>
- </listitem>
+ <sect2>
+ <sect2info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <affiliation>
+ <address><email>trhodes@FreeBSD.org</email></address>
+ </affiliation>
+ <contrib>Geschrieben von </contrib>
+ </author>
+ </authorgroup>
+ </sect2info>
- <listitem>
- <para>Wenn sich &windows;-Systeme im VPN gegenseitig
- erkennen sollen, so sind noch weitere
- Konfigurationsschritte notwendig, die aber nicht
- in diesem Abschnitt beschrieben werden.</para>
- </listitem>
- </orderedlist>
+ <title>Konfiguration von IPsec in &os;</title>
+
+ <para>Als erstes muss <filename
+ role="package">security/ipsec-tools</filename> aus
+ der Ports-Sammlung installiert werden. Dieses Softwarepaket
+ Dritter enth&auml;lt einige Anwendungen, die ihnen bei der
+ Konfiguration von IPsec helfen.</para>
+
+ <para>Als n&auml;chstes m&uuml;ssen zwei &man.gif.4;-Pseudoger&auml;te
+ angelegt werden, um die Pakete zu tunneln und daf&uuml;r zu sorgen,
+ dass beide Netzwerke richtig miteinander kommunizieren k&ouml;nnen.
+ Geben Sie als Benutzer <username>root</username> die folgenden Befehle
+ ein: Austausch der <replaceable>internen</replaceable> und
+ <replaceable>externen</replaceable> Werte durch die realen internen
+ und externen Gateways:</para>
+
+ <screen>&prompt.root; <userinput>ifconfig gif0 create</userinput></screen>
+ <screen>&prompt.root; <userinput>ifconfig gif0 <replaceable>internal1 internal2</replaceable></userinput></screen>
+ <screen>&prompt.root; <userinput>ifconfig gif0 tunnel <replaceable>external1 external2</replaceable></userinput></screen>
+
+ <para>Beispiel: Die &ouml;ffentliche <acronym>IP</acronym>-Adresse
+ des Firmennetzwerkes <acronym>(LAN)</acronym> ist:
+ <hostid role="ipaddr">172.16.5.4</hostid> mit einer internen
+ <acronym>IP</acronym>-Adresse von
+ <hostid role="ipaddr">10.246.38.1</hostid>. Das Heimnetzwerk
+ <acronym>(LAN)</acronym> hat die &ouml;ffentliche
+ <acronym>IP</acronym>-Adresse
+ <hostid role="ipaddr">192.168.1.12</hostid> mit der internen
+ privaten <acronym>IP</acronym>-Adresse
+ <hostid role="ipaddr">10.0.0.5</hostid>.</para>
+
+ <para>Dies mag verwirrend erscheinen, schauen Sie sich deshalb
+ das folgende Beispiel aus dem &man.ifconfig.8;-Befehl an:</para>
+
+ <programlisting>Gateway 1:
+
+gif0: flags=8051 mtu 1280
+tunnel inet 172.16.5.4 --&gt; 192.168.1.12
+inet6 fe80::2e0:81ff:fe02:5881%gif0 prefixlen 64 scopeid 0x6
+inet 10.246.38.1 --&gt; 10.0.0.5 netmask 0xffffff00
+
+Gateway 2:
+
+gif0: flags=8051 mtu 1280
+tunnel inet 192.168.1.12 --&gt; 172.16.5.4
+inet 10.0.0.5 --&gt; 10.246.38.1 netmask 0xffffff00
+inet6 fe80::250:bfff:fe3a:c1f%gif0 prefixlen 64 scopeid 0x4</programlisting>
+
+ <para>Wenn Sie fertig sind, sollten beide privaten
+ <acronym>IP</acronym>s mit dem &man.ping.8; Befehl, wie die folgende
+ Darstellung zeigt, erreichbar sein:</para>
+
+ <programlisting>priv-net# ping 10.0.0.5
+PING 10.0.0.5 (10.0.0.5): 56 data bytes
+64 bytes from 10.0.0.5: icmp_seq=0 ttl=64 time=42.786 ms
+64 bytes from 10.0.0.5: icmp_seq=1 ttl=64 time=19.255 ms
+64 bytes from 10.0.0.5: icmp_seq=2 ttl=64 time=20.440 ms
+64 bytes from 10.0.0.5: icmp_seq=3 ttl=64 time=21.036 ms
+--- 10.0.0.5 ping statistics ---
+4 packets transmitted, 4 packets received, 0% packet loss
+round-trip min/avg/max/stddev = 19.255/25.879/42.786/9.782 ms
+
+corp-net# ping 10.246.38.1
+PING 10.246.38.1 (10.246.38.1): 56 data bytes
+64 bytes from 10.246.38.1: icmp_seq=0 ttl=64 time=28.106 ms
+64 bytes from 10.246.38.1: icmp_seq=1 ttl=64 time=42.917 ms
+64 bytes from 10.246.38.1: icmp_seq=2 ttl=64 time=127.525 ms
+64 bytes from 10.246.38.1: icmp_seq=3 ttl=64 time=119.896 ms
+64 bytes from 10.246.38.1: icmp_seq=4 ttl=64 time=154.524 ms
+--- 10.246.38.1 ping statistics ---
+5 packets transmitted, 5 packets received, 0% packet loss
+round-trip min/avg/max/stddev = 28.106/94.594/154.524/49.814 ms</programlisting>
+
+ <para>Wie erwartet, k&ouml;nnen nun beiden Seiten
+ <acronym>ICMP</acronym>-Pakete von ihren privaten Adressen
+ senden und empfangen. Als n&auml;chstes m&uuml;ssen beide
+ Gateways so konfiguriert werden, dass sie die Pakete des anderen
+ Netzwerkes richtig routen. Mit dem folgenden Befehl
+ erreicht man das Ziel:</para>
+
+ <screen>&prompt.root; <userinput>corp-net# route add <replaceable>10.0.0.0 10.0.0.5 255.255.255.0</replaceable></userinput></screen>
+ <screen>&prompt.root; <userinput>corp-net# route add net <replaceable>10.0.0.0: gateway 10.0.0.5</replaceable></userinput></screen>
+
+ <screen>&prompt.root; <userinput>priv-net# route add <replaceable>10.246.38.0 10.246.38.1 255.255.255.0</replaceable></userinput></screen>
+ <screen>&prompt.root; <userinput>priv-net# route add host <replaceable>10.246.38.0: gateway 10.246.38.1</replaceable></userinput></screen>
+
+ <para>Ab jetzt sollten die Rechner von den Gateways sowie von den
+ Rechnern hinter den Gateways erreichbar sein. Dies wird an dem
+ folgendem Beispiel deutlich:</para>
+
+ <programlisting>corp-net# ping 10.0.0.8
+PING 10.0.0.8 (10.0.0.8): 56 data bytes
+64 bytes from 10.0.0.8: icmp_seq=0 ttl=63 time=92.391 ms
+64 bytes from 10.0.0.8: icmp_seq=1 ttl=63 time=21.870 ms
+64 bytes from 10.0.0.8: icmp_seq=2 ttl=63 time=198.022 ms
+64 bytes from 10.0.0.8: icmp_seq=3 ttl=63 time=22.241 ms
+64 bytes from 10.0.0.8: icmp_seq=4 ttl=63 time=174.705 ms
+--- 10.0.0.8 ping statistics ---
+5 packets transmitted, 5 packets received, 0% packet loss
+round-trip min/avg/max/stddev = 21.870/101.846/198.022/74.001 ms
+
+priv-net# ping 10.246.38.107
+PING 10.246.38.1 (10.246.38.107): 56 data bytes
+64 bytes from 10.246.38.107: icmp_seq=0 ttl=64 time=53.491 ms
+64 bytes from 10.246.38.107: icmp_seq=1 ttl=64 time=23.395 ms
+64 bytes from 10.246.38.107: icmp_seq=2 ttl=64 time=23.865 ms
+64 bytes from 10.246.38.107: icmp_seq=3 ttl=64 time=21.145 ms
+64 bytes from 10.246.38.107: icmp_seq=4 ttl=64 time=36.708 ms
+--- 10.246.38.107 ping statistics ---
+5 packets transmitted, 5 packets received, 0% packet loss
+round-trip min/avg/max/stddev = 21.145/31.721/53.491/12.179 ms</programlisting>
+
+ <para>Das Konfigurieren der Tunnel ist der einfache Teil. Die
+ Konfiguration einer sicheren Verbindung geht sehr viel mehr in
+ die Tiefe. Die folgende Konfiguration benutzt pre-shared
+ (<acronym>PSK</acronym>) <acronym>RSA</acronym>-Schl&uuml;ssel.
+ Abgesehen von den <acronym>IP</acronym>-Adressen, sind beide
+ <filename>/usr/local/etc/racoon/racoon.conf</filename> identisch
+ und sehen &auml;hnlich aus wie:</para>
+
+ <programlisting>path pre_shared_key "/usr/local/etc/racoon/psk.txt"; #location of pre-shared key file
+log debug; #log verbosity setting: set to 'notify' when testing and debugging is complete
+
+padding # options are not to be changed
+{
+ maximum_length 20;
+ randomize off;
+ strict_check off;
+ exclusive_tail off;
+}
+
+timer # timing options. change as needed
+{
+ counter 5;
+ interval 20 sec;
+ persend 1;
+# natt_keepalive 15 sec;
+ phase1 30 sec;
+ phase2 15 sec;
+}
+
+listen # address [port] that racoon will listening on
+{
+ isakmp 172.16.5.4 [500];
+ isakmp_natt 172.16.5.4 [4500];
+}
+
+remote 192.168.1.12 [500]
+{
+ exchange_mode main,aggressive;
+ doi ipsec_doi;
+ situation identity_only;
+ my_identifier address 172.16.5.4;
+ peers_identifier address 192.168.1.12;
+ lifetime time 8 hour;
+ passive off;
+ proposal_check obey;
+# nat_traversal off;
+ generate_policy off;
+
+ proposal {
+ encryption_algorithm blowfish;
+ hash_algorithm md5;
+ authentication_method pre_shared_key;
+ lifetime time 30 sec;
+ dh_group 1;
+ }
+}
+
+sainfo (address 10.246.38.0/24 any address 10.0.0.0/24 any) # address $network/$netmask $type address $network/$netmask $type ( $type being any or esp)
+{ # $network must be the two internal networks you are joining.
+ pfs_group 1;
+ lifetime time 36000 sec;
+ encryption_algorithm blowfish,3des,des;
+ authentication_algorithm hmac_md5,hmac_sha1;
+ compression_algorithm deflate;
+}</programlisting>
+
+ <para>Die Erkl&auml;rung einer jeden verf&uuml;gbaren Option w&uuml;rde
+ den Rahmen dieses Textes sprengen. Es gibt sehr viele
+ relevante Informationen in der
+ <application>racoon</application>-Konfigurationsanleitung.</para>
+
+ <para>Die <acronym>SPD</acronym>-Methoden m&uuml;ssn noch konfiguriert
+ werden so dass, &os; und <application>racoon</application> in der
+ Lage sind den Netzwerkverkehr zwischen den Hosts zu ver-
+ und entschl&uuml;sseln.</para>
+
+ <para>Dies wird durch ein einfaches Shellscript &auml;hnlich wie das
+ folgende, das auf dem Firmennetzwerk-Gateway liegt,
+ ausgef&uuml;hrt. Diese Datei wird w&auml;hrend der
+ Systeminitialisierung ausgef&uuml;hrt und sollte unter
+ <filename>/usr/local/etc/racoon/setkey.conf</filename>
+ abgespeichert werden.</para>
+
+<programlisting>flush;
+spdflush;
+
+# To the home network
+spdadd 10.246.38.0/24 10.0.0.0/24 any -P out ipsec esp/tunnel/172.16.5.4-192.168.1.12/use;
+spdadd 10.0.0.0/24 10.246.38.0/24 any -P in ipsec esp/tunnel/192.168.1.12-172.16.5.4/use;</programlisting>
+
+ <para>Einmal abgespeichert, kann <application>racoon</application>
+ durch das folgende Kommando auf beiden Gateways gestartet
+ werden:</para>
- <sect3>
- <title>Schritt 1: Die virtuelle Verbindung einrichten</title>
-
- <para>Nehmen wir an, sie wollten von der Gateway-Maschine
- im Netzwerk&nbsp;#1 (&ouml;ffentliche IP-Adresse
- <hostid role="ipaddr">A.B.C.D</hostid>, private IP-Adresse
- <hostid role="ipaddr">192.168.1.1</hostid>) das Kommando
- <command>ping 192.168.2.1</command> absetzen.
- <hostid role="ipaddr">192.168.2.1</hostid> ist die private
- IP-Adresse des Systems <hostid role="ipaddr">W.X.Y.Z</hostid>
- im Netzwerk&nbsp;#2. Welche Voraussetzungen m&uuml;ssen
- erf&uuml;llt sein, damit der Befehl funktioniert?</para>
-
- <orderedlist>
- <listitem>
- <para>Die Gateway-Maschine muss das System
- <hostid role="ipaddr">192.168.2.1</hostid> erreichen
- k&ouml;nnen. Das hei&szlig;t, eine Route zu diesem
- System muss existieren.</para>
- </listitem>
-
- <listitem>
- <para>Private IP-Adressen, wie der Bereich
- <hostid role="ipaddr">192.168.x</hostid>, sollten im
- Internet nicht verwendet werden. Jedes Paket zu
- <hostid role="ipaddr">192.168.2.1</hostid> muss daher
- in ein anderes Paket gepackt werden, das von
- <hostid role="ipaddr">A.B.C.D</hostid> kommt und
- zu <hostid role="ipaddr">W.X.Y.Z</hostid> geschickt
- wird. Das erneute Verpacken der Pakete wird als
- <firstterm>Kapselung</firstterm> bezeichnet.</para>
- </listitem>
-
- <listitem>
- <para>Wenn das Paket <hostid role="ipaddr">W.X.Y.Z</hostid>
- erreicht, muss es dort ausgepackt und an
- <hostid role="ipaddr">192.168.2.1</hostid> ausgeliefert
- werden.</para>
- </listitem>
- </orderedlist>
-
- <para>Sie k&ouml;nnen sich diese Prozedur so vorstellen,
- dass ein Tunnel zwischen beiden Netzwerken existiert.
- Die beiden Tunnel-Enden besitzen die IP-Adressen
- <hostid role="ipaddr">A.B.C.D</hostid> und
- <hostid role="ipaddr">W.X.Y.Z</hostid>. Der Tunnel
- muss zudem Verkehr zwischen den privaten IP-Adressen
- erlauben und transportiert so Daten zwischen privaten
- IP-Adressen &uuml;ber das Internet.</para>
-
- <para>Unter &os; wird der Tunnel mit
- <devicename>gif</devicename>-Ger&auml;ten (<foreignphrase>generic
- interface</foreignphrase>) erstellt. Auf jedem Gateway
- muss das <devicename>gif</devicename>-Ger&auml;t mit
- vier IP-Adressen eingerichtet werden: Zwei &ouml;ffentliche
- IP-Adressen und zwei private IP-Adressen.</para>
-
- <para>Die <devicename>gif</devicename>-Ger&auml;te werden vom
- Kernel bereitgestellt und m&uuml;ssen in der
- Kernelkonfigurationsdatei auf beiden Maschinen angegeben
- werden:</para>
+ <screen>&prompt.root; <userinput>/usr/local/sbin/racoon -F -f /usr/local/etc/racoon/racoon.conf -l /var/log/racoon.log</userinput></screen>
+
+ <para>Die Ausgabe sollte so &auml;hnlich aussehen:</para>
+
+ <programlisting>corp-net# /usr/local/sbin/racoon -F -f /usr/local/etc/racoon/racoon.conf
+Foreground mode.
+2006-01-30 01:35:47: INFO: begin Identity Protection mode.
+2006-01-30 01:35:48: INFO: received Vendor ID: KAME/racoon
+2006-01-30 01:35:55: INFO: received Vendor ID: KAME/racoon
+2006-01-30 01:36:04: INFO: ISAKMP-SA established 172.16.5.4[500]-192.168.1.12[500] spi:623b9b3bd2492452:7deab82d54ff704a
+2006-01-30 01:36:05: INFO: initiate new phase 2 negotiation: 172.16.5.4[0]192.168.1.12[0]
+2006-01-30 01:36:09: INFO: IPsec-SA established: ESP/Tunnel 192.168.1.12[0]-&gt;172.16.5.4[0] spi=28496098(0x1b2d0e2)
+2006-01-30 01:36:09: INFO: IPsec-SA established: ESP/Tunnel 172.16.5.4[0]-&gt;192.168.1.12[0] spi=47784998(0x2d92426)
+2006-01-30 01:36:13: INFO: respond new phase 2 negotiation: 172.16.5.4[0]192.168.1.12[0]
+2006-01-30 01:36:18: INFO: IPsec-SA established: ESP/Tunnel 192.168.1.12[0]-&gt;172.16.5.4[0] spi=124397467(0x76a279b)
+2006-01-30 01:36:18: INFO: IPsec-SA established: ESP/Tunnel 172.16.5.4[0]-&gt;192.168.1.12[0] spi=175852902(0xa7b4d66)</programlisting>
+
+ <para>Um sicherzustellen, dass der Tunnel richtig funktioniert,
+ wechseln Sie auf eine andere Konsole und benutzen Sie
+ &man.tcpdump.1; mit dem folgenden Befehl, um sich den
+ Netzwerkverkehr anzusehen. Tauschen Sie <literal>em0</literal>
+ durch die richtige Netzwerkkarte aus.</para>
+
+ <screen>&prompt.root; <userinput>tcpdump -i em0 host <replaceable>172.16.5.4 and dst 192.168.1.12</replaceable></userinput></screen>
+
+ <para>Die Ausgabe der Konsole sollte dem hier &auml;hneln. Wenn
+ nicht, gibt es ein Problem und ein Debuggen der ausgegebenen
+ Daten ist notwendig.</para>
+
+ <programlisting>01:47:32.021683 IP corporatenetwork.com &gt; 192.168.1.12.privatenetwork.com: ESP(spi=0x02acbf9f,seq=0xa)
+01:47:33.022442 IP corporatenetwork.com &gt; 192.168.1.12.privatenetwork.com: ESP(spi=0x02acbf9f,seq=0xb)
+01:47:34.024218 IP corporatenetwork.com &gt; 192.168.1.12.privatenetwork.com: ESP(spi=0x02acbf9f,seq=0xc)</programlisting>
+
+ <para>An diesem Punkt sollten beide Netzwerke verf&uuml;gbar sein und
+ den Anschein haben, dass sie zum selben Netzwerk geh&ouml;ren.
+ Meistens sind beide Netzwerke durch eine Firewall gesch&uuml;tzt.
+ Um den Netzwerkverkehr zwischen den beiden Netzwerken zu erlauben,
+ ist es notwendig Regeln zu erstellen. F&uuml;r die &man.ipfw.8;
+ Firewall f&uuml;gen Sie folgende Zeilen in ihre
+ Firewall-Konfigurationsdatei ein:</para>
+
+ <programlisting>ipfw add 00201 allow log esp from any to any
+ipfw add 00202 allow log ah from any to any
+ipfw add 00203 allow log ipencap from any to any
+ipfw add 00204 allow log udp from any 500 to any</programlisting>
- <programlisting>device gif</programlisting>
-
- <para>Wie gew&ouml;hnlich m&uuml;ssen Sie danach einen
- neuen Kernel erstellen, installieren und das System
- neu starten.</para>
-
- <para>Der Tunnel wird in zwei Schritten aufgebaut. Mit
- &man.ifconfig.8; werden zuerst die &ouml;ffentlichen
- IP-Adressen konfiguriert. Anschlie&szlig;end werden
- die privaten IP-Adressen mit &man.ifconfig.8; eingerichtet.</para>
-
- <para>Auf der Gateway-Maschine im Netzwerk&nbsp;#1 bauen
- Sie den Tunnel mit den folgenden Kommandos auf:</para>
-
- <screen>&prompt.root; <userinput>ifconfig <replaceable>gif0</replaceable> create</userinput>
-&prompt.root; <userinput>ifconfig <replaceable>gif0</replaceable> tunnel <replaceable>A.B.C.D</replaceable> <replaceable>W.X.Y.Z</replaceable></userinput>
-&prompt.root; <userinput>ifconfig <replaceable>gif0</replaceable> inet <replaceable>192.168.1.1</replaceable> <replaceable>192.168.2.1</replaceable> netmask <replaceable>0xffffffff</replaceable></userinput>
- </screen>
-
- <para>Auf dem anderen Gateway benutzen Sie dieselben Kommandos,
- allerdings mit vertauschten IP-Adressen:</para>
-
- <screen>&prompt.root; <userinput>ifconfig <replaceable>gif0</replaceable> create</userinput>
-&prompt.root; <userinput>ifconfig <replaceable>gif0</replaceable> tunnel <replaceable>W.X.Y.Z</replaceable> <replaceable>A.B.C.D</replaceable></userinput>
-&prompt.root; <userinput>ifconfig <replaceable>gif0</replaceable> inet <replaceable>192.168.2.1</replaceable> <replaceable>192.168.1.1</replaceable> netmask <replaceable>0xffffffff</replaceable></userinput>
- </screen>
-
- <para>Die Konfiguration k&ouml;nnen Sie anschlie&szlig;end mit
- dem folgenden Kommando &uuml;berpr&uuml;fen:</para>
-
- <programlisting>ifconfig gif0</programlisting>
-
- <para>Auf dem Gateway in Netzwerk&nbsp;#1 sollten Sie
- beispielsweise die nachstehende Ausgabe erhalten:</para>
-
- <screen>&prompt.root; <userinput>ifconfig gif0</userinput>
-gif0: flags=8051&lt;UP,POINTOPOINT,RUNNING,MULTICAST&gt; mtu 1280
- tunnel inet A.B.C.D --&gt; W.X.Y.Z
- inet 192.168.1.1 --&gt; 192.168.2.1 netmask 0xffffffff
- </screen>
-
- <para>Wie Sie sehen, ist ein Tunnel zwischen den IP-Adressen
- <hostid role="ipaddr">A.B.C.D</hostid> und
- <hostid role="ipaddr">W.X.Y.Z</hostid> aufgebaut worden,
- der Verkehr zwischen den Adressen
- <hostid role="ipaddr">192.168.1.1</hostid> und
- <hostid role="ipaddr">192.168.2.1</hostid> zul&auml;sst.</para>
-
- <para>Gleichzeitig wurde ein Eintrag in der Routing-Tabelle
- erstellt, den Sie sich mit <command>netstat -rn</command>
- ansehen k&ouml;nnen. Auf der Gateway-Maschine in Netzwerk&nbsp;#1
- sieht das so aus:</para>
-
- <screen>&prompt.root; <userinput>netstat -rn</userinput>
-Routing tables
-
-Internet:
-Destination Gateway Flags Refs Use Netif Expire
-...
-192.168.2.1 192.168.1.1 UH 0 0 gif0
-...</screen>
-
- <para>Die Route ist eine Host-Route, wie in der Spalte
- <quote>Flags</quote> angegeben. Das hei&szlig;t
- die beiden Gateways wissen wie sie einander erreichen,
- sie kennen allerdings nicht das Netzwerk auf der
- anderen Seite. Dieses Problem werden wir gleich
- angehen.</para>
-
- <para>Wahrscheinlich ist auf beiden Gateways eine Firewall
- eingerichtet. F&uuml;r den VPN-Verkehr muss die Firewall
- umgegangen werden. Sie k&ouml;nnen generell den Verkehr
- zwischen beiden Netzwerken erlauben oder Regeln erstellen,
- die beide Tunnel-Enden des VPNs voreinander sch&uuml;tzen.</para>
-
- <para>Der Test des VPNs wird erheblich leichter, wenn Sie
- jeden Verkehr zwischen den Tunnel-Enden in der Firewall
- erlauben. Wenn Sie auf der Gateway-Maschine &man.ipfw.8;
- einsetzen, erlaubt die folgende Regel jeden Verkehr
- zwischen den Tunnel-Enden, ohne die anderen Regeln zu
- beeinflussen:</para>
-
- <programlisting>ipfw add 1 allow ip from any to any via gif0</programlisting>
-
- <para>Diese Regel muss offensichtlich auf beiden Gateway-Maschinen
- existieren.</para>
-
- <para>Damit sollten Sie das Kommando <command>ping</command>
- jetzt absetzen k&ouml;nnen. Auf dem System
- <hostid role="ipaddr">192.168.1.1</hostid> sollte der
- nachstehende Befehl Antworten erhalten:</para>
-
- <programlisting>ping 192.168.2.1</programlisting>
-
- <para>Denselben Test k&ouml;nnen Sie auch auf der anderen
- Gateway-Maschine ausf&uuml;hren.</para>
-
- <para>Allerdings k&ouml;nnen Sie noch nicht die anderen
- internen Maschinen auf den Netzwerken erreichen. Die Ursache
- ist das Routing &ndash; die Gateway kennen sich zwar
- gegenseitig, wissen aber noch nichts von den Netzwerken
- hinter dem anderen Gateway.</para>
-
- <para>Um die Netzwerke bekannt zu geben, muss auf jeder
- Gateway-Maschine noch eine statische Route hinzugef&uuml;gt
- werden. Auf der ersten Gateway-Maschine setzen Sie dazu
- das folgende Kommando ab:</para>
-
- <programlisting>route add 192.168.2.0 192.168.2.1 netmask 0xffffff00</programlisting>
-
- <para>Dies entspricht der Anweisung: <quote>Um Rechner
- auf dem Netz <hostid role="ipaddr">192.168.2.0</hostid>
- zu erreichen, schicke die Pakete zum System
- <hostid role="ipaddr">192.168.2.1</hostid></quote>. Auf
- dem anderen Gateway muss das analoge Kommando (mit den
- IP-Adressen <hostid role="ipaddr">192.168.1.x</hostid>)
- abgesetzt werden.</para>
-
- <para>Damit ist jetzt der IP-Verkehr zwischen beiden
- Netzwerken m&ouml;glich.</para>
-
- <para>Zwei Drittel des VPNs zwischen beiden Netzen
- ist nun eingerichtet. Es ist <quote>virtuell</quote> und
- es ist ein <quote>Netzwerk</quote>. Es ist allerdings
- noch nicht <quote>privat</quote>. Dies k&ouml;nnen Sie
- mit &man.ping.8; und &man.tcpdump.1; &uuml;berpr&uuml;fen.
- Setzen Sie auf dem ersten Gateway den folgenden Befehl ab:</para>
-
- <programlisting>tcpdump dst host 192.168.2.1</programlisting>
-
- <para>Starten Sie dann, ebenfalls auf dem ersten Gateway, den
- folgenden Befehl:</para>
-
- <programlisting>ping 192.168.2.1</programlisting>
-
- <para>Sie werden die nachstehende Ausgabe erhalten:</para>
-
- <programlisting>16:10:24.018080 192.168.1.1 &gt; 192.168.2.1: icmp: echo request
-16:10:24.018109 192.168.1.1 &gt; 192.168.2.1: icmp: echo reply
-16:10:25.018814 192.168.1.1 &gt; 192.168.2.1: icmp: echo request
-16:10:25.018847 192.168.1.1 &gt; 192.168.2.1: icmp: echo reply
-16:10:26.028896 192.168.1.1 &gt; 192.168.2.1: icmp: echo request
-16:10:26.029112 192.168.1.1 &gt; 192.168.2.1: icmp: echo reply</programlisting>
-
- <para>Die ICMP-Nachrichten werden unverschl&uuml;sselt
- &uuml;bertragen. Mit der Option <option>-s</option>
- von &man.tcpdump.1; k&ouml;nnen Sie sich weitere Daten
- der Pakete anzeigen lassen.</para>
-
- <para>Die Daten sollen aber automatisch verschl&uuml;sselt
- werden. Wie das geht, wird im n&auml;chsten Abschnitt
- erl&auml;utert.</para>
-
- <itemizedlist>
- <title>Zusammenfassung</title>
- <listitem>
- <para>F&uuml;gen Sie in beiden Kerneln die Zeile
- <quote>device gif</quote> ein und bauen Sie die Kernel
- neu.</para>
- </listitem>
-
- <listitem>
- <para>F&uuml;gen Sie auf dem Gateway in Netzwerk&nbsp;#1
- folgende Zeilen in <filename>/etc/rc.conf</filename>
- ein:</para>
-
- <programlisting>gif_interfaces="gif0"
-gifconfig_gif0="A.B.C.D W.X.Y.Z"
-ifconfig_gif0="inet 192.168.1.1 192.168.2.1 netmask 0xffffffff"
-static_routes="vpn"
-route_vpn="192.168.2.0 192.168.2.1 netmask 0xffffff00"</programlisting>
-
- <para>Setzen Sie dabei die richtigen IP-Adressen f&uuml;r
- die Platzhalter ein.</para>
- </listitem>
-
- <listitem>
- <para>F&uuml;gen Sie auf beiden Gateways die nachstehende
- Regel in das Firewall-Skript (zum Beispiel
- <filename>/etc/rc.firewall</filename>) ein:</para>
-
- <programlisting>ipfw add 1 allow ip from any to any via gif0</programlisting>
- </listitem>
-
- <listitem>
- <para>Nehmen Sie in <filename>/etc/rc.conf</filename> auf dem
- Gateway&nbsp;#2 analoge &Auml;nderungen, die IP-Adressen
- m&uuml;ssen vertauscht werden, vor.</para>
- </listitem>
- </itemizedlist>
- </sect3>
+ <note>
+ <para>Die Regelnummern m&uuml;ssen eventuell, je nach ihrer
+ Hostkonfiguration, angepasst werden.</para>
+ </note>
- <sect3>
- <title>Schritt 2: Die Verbindung mit IPsec sch&uuml;tzen</title>
-
- <para>Um die Verbindung zu sch&uuml;tzen, verwenden wir IPsec.
- IPsec bietet einen Mechanismus, mit dem sich zwei
- Systeme auf einen Schl&uuml;ssel einigen k&ouml;nnen.
- Mit diesem Schl&uuml;ssel wird dann der Datenverkehr zwischen
- beiden Systemen verschl&uuml;sselt.</para>
-
- <para>Es gibt hierbei zwei Sachen die konfiguriert werden
- m&uuml;ssen:</para>
-
- <orderedlist>
- <listitem>
- <para>Die <firstterm>Security-Association</firstterm> bestimmt,
- mit welchen Methoden der Verkehr zwischen beiden Systemen
- verschl&uuml;sselt wird.</para>
- </listitem>
-
- <listitem>
- <para>Die <firstterm>Security-Policy</firstterm> bestimmt,
- was verschl&uuml;sselt wird. Es soll ja nicht der
- gesamte Datenverkehr nach au&szlig;en verschl&uuml;sselt
- werden, sondern nur der Teil des Verkehrs, der zum
- VPN geh&ouml;rt.</para>
- </listitem>
- </orderedlist>
-
- <para>Die Security-Association wie auch die Security-Policy
- werden vom Kernel verwaltet und k&ouml;nnen von Anwendungen
- ver&auml;ndert werden. Dazu m&uuml;ssen allerdings zuerst
- IPsec und das Encapsulated-Security-Payload (ESP) Protokoll
- in die Kernelkonfigurationsdatei eingetragen werden:</para>
-
- <indexterm>
- <primary>Kerneloption</primary>
- <secondary>IPSEC</secondary>
- </indexterm>
-
- <programlisting>options IPSEC
-options IPSEC_ESP</programlisting>
-
- <para>Wie &uuml;blich, m&uuml;ssen Sie danach den Kernel
- &uuml;bersetzen, installieren und das System neu starten.
- Die Kernel m&uuml;ssen auf beiden Gateway-Maschinen
- neu erstellt werden.</para>
-
- <indexterm>
- <primary>IKE</primary>
- </indexterm>
-
- <para>Sie k&ouml;nnen die Security-Association auf zwei
- Arten konfigurieren: Manuell, dann m&uuml;ssen Sie
- den Verschl&uuml;sselungsalgorithmus, die Schl&uuml;ssel
- und alles Weitere selbst konfigurieren. Oder automatisch,
- mithilfe eines D&aelig;mons, der das Internet-Key-Exchange
- Protokoll (IKE) beherrscht.</para>
-
- <para>Im Allgemeinen wird die letzte Variante bevorzugt.
- Sie ist auch wesentlich leichter einzurichten.</para>
-
- <indexterm>
- <primary>IPsec</primary>
- <secondary>Security-Policy</secondary>
- </indexterm>
-
- <indexterm>
- <primary><command>setkey</command></primary>
- </indexterm>
-
- <para>Mit &man.setkey.8; k&ouml;nnen Sie Security-Policies
- editieren und anzeigen. Die Beziehung von
- <command>setkey</command> und der Tabelle der
- Security-Policies im Kernel entspricht
- dem Verh&auml;ltnis von &man.route.8; und der Routing-Tabelle.
- Die momentanen Security-Associations lassen sich ebenfalls
- mit <command>setkey</command> anzeigen;
- <command>setkey</command> verh&auml;lt sich in diesem Fall
- wie <command>netstat -r</command>, um die Analogie
- fortzuf&uuml;hren.</para>
-
- <para>Sie haben die Wahl zwischen mehreren Programmen,
- wenn Sie Security-Associations mit &os; verwalten
- wollen. Im Folgenden wird <application>racoon</application>
- beschrieben, das Sie &uuml;ber den Port <filename
- role="package">security/ipsec-tools</filename>
- installieren k&ouml;nnen.</para>
-
- <indexterm>
- <primary>racoon</primary>
- </indexterm>
-
- <para>Auf beiden Gateway-Maschinen muss
- <application>racoon</application> laufen.
- Konfiguriert wird jeweils die IP-Adresse der Gegenstelle
- sowie der geheime Schl&uuml;ssel. Dabei muss auf beiden
- Gateway-Maschinen der gleiche Schl&uuml;ssel verwendet
- werden.</para>
-
- <para>Die beiden raccon-Daemonen pr&uuml;fen mithilfe des
- geheimen Schl&uuml;ssels gegenseitig ihre Identit&auml;t.
- Anschlie&szlig;end generieren Sie einen neuen geheimen
- Schl&uuml;ssel, mit dem dann der Datenverkehr im VPN
- verschl&uuml;sselt wird. Dieser Schl&uuml;ssel wird
- von Zeit zu Zeit ge&auml;ndert. Ein Angreifer,
- der einen der Schl&uuml;ssel geknackt hat &ndash; das ist
- schon ziemlich unwahrscheinlich &ndash; kann somit nicht
- viel mit diesem Schl&uuml;ssel anfangen, da schon wieder ein
- anderer Schl&uuml;ssel verwendet wird.</para>
-
- <para>Die Konfiguration von racoon befindet sich in
- <filename>${PREFIX}/etc/racoon</filename>. In der
- dort befindlichen Konfigurationsdatei sollten Sie nicht
- allzu viele &Auml;nderungen vornehmen m&uuml;ssen.
- Sie m&uuml;ssen allerdings den so genannten
- <quote>Pre-Shared-Key</quote> (den vorher ausgetauschten
- Schl&uuml;ssel) &auml;ndern.</para>
-
- <para>In der Voreinstellung befindet sich dieser Schl&uuml;ssel
- in der Datei <filename>${PREFIX}/etc/racoon/psk.txt</filename>.
- Dieser Schl&uuml;ssel wird <emphasis>nicht</emphasis> zum
- Verschl&uuml;sseln des Datenverkehrs verwendet. Er dient
- lediglich der Authentifizierung der beiden racoon-Daemonen.</para>
-
- <para>F&uuml;r jeden entfernten Kommunikationspartner enth&auml;lt
- <filename>psk.txt</filename> eine Zeile. Damit besteht die
- Datei <filename>psk.txt</filename> in unserem Beispiel
- aus einer Zeile (wir verwenden einen entfernten
- Kommunikationspartner).</para>
-
- <para>Auf dem Gateway&nbsp;#1 sieht diese Zeile wie
- folgt aus:</para>
-
- <programlisting>W.X.Y.Z geheim</programlisting>
-
- <para>Die Zeile besteht aus der &ouml;ffentlichen IP-Adresse
- der Gegenstelle, Leerzeichen und dem geheimen Schl&uuml;ssel.
- Sie sollten nat&uuml;rlich nicht <literal>geheim</literal>
- verwenden. F&uuml;r den geheimen Schl&uuml;ssel gelten
- dieselben Regeln wie f&uuml;r Passw&ouml;rter.</para>
-
- <para>Auf dem anderen Gateway sieht die Zeile
- folgenderma&szlig;en aus:</para>
-
- <programlisting>A.B.C.D geheim</programlisting>
-
- <para>Die Zeile besteht aus der &ouml;ffentlichen IP-Adresse
- der Gegenstelle, Leerzeichen und dem geheimen Schl&uuml;ssel.
- Die Zugriffsrechte von <filename>psk.txt</filename> m&uuml;ssen
- auf <literal>0600</literal> (Lese- und Schreibzugriff nur
- f&uuml;r <username>root</username>) gesetzt sein, bevor
- racoon gestartet wird.</para>
-
- <para>Auf beiden Gateway-Maschinen muss racoon laufen. Sie
- brauchen ebenfalls Firewall-Regeln, die IKE-Verkehr
- erlauben. IKE verwendet UDP, um Nachrichten zum
- ISAKMP-Port (Internet Security Association Key Management Protocol)
- zu schicken. Die Regeln sollten fr&uuml;h in der
- Regelkette auftauchen:</para>
-
- <programlisting>ipfw add 1 allow udp from A.B.C.D to W.X.Y.Z isakmp
-ipfw add 1 allow udp from W.X.Y.Z to A.B.C.D isakmp</programlisting>
-
- <para>Wenn racoon l&auml;uft, k&ouml;nnen Sie versuchen,
- mit <command>ping</command> von einem Gateway-Rechner aus
- den anderen Gateway zu erreichen. Die Verbindung wird zwar immer
- noch nicht verschl&uuml;sselt, aber racoon wird die
- Security-Association zwischen beiden Systemen einrichten.
- Dies kann eine Weile dauern, und Sie bemerken vielleicht
- eine kleine Verz&ouml;gerung, bevor die Antworten von
- der Gegenstelle kommen.</para>
-
- <para>Die Security-Association k&ouml;nnen Sie sich auf einem
- der beiden Gateway-Systeme mit &man.setkey.8; ansehen:</para>
-
- <programlisting>setkey -D</programlisting>
-
- <para>Damit ist die erste H&auml;lfte der Arbeit getan.
- Jetzt muss noch die Security-Policy konfiguriert werden.</para>
-
- <para>Damit wir eine sinnvolle Security-Policy erstellen
- k&ouml;nnen, fassen wir das bisher geleistete zusammen.
- Die Diskussion gilt f&uuml;r beide Enden des Tunnels.</para>
-
- <para>Jedes gesendete IP-Paket enth&auml;lt im Header
- Informationen &uuml;ber das Paket selbst. Im Header
- befinden sich die IP-Adressen des Senders und des
- Empf&auml;ngers. Wie wir bereits wissen, d&uuml;rfen
- private IP-Adressen, wie
- <hostid role="ipaddr">192.168.x.y</hostid> nicht auf
- das Internet gelangen. Pakete zu privaten IP-Adressen
- m&uuml;ssen zuerst in einem anderen Paket gekapselt
- werden. In diesem Paket werden die privaten IP-Adressen
- durch &ouml;ffentliche IP-Adressen ersetzt.</para>
-
- <para>Das ausgehende Paket hat beispielsweise wie folgt
- ausgesehen:</para>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="security/ipsec-out-pkt" align="center">
- </imageobject>
-
- <textobject>
- <literallayout class="monospaced">
- .----------------------.
- | Src: 192.168.1.1 |
- | Dst: 192.168.2.1 |
- | &lt;other header info&gt; |
- +----------------------+
- | &lt;packet data&gt; |
- `----------------------'</literallayout>
- </textobject>
- </mediaobject>
-
- <para>Es wird in ein anderes Paket umgepackt (gekapselt)
- und sieht danach wie folgt aus:</para>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="security/ipsec-encap-pkt" align="center">
- </imageobject>
-
- <textobject>
- <literallayout class="monospaced">
- .--------------------------.
- | Src: A.B.C.D |
- | Dst: W.X.Y.Z |
- | &lt;other header info&gt; |
- +--------------------------+
- | .----------------------. |
- | | Src: 192.168.1.1 | |
- | | Dst: 192.168.2.1 | |
- | | &lt;other header info&gt; | |
- | +----------------------+ |
- | | &lt;packet data&gt; | |
- | `----------------------' |
- `--------------------------'</literallayout>
- </textobject>
- </mediaobject>
-
- <para>Die Kapselung wird vom <devicename>gif</devicename>-Ger&auml;t
- vorgenommen. Das neue Paket enth&auml;lt im Header eine
- &ouml;ffentliche IP-Adresse und der Datenteil des Pakets
- enth&auml;lt das urspr&uuml;ngliche Paket.</para>
-
- <para>Nat&uuml;rlich soll der gesamte Datenverkehr des VPNs
- verschl&uuml;sselt werden. Dies kann man wie folgt
- ausdr&uuml;cken:</para>
-
- <para>
- <quote>Wenn ein Paket von <hostid role="ipaddr">A.B.C.D</hostid>
- zu <hostid role="ipaddr">W.X.Y.Z</hostid> geschickt wird,
- verschl&uuml;ssele es entsprechend der
- Security-Association.</quote>
- </para>
-
- <para>
- <quote>Wenn ein Paket von <hostid role="ipaddr">W.X.Y.Z</hostid>
- kommt und f&uuml;r <hostid role="ipaddr">A.B.C.D</hostid>
- bestimmt ist, entschl&uuml;ssele es entsprechend der
- Security-Association.</quote>
- </para>
-
- <para>Das ist fast richtig. Mit diesen Regeln w&uuml;rde
- der ganze Verkehr von und zu <hostid role="ipaddr">W.X.Y.Z</hostid>
- verschl&uuml;sselt, auch wenn er nicht zum VPN geh&ouml;rt.
- Die richtige Formulierung lautet:</para>
-
- <para>
- <quote>Wenn ein Paket, das ein gekapseltes Paket enth&auml;lt,
- von <hostid role="ipaddr">A.B.C.D</hostid> zu
- <hostid role="ipaddr">W.X.Y.Z</hostid> geschickt wird,
- verschl&uuml;ssele es entsprechend der
- Security-Association.</quote>
- </para>
-
- <para>
- <quote>Wenn ein Paket, das ein gekapseltes Paket enth&auml;lt,
- von <hostid role="ipaddr">W.X.Y.Z</hostid> kommt und f&uuml;r
- <hostid role="ipaddr">A.B.C.D</hostid> bestimmt ist,
- entschl&uuml;ssele es entsprechend der
- Security-Association.</quote>
- </para>
-
- <para>Dies ist eine zwar subtile aber eine
- notwendige &Auml;nderung.</para>
-
- <para>Die Security-Policy k&ouml;nnen Sie mit &man.setkey.8;
- erstellen. &man.setkey.8; besitzt eine Konfigurations-Syntax
- zur Erstellung der Security-Policy. Sie k&ouml;nnen die
- Konfiguration &uuml;ber die Standardeingabe oder in einer
- Datei, die Sie mit der Option <option>-f</option> angeben,
- erstellen.</para>
-
- <para>Gateway&nbsp;#1 (&ouml;ffentliche IP-Adresse:
- <hostid role="ipaddr">A.B.C.D</hostid>) muss
- folgenderma&szlig;en konfiguriert werden, um alle
- ausgehenden Pakete an <hostid role="ipaddr">W.X.Y.Z</hostid>
- zu verschl&uuml;sseln:</para>
-
- <programlisting>spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P out ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require;</programlisting>
-
- <para>Speichern Sie dieses Kommando in einer Datei, beispielsweise
- <filename>/etc/ipsec.conf</filename> ab. Rufen Sie
- anschlie&szlig;end das nachstehende Kommando auf:</para>
-
- <screen>&prompt.root; <userinput>setkey -f /etc/ipsec.conf</userinput></screen>
-
- <para><option>spdadd</option> weist &man.setkey.8; an,
- der Security-Policy-Datenbank eine Regel hinzuzuf&uuml;gen.
- Der Rest der Zeile gibt an, auf welche Pakete diese
- Regel zutrifft. <hostid role="ipaddr">A.B.C.D/32</hostid>
- und <hostid role="ipaddr">W.X.Y.Z/32</hostid> sind
- die IP-Adressen und Netzmasken, die Systeme angeben,
- auf die diese Regel zutrifft. Im Beispiel gilt die
- Regel f&uuml;r die beiden Gateway-Systeme.
- <option>ipencap</option> zeigt an, dass die Regel nur
- f&uuml;r Pakete gilt, die gekapselte Pakete enthalten.
- <option>-P out</option> legt fest, dass die Regel nur
- f&uuml;r ausgehende Pakete gilt.</para>
-
- <para><option>ipsec</option> gibt an, dass die Pakete
- gesch&uuml;tzt werden. Das benutzte Protokoll
- wird durch <option>esp</option> angegeben.
- <option>tunnel</option> kapselt das Paket in ein
- IPsec-Paket. Die nochmalige Angabe von
- <hostid role="ipaddr">A.B.C.D</hostid> und
- <hostid role="ipaddr">W.X.Y.Z</hostid> gibt die
- Security-Association an. Das abschlie&szlig;ende
- <option>require</option> erzwingt die Verschl&uuml;sselung
- der Pakete.</para>
-
- <para>Diese Regel gilt nur f&uuml;r ausgehende Pakete.
- Sie brauchen eine analoge Regel f&uuml;r eingehende
- Pakete:</para>
-
- <programlisting>spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P in ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require;</programlisting>
-
- <para>In dieser Regel wird <option>in</option> anstelle
- von <option>out</option> benutzt und die IP-Adressen
- sind notwendigerweise umgekehrt angegeben.</para>
-
- <para>Das zweite Gateway-System mit der IP-Adresse
- <hostid role="ipaddr">W.X.Y.Z</hostid> braucht
- entsprechende Regeln:</para>
-
- <programlisting>spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P out ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require;
-spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P in ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require;</programlisting>
-
- <para>Schlie&szlig;lich brauchen Sie auf beiden Gateway-Systemen
- noch Firewall-Regeln, die ESP- und IPENCAP-Pakete in beide
- Richtungen erlauben:</para>
-
- <programlisting>ipfw add 1 allow esp from A.B.C.D to W.X.Y.Z
-ipfw add 1 allow esp from W.X.Y.Z to A.B.C.D
-ipfw add 1 allow ipencap from A.B.C.D to W.X.Y.Z
-ipfw add 1 allow ipencap from W.X.Y.Z to A.B.C.D</programlisting>
-
- <para>Da die Regeln symmetrisch sind, k&ouml;nnen sie auf
- beiden Systemen verwendet werden.</para>
-
- <para>Damit sehen ausgehende Pakete wie folgt aus:</para>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="security/ipsec-crypt-pkt" align="center">
- </imageobject>
-
- <textobject>
- <literallayout class="monospaced">
- .------------------------------. --------------------------.
- | Src: A.B.C.D | |
- | Dst: W.X.Y.Z | |
- | &lt; weitere Header &gt; | | Encrypted
- +------------------------------+ | packet.
- | .--------------------------. | -------------. | contents
- | | Src: A.B.C.D | | | | are
- | | Dst: W.X.Y.Z | | | | completely
- | | &lt; weitere Header &gt; | | | |- secure
- | +--------------------------+ | | Encap'd | from third
- | | .----------------------. | | -. | packet | party
- | | | Src: 192.168.1.1 | | | | Original |- with real | snooping
- | | | Dst: 192.168.2.1 | | | | packet, | IP addr |
- | | | &lt; weitere Header &gt; | | | |- private | |
- | | +----------------------+ | | | IP addr | |
- | | | &lt;Paket-Daten&gt; | | | | | |
- | | `----------------------' | | -' | |
- | `--------------------------' | -------------' |
- `------------------------------' --------------------------'
- </literallayout>
- </textobject>
- </mediaobject>
-
- <para>Am anderen Ende des VPNs werden die Pakete zuerst
- entsprechend der von racoon ausgehandelten Security-Association
- entschl&uuml;sselt. Das <devicename>gif</devicename>-Interface
- entfernt dann die zweite Schicht, damit das urspr&uuml;ngliche
- Paket zum Vorschein kommt. Dieses kann dann in das interne
- Netzwerk transportiert werden.</para>
-
- <para>Dass die Pakete wirklich verschl&uuml;sselt werden,
- k&ouml;nnen Sie wieder mit &man.ping.8; &uuml;berpr&uuml;fen.
- Melden Sie sich auf dem Gateway
- <hostid role="ipaddr">A.B.C.D</hostid> an und rufen
- das folgende Kommando auf:</para>
-
- <programlisting>tcpdump dst host 192.168.2.1</programlisting>
-
- <para>Auf demselben Rechner setzen Sie dann noch das
- nachstehende Kommando ab:</para>
-
- <programlisting>ping 192.168.2.1</programlisting>
-
- <para>Dieses Mal wird die Ausgabe wie folgt aussehen:</para>
-
- <programlisting>XXX tcpdump output</programlisting>
-
- <para>Jetzt zeigt &man.tcpdump.1; ESP-Pakete an. Auch wenn
- Sie diese mit der Option <option>-s</option> untersuchen,
- werden Sie wegen der Verschl&uuml;sselung nur
- unverst&auml;ndliche Zeichen sehen.</para>
-
- <para>Herzlichen Gl&uuml;ckwunsch. Sie haben soeben ein
- VPN zwischen zwei entfernten Netzen eingerichtet.</para>
-
- <itemizedlist>
- <title>Zusammenfassung</title>
- <listitem>
- <para>IPsec muss in beiden Kernelkonfigurationsdateien
- enthalten sein:</para>
-
- <programlisting>options IPSEC
-options IPSEC_ESP</programlisting>
- </listitem>
-
- <listitem>
- <para>Installieren Sie den Port <filename
- role="package">security/ipsec-tools</filename>. Tragen Sie
- auf beiden Rechnern in
- <filename>${PREFIX}/etc/racoon/psk.txt</filename> jeweils
- die IP-Adresse des entfernten Gateways und den geheimen
- Schl&uuml;ssel ein. Setzen Sie die Zugriffsrechte der
- Datei auf <literal>0600</literal>.</para>
- </listitem>
-
- <listitem>
- <para>F&uuml;gen Sie auf jedem Rechner die folgenden
- Zeilen zu <filename>/etc/rc.conf</filename> hinzu:</para>
-
- <programlisting>ipsec_enable="YES"
-ipsec_file="/etc/ipsec.conf"</programlisting>
- </listitem>
-
- <listitem>
- <para>Erstellen Sie auf jedem Rechner die Datei
- <filename>/etc/ipsec.conf</filename> mit den n&ouml;tigen
- <option>spadd</option>-Zeilen. Auf dem Gateway&nbsp;#1
- hat die Datei folgenden Inhalt:</para>
-
- <programlisting>spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P out ipsec
- esp/tunnel/A.B.C.D-W.X.Y.Z/require;
-spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P in ipsec
- esp/tunnel/W.X.Y.Z-A.B.C.D/require;</programlisting>
-
- <para>Auf dem Gateway&nbsp;#2 sieht die Datei so aus:</para>
-
- <programlisting>spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P out ipsec
- esp/tunnel/W.X.Y.Z-A.B.C.D/require;
-spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P in ipsec
- esp/tunnel/A.B.C.D-W.X.Y.Z/require;</programlisting>
- </listitem>
-
- <listitem>
- <para>F&uuml;gen Sie auf beiden Rechnern Firewall-Regeln
- hinzu, die IKE-, ESP- und IPENCAP-Verkehr erlauben:</para>
-
- <programlisting>ipfw add 1 allow udp from A.B.C.D to W.X.Y.Z isakmp
-ipfw add 1 allow udp from W.X.Y.Z to A.B.C.D isakmp
-ipfw add 1 allow esp from A.B.C.D to W.X.Y.Z
-ipfw add 1 allow esp from W.X.Y.Z to A.B.C.D
-ipfw add 1 allow ipencap from A.B.C.D to W.X.Y.Z
-ipfw add 1 allow ipencap from W.X.Y.Z to A.B.C.D</programlisting>
- </listitem>
- </itemizedlist>
-
- <para>Das VPN wurde in zwei Schritten eingerichtet. Maschinen
- auf beiden Netzen k&ouml;nnen miteinander kommunizieren
- und der Datenverkehr zwischen beiden Netzen wird automatisch
- verschl&uuml;sselt.</para>
- </sect3>
+ <para>F&uuml;r Benutzer der &man.pf.4;- oder &man.ipf.8;-Firewall
+ sollte folgendes funktionieren:</para>
+
+ <programlisting>pass in quick proto esp from any to any
+pass in quick proto ah from any to any
+pass in quick proto ipencap from any to any
+pass in quick proto udp from any port = 500 to any port = 500
+pass in quick on gif0 from any to any
+pass out quick proto esp from any to any
+pass out quick proto ah from any to any
+pass out quick proto ipencap from any to any
+pass out quick proto udp from any port = 500 to any port = 500
+pass out quick on gif0 from any to any</programlisting>
+
+ <para>Zum Ende, um dem Computer den Start vom
+ <acronym>VPN</acronym> w&auml;hrend der Systeminitialisierung
+ zu erlauben, f&uuml;gen Sie folgende Zeilen in ihre
+ <filename>/etc/rc.conf</filename>: ein</para>
+
+ <programlisting>ipsec_enable="YES"
+ipsec_program="/usr/local/sbin/setkey"
+ipsec_file="/usr/local/etc/racoon/setkey.conf" # allows setting up spd policies on boot
+racoon_enable="yes"</programlisting>
</sect2>
</sect1>
@@ -4458,7 +3929,7 @@ COPYRIGHT 100% |*****************************| 4735
Konfigurationsdateien des
<application>OpenSSH</application>-D&aelig;mons und des Clients
finden sich in dem Verzeichnis
- <filename>/etc/ssh</filename>.</para>
+ <filename class="directory">/etc/ssh</filename>.</para>
<para>Die Client-Konfiguration befindet sich in
<filename>ssh_config</filename>, die des Servers befindet sich in
@@ -4639,7 +4110,7 @@ Identity added: /home/user/.ssh/id_dsa (/home/user/.ssh/id_dsa)
<term><option>user@foo.example.com</option></term>
<listitem>
- <para>Gibt den entfernten SSH server an.</para>
+ <para>Gibt den entfernten SSH-Server an.</para>
</listitem>
</varlistentry>
</variablelist>
@@ -4884,10 +4355,11 @@ drwxrwx---+ 2 robert robert 512 Dec 22 10:20 directory2
drwxrwx---+ 2 robert robert 512 Dec 27 11:57 directory3
drwxr-xr-x 2 robert robert 512 Nov 10 11:54 public_html</programlisting>
- <para>Die Verzeichnisse <filename>directory1</filename>,
- <filename>directory2</filename> und <filename>directory3</filename>
+ <para>Die Verzeichnisse <filename class="directory">directory1</filename>,
+ <filename class="directory">directory2</filename> und
+ <filename class="directory">directory3</filename>
sind durch Zugriffskontrolllisten gesch&uuml;tzt, das Verzeichnis
- <filename>public_html</filename> nicht.</para>
+ <filename class="directory">public_html</filename> nicht.</para>
<sect2>
<title>Zugriffskontrolllisten benutzen</title>
@@ -4961,7 +4433,7 @@ drwxr-xr-x 2 robert robert 512 Nov 10 11:54 public_html</programlisting>
enthaltene Programm <application>Portaudit</application> wurde
gezielt daf&uuml;r entwickelt.</para>
- <para>Der Port <filename role="port">security/portaudit</filename>
+ <para>Der Port <filename role="package">ports-mgmt/portaudit</filename>
fragt dazu eine Datenbank, die vom &os; Security Team sowie
den Ports-Entwicklern aktualisiert und gewartet wird, auf
bekannte Sicherheitsprobleme ab.</para>
@@ -4982,7 +4454,7 @@ drwxr-xr-x 2 robert robert 512 Nov 10 11:54 public_html</programlisting>
ist keine weitere Konfiguration n&ouml;tig.</para>
<para>Nach der Installation kann ein Administrator die unter
- <filename role="directory">/var/db/portaudit</filename> lokal
+ <filename class="directory">/var/db/portaudit</filename> lokal
gespeicherte Datenbank aktualisieren und sich danach durch
folgenden Befehl &uuml;ber m&ouml;gliche Sicherheitsl&uuml;cken
der von ihm installierten Softwarepakete informieren:</para>
@@ -5252,7 +4724,7 @@ VII. References<co id="co-ref"></programlisting>
zu kontrollieren, welche Befehle ein Anwender eingibt.</para>
<para>Diese F&auml;higkeiten haben sowohl Vor- als auch Nachteile.
- Positiv ist, dass man ein Einbruchsversuch bis an den Anfang
+ Positiv ist, dass man einen Einbruchsversuch bis an den Anfang
zur&uuml;ckverfolgen kann. Von Nachteil ist allerdings,
dass durch diesen Prozess Unmengen an Protokolldateien erzeugt
werden, die auch dementsprechenden Plattenplatz ben&ouml;tigen.
diff --git a/de_DE.ISO8859-1/books/handbook/virtualization/chapter.sgml b/de_DE.ISO8859-1/books/handbook/virtualization/chapter.sgml
index 789d2934cc..3d69a1a0c1 100644
--- a/de_DE.ISO8859-1/books/handbook/virtualization/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/virtualization/chapter.sgml
@@ -3,8 +3,8 @@
The FreeBSD German Documentation Project
$FreeBSD$
- $FreeBSDde: de-docproj/books/handbook/virtualization/chapter.sgml,v 1.11 2009/11/17 21:57:58 bcr Exp $
- basiert auf: 1.22
+ $FreeBSDde: de-docproj/books/handbook/virtualization/chapter.sgml,v 1.12 2010/02/06 14:08:58 fboerner Exp $
+ basiert auf: 1.23
-->
<chapter id="virtualization">
@@ -1078,10 +1078,10 @@ xenbr1 8000.feffffffffff no vif0.1
<title>&virtualbox; installieren</title>
<para><application>&virtualbox;</application> steht als &os;-Port in
- <filename role="package">emulators/virtualbox</filename> bereit und
+ <filename role="package">emulators/virtualbox-ose</filename> bereit und
kann &uuml;ber den folgenden Befehl installiert werden:</para>
- <screen>&prompt.root; <userinput>cd /usr/ports/emulators/virtualbox</userinput>
+ <screen>&prompt.root; <userinput>cd /usr/ports/emulators/virtualbox-ose</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
<para>Eine n&uuml;tzliche Option im Konfigurationsdialog ist die
@@ -1109,10 +1109,18 @@ xenbr1 8000.feffffffffff no vif0.1
<programlisting>vboxdrv_load="YES"</programlisting>
- <para><application>&virtualbox;</application> ben&ouml;tigt auch das
+ <para>&Auml;ltere Versionen als 3.1.2 von
+ <application>&virtualbox;</application> ben&ouml;tigen auch das
eingeh&auml;ngte <filename
- class="directory">proc</filename>-Dateisystem:</para>
-
+ class="directory">proc</filename>-Dateisystem. Dies wird in
+ aktuellen Versionen nicht mehr ben&ouml;tigt, da dort die
+ Funktionen von der &man.sysctl.3; Bibliothek bereitgestellt
+ werden.</para>
+
+ <para>Wenn Sie eine &auml;ltere Version aus den Ports benutzen, befolgen
+ Sie die unten stehenden Anweisungen und stellen Sie sicher, dass
+ <filename class="directory">proc</filename> eingehangen ist.</para>
+
<screen>&prompt.root; <userinput>mount -t procfs proc /proc</userinput></screen>
<para>Um auch diese Einstellung nach einem Neustart zu erhalten, wird die
diff --git a/de_DE.ISO8859-1/books/porters-handbook/book.sgml b/de_DE.ISO8859-1/books/porters-handbook/book.sgml
index 3dcea7150b..d0ae8a4cb0 100644
--- a/de_DE.ISO8859-1/books/porters-handbook/book.sgml
+++ b/de_DE.ISO8859-1/books/porters-handbook/book.sgml
@@ -3,8 +3,8 @@
The FreeBSD German Documentation Project
$FreeBSD$
- $FreeBSDde: de-docproj/books/porters-handbook/book.sgml,v 1.164 2009/11/26 17:27:25 jkois Exp $
- basiert auf: 1.1015
+ $FreeBSDde: de-docproj/books/porters-handbook/book.sgml,v 1.165 2010/01/24 17:02:20 fboerner Exp $
+ basiert auf: 1.1016
-->
<!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
@@ -13747,6 +13747,12 @@ Reference: &lt;http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00
</row>
<row>
+ <entry>702103</entry>
+ <entry>06.&nbsp;Juni&nbsp;2009</entry>
+ <entry>7.2-STABLE nach dem Einflie&szlig;en von PmcTools.</entry>
+ </row>
+
+ <row>
<entry>800000</entry>
<entry>11.&nbsp;Oktober&nbsp;2007</entry>
<entry>8.0-CURRENT. Nach der Trennung in "wide und
diff --git a/de_DE.ISO8859-1/share/sgml/mailing-lists.ent b/de_DE.ISO8859-1/share/sgml/mailing-lists.ent
index 3dd022940f..fc05aeb3a8 100644
--- a/de_DE.ISO8859-1/share/sgml/mailing-lists.ent
+++ b/de_DE.ISO8859-1/share/sgml/mailing-lists.ent
@@ -1,9 +1,9 @@
<!--
Namen der FreeBSD Mailinglisten und verwandter Software
- $FreeBSDde: de-docproj/share/sgml/mailing-lists.ent,v 1.36 2009/05/05 19:09:21 bcr Exp $
+ $FreeBSDde: de-docproj/share/sgml/mailing-lists.ent,v 1.37 2010/02/05 16:19:40 bcr Exp $
$FreeBSD$
- basiert auf: 1.68
+ basiert auf: 1.69
-->
<!ENTITY a.mailman.listinfo "http://lists.FreeBSD.org/mailman/listinfo">
@@ -535,6 +535,12 @@
messages for only the 7-stable src tree</ulink>">
<!ENTITY a.svn-src-stable-7.name "<ulink
url='&a.svn-src-stable-7.url;'>svn-src-stable-7</ulink>">
+
+<!ENTITY a.svn-src-stable-8.url "&a.mailman.listinfo;/svn-src-stable-8">
+<!ENTITY a.svn-src-stable-8 "<ulink url='&a.svn-src-stable-8.url;'>SVN commit
+ messages for only the 8-stable src tree</ulink>">
+<!ENTITY a.svn-src-stable-8.name "<ulink url='&a.svn-src-stable-8.url;'>svn-src
+ stable-8</ulink>">
<!ENTITY a.svn-src-stable-other.url "&a.mailman.listinfo;/svn-src-stable-other">
<!ENTITY a.svn-src-stable-other "<ulink url='&a.svn-src-stable-other.url;'>SVN