aboutsummaryrefslogtreecommitdiff
path: root/de_DE.ISO8859-1
diff options
context:
space:
mode:
authorBenedict Reuschling <bcr@FreeBSD.org>2010-05-16 19:37:37 +0000
committerBenedict Reuschling <bcr@FreeBSD.org>2010-05-16 19:37:37 +0000
commit708beaa6f8789259db940e4447c3cfa16dea8eab (patch)
tree4c65ab29e75d8f603eff7133a603ba337ca2372c /de_DE.ISO8859-1
parentf7c1827650cec24af845fe6f34f113a7572c40b5 (diff)
downloaddoc-708beaa6f8789259db940e4447c3cfa16dea8eab.tar.gz
doc-708beaa6f8789259db940e4447c3cfa16dea8eab.zip
MFde: Update the German documentation set.
We are very grateful for the contributions from Benjamin Lukas and Fabian Ruch. Benjamin has provided the outstanding translation of the handbook chapter about MAC. Fabian put in an enormous amount of time and work to update the Porters handbook to the latest version. de_DE.ISO8859-1/books/faq/book.sgml 1.1119 -> 1.1120 de_DE.ISO8859-1/books/handbook/desktop/chapter.sgml 1.91 -> 1.95 de_DE.ISO8859-1/books/handbook/eresources/chapter.sgml 1.200 -> 1.201 de_DE.ISO8859-1/books/handbook/mac/chapter.sgml new translation [1] de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml 1.476 -> 1.479 de_DE.ISO8859-1/books/porters-handbook/book.sgml 1.1016 -> 1.1058 [2] de_DE.ISO8859-1/share/sgml/mailing-lists.ent 1.69 -> 1.70 [1] was contributed by: Benjamin Lukas [2] was contributed by: Fabian Ruch Obtained from: The FreeBSD German Documentation Project
Notes
Notes: svn path=/head/; revision=35760
Diffstat (limited to 'de_DE.ISO8859-1')
-rw-r--r--de_DE.ISO8859-1/books/faq/book.sgml89
-rw-r--r--de_DE.ISO8859-1/books/handbook/desktop/chapter.sgml18
-rw-r--r--de_DE.ISO8859-1/books/handbook/eresources/chapter.sgml9
-rw-r--r--de_DE.ISO8859-1/books/handbook/mac/chapter.sgml2193
-rw-r--r--de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml23
-rw-r--r--de_DE.ISO8859-1/books/porters-handbook/book.sgml681
-rw-r--r--de_DE.ISO8859-1/share/sgml/mailing-lists.ent10
7 files changed, 2823 insertions, 200 deletions
diff --git a/de_DE.ISO8859-1/books/faq/book.sgml b/de_DE.ISO8859-1/books/faq/book.sgml
index fbced24971..f849991c09 100644
--- a/de_DE.ISO8859-1/books/faq/book.sgml
+++ b/de_DE.ISO8859-1/books/faq/book.sgml
@@ -3,9 +3,9 @@
The FreeBSD German Documentation Project
$FreeBSD$
-$FreeBSDde: de-docproj/books/faq/book.sgml,v 1.751 2010/01/20 12:56:44 bcr Exp $
+$FreeBSDde: de-docproj/books/faq/book.sgml,v 1.752 2010/05/13 11:46:48 fboerner Exp $
- basiert auf: 1.1119
+ basiert auf: 1.1120
-->
@@ -18,11 +18,12 @@ $FreeBSDde: de-docproj/books/faq/book.sgml,v 1.751 2010/01/20 12:56:44 bcr Exp $
<book id="faq" lang="de">
<bookinfo>
<title>H&auml;ufig gestellte Fragen zu &os;
- 6.<replaceable>X</replaceable> und
- 7.<replaceable>X</replaceable></title>
+ 6.<replaceable>X</replaceable>, 7.<replaceable>X</replaceable> und
+ 8.<replaceable>X</replaceable></title>
<subtitle>Frequently Asked Questions zu &os;
- 6.<replaceable>X</replaceable> und 7.<replaceable>X</replaceable></subtitle>
+ 6.<replaceable>X</replaceable>, 7.<replaceable>X</replaceable> und
+ 8.<replaceable>X</replaceable></subtitle>
<authorgroup>
<corpauthor>The &os; German Documentation
@@ -35,7 +36,7 @@ $FreeBSDde: de-docproj/books/faq/book.sgml,v 1.751 2010/01/20 12:56:44 bcr Exp $
</collab>
</authorgroup>
- <pubdate>$FreeBSDde: de-docproj/books/faq/book.sgml,v 1.751 2010/01/20 12:56:44 bcr Exp $</pubdate>
+ <pubdate>$FreeBSDde: de-docproj/books/faq/book.sgml,v 1.752 2010/05/13 11:46:48 fboerner Exp $</pubdate>
<copyright>
<year>1995</year>
@@ -129,8 +130,8 @@ $FreeBSDde: de-docproj/books/faq/book.sgml,v 1.751 2010/01/20 12:56:44 bcr Exp $
<abstract>
<para>Dies ist die FAQ f&uuml;r die &os;-Versionen
- 6.<replaceable>X</replaceable> und
- 7.<replaceable>X</replaceable>. Alle Eintr&auml;ge sollten f&uuml;r
+ 6.<replaceable>X</replaceable> 7.<replaceable>X</replaceable> und
+ 8.<replaceable>X</replaceable>. Alle Eintr&auml;ge sollten f&uuml;r
&os; ab Version 6.<replaceable>X</replaceable> relevant sein,
andernfalls wird darauf explizit hingewiesen. Falls Sie daran
interessiert sein sollten, an diesem Projekt mitzuarbeiten,
@@ -150,8 +151,8 @@ $FreeBSDde: de-docproj/books/faq/book.sgml,v 1.751 2010/01/20 12:56:44 bcr Exp $
<title>Einleitung</title>
<para>Willkommen zur &os;
- 6.<replaceable>X</replaceable>-7.<replaceable>X</replaceable>
- FAQ!</para>
+ 6.<replaceable>X</replaceable>-7.<replaceable>X</replaceable>- und
+ 8.<replaceable>X</replaceable> FAQ!</para>
<para>Wie auch bei den Usenet FAQs &uuml;blich, wird mit diesem
Dokument beabsichtigt, die am h&auml;ufigsten gestellten Fragen
@@ -392,32 +393,32 @@ $FreeBSDde: de-docproj/books/faq/book.sgml,v 1.751 2010/01/20 12:56:44 bcr Exp $
<answer>
<para>Momentan gibt es zwei Entwicklungszweige,
die f&uuml;r die Erstellung von Releases verwendet werden.
- Die 6.<replaceable>X</replaceable>-RELEASEs werden auf dem
- <emphasis>6-STABLE</emphasis>-Zweig erstellt, die
- 7.<replaceable>X</replaceable>-RELEASEs auf dem
- <emphasis>7-STABLE</emphasis>-Zweig.</para>
+ Die 7.<replaceable>X</replaceable>-RELEASEs werden auf dem
+ <emphasis>7-STABLE</emphasis>-Zweig erstellt, die
+ 8.<replaceable>X</replaceable>-RELEASEs auf dem
+ <emphasis>8-STABLE</emphasis>-Zweig.</para>
- <para>Bis zur Ver&ouml;ffentlichung von &os;&nbsp;7.0 galt
- die 6.<replaceable>X</replaceable>-Serie als
+ <para>Bis zur Ver&ouml;ffentlichung von &os;&nbsp;8.0 galt
+ die 7.<replaceable>X</replaceable>-Serie als
<emphasis>-STABLE</emphasis>. Seither
- gibt es f&uuml;r den Zweig 6.<replaceable>X</replaceable> nur mehr
+ gibt es f&uuml;r den Zweig 7.<replaceable>X</replaceable> nur mehr
eine <quote>erweiterte Unterst&uuml;tzung</quote> in der Form
von Korrekturen von gr&ouml;&szlig;eren Problemen, wie
neu entdeckten Sicherheitsheitsl&uuml;cken. Aus dem Zweig
- <emphasis>6-STABLE</emphasis> werden zwar noch
+ <emphasis>7-STABLE</emphasis> werden zwar noch
RELEASEs erzeugt, er gilt aber als <quote>ausgereift</quote>.
Aktive Weiterentwicklungen konzentrieren sich daher auf den
- Zweig <emphasis>7-STABLE</emphasis>.</para>
+ Zweig <emphasis>8-STABLE</emphasis>.</para>
<para>Version <ulink
url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/">&rel.current;</ulink>
ist das aktuelle Release des
- <emphasis>7-STABLE</emphasis>-Zweigs und ist im
+ <emphasis>8-STABLE</emphasis>-Zweigs und ist im
Januar 2009 <!--&rel.current.date;--> erschienen.
Version <ulink
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel2.current;-RELEASE/">&rel2.current;</ulink>
ist das aktuelle Release aus dem
- <emphasis>6-STABLE</emphasis>-Zweig und ist im
+ <emphasis>7-STABLE</emphasis>-Zweig und ist im
November 2008 <!--&rel2.current.date;--> erschienen.</para>
<para>Kurz gesagt, <emphasis>-STABLE</emphasis> ist
@@ -587,7 +588,7 @@ $FreeBSDde: de-docproj/books/faq/book.sgml,v 1.751 2010/01/20 12:56:44 bcr Exp $
<!--&rel.current.date;-->
erschienen.</para>
- <para>Aus dem 8-CURRENT-Zweig entsteht die n&auml;chste
+ <para>Aus dem 9-CURRENT-Zweig entsteht die n&auml;chste
&os;-Generation. Weitere Informationen &uuml;ber diesen
Zweig finden Sie unter <link
linkend="current">Was ist &os;-CURRENT?</link>.</para>
@@ -666,7 +667,7 @@ $FreeBSDde: de-docproj/books/faq/book.sgml,v 1.751 2010/01/20 12:56:44 bcr Exp $
<itemizedlist>
<listitem>
- <para>Das aktuelle 7-STABLE-Release, &rel.current;-RELEASE,
+ <para>Das aktuelle 8-STABLE-Release, &rel.current;-RELEASE,
finden Sie im Verzeichnis <ulink
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/">&rel.current;-RELEASE</ulink>.</para>
</listitem>
@@ -682,7 +683,7 @@ $FreeBSDde: de-docproj/books/faq/book.sgml,v 1.751 2010/01/20 12:56:44 bcr Exp $
</listitem>
<listitem>
- <para>Das aktuelle Release von 6-STABLE,
+ <para>Das aktuelle Release von 7-STABLE,
&rel2.current;-RELEASE finden Sie im Verzeichnis <ulink
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel2.current;-RELEASE/">&rel2.current;-RELEASE</ulink>.</para>
</listitem>
@@ -4935,12 +4936,24 @@ calcru: runtime went backwards from 408 usec to 204 usec for pid 0 (swapper)</sc
</varlistentry>
<varlistentry>
- <term>f&uuml;r 8-CURRENT</term>
+ <term>f&uuml;r 8.<replaceable>X</replaceable>-RELEASE/8-STABLE</term>
<listitem>
<para><ulink
- url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-8-current/">
- ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-8-current</ulink></para>
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-8-stable/">
+ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-8-stable</ulink>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>f&uuml;r 9-CURRENT</term>
+
+ <listitem>
+ <para><ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-9-current/">
+ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-9-current</ulink>
+
+ </para>
</listitem>
</varlistentry>
</variablelist>
@@ -4986,8 +4999,8 @@ calcru: runtime went backwards from 408 usec to 204 usec for pid 0 (swapper)</sc
<qandaentry>
<question id="ports-4x">
<para>Warum kann ich manche Ports auf meiner
- 6.<replaceable>X</replaceable> oder
- 7.<replaceable>X</replaceable>-STABLE-Maschine nicht erstellen?</para>
+ 6.<replaceable>X</replaceable>, 7.<replaceable>X</replaceable> oder
+ 8.<replaceable>X</replaceable>-STABLE-Maschine nicht erstellen?</para>
</question>
<answer>
@@ -7328,7 +7341,7 @@ options SYSVMSG # enable for messaging
<para>Ausf&uuml;hrliche Antwort: Bei &os; gibt es zwei
Quellen f&uuml;r Releases. Die Major Releases wie
- 6.0-RELEASE und 7.0-RELEASE werden aus dem aktuellen Stand
+ 7.0-RELEASE und 8.0-RELEASE werden aus dem aktuellen Stand
des Hauptzweiges der Entwicklung (besser und k&uuml;rzer
als <link linkend="current">-CURRENT</link> bekannt)
erzeugt. Minor Releases wie 6.3-RELEASE oder 5.2-RELEASE
@@ -12038,19 +12051,19 @@ hint.sio.7.irq="12"</programlisting>
<itemizedlist>
<listitem>
- <para><literal>RELENG_6</literal> bzw.
+ <para><literal>RELENG_7</literal> bzw.
<emphasis>6-STABLE</emphasis></para>
</listitem>
<listitem>
- <para><literal>RELENG_7</literal> bzw.
+ <para><literal>RELENG_8</literal> bzw.
<emphasis>7-STABLE</emphasis></para>
</listitem>
<listitem>
<para><literal>HEAD</literal> bzw.
<emphasis>-CURRENT</emphasis> oder
- <emphasis>8-CURRENT</emphasis></para>
+ <emphasis>9-CURRENT</emphasis></para>
</listitem>
</itemizedlist>
@@ -12062,11 +12075,11 @@ hint.sio.7.irq="12"</programlisting>
einfach als <emphasis>-CURRENT</emphasis> beziehen.</para>
<para>Derzeit steht <emphasis>-CURRENT</emphasis> f&uuml;r den
- 8.<replaceable>X</replaceable>-Entwicklungsstrom. Der
- <literal>6-STABLE</literal>-Zweig (<symbol>RELENG_6</symbol>)
- wurde von <emphasis>-CURRENT</emphasis> im November 2005 und der
- <literal>7-STABLE</literal>-Zweig (<symbol>RELENG_7</symbol>) im
- Februar 2008 von <emphasis>-CURRENT</emphasis> abgespalten.</para>
+ 9.<replaceable>X</replaceable>-Entwicklungsstrom. Der
+ <literal>7-STABLE</literal>-Zweig (<symbol>RELENG_7</symbol>)
+ wurde von <emphasis>-CURRENT</emphasis> im Februar 2008 und der
+ <literal>8-STABLE</literal>-Zweig (<symbol>RELENG_7</symbol>) im
+ November 2009 von <emphasis>-CURRENT</emphasis> abgespalten.</para>
</answer>
</qandaentry>
diff --git a/de_DE.ISO8859-1/books/handbook/desktop/chapter.sgml b/de_DE.ISO8859-1/books/handbook/desktop/chapter.sgml
index 899c15f5c0..12ef826664 100644
--- a/de_DE.ISO8859-1/books/handbook/desktop/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/desktop/chapter.sgml
@@ -3,8 +3,8 @@
The FreeBSD German Documentation Project
$FreeBSD$
- $FreeBSDde: de-docproj/books/handbook/desktop/chapter.sgml,v 1.77 2009/08/22 18:49:13 bcr Exp $
- basiert auf: 1.91
+ $FreeBSDde: de-docproj/books/handbook/desktop/chapter.sgml,v 1.81 2010/05/13 11:01:07 fboerner Exp $
+ basiert auf: 1.95
-->
<chapter id="desktop">
@@ -489,7 +489,7 @@
<entry><application>OpenOffice.org</application></entry>
<entry>hoch</entry>
<entry>enorm</entry>
- <entry><application>&jdk; 1.4</application>,
+ <entry><application>&jdk;</application>,
<application>Mozilla</application></entry>
</row>
</tbody>
@@ -667,7 +667,7 @@
<note>
<para>Nach dem ersten Start werden Ihnen einige Fragen gestellt.
Au&szlig;erdem wird in Ihrem Heimatverzeichnis der neue
- Unterordner <filename>.openoffice.org2</filename>
+ Unterordner <filename>.openoffice.org</filename>
angelegt.</para>
</note>
@@ -677,7 +677,7 @@
viel Plattenplatz und Zeit ben&ouml;tigen, um die Quellen zu
&uuml;bersetzen.</para>
- <screen>&prompt.root; <userinput>cd /usr/ports/editors/openoffice-2</userinput>
+ <screen>&prompt.root; <userinput>cd /usr/ports/editors/openoffice-3</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
<note>
@@ -775,10 +775,10 @@
wurde. Da Linux-Programme unter FreeBSD laufen, steht Ihnen das
Programm auch hier zur Verf&uuml;gung.</para>
- <para>Um <application>&acrobat.reader; 7</application> &uuml;ber
+ <para>Um <application>&acrobat.reader; 8</application> &uuml;ber
die Ports-Sammlung zu installieren, geben Sie Folgendes ein:</para>
- <screen>&prompt.root; <userinput>cd /usr/ports/print/acroread7</userinput>
+ <screen>&prompt.root; <userinput>cd /usr/ports/print/acroread8</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
<para>Aufgrund der Lizenzbedinungen ist eine Paketversion leider
@@ -1145,13 +1145,13 @@
<row>
<entry><application>OpenOffice.org</application></entry>
<entry><literal>openoffice</literal></entry>
- <entry><filename role="package">editors/openoffice-1.1</filename></entry>
+ <entry><filename role="package">editors/openoffice.org-3</filename></entry>
</row>
<row>
<entry><application>&acrobat.reader;</application></entry>
<entry><literal>acroread</literal></entry>
- <entry><filename role="package">print/acroread7</filename></entry>
+ <entry><filename role="package">print/acroread8</filename></entry>
</row>
<row>
diff --git a/de_DE.ISO8859-1/books/handbook/eresources/chapter.sgml b/de_DE.ISO8859-1/books/handbook/eresources/chapter.sgml
index d4bc2de6e7..bdaf89038b 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.88 2010/02/05 16:22:06 bcr Exp $
- basiert auf: 1.200
+ $FreeBSDde: de-docproj/books/handbook/eresources/chapter.sgml,v 1.89 2010/05/14 15:50:38 fboerner Exp $
+ basiert auf: 1.201
-->
<appendix id="eresources">
@@ -546,6 +546,11 @@
<entry>Portierung von FreeBSD auf &ultrasparc;-T1-basierte
Systeme</entry>
</row>
+
+ <row>
+ <entry>&a.sysinstall.name;</entry>
+ <entry>&man.sysinstall.8; Entwicklung</entry>
+ </row>
<row>
<entry>&a.threads.name;</entry>
diff --git a/de_DE.ISO8859-1/books/handbook/mac/chapter.sgml b/de_DE.ISO8859-1/books/handbook/mac/chapter.sgml
index 73e1815a9c..71d73ad6a6 100644
--- a/de_DE.ISO8859-1/books/handbook/mac/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/mac/chapter.sgml
@@ -3,20 +3,2195 @@
The FreeBSD German Documentation Project
$FreeBSD$
- $FreeBSDde: de-docproj/books/handbook/mac/chapter.sgml,v 1.6 2009/05/12 11:04:48 jkois Exp $
- basiert auf:
+ $FreeBSDde: de-docproj/books/handbook/mac/chapter.sgml,v 1.7 2010/05/16 18:31:25 bcr Exp $
+ basiert auf: 1.75
-->
<chapter id="mac">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Written by </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Benjamin</firstname>
+ <surname>Lukas</surname>
+ <contrib>&Uuml;bersetzt von </contrib>
+ </author>
+ </authorgroup>
+ </chapterinfo>
- <title>Mandatory Access Control (noch nicht &uuml;bersetzt)</title>
+ <title>Verbindliche Zugriffskontrolle</title>
- <para>Dieses Kapitel ist noch nicht &uuml;bersetzt.
- Lesen Sie bitte <ulink
- url="&url.books.handbook.en;/mac.html">
- das Original in englischer Sprache</ulink>. Wenn Sie helfen
- wollen, dieses Kapitel zu &uuml;bersetzen, senden Sie bitte
- eine E-Mail an die Mailingliste &a.de.translators;.</para>
+ <sect1 id="mac-synopsis">
+ <title>&Uuml;bersicht</title>
+ <indexterm><primary>MAC</primary></indexterm>
+ <indexterm>
+ <primary>Mandatory Access Control</primary>
+ <see>MAC</see>
+ </indexterm>
+
+ <para> In &os;&nbsp;5.X wurden neue Sicherheits-Erweiterungen
+ verf&uuml;gbar, die aus dem TrustedBSD-Projekt &uuml;bernommen wurden
+ und auf dem Entwurf &posix;.1e basieren. Die beiden
+ bedeutendsten neuen Sicherheits-Mechanismen sind Berechtigungslisten
+ (Access Control Lists, <acronym>ACL</acronym>) und die verbindliche
+ Zugriffskontrolle (Mandatory Access Control, <acronym>MAC</acronym>).
+ Durch die MAC k&ouml;nnen Module geladen werden, die neue
+ Sicherheitsrichtlinien bereitstellen. Mit Hilfe einiger Module kann
+ beispielsweise ein eng umgrenzter Bereich des Betriebssystems gesichert
+ werden, indem die Sicherheitsfunktionen spezieller Dienste
+ unterst&uuml;tzt bzw. verst&auml;rkt werden. Andere Module wiederum
+ betreffen in ihrer Funktion das gesamte System - alle vorhandenen
+ Subjekte und Objekte. Das "Verbindliche" in der Namensgebung
+ erw&auml;chst aus dem Fakt, dass die Kontrolle allein Administratoren
+ und dem System obliegt und nicht dem Ermessen der Nutzer, wie es mit
+ Hilfe der benutzerbestimmbaren Zugriffskontrolle (Discrectionary Access
+ Control / <acronym>DAC</acronym>), dem Zugriffstandard f&uuml;r Dateien,
+ gar der System V <acronym>IPC</acronym> in &os;, normalerweise umgesetzt
+ wird.</para>
+
+ <para>Dieses Kapitel wird sich auf die Grundstruktur der Verbindlichen
+ Zugriffskontrolle und eine Auswahl der Module, die verschiedenste
+ Sicherheitsfunktionen zur Verf&uuml;gung stellen, konzentrieren.</para>
+
+ <para>Beim Durcharbeiten dieses Kapitels erfahren Sie:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Welche <acronym>MAC</acronym> Module f&uuml;r
+ Sicherheitsrichtlinien derzeit in &os; eingebettet sind und wie die
+ entsprechenden Mechanismen funktionieren.</para>
+ </listitem>
+
+ <listitem>
+ <para>Was die einzelnen <acronym>MAC</acronym> Module an Funktionen
+ realisieren und auch, was der Unterschied zwischen einer Richtlinie,
+ die <emphasis>mit</emphasis> Labels arbeitet, und einer, die
+ <emphasis>ohne</emphasis> Labels arbeitet, ist.</para>
+ </listitem>
+
+ <listitem>
+ <para>Wie Sie die <acronym>MAC</acronym> in ein System einbetten und
+ effizient einrichten.</para>
+ </listitem>
+
+ <listitem>
+ <para>Wie die verschiedenen Richtlinienmodule einer MAC konfiguriert
+ werden.</para>
+ </listitem>
+
+ <listitem>
+ <para>Wie mit einer <acronym>MAC</acronym> und den gezeigten Beispielen
+ eine sicherere Umgebung erstellt werden kann.
+ </listitem>
+
+ <listitem>
+ <para>Wie die Konfiguration einer <acronym>MAC</acronym> auf korrekte
+ Einrichtung getestet wird.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Vor dem Lesen dieses Kapitels sollten Sie bereits:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Grundz&uuml;ge von &unix; und &os; verstanden haben.
+ (<xref linkend="basics">).</para>
+ </listitem>
+ <listitem>
+ <para>Mit den Grundz&uuml;gen der Kernelkonfiguration und -kompilierung
+ vertraut sein (<xref linkend="kernelconfig">).</para>
+ </listitem>
+
+ <listitem>
+ <para>Einige Vorkenntnisse &uuml;ber Sicherheitskonzepte im Allgemeinen
+ und deren Umsetzung in &os; im Besonderen mitbringen (<xref
+ linkend="security">).</para>
+ </listitem>
+ </itemizedlist>
+
+ <warning>
+ <para>Der unsachgem&auml;&szlig;e Gebrauch der in diesem Kapitel
+ enthaltenen Informationen kann den Verlust des Systemzugriffs,
+ &Auml;rger mit Nutzern oder die Unf&auml;higkeit, grundlegende
+ Funktionen des X-Windows-Systems zu nutzen, verursachen. Wichtiger
+ noch ist, dass man sich nicht allein auf die <acronym>MAC</acronym>
+ verlassen sollte, um ein System zu sichern. Die <acronym>MAC</acronym>
+ verbessert und erg&auml;nzt lediglich die schon existierenden
+ Sicherheits-Richtlinien - ohne eine gr&uuml;ndliche und fundierte
+ Sicherheitspraxis und regelm&auml;&szlig;ige Sicherheitspr&uuml;fungen
+ wird Ihr System nie vollst&auml;ndig sicher sein.</para>
+
+ <para>Au&szlig;erdem sollte angemerkt werden, dass die Beispiele
+ in diesem Kapitel auch genau dasselbe sein sollen, n&auml;mlich
+ Beispiele. Es wird nicht empfohlen, diese bestimmten Beispiele
+ auf einem Arbeitssystem umzusetzen. Das Einarbeiten der
+ verschiedenen Sicherheitsmodule erfordert eine Menge Denkarbeit
+ und viele Tests. Jemand, der nicht versteht, wie diese Module
+ funktionieren, kann sich schnell darin wiederfinden, dass er
+ (oder sie) das ganze System durchforsten und viele Dateien und
+ Verzeichnisse neu konfigurieren mu&szlig;.</para>
+ </warning>
+
+ <sect2>
+ <title>Was in diesem Kapitel nicht behandelt wird</title>
+
+ <para>Dieses Kapitel behandelt einen gro&szlig;en Teil
+ sicherheitsrelevanter Themen, bezogen auf die Verbindliche
+ Zugriffskontrolle (<acronym>MAC</acronym>). Die gegenw&auml;rtige
+ Entwicklung neuer <acronym>MAC</acronym> Module ist nicht
+ abgedeckt. Einige weitere Module, die im MAC Framework enthalten sind,
+ haben besondere Charakteristika, die zum Testen und Entwickeln neuer
+ Module gedacht sind. Dies sind unter anderem &man.mac.test.4;,
+ &man.mac.stub.4; und &man.mac.none.4;. F&uuml;r weitere Informationen
+ zu diesen Modulen und den entsprechend angebotenen Funktionen lesen Sie
+ bitte die Manpages.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="mac-inline-glossary">
+ <title>Schl&uuml;sselbegriffe</title>
+
+ <para>Bevor Sie weiterlesen, m&uuml;ssen noch einige Schl&uuml;sselbegriffe
+ gekl&auml;rt werden. Dadurch soll jegliche auftretende Verwirrung von
+ vornherein beseitigt und die pl&ouml;tzliche Einf&uuml;hrung neuer
+ Begriffe und Informationen vermieden werden.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><emphasis>Verbund</emphasis>: Ein Verbund ist ist ein Satz von
+ Programmen und Daten, die speziell und zusammen abgeschottet wurden,
+ um Nutzern Zugriff auf diese ausgewiesenen Systembereiche zu
+ gew&auml;hren. Man kann sagen, ein solcher Verbund ist eine
+ Gruppierung, &auml;hnlich einer Arbeitsgruppe, einer Abteilung, einem
+ Projekt oder einem Thema. Durch die Nutzung von Verb&uuml;nden
+ (<emphasis>compartments</emphasis>) kann man Sicherheitsrichtlinien
+ erstellen, die alles notwendige Wissen und alle Werkzeuge
+ zusammenfassen.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>Hochwassermarkierung</emphasis>: Eine solche Richtlinie
+ erlaubt die Erh&ouml;hung der Sicherheitsstufe in Abh&auml;ngigkeit
+ der Klassifikation der gesuchten bzw. bereitzustellenden Information.
+ Normalerweise wird nach Abschluss des Prozesses die
+ urspr&uuml;ngliche Sicherheitsstufe wieder hergestellt. Derzeit
+ enth&auml;lt die <acronym>MAC</acronym> Grundstruktur keine
+ M&ouml;glichkeit, eine solche Richtlinie umzusetzen, der
+ Vollst&auml;ndigkeit halber ist die Definition hier jedoch
+ aufgef&uuml;hrt.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>Integrit&auml;t</emphasis>: Das Schl&uuml;sselkonzept
+ zur Klassifizierung der Vertraulichkeit von Daten nennt man
+ Integrit&auml;t. Je weiter die Integrit&auml;t erh&ouml;ht wird, umso
+ mehr kann man den entsprechenden Daten vertrauen.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>Label</emphasis>: Ein Label ist ein Sicherheitsmerkmal,
+ welches mit Dateien, Verzeichnissen oder anderen Elementen im System
+ verbunden wird. Man sollte es wie einen Vertraulichkeitsstempel
+ auffassen, der Dateien angeh&ouml;rt wie beispielsweise die
+ Zugriffszeit, das Erstellungsdatum oder auch der Name; sobald Dateien
+ derart gekennzeichnet werden, bezeichnen diese Label die
+ sicherheitsrelevanten Eigenschaften. Zugriff ist nur noch dann
+ m&ouml;glich, wenn das zugreifende Subjekt eine korrespondierende
+ Kennzeichnung tr&auml;gt. Die Bedeutung und Verarbeitung der
+ Label-Werte ist von der Einrichtung der Richtlinie abh&auml;ngig:
+ W&auml;hrend einige Richtlinien das Label zum Kennzeichnen der
+ Vertraulichkeit oder Geheimhaltungsstufe eines Objekts nutzen,
+ k&ouml;nnen andere Richtlinien an derselben Stelle Zugriffsregeln
+ festschreiben.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>Level</emphasis>: Eine erh&ouml;hte oder verminderte
+ Einstellung eines Sicherheitsmerkmals. Wenn das Level erh&ouml;ht
+ wird, wird auch die ensprechende Sicherheitsstufe angehoben.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>Niedrigwassermarkierung</emphasis>: Eine solche
+ Richtlinie erlaubt das Herabstufen des Sicherheitslevels, um weniger
+ sensible Daten verf&uuml;gbar zu machen. In die meisten F&auml;llen
+ wird das urspr&uuml;ngliche Sicherheitslevel des Nutzers
+ wiederhergestellt, sobald der Vorgang abgeschlossen ist. Das einzige
+ Modul in &os;, welches von dieser Richtlinie Gebrauch macht, ist
+ &man.mac.lomac.4;.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>Multilabel</emphasis>: Die Eigenschaft
+ <option>multilabel</option> ist eine Dateisystemoption, die entweder
+ im Einzelbenutzermodus mit Hilfe des Werkzeugs &man.tunefs.8;,
+ w&auml;hrend des Bootvorgangs in der Datei &man.fstab.5; oder aber
+ beim Erstellen einen neues Dateisystems aktiviert werden kann. Diese
+ Option erlaubt einem Administrator, verschiedenen Objekten
+ unterschiedliche Labels zuzuordnen - kann jedoch nur zusammen mit
+ Modulen angewendet werden, die auch tats&auml;chlich mit Labels
+ arbeiten.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>Objekt</emphasis>: Ein Objekt oder auch Systemobjekt
+ ist theoretisch eine Einheit, durch welche Information flie&szlig;t,
+ und zwar unter der Lenkung eines <emphasis>Subjektes</emphasis>.
+ Praktisch schliesst diese Definition Verzeichnisse, Dateien, Felder,
+ Bildschirme, Tastaturen, Speicher, Bandlaufwerke, Drucker und
+ jegliche anderen Datenspeicher- oder -verarbeitungsger&auml;te ein.
+ Im Prinzip ist ein Objekt ein Datenkontainer oder eine
+ Systemressource - Zugriff auf ein <emphasis>Objekt</emphasis>
+ bedeutet, auf Daten zuzugreifen.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>Richtlinie</emphasis>: Eine Sammlung von Regeln, die
+ definiert, wie Zielvorgaben umgesetzt werden, nennt man Richtlinie.
+ Eine <emphasis>Richtlinie</emphasis> dokumentiert normalerweise, wie
+ mit bestimmten Elementen umgegangen wird. Dieses Kapitel fa&szlig;t
+ den Begriff in diesem Kontext als
+ <emphasis>Sicherheitsrichtlinie</emphasis> auf; als eine Sammlung von
+ Regeln, die den Flu&szlig; von Daten und Informationen kontrolliert
+ und die gleichzeitig definiert, wer auf diese Daten und Informationen
+ zugreifen darf.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>Anf&auml;lligkeit</emphasis>: Dieser Begriff wird
+ normalerweise verwendet, wenn man &uuml;ber <acronym>MLS</acronym>
+ (Multi Level Security) spricht. Das Anf&auml;lligkeits-Level
+ beschreibt, wie wichtig oder geheim die Daten sein sollen. Um so
+ h&ouml;her das Anf&auml;lligkeits-Level, um so wichtiger die
+ Geheimhaltung bzw. Vertraulichkeit der Daten.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>Einzel-Label</emphasis>: Von einem Einzel-Label spricht
+ man, wenn f&uuml;r ein ganzes Dateisystem lediglich ein einziges
+ Label verwendet wird, um Zugriffskontrolle &uuml;ber den gesamten
+ Datenfluss zu erzwingen. Sobald diese Option verwendet wird - und das
+ ist zu jeder Zeit, wenn die Option <option>multilabel</option>
+ nicht explizit gesetzt wurde - sind alle Dateien und Verzeichnisse
+ mit dem gleichen Label gekennzeichnet.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>Subjekt</emphasis>: Ein Subjekt ist jedwede Einheit,
+ die Information in Fluss zwischen Objekten bringt: Zum Beispiel ein
+ Nutzer, ein Nutzerprozessor, ein Systemproze&szlig; usw. In &os;
+ handelt es sich meistens um einen Thread, der als Proze&szlig; im
+ Namen eines Nutzers arbeitet.</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="mac-initial">
+ <title>Erl&auml;uterung</title>
+
+ <para>Mit all diesen neuen Begriffen im Kopf k&ouml;nnen wir nun
+ &uuml;berlegen, wie die M&ouml;glichkeiten der verbindlichen
+ Zugriffskontrolle (<acronym>MAC</acronym>) die Sicherheit eines
+ Betriebssystems als Ganzes erweitern. Die verschiedenen Module, die
+ durch die <acronym>MAC</acronym> bereitgestellt werden, k&ouml;nnen
+ verwendet werden, um das Netzwerk oder Dateisysteme zu sch&uuml;tzen,
+ Nutzern den Zugang zu bestimmten Ports oder Sockets zu verbieten und
+ vieles mehr. Die vielleicht beste Weise, die Module zu verwenden, ist,
+ sie miteinander zu kombinieren, indem mehrere
+ Sicherheitsrichtlinienmodule gleichzeitig eine mehrschichtige
+ Sicherheitsumgebung schaffen. Das ist etwas anderes als singul&auml;re
+ Richtlinien wie zum Beispiel die Firewall, die typischerweise Elemente
+ eines Systems stabilisiert, das nur f&uuml;r einen speziellen Zweck
+ verwendet wird. Der Verwaltungsmehraufwand ist jedoch von Nachteil, zum
+ Beispiel durch die Verwendung von mehreren Labels oder dem
+ eigenh&auml;ndigen Erlauben von Netzwerkzugriffen f&uuml;r jeden
+ einzelnen Nutzer.</para>
+
+ <para>Solche Nachteile sind allerdings gering im Vergleich zum bleibenden
+ Effekt der erstellten Struktur. Die M&ouml;glichkeit zum Beispiel,
+ f&uuml;r konkrete Anwendungen genau die passenden Richtlinien
+ auszuw&auml;hlen und einzurichten, senkt gleichzeitig die Arbeitskosten.
+ Wenn man unn&ouml;tige Richtlinien aussortiert, kann man die
+ Gesamtleistung des Systems genauso steigern wie auch eine h&ouml;here
+ Anpassungsf&auml;higkeit gew&auml;hrleisten. Eine gute Umsetzung der
+ <acronym>MAC</acronym> beinhaltet eine Pr&uuml;fung der gesamten
+ Sicherheitsanforderungen und einen wirksamen Einsatz der verschiedenen
+ Module.</para>
+
+ <para>Ein System, auf dem eine <acronym>MAC</acronym> verwendet wird,
+ mu&szlig; zumindest garantieren, dass einem Nutzer nicht gestattet wird,
+ Sicherheitsmerkmale nach eigenem Ermessen zu ver&auml;ndern; dass
+ Arbeitswerkzeuge, Programme und Skripte, innerhalb der
+ Beschr&auml;nkungen arbeiten k&ouml;nnen, welche die Zugriffsregeln der
+ ausgew&auml;hlten Module dem System auferlegen; und dass die volle
+ Kontrolle &uuml;ber die Regeln der <acronym>MAC</acronym> beim
+ Administrator ist und bleibt.</para>
+
+ <para>Es ist die einsame Pflicht des zust&auml;ndigen Administrators, die
+ richtigen Module sorgf&auml;ltig auszuw&auml;hlen. Einige Umgebungen
+ k&ouml;nnten eine Beschr&auml;nkung der Zugriffe &uuml;ber die
+ Netzwerkschnittstellen ben&ouml;tigen - hier w&auml;ren die Module
+ &man.mac.portacl.4;, &man.mac.ifoff.4; und sogar &man.mac.biba.4; ein
+ guter Anfang. In anderen F&auml;llen mu&szlig; man sehr strenge
+ Vertraulichkeit von Dateisystemobjekten gew&auml;hrleisten - daf&uuml;r
+ k&ouml;nnte man &man.mac.bsdextended.4; oder &man.mac.mls.4;
+ einsetzen.</para>
+
+ <para>Die Entscheidung, welche Richtlinien angewandt werden, kann auch
+ anhand der Netzwerk-Konfiguration getroffen werden. Nur bestimmten
+ Benutzern soll erlaubt werden, via &man.ssh.1; auf das Netzwerk oder
+ Internet zuzugreifen - &man.mac.portacl.4; w&auml;re eine gute Wahl.
+ Aber f&uuml;r was entscheidet man sich im Falle eines Dateisystems?
+ Soll der Zugriff auf bestimmte Verzeichnisse von spezifischen Nutzern
+ oder Nutzergruppen separiert werden? Oder wollen wir den Zugriff durch
+ Nutzer oder Programme auf spezielle Dateien einschr&auml;nken, indem wir
+ gewisse Objekte als geheim einstufen?</para>
+
+ <para>Der Zugriff auf Objekte kann einigen vertraulichen Nutzern gestattet
+ werden, anderen wiederum verwehrt. Als Beispiel sei hierzu ein
+ gro&szlig;es Entwicklerteam angef&uuml;hrt, das in kleine Gruppen von
+ Mitarbeitern aufgeteilt wurde. Die Entwickler von Projekt A d&uuml;rfen
+ nicht auf Objekte zugreifen, die von den Entwicklern von Projekt B
+ geschrieben wurden. Sie m&uuml;ssen aber trotzdem auf Objekte
+ zugreifen k&ouml;nnen, die von einem dritten Entwicklerteam geschaffen
+ wurden - alles in allem eine verzwickte Situation. Wenn man die
+ verschiedenen Module der <acronym>MAC</acronym> richtig verwendet,
+ k&ouml;nnen Anwender in solche Gruppen getrennt und ihnen der Zugriff zu
+ den gew&uuml;nschten Systemobjekten gestattet werden - ohne Angst haben
+ zu m&uuml;ssen, dass Informationen in die falschen H&auml;nde
+ geraten.</para>
+
+ <para>So hat jedes Modul, das eine Sicherheitsrichtlinie verf&uuml;gbar
+ macht, einen eigenen Weg, die Sicherheit des Systems zu verst&auml;rken.
+ Die Auswahl der Module sollte auf einem gut durchdachten
+ Sicherheitskonzept gr&uuml;nden. In vielen F&auml;llen mu&szlig; das
+ gesamte Konzept eines Systems &uuml;berarbeitet und neu eingepflegt
+ werden. Ein guter &Uuml;berblick &uuml;ber die M&ouml;glichkeiten der
+ verschiedenen von der <acronym>MAC</acronym> angebotenen Module
+ hilft einem Administrator, die besten Richtlinien f&uuml;r seine
+ spezielle Situation auszuw&auml;hlen.</para>
+
+ <para>Im &os;-Standardkernel ist die Option zur Verwendung der
+ <acronym>MAC</acronym> nicht enthalten. Daher mu&szlig; die
+ Zeile</para>
+
+
+ <programlisting>options MAC</programlisting>
+
+ <para>der Kernelkonfiguration hinzugef&uuml;gt und der Kernel neu
+ &uuml;bersetzt und installiert werden.</para>
+
+ <caution>
+ <para>Verschiedenen Anleitungen f&uuml;r die <acronym>MAC</acronym>
+ empfehlen, die einzelnen Module direkt in den Kernel einzuarbeiten.
+ Dabei ist es jedoch m&ouml;glich, das System aus dem Netzwerk
+ auszusperren oder gar schlimmeres. Die Arbeit mit der
+ <acronym>MAC</acronym> ist &auml;hnlich der Arbeit mit einer Firewall -
+ man mu&szlig;, wenn man sich nicht selbst aus dem System aussperren
+ will, genau aufpassen. Man sollte sich eine M&ouml;glichkeit
+ zurechtlegen, wie man eine Implementation einer <acronym>MAC</acronym>
+ r&uuml;ckg&auml;ngig machen kann - genauso wie eine Ferninstallation
+ &uuml;ber das Netzwerk nur mit &auml;u&szlig;erster Vorsicht
+ vorgenommen werden sollte. Es wird daher empfohlen,
+ die Module nicht in den Kernel einzubinden, sondern sie beim
+ Systemstart via <filename>/boot/loader.conf</filename> zu
+ laden.</para>
+ </caution>
+ </sect1>
+
+ <sect1 id="mac-understandlabel">
+ <title>MAC Labels verstehen</title>
+
+ <para>MAC Label sind Sicherheitsmerkmale, die, wenn sie zum Einsatz kommen,
+ allen Subjekten und Objekten im System zugeordnet werden.</para>
+
+ <para>Wenn ein Administrator ein solches Merkmal bzw. Attribut setzen will,
+ mu&szlig; er/sie verstehen k&ouml;nnen, was da genau passiert. Die
+ Attribute, die im speziellen Fall zu vergeben sind, h&auml;ngen vom
+ geladenen Modul und den darin jeweils implementierten Richtlinien ab.
+ Jedes dieser Richtlinienmodule setzt die Arbeit mit seinen entsprechenden
+ Attributen in individueller Weise um. Falls der Nutzer nicht versteht,
+ was er da konfiguriert, oder auch, was seine Konfiguration f&uuml;r
+ Begleiterscheinungen mit sich bringt, ergibt sich meist als Resultat ein
+ unerwartetes, ja sogar unerw&uuml;nschtes Verhalten des gesamten
+ Systems.</para>
+
+ <para>Ein Label, einem Objekt verliehen, wird verwendet, um anhand einer
+ Richtlinie eine sicherheitsrelevante Entscheidung &uuml;ber
+ Zugriffsrechte zu f&auml;llen. In einigen Richtlinien enth&auml;lt
+ bereits das Label selbst alle daf&uuml;r n&ouml;tigen Informationen.
+ Andere Richtlinien verwenden diese Informationen, um zun&auml;chst ein
+ komplexes Regelwerk abzuarbeiten.</para>
+
+ <para>Wenn man zum Beispiel einer Datei das Attribut
+ <literal>biba/low</literal> zuordnet, wird dieses durch das Biba
+ Sicherheitsrichtlinienmodul, und zwar mit dem Wert <quote>low</quote>,
+ verarbeitet.</para>
+
+ <para>Einige der Richtlinienmodule, die die M&ouml;glichkeit zum Vergeben
+ von Labels unter &os; unterst&uuml;tzen, bieten drei vordefinierte
+ Labels an. Dieses nennen sich <quote>high</quote>, <quote>low</quote>
+ und <quote>equal</quote>. Obwohl die verschiedenen Module die
+ Zugriffskontrolle auf verschiedene Weisen regeln, kann man sich sicher
+ sein, das das <quote>low</quote>-Label der untersten, unsichersten
+ Einstellung entspricht, das <quote>equal</quote>-Label die Verwendung des
+ Moduls f&uuml;r das jeweilige Objekt oder Subjekt deaktiviert - und das
+ <quote>high</quote>-Label die h&ouml;chstm&ouml;gliche Einstellung
+ erzwingt. Im Speziellen gilt diese Aussage f&uuml;r die
+ Richtlinien(-module) <acronym>MLS</acronym> und Biba.</para>
+
+ <para>In den meisten Umgebungen, sogenannten Single Label Environments,
+ wird Objekten nur ein einzelnes Label zugewiesen. Dadurch wird nur ein
+ Regelsatz f&uuml;r die Zugriffskontrolle auf das gesamte System verwendet
+ - und das ist meistens auch tats&auml;chlich ausreichend. Es gibt wenige
+ F&auml;lle, in denen mehrere Labels auf Dateisystemobjekte oder -subjekte
+ verwendet werden. In einem solchen Fall mu&szlig; das Dateisystem mit
+ der &man.tunefs.8;-Option <option>multilabel</option> angepa&szlig;t
+ werden, da <option>single label</option> die Standardeinstellung
+ ist.</para>
+
+ <para>Bei der Verwendung von Biba oder <acronym>MLS</acronym> kann man
+ numerische Labels vergeben, die genau das Level angeben, an welcher
+ Stelle in der Hierarchie das Subjekt oder Objekt einzuordnen ist. Dieses
+ numerische Level wird verwendet, um Informationen in verschiedene Gruppen
+ aufzuteilen oder zu sortieren - damit zum Beispiel nur Subjekte, die zu
+ einer gewissen Vertraulichkeitsstufe geh&ouml;ren, Zugang zu einer Gruppe
+ von Objekten erhalten.</para>
+
+ <para>In den meisten F&auml;llen wird ein Administrator nur ein einzelnes
+ Label f&uuml;r das gesamte Dateisystem verwenden.</para>
+
+ <para><emphasis>Moment mal, dass ist doch dasselbe wie
+ <acronym>DAC</acronym>! Ich dachte, <acronym>MAC</acronym> w&uuml;rde die
+ Kontrolle strengstens an den Administrator binden!</emphasis> Diese
+ Aussage h&auml;lt immer noch stand&nbsp; - <username>root</username> ist
+ derjenige, der die Kontrolle aus&uuml;bt und die Richtlinie konfiguriert,
+ so dass Nutzer in die entsprechenden, angemessenen Kategorien /
+ Zugriffsklassen eingeordnet werden. Nunja, einige Module schr&auml;nken
+ <username>root</username> selbst ein. Die Kontrolle &uuml;ber Objekte
+ wird dann einer Gruppe zugewiesen, jedoch hat <username>root</username>
+ die M&ouml;glichkeit, die Einstellungen jederzeit zu widerrufen oder zu
+ &auml;ndern. Dies ist das Hierarchie/Freigabe-Modell, das durch
+ Richtlinien wie MLS oder Biba bereitgestellt wird.</para>
+
+ <sect2>
+ <title>Konfigurieren der Labels</title>
+
+ <para>Gewisserma&szlig;en alle Aspekte der Labelkonfiguration
+ werden durch Werkzeuge das Basissystems umgesetzt. Die entsprechenden
+ Kommandos bieten eine einfache Schnittstelle zum Konfigurieren,
+ Manipulieren und auch Verifizieren der gekennzeichneten Objekte.</para>
+
+ <para>Mit den beiden Kommandos &man.setfmac.8; und &man.setpmac.8; kann
+ man eigentlich schon alles machen. Das Kommando
+ <command>setfmac</command> wird verwendet, um ein MAC-Label auf einem
+ Systemobjekt zu setzen, <command>setpmac</command> hingegen zum Setzen
+ von Labels auf Systemsubjekte. Als Beispiel soll hier dienen:</para>
+
+ <screen>&prompt.root; <userinput>setfmac biba/high test</userinput></screen>
+
+ <para>Wenn bei der Ausf&uuml;hrung dieses Kommandos keine Fehler
+ aufgetreten sind, gelangt man zur Eingabeaufforderung zur&uuml;ck. Nur
+ wenn ein Fehler auftritt, verhalten sich diese Kommandos nicht still,
+ ganz wie auch die Kommandos &man.chmod.1; und &man.chown.8;. In
+ einigen F&auml;llen wird dieser Fehler <errorname>Permission
+ denied</errorname> lauten und gew&ouml;hnlich dann auftreten, wenn ein
+ Label an einem Objekt angebracht oder ver&auml;ndert werden soll, das
+ bereits (Zugriffs-)Beschr&auml;nkungen
+ unterliegt.<footnote><para>Andere Vorbedingungen f&uuml;hren
+ nat&uuml;rlich zu anderen Fehlern. Zum Beispiel wenn das Objekt nicht
+ dem Nutzer geh&ouml;rt, der das Label &auml;ndern m&ouml;chte, das
+ Objekt vielleicht gar nicht existiert oder es sich um ein nur lesbares
+ Objekt handelt. Oder eine verbindliche Richtlinie erlaubt dem
+ Proze&szlig; die Ver&auml;nderung des Labels nicht, weil die
+ Eigenschaften der Datei, die Eigenschaften des Prozesses oder der
+ Inhalt des neuen Labels nicht akzeptiert werden. Beispiel: Ein
+ Anwender mit geringer Vertraulichkeit versucht, das Label einer Datei
+ mit hoher Vertraulichkeit zu &auml;ndern. Oder er versucht, eine Datei
+ mit geringer Vertraulichkeit zu einer Datei mit hoher Vertraulichkeit
+ zu machen.</para></footnote> Der Systemadministrator kann so eine
+ Situation mit Hilfe der folgenden Kommandos &uuml;berwinden:</para>
+
+ <screen>&prompt.root; <userinput>setfmac biba/high test</userinput>
+<errorname>Permission denied</errorname>
+&prompt.root; <userinput>setpmac biba/low setfmac biba/high test</userinput>
+&prompt.root; <userinput>getfmac test</userinput>
+test: biba/high</screen>
+
+ <para>Wie wir hier sehen, kann <command>setpmac</command> verwendet
+ werden, um die vorhandene Einstellungen zu umgehen, indem dem
+ gestarteten Proze&szlig; ein anderes, valides Label zugeordnet wird.
+ Das Werkzeug <command>getpmac</command> wird normalerweise auf gerade
+ laufende Prozesse angewendet. &Auml;hnlich
+ <application>sendmail</application>: Als Argument wird statt eines
+ Kommandos eine eine Proze&szlig;-ID &uuml;bergeben, es verbirgt sich
+ doch dieselbe Logik dahinter. Wenn ein Nutzer versucht, eine Datei zu
+ ver&auml;ndern, auf die er keinen Zugriff hat, entsprechend der Regeln
+ eines geladenen Richtlinienmoduls, wird der Fehler <errorname>Operation
+ not permitted</errorname> durch die Funktion
+ <function>mac_set_link</function> angezeigt.</para>
+
+ <sect3>
+ <title>&Uuml;bliche Typen von Labeln</title>
+
+ <para>Wenn man die Module &man.mac.biba.4;, &man.mac.mls.4; und
+ &man.mac.lomac.4; verwendet, hat man die M&ouml;glichkeit, einfache
+ Label zu vergeben. Diese nennen sich <literal>high</literal>,
+ <literal>low</literal> und <literal>equal</literal>. Es folgt eine
+ kurze Beschreibung, was diese Labels bedeuten:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Das Label <literal>low</literal> ist
+ definitionsgem&auml;&szlig; das niedrigeste Label, das einem
+ Objekt oder Subjekt verliehen werden kann. Wird es gesetzt, kann
+ die entsprechende Entit&auml;t nicht mehr auf Entit&auml;ten
+ zugreifen, die das Label <literal>high</literal> tragen.</para>
+ </listitem>
+
+ <listitem>
+ <para>Das Label <literal>equal</literal> wird Entit&auml;ten
+ verliehen, die von der Richtlinie ausgenommen sein sollen.</para>
+ </listitem>
+
+ <listitem>
+ <para>Das Label <literal>high</literal> verleiht einer Entit&auml;t
+ die h&ouml;chstm&ouml;gliche Einstellung.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Unter Beachtung jedes einzelnen Richtlinienmoduls moduliert und
+ beschr&auml;nkt jede dieser Einstellungen den Informationsflu&szlig;
+ unterschiedlich. Genaue Erkl&auml;rungen zu den Charakteristika der
+ einfachen Labels in den verschiedenen Modulen finden sich im
+ entsprechenden Unterabschnitt dieses Kapitels oder in den
+ Manpages.</para>
+
+ <sect4>
+ <title>Fortgeschrittene Label-Konfiguration</title>
+
+ <para>Numerische klassifizierte Labels werden verwendet in der Form
+ <literal>Klasse:Verbund+Verbund</literal>. Demnach ist das
+ Label</para>
+
+ <programlisting>biba/10:2+3+6(5:2+3-15:2+3+4+5+6)</programlisting>
+
+ <para>folgenderma&szlig;en zu lesen:</para>
+
+ <para><quote>Biba Policy Label</quote>/<quote>effektive Klasse
+ 10</quote>
+ :<quote>Verbund 2,3 und 6</quote>:
+ (<quote>Low-Klasse 5:...</quote>-
+ <quote>High-Klasse 15:...</quote>)</para>
+
+ <para>In diesem Beispiel ist die erstgenannte Klasse als
+ <quote>effektive Klasse</quote> zu bezeichnen. Ihr werden die
+ <quote>effektiven Verb&uuml;nde</quote> zugeordnet. Die zweite
+ Klasse ist die <quote>Low</quote>-Klasse und die letzte die
+ <quote>high</quote>-Klasse. Die allermeisten Konfigurationen kommen
+ ohne die Verwendungen von solchen Klassen aus, nichtsdestotrotz kann
+ man sie f&uuml;r erweiterte Konfigurationen verwenden.</para>
+
+ <para>Sobald sie auf <emphasis>Systemsubjekte</emphasis> angewendet
+ werden, haben diese eine gegenw&auml;rtige Klasse/Verbund-
+ Konfiguration und diese mu&szlig; im definierten Rahmen
+ gegebenenfalls angepa&szlig;t (erh&ouml;ht oder gesenkt) werden. Im
+ Gegensatz dazu haben <emphasis>Systemobjekte</emphasis> alle
+ eingestellten (effektive, High- und Low-Klasse) gleichzeitig. Dies
+ ist notwendig, damit auf Sie von den
+ <emphasis>Systemsubjekten</emphasis> in den verschiedenen Klassen
+ gleichzeitig zugegriffen werden kann.</para>
+
+ <para>Die Klasse und und die Verb&uuml;nde in einem Subjekt-Objekt-Paar
+ werden zum Erstellen einer sogenannten Dominanz-Relation verwendet,
+ in welcher entweder das Subjekt das Objekt, das Objekt das Subjekt,
+ keines das andere dominiert oder sich beide gegenseitig dominieren.
+ Der Fall, dass sich beide dominieren, tritt dann ein, wenn die beiden
+ Labels gleich sind. Wegen der Natur des Informationsflusses in Biba
+ kann man einem Nutzer Rechte f&uuml;r einen Reihe von Abteilungen
+ zuordnen, die zum Beispiel mit entsprechenden Projekten
+ korrespondieren. Genauso k&ouml;nnen aber auch Objekten mehrere
+ Abteilungen zugeordnet sein. Die Nutzer m&uuml;ssen eventuell ihre
+ gegenw&auml;rtigen Rechte mithilfe von <command>su</command> or
+ <command>setpmac</command> anpassen um auf Objekte in einer Abteilung
+ zuzugreifen, zu der sie laut ihrer effektiven Klasse nicht berechtigt
+ sind.</para>
+ </sect4>
+ </sect3>
+
+ <sect3>
+ <title>Nutzer- und Label-Einstellungen</title>
+ <para>Nutzer selbst brauchen Labels damit ihre Dateien und Prozesse
+ korrekt mit der Sicherheitsrichtlinie zusammenarbeitet, die f&uuml;r
+ das System definiert wurde. Diese werden in der Datei
+ <filename>login.conf</filename> durch die Verwendung von Login-
+ Klassen zugeordnet. Jedes Richtlinienmodul, das Label verwendet,
+ arbeitet mit diesen Login-Klassen.</para>
+
+ <para>Beispielhaft wird der folgende Eintrag, der f&uuml;r jede
+ Richtlinie eine Einstellung enth&auml;lt, gezeigt:</para>
+
+ <programlisting>default:\
+:copyright=/etc/COPYRIGHT:\
+:welcome=/etc/motd:\
+:setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\
+:path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:\
+:manpath=/usr/share/man /usr/local/man:\
+:nologin=/usr/sbin/nologin:\
+:cputime=1h30m:\
+:datasize=8M:\
+:vmemoryuse=100M:\
+:stacksize=2M:\
+:memorylocked=4M:\
+:memoryuse=8M:\
+:filesize=8M:\
+:coredumpsize=8M:\
+:openfiles=24:\
+:maxproc=32:\
+:priority=0:\
+:requirehome:\
+:passwordtime=91d:\
+:umask=022:\
+:ignoretime@:\
+:label=partition/13,mls/5,biba/10(5-15),lomac/10[2]:</programlisting>
+
+ <para>Die Label-Option in der letzten Zeile legt fest, welches
+ Standard-Label f&uuml;r einen Nutzer erzwungen wird. Nutzern darf
+ niemals gestattet werden, diese Werte selbst zu ver&auml;ndern,
+ demnach haben Nutzer in dieser Beziehung auch keine Wahlfreiheit. In
+ einer richtigen Konfiguration jedoch wird kein Administrator alle
+ Richtlinienmodule aktivieren wollen. Es wird an dieser Stelle
+ ausdr&uuml;cklich empfohlen, dieses Kapitel zu Ende zu lesen, bevor
+ irgendein Teil dieser Konfiguration ausprobiert wird.</para>
+
+ <note>
+ <para>Nutzer k&ouml;nnen ihr eigenes Label nach dem Loginvorgang
+ durchaus &auml;ndern. Jedoch kann diese &Auml;nderung nur unter den
+ Auflagen der gerade g&uuml;ltigen Richtlinie geschehen. Im
+ Beispiel oben wird f&uuml;r die Biba-Richtlinie eine minimale
+ Proze&szlig;integrit&auml;t von 5, eine maximale von 15 angegeben,
+ aber die Voreinstellung des tats&auml;chlichen Labels ist 10. Der
+ Nutzerproze&szlig; l&auml;uft also mit einer Integrit&auml;t von 10
+ bis das Label ver&auml;ndert wird, zum Beispiel durch eine
+ Anwendung des Kommandos <command>setpmac</command>, welches jedoch
+ auf den Bereich eingeschr&auml;nkt wird, der zum Zeitpunkt des
+ Logins angegeben wurde, in diesem Fall von 5 bis 15.</para>
+ </note>
+
+ <para>Nach einer &Auml;nderung der Datei
+ <filename>login.conf</filename> mu&szlig; in jedem Fall die
+ Bef&auml;higungsdatenbank mit dem Kommando
+ <command>cap_mkdb</command> neu erstellt werden&nbsp;- und das gilt
+ f&uuml;r alle im weiteren Verlauf gezeigten Beispiele und
+ Diskussionspunkte.</para>
+
+ <para>Es ist n&uuml;tzlich anzumerken, dass viele Einsatzorte eine
+ gro&szlig;e Anzahl von Nutzern haben, die wiederum viele
+ verschiedenen Nutzerklassen angeh&ouml;ren sollen. Hier ist eine
+ Menge Planungsarbeit notwendig, da die Verwaltung sehr
+ un&uuml;bersichtlich und schwierig ist.</para>
+
+ <para>Zuk&uuml;nftige Versionen von &os; sollen neue M&ouml;glichkeiten
+ erhalten, Nutzern Labels zuzuordnen, die Umsetzung wird jedoch nach
+ dem Release von 5.3 noch einige Zeit in Anspruch nehmen.</para>
+ </sect3>
+
+ <sect3>
+ <title>Netzwerkschnittstellen und die zugeh&ouml;rigen Label</title>
+
+ <para>Labels k&ouml;nnen auch, wenn man sie an Netzwerkschittstellen
+ vergibt, helfen, den Datenflu&szlig; durch das Netzwerk zu
+ kontrollieren. Das funktioniert in allen F&auml;llen genau so wie mit
+ Objekten. Nutzer, die in der Biba-Richtlinie das Label
+ <literal>high</literal> tragen, d&uuml;rfen nicht auf Schnittstellen
+ zugreifen, die <literal>low</literal> markiert sind usw.</para>
+
+ <para>Die Option <option>maclabel</option> wird via
+ <command>ifconfig</command> &uuml;bergeben. Zum Beispiel</para>
+
+ <screen>&prompt.root; <userinput>ifconfig bge0 maclabel biba/equal</userinput></screen>
+
+ <para>belegt die Schnittstelle &man.bge.4; mit dem
+ <acronym>MAC</acronym> Label <literal>biba/equal</literal>. Wenn eine
+ komplexe Einstellung wie <literal>biba/high(low-high)</literal>
+ verwendet wird, mu&szlig; das gesamte Label in Anf&uuml;hrungszeichen
+ geschrieben werden, da sonst eine Fehlermeldung zur&uuml;ckgegeben
+ wird.</para>
+
+ <para>Jedes Richtlinienmodul, das die Vergabe von Labels
+ unterst&uuml;tzt, stellt einen Parameter bereit, mit dem das
+ <acronym>MAC</acronym> Label f&uuml;r Netzwerkschnittstellen
+ deaktiviert werden kann. Das Label der Netzwerkschnittstelle auf
+ <literal>equal</literal> zu setzen, f&uuml;hrt zum selben Ergebnis.
+ Beachten Sie die Ausgabe von <command>sysctl</command>, die Manpages
+ der verschiedenen Richtlinien oder eben die Informationen, die im
+ weiteren Verlauf dieses Kapitels angeboten werden, um mehr zu diesen
+ Parametern zu erfahren.</para>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Single- oder Multilabel?</title>
+ <para>Als Standardeinstellung verwendet das System die Option
+ <option>single label</option>. Was bedeutet das f&uuml;r den
+ Administrator? Es gibt einige Unterschiede zwischen <option>single
+ label</option> und <option>multilabel</option>. In ihrer ureigenen
+ Weise bieten beide Vor- und Nachteile bezogen auf die Flexibilit&auml;t
+ bei der Modellierung der Systemsicherheit.</para>
+
+ <para>Die Option <option>single label</option> gibt jedem Subjekt oder
+ Objekt genau ein einziges Label, zum Beispiel
+ <literal>biba/high</literal>. Mit dieser Option hat man einen
+ geringeren Verwaltungsaufwand, aber die Flexibilit&auml;t beim
+ Einsatzes von Richtlinien ist ebenso gering. Viele Administratoren
+ w&auml;hlen daher auch die Option <option>multilabel</option> im
+ Sicherheitsmodell, wenn die Umst&auml;nde es erfordern.</para>
+
+ <para>Die Option <option>multilabel</option> gestattet, jedem einzelnen
+ Subjekt oder Objekt seine eigenen unabh&auml;ngigen Label zu
+ zuzuordnen. Die Optionen <option>multilabel</option> und <option>
+ singlelabel</option> betreffen jedoch nur die Richtlinien, die Labels
+ als Leistungsmerkmal verwenden, einschlie&szlig;lich der Richtlinien
+ Biba, Lomac, <acronym>MLS</acronym> und
+ <acronym>SEBSD</acronym>.</para>
+
+<!-- ================================================================================== --
+ -- ================================================================================== --
+ -- ================================================================================== --
+ -- Das folgende Beispiel weigere ich mich zu uebersetzen. Der Autor selbst schreibt --
+ -- schreibt ja, dass es only a quick example ist. --
+
+
+ -- <para>In many cases, the <option>multilabel</ option> may not need --
+ -- to be set at all. Consider the following situation and --
+ -- security model:</para> --
+ -- <itemizedlist> --
+ -- <listitem> --
+ -- <para>&os; web-server using the <acronym>MAC</acronym> --
+ -- framework and a mix of the various policies.</para> --
+ -- </listitem> --
+
+ -- <listitem> --
+ -- <para>This machine only requires one label, --
+ -- <literal>biba/high</literal>, for everything in the system. --
+ -- Here the file system would not require the --
+ -- <option>multilabel</ option> option as a single label --
+ -- will always be in effect.</para> --
+ -- </listitem> --
+
+ -- <listitem> --
+ -- <para>But, this machine will be a web server and should have --
+ -- the web server run at <literal>biba/low</literal> to prevent --
+ -- write up capabilities. The Biba policy and how it works --
+ -- will be discussed later, so if the previous comment was --
+ -- difficult to interpret just continue reading and return. --
+ -- The server could use a separate partition set at --
+ -- <literal>biba/low</literal> for most if not all of its --
+ -- runtime state. Much is lacking from this example, for --
+ -- instance the restrictions on data, configuration and user --
+ -- settings; however, this is just a quick example to prove the --
+ -- aforementioned point.</para> --
+ -- </listitem> --
+ -- </itemizedlist> --
+
+ -- end of quick example --
+ -- ================================================================================== --
+ -- ================================================================================== --
+ -- ================================================================================== -->
+
+ <para>Wenn Richtlinien benutzt werden sollen, die ohne Labels auskommen,
+ wird die Option <option>multilabel</option> nicht ben&ouml;tigt. Dies
+ betrifft die Richtlinien <literal>seeotheruids</literal>,
+ <literal>portacl</literal> und <literal>partition</literal>.</para>
+
+ <para>Man sollte sich dessen bewu&szlig;t sein, dass die Verwendung der
+ Option <option>multilabel</option> auf einer Partition und die
+ Erstellung eines Sicherheitsmodells auf der Basis der &os;
+ <option>multilevel</option> Funktionalit&auml;t einen hohen
+ Verwaltungsaufwand bedeutet, da alles im Dateisystem ein Label bekommt.
+ Jedes Verzeichnis, jede Datei und genauso jede Schnittstelle.</para>
+
+ <para>Das folgende Kommando aktiviert <option>multilabel</option>
+ f&uuml;r ein Dateisystem. Dies funktioniert nur im
+ Einzelbenutzermodus:</para>
+
+ <screen>&prompt.root; <userinput>tunefs -l enable /</userinput></screen>
+
+ <para>In einer Swap-Partition wird dies nicht ben&ouml;tigt.</para>
+
+ <note>
+ <para>Falls Sie Probleme beim Setzen der Option
+ <option>multilabel</option> auf der Root-Partition bemerken, lesen
+ Sie bitte <xref linkend="mac-troubleshoot"> dieses Kapitels.</para>
+ </note>
+ </sect2>
+ </sect1>
+
+ <sect1 id="mac-planning">
+ <title>Planung eines Sicherheitsmodells</title>
+
+ <para>Wann immer eine neue Technologie eingepflegt werden soll, ist es
+ wichtig, vorher einen Plan zu erstellen. In den verschiedenen Etappen
+ der Planung sollte der Administrator nie das
+ <quote>Gro&szlig;e Ganze</quote> aus den Augen verlieren und mindestens
+ die folgenden Punkte beachten:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Die Anforderungen</para>
+ </listitem>
+
+ <listitem>
+ <para>Die Ziele</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Wenn Sie <acronym>MAC</acronym> verwenden m&ouml;chten, sind das im
+ Besonderen folgende Punkte:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Wie werden Informationen und Ressourcen auf den Zielsystemen
+ klassifiziert?</para>
+ </listitem>
+
+ <listitem>
+ <para>Welche Arten von Informationen bzw. Ressourcen sollen im Zugang
+ beschr&auml;nkt sein und welche Art Einschr&auml;nkung soll
+ verwendet werden?</para>
+ </listitem>
+
+ <listitem>
+ <para>Welche(s) <acronym>MAC</acronym> Modul(e) w&auml;hlt man, um sein
+ Ziel zu erreichen?</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Es ist immer m&ouml;glich, die Einstellungen des Systems und der
+ Systemressourcen im Nachhinein zu <quote>optimieren</quote>. Es ist aber
+ wirklich l&auml;stig, das gesamte Dateisystem zu durchsuchen, um Dateien
+ oder Benutzerkonten zu reparieren. Eine gute Planung hilft dem
+ Administrator, sich einer sorgenfreien und effizienten Umsetzung eines
+ Sicherheitsmodells zu versichern. Testlauf des Sicherheitsmodells
+ <emphasis>vor</emphasis> dem Einsatz in seiner richtigen Arbeitsumgebung
+ ist auf jeden Fall empfehlenswert. Die Idee, ein System mit einer
+ <acronym>MAC</acronym> einfach loslaufen zu lassen, ist wie direkt auf
+ einen Fehlschlag hinzuarbeiten.</para>
+
+ <para>Jede Umgebung hat ihre eigenen Anforderungen. Ein tiefgreifendes und
+ vollst&auml;ndiges Sicherheitsprofil zu erstellen spart weitere
+ &Auml;nderungen, nachdem das System in Betrieb genommen wurde. Also
+ werden die folgenden Abschnitte die verschiedenen Module vorstellen, die
+ den Administratoren zur Verf&uuml;gung gestellt werden, die Nutzung und
+ Konfiguration der einzelnen Module beschreiben; und in einigen
+ F&auml;llen Einblicke gew&auml;hren, f&uuml;r welche Situationen welche
+ Module besonders geeignet sind. Zum Beispiel ein Webserver kann von der
+ Verwendung der &man.mac.biba.4; oder der &man.mac.bsdextended.4;
+ Richtlinie profitieren. In anderen F&auml;llen, an einem Rechner mit nur
+ wenigen lokalen Benutzern, ist die &man.mac.partition.4; die Richtlinie
+ der Wahl.</para>
+ </sect1>
+
+ <sect1 id="mac-modules">
+ <title>Modulkonfiguration</title>
+
+ <para>Jedes Modul, das in der <acronym>MAC</acronym> enthalten ist, kann
+ entweder direkt in den Kernel eingef&uuml;gt werden oder als Kernelmodul
+ in der Laufzeit des Systems geladen werden. Empfohlen wird, den
+ Modulnamen in der Datei <filename>/boot/loader.conf</filename>
+ anzuf&uuml;gen, so dass das Modul am Anfang des Bootvorgangs eingebunden
+ wird.</para>
+
+ <para>Die folgenden Abschnitte werden verschiedene <acronym>MAC</acronym>
+ Module und ihre jeweiligen Vor- und Nachteile vorstellen. Au&szlig;erdem
+ wird erkl&auml;rt, wie sie in bestimmte Umgebungen eingearbeitet werden
+ k&ouml;nnen. Einige Module unterst&uuml;tzen die Verwendung von
+ <literal>Labels</literal>, das hei&szlig;t Zugriffskontrolle durch
+ hinzuf&uuml;gen einer Kennzeichnung in der Art von <quote>dieses ist
+ erlaubt, jenes aber nicht</quote>. Eine Label-Konfigurationdatei
+ kontrolliert unter anderem, wie auf Dateien zugegriffen oder wie
+ &uuml;ber das Netzwerk kommuniziert werden darf. Im vorangehenden
+ Abschnitt wurde bereits erl&auml;utert, wie die Option
+ <option>multilabel</option> auf Dateisysteme angewendet wird, um eine
+ Zugriffskontrolle auf einzelne Dateien oder ganze Dateisysteme zu
+ konfigurieren.</para>
+
+ <para>Eine <option>single label</option> Konfiguration erzwingt ein
+ einzelnes Label f&uuml;r das gesamte System. Daher wird die
+ <command>tunefs</command>-Option <option>multilabel</option> genannt.
+ </para>
+ </sect1>
+
+ <sect1 id="mac-seeotheruids">
+ <title>Das MAC Modul seeotheruids</title>
+
+ <indexterm>
+ <primary>MAC See Other UIDs Policy</primary>
+ </indexterm>
+
+ <para>Modulename: <filename>mac_seeotheruids.ko</filename></para>
+
+ <para>Parameter in der Kernelkonfiguration:
+ <literal>options MAC_SEEOTHERUIDS</literal></para>
+
+ <para>Bootparameter:
+ <literal>mac_seeotheruids_load="YES"</literal></para>
+
+ <para>Das Modul &man.mac.seeotheruids.4; erweitert die
+ <command>sysctl</command>-Variablen
+ <literal>security.bsd.see_other_uids</literal> und
+ <literal>security.bsd.see_other_gids</literal>. Diese Optionen
+ ben&ouml;tigen keine im Vorhinein zu setzenden Labels und k&ouml;nnen
+ leicht durchschaubar mit den anderen MAC-Modulen zusammenarbeiten.</para>
+
+ <para>Nachdem das Modul geladen wurde, k&ouml;nnen die folgenden
+ <command>sysctl</command> Variablen verwendet werden.<para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>security.mac.seeotheruids.enabled</literal> dient zur
+ Aktivierung des Moduls, zun&auml;chst mit den Standardeinstellungen.
+ Diese verhindern, dass Nutzer Prozesse und Sockets sehen k&ouml;nnen,
+ die ihnen nicht selbst geh&ouml;en.</para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>security.mac.seeotheruids.specificgid_enabled</literal> kann
+ eine spezifizierte Nutzergruppe von dieser Richtlinie ausnehmen. Die
+ entsprechende Gruppe mu&szlig; an den Parameter
+ <literal>security.mac.seeotheruids.specificgid=<replaceable>XXX</replaceable></literal>
+ &uuml;bergeben werden, wobei <replaceable>XXX</replaceable> die ID
+ der Gruppe ist, die von der Richtlinie ausgenommen werden
+ soll.</para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>security.mac.seeotheruids.primarygroup_enabled</literal>
+ kann verwendet werden, um eine spezifische,
+ <emphasis>prim&auml;re</emphasis> Nutzergruppe von der Richtlinie
+ auszuschliessen. Dieser Parameter und
+ <literal>security.mac.seeotheruids.specificgid_enabled</literal>
+ schlie&szlig;en einander aus.</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="mac-bsdextended">
+ <title>Das MAC Modul bsdextended</title>
+
+ <indexterm>
+ <primary>MAC</primary>
+ <secondary>File System Firewall Policy</secondary>
+ </indexterm>
+
+ <para>Modulname: <filename>mac_bsdextended.ko</filename></para>
+
+ <para>Parameter in der Kernelkonfiguration:
+ <literal>options MAC_BSDEXTENDED</literal></para>
+
+ <para>Bootparameter: <literal>mac_bsdextended_load="YES"</literal></para>
+
+ <para>Das Modul &man.mac.bsdextended.4; erstellt eine Firewall f&uuml;r
+ das Dateisystem und ist eine Erweiterung des sonst &uuml;blichen
+ Rechtemodells. Es erlaubt einem Administrator einen Regelsatz zum
+ Schutz von Dateien, Werkzeugen und Verzeichnissen in der
+ Dateisystemhierarchie zu erstellen, der einer Firewall &auml;hnelt.
+ Sobald auf ein Objekt im Dateisystem zugegriffen werden soll, wird eine
+ Liste von Regel abgearbeitet, bis eine passende Regel gefunden wird
+ oder die Liste zu Ende ist. Das Verhalten kann durch die &Auml;nderung
+ des &man.sysctl.8; Parameters
+ <literal>security.mac.bsdextended.firstmatch_enabled</literal>
+ eingestellt werden. &Auml;hnlich wie bei den anderen Firewallmodulen
+ in &os; wird eine Datei erstellt, welche die Zugriffsregeln
+ enth&auml;lt. Diese wird beim Systemstart durch eine Variable in
+ &man.rc.conf.5; eingebunden.</para>
+
+ <para>Der Regelsatz kann mit dem Programm &man.ugidfw.8; eingepflegt
+ werden, welches eine Syntax bereitstellt, die der von &man.ipfw.8;
+ gleicht. Weitere Werkzeuge k&ouml;nnen auch selbst erstellt werden,
+ indem die Funktionen der Bibliothek &man.libugidfw.3; verwendet
+ werden.</para>
+
+ <para>Bei der Arbeit mit diesem Modul ist &auml;u&szlig;erste Vorsicht
+ geboten - falscher Gebrauch kann den Zugriff auf Teile des Dateisystems
+ komplett unterbinden.</para>
+
+ <sect2>
+ <title>Beispiele</title>
+
+ <para>Nachdem das Modul &man.mac.bsdextended.4; erfolgreich geladen
+ wurde, zeigt das folgende Kommando die gegenw&auml;rtig aktiven Regeln
+ an:</para>
+
+ <screen>&prompt.root; <userinput>ugidfw list</userinput> 0 slots, 0 rules</screen>
+
+ <para>Wie erwartet, sind keine Regeln definiert. Das bedeutet, das auf
+ alle Teile des Dateisystems zugegriffen werden kann. Um eine Regel zu
+ definieren, die jeden Zugriff durch Nutzer blockiert und nur die Rechte
+ von <username>root</username> unangetastet l&auml;&szlig;t, mu&szlig;
+ lediglich dieses Kommando ausgef&uuml;hrt werden:</para>
+
+ <screen>&prompt.root; <userinput>ugidfw add subject not uid root new object not uid root mode n</userinput></screen>
+
+ <para>Das ist allerdings keine gute Idee, da nun allen Nutzern der
+ Zugriff auf selbst die einfachsten Programme wie <command>ls</command>
+ untersagt wird. Angemessener w&auml;re etwas wie:</para>
+
+
+ <screen>&prompt.root; <userinput>ugidfw set 2 subject uid <replaceable>user1</replaceable> object uid <replaceable>user2</replaceable> mode n</userinput>
+&prompt.root; <userinput>ugidfw set 3 subject uid <replaceable>user1</replaceable> object gid <replaceable>user2</replaceable> mode n</userinput></screen>
+
+ <para>Diese Befehle bewirken, dass <username>user1</username> keinen
+ Zugriff mehr auf Dateien und Programme hat, die
+ <username><replaceable>user2</replaceable></username> geh&ouml;ren.
+ Dies schlie&szlig;t das Auslesen von Verzeichniseintr&auml;gen ein.
+ </para>
+
+ <para>Anstelle <option>uid</option> <username>user1</username>
+ k&ouml;nnte auch <option>not uid
+ <replaceable>user2</replaceable></option> als Parameter &uuml;bergeben
+ werden. Dies w&uuml;rde diesselben Einschr&auml;nkungen f&uuml;r alle
+ Nutzer bewirken anstatt nur einen einzigen.</para>
+
+ <note>
+ <para><username>root</username> ist von diesen Einstellungen nicht
+ betroffen.</para>
+ </note>
+
+ <para>Dies sollte als &Uuml;berblick ausreichen, um zu verstehen, wie das
+ Modul &man.mac.bsdextended.4; helfen kann, das Dateisystem
+ abzuschotten. Weitere Informationen bieten die Manpages
+ &man.mac.bsdextended.4; und &man.ugidfw.8;.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="mac-ifoff">
+ <title>Das MAC Modul ifoff</title>
+
+ <indexterm>
+ <primary>MAC Interface Silencing Policy</primary>
+ </indexterm>
+
+ <para>Modulname: <filename>mac_ifoff.ko</filename></para>
+
+ <para>Parameter f&uuml;r die Kernelkonfiguration:
+ <literal>options MAC_IFOFF</literal>
+ </para>
+
+ <para>Bootparameter: <literal>mac_ifoff_load="YES"</literal></para>
+
+ <para>Das Modul &man.mac.ifoff.4; ist einzig dazu da,
+ Netzwerkschnittstellen im laufenden Betrieb zu deaktivieren oder zu
+ verhindern, das Netzwerkschnittstellen w&auml;hrend der Bootphase
+ gestartet werden. Dieses Modul ben&ouml;tigt f&uuml;r seinen Betrieb
+ weder Labels, die auf dem System eingerichtet werden m&uuml;ssen, noch
+ hat es Abh&auml;ngigkeiten zu anderen MAC Modulen.</para>
+
+ <para>Der gr&ouml;&szlig;te Teil der Kontrolle geschieht &uuml;ber die im
+ folgenden aufgelisteten <command>sysctl</command>-Parameter:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>security.mac.ifoff.lo_enabled</literal> schaltet den
+ gesamten Netzwerkverkehr auf der Loopback-Schnittstelle &man.lo.4; an
+ bzw. aus.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>security.mac.ifoff.bpfrecv_enabled</literal> macht das
+ Gleiche f&uuml;r den Berkeley Paket Filter &man.bpf.4;.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>security.mac.ifoff.other_enabled</literal>
+ schaltet den Verkehr f&uuml;r alle anderen
+ Netzwerkschnittstellen.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Die wahrscheinlich h&auml;ufigste Nutzung von &man.mac.ifoff.4; ist
+ die &Uuml;berwachung des Netzwerks in einer Umgebung, in der kein
+ Netzwerkverkehr w&auml;hrend des Bootvorgangs erlaubt werden soll. Eine
+ andere m&ouml;gliche Anwendung w&auml;re ein Script, das mit Hilfe von
+ <filename role="package">security/aide</filename> automatisch alle
+ Schnittstellen blockiert, sobald Dateien in gesch&uuml;tzten
+ Verzeichnissen angelegt oder ver&auml;ndert werden.</para>
+ </sect1>
+
+ <sect1 id="mac-portacl">
+ <title>Das MAC Modul portacl</title>
+
+ <indexterm>
+ <primary>MAC Port Access Control List Policy</primary>
+ </indexterm>
+
+ <para>Modulname: <filename>mac_portacl.ko</filename></para>
+
+ <para>Parameter f&uuml;r die Kernelkonfiguration:
+ <literal>options MAC_PORTACL</literal></para>
+
+ <para>Bootparameter: <literal>mac_portacl_load="YES"</literal></para>
+
+ <para>Mit Hilfe des Moduls &man.mac.portacl.4; k&ouml;nnen die Anbindungen
+ an die lokalen <acronym>TCP</acronym> und <acronym>UDP</acronym> Ports
+ durch eine Vielzahl von <command>sysctl</command> Variablen
+ beschr&auml;nkt werden. Genauer gesagt erm&ouml;glicht
+ &man.mac.portacl.4; Nutzern ohne <username>root</username>-Rechten den
+ Zugriff auf zu bestimmende privilegierte Ports, also denen innerhalb der
+ ersten 1024.</para>
+
+ <para>Sobald das Modul geladen wurde, ist die Richtlinie f&uuml;r alle
+ Sockets verf&uuml;gbar. Die folgenden Variablen k&ouml;nnen f&uuml;r die
+ Konfiguration verwendet werden:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>security.mac.portacl.enabled</literal> schaltet die
+ Anwendung der Richtlinie ein oder aus.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>security.mac.portacl.port_high</literal> gibt den
+ h&ouml;chsten Port an, der von der Richtlinie &man.mac.portacl.4;
+ betroffen sein soll.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>security.mac.portacl.suser_exempt</literal> nimmt, wenn
+ es einen Wert ungleich Null zugewiesen bekommt,
+ <username>root</username> von der Richtlinie aus.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>security.mac.portacl.rules</literal> enth&auml;lt als
+ Wert die eigentliche <literal>mac_portacl</literal>
+ Richtlinie.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Die eigentliche Konfiguration der <literal>mac_portacl</literal>
+ Richtlinie wird der <command>sysctl</command>-Variablen
+ <literal>security.mac.portacl.rules</literal> als Zeichenkette der Form
+ <literal>rule[,rule,...]</literal> &uuml;bergeben. Jede einzelne Regel
+ hat die Form <literal>idtype:id:protocol:port</literal>. Der Parameter
+ <parameter>idtype</parameter> ist entweder <literal>uid</literal> oder
+ <literal>gid</literal> und wird verwendet, um den Parameter
+ <parameter>id</parameter> als Nutzer-ID oder Gruppen-ID zu kennzeichnen.
+ Der Parameter <parameter>protocol</parameter> gibt an, ob die Regel
+ &uuml;r <acronym>TCP</acronym> oder <acronym>UDP</acronym> gelten soll
+ (indem man den Wert auf <literal>tcp</literal> oder
+ <literal>udp</literal> setzt). Und der letzte Parameter,
+ <parameter>port</parameter>, enth&auml;lt die Nummer des Ports, auf den
+ der angegebene Nutzer bzw. die angegebene Gruppe Zugriff erhalten
+ soll.</para>
+
+ <note>
+ <para>Da der Regelsatz direkt vom Kernel ausgewertet wird, k&ouml;nnen
+ nur Zahlenwerte &uuml;bergeben werden. Das hei&szlig;t, Namen von
+ Nutzern, Gruppen oder Dienstnamen aus der Datei
+ <filename>/etc/services</filename> funktionieren nicht.</para>
+ </note>
+
+ <para>Auf &unix;-artigen Betriebssystemen sind die Ports kleiner 1024
+ privilegierten Prozessen vorbehalten, m&uuml;ssen also mit als/von
+ <username>root</username> gestartet werden und weiterhin laufen. Damit
+ &man.mac.portacl.4; die Vergabe von Ports kleiner als 1024 an nicht
+ privilegierte Prozesse &uuml;bernehmen kann, mu&szlig; die &unix;
+ Standardeinstellung deaktiviert werden. Dazu &auml;ndert man die
+ &man.sysctl.8; Variablen
+ <literal>net.inet.ip.portrange.reservedlow</literal> und
+ <literal>net.inet.ip.portrange.reservedhigh</literal> auf den Wert
+ <quote>0</quote>.</para>
+
+ <para>Weiterf&uuml;hrende Informationen entnehmen Sie bitte den unten aufgef&uuml;hrten Beispielen oder der Man-Page &man.mac.portacl.4;!</para>
+
+ <sect2>
+ <title>Beispiele</title>
+ <para>Die folgenden Beispiele sollten ein wenig Licht in die obige
+ Diskussion bringen:</para>
+
+ <screen>&prompt.root; <userinput>sysctl security.mac.portacl.port_high=1023</userinput>
+&prompt.root; <userinput>sysctl net.inet.ip.portrange.reservedlow=0 net.inet.ip.portrange.reservedhigh=0</userinput></screen>
+
+ <para>Zun&auml;chst bestimmen wir, dass &man.mac.portacl.4; f&uuml;r alle
+ privilegierten Ports gelten soll und deaktivieren die normale
+ &unix;-Beschr&auml;nkung.</para>
+
+ <screen>&prompt.root; <userinput>sysctl security.mac.portacl.suser_exempt=1</userinput></screen>
+
+ <para> Da <username>root</username> von dieser Richtlinie nicht
+ beeintr&auml;chtigt werden soll, setzen wir hier
+ <literal>security.mac.portacl.suser_exempt</literal> auf einen Wert
+ ungleich Null. Das Modul &man.mac.portacl.4; ist nun so eingerichtet,
+ wie es &unix;-artige Betriebssysteme normal ebenfalls tun.</para>
+
+ <screen>&prompt.root; <userinput>sysctl security.mac.portacl.rules=uid:80:tcp:80</userinput></screen>
+
+ <para>Nun erlauben wir dem Nutzer mit der <acronym>UID</acronym> 80,
+ normalerweise dem Nutzer <username>www</username>, den Port 80 zu verwenden. Dadurch kann der Nutzer <username>www</username> einen Webserver
+ betreiben, ohne daf&uuml;r mit <username>root</username>-Privilegien
+ ausgestattet zu sein.</para>
+
+ <screen>&prompt.root; <userinput>sysctl security.mac.portacl.rules=uid:1001:tcp:110,uid:1001:tcp:995</userinput></screen>
+
+ <para>Hier wird dem Nutzer mit der <acronym>UID</acronym> 1001 erlaubt,
+ die <acronym>TCP</acronym> Ports 110 (<quote>pop3</quote>) und 995
+ (<quote>pop3s</quote>) zu verwenden. Dadurch kann dieser Nutzer einen
+ Server starten, der Verbindungen an diesen beiden Ports annehmen
+ kann.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="mac-partition">
+ <title>Das MAC Modul partition</title>
+
+ <indexterm>
+ <primary>MAC Process Partition Policy</primary>
+ </indexterm>
+
+ <para>Modulname: <filename>mac_partition.ko</filename></para>
+
+ <para>Parameter f&uuml;r die Kernelkonfiguration:
+ <literal>options MAC_PARTITION</literal>
+ </para>
+
+ <para>Bootparameter <literal>mac_partition_load="YES"</literal></para>
+
+ <para>Die Richtlinie &man.mac.partition.4; setzt Prozesse in spezielle
+ <quote>Partitionen</quote>, entsprechend dem zugewiesenen
+ <acronym>MAC</acronym> Label. Man kann sich das vorstellen wie eine
+ spezielle Art &man.jail.8;, auch wenn das noch kein wirklich guter
+ Vergleich ist.</para>
+
+ <para>Es wird empfohlen, dieses Modul durch einen Eintrag in
+ &man.loader.conf.5; zu aktivieren, so dass die Richtlinie w&auml;hrend
+ des Bootvorganges eingebunden wird.</para>
+
+ <para>Der Gro&szlig;teil der Konfiguration geschieht mit dem Kommando
+ &man.setpmac.8;, wie gleich erkl&auml;rt wird. Au&szlig;erdem gibt es folgenden <command>sysctl</command> Parameter f&uuml;r diese Richtlinie.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>security.mac.partition.enabled</literal> erzwingt die
+ Verwendung von <acronym>MAC</acronym>
+ Proze&szlig;-Partitionen.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Sobald diese Richtlinie aktiv ist, sehen Nutzer nur noch ihre eigenen
+ Prozesse, und alle anderen Prozesse, die ebenfalls derselben
+ Proze&szlig;-Partition zugeordnet sind. Sie k&ouml;nnen jedoch nicht auf
+ Prozesse oder Werkzeuge au&szlig;erhalb des Anwendungsbereich dieser
+ Partition zugreifen. Das bedeutet unter anderem, das ein Nutzer, der
+ einer Klasse <literal>insecure</literal> zugeordnet ist, nicht auf das
+ Kommando <command>top</command> zugreifen kann - wie auch auf viele
+ anderen Befehle, die einen eigenen Proze&szlig; erzeugen.</para>
+
+ <para>Um einen Befehl einer Proze&szlig;-Partition zuzuordnen, mu&szlig;
+ dieser durch das Kommando <command>setpmac</command> mit einem Label
+ versehen werden:</para>
+
+ <screen>&prompt.root; <userinput>setpmac partition/13 top</userinput></screen>
+
+ <para>Diese Zeile f&uuml;gt das Kommando <command>top</command> dem
+ Labelsatz f&uuml;r Nutzer der Klasse <literal>insecure</literal> hinzu,
+ sofern die Partition 13 mit der Klasse <literal>insecure</literal>
+ &uuml;bereinstimmt. Beachten Sie, dass alle Prozesse, die von Nutzern
+ dieser Klasse erzeugt werden, das Label <literal>partition/13</literal>
+ erhalten, und dieses auch nicht durch den Nutzer ge&auml;ndert werden
+ kann.</para>
+
+ <sect2>
+ <title>Beispiele</title>
+
+ <para>Der folgende Befehl listet die vergebenen Label f&uuml;r
+ Proze&szlig;-Partitionen und die laufenden Prozesse auf.</para>
+
+ <screen>&prompt.root; <userinput>ps Zax</userinput></screen>
+
+ <para>Das n&auml;chste Kommando liefert das Label der
+ Proze&szlig;-Partition eines anderen Nutzers
+ <username>trhodes</username> und dessen gegenw&auml;rtig laufenden
+ Prozesse zur&uuml;ck.</para>
+
+ <screen>&prompt.root; <userinput>ps -ZU trhodes</userinput></screen>
+
+ <note>
+ <para>Jeder Nutzer kann die Prozesse in der Proze&szlig;-Partition von
+ <username>root</username> betrachten, solange nicht die Richtlinie
+ &man.mac.seeotheruids.4; geladen wurde.</para>
+ </note>
+
+ <para>Eine ausgefeilte Umsetzung dieser Richtlinie deaktiviert alle
+ Dienste in <filename>/etc/rc.conf</filename> und startet diese dann
+ sp&auml;ter durch ein Skript, das jedem Dienst das passende Label
+ zuordnet.</para>
+
+ <note>
+ <para>Die folgenden Richtlinien verwenden Zahlenwerte anstatt der drei
+ Standardlabels. Diese Optionen, und ihre Grenzen, werden in den
+ zugeh&ouml;rigen Manpages genauer erkl&auml;rt.</para>
+ </note>
+ </sect2>
+ </sect1>
+
+ <sect1 id="mac-mls">
+ <title>Das MAC Modul Multi-Level Security</title>
+
+ <indexterm>
+ <primary>MAC Multi-Level Security Policy</primary>
+ </indexterm>
+
+ <para>Modulname: <filename>mac_mls.ko</filename></para>
+
+ <para>Parameter f&uuml;r die Kernelkonfiguration: <literal>options
+ MAC_MLS</literal></para>
+
+ <para>Bootparameter: <literal>mac_mls_load="YES"</literal></para>
+
+ <para>Die Richtlinie &man.mac.mls.4; kontrolliert die Zugriffe zwischen
+ Subjekten und Objekten, indem sie den Informationsflu&szlig; strengen
+ Regeln unterwirft.</para>
+
+ <para>In <acronym>MLS</acronym> Umgebungen wird jedem Subjekt oder Objekt
+ ein <quote>Freigabe</quote>-Level zugeordnet, und diese werden wiederum
+ zu einzelnen Verb&uuml;nden zusammengefa&szlig;t. Da diese Freigabe-
+ oder Anf&auml;lligkeits-Level Zahlen gr&ouml;&szlig;er 6000 erreichen
+ k&ouml;nnen, ist es f&uuml;r jeden Systemadministrator eine undankbare
+ Aufgabe, jede Entit&auml;t von Grund auf zu konfigurieren. Zum
+ Gl&uuml;ck gibt es 3 <quote>instant</quote> Labels, die in der Richtlinie
+ zur Anwendung bereit stehen.</para>
+
+ <para>Diese drei Labels hei&szlig;en <literal>mls/low</literal>,
+ <literal>mls/equal</literal> und <literal>mls/high</literal>. Da sie in
+ den Manpages &man.mac.mls.4; ausf&uuml;hrlich beschrieben werden, gibt
+ es hier nur einen kurzen Abri&szlig;:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Das Label <literal>mls/low</literal> ist eine niedrige
+ Einstellung, die von allen anderen dominiert werden darf. Alles, was
+ mit <literal>mls/low</literal> versehen wird, hat ein niedriges
+ Freigabe-Level und darf auf keine Informationen zugreifen, denen ein
+ h&ouml;heres Freigabe-Level zugeordnet wurde. Einem Objekt mit
+ diesem Label kann au&szlig;erdem keine Information durch ein Objekt
+ h&ouml;herer Freigabe &uuml;bergeben werden, es kann also auch nicht
+ durch solche Objekte editiert oder &uuml;berschrieben werden.</para>
+ </listitem>
+
+ <listitem>
+ <para>Das Label <literal>mls/equal</literal> wird an Objekte vergeben,
+ die von dieser Richtlinie ausgenommen werden sollen.</para>
+ </listitem>
+
+ <listitem>
+ <para>Das Label <literal>mls/high</literal> verk&ouml;rpert das
+ h&ouml;chstm&ouml;gliche Freigabe-Level. Objekte, denen dieses Label
+ zugeordnet wird, dominieren alle anderen Objekte des Systems.
+ Trotzdem k&ouml;nnen sie Objekten mit einem niedrigeren
+ Freigabe-Level keine Informationen zuspielen.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para><acronym>MLS</acronym> bietet:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Eine hierarchische Sicherheitsschicht und Zuordnung
+ nichthierarchischer Kategorien;</para>
+ </listitem>
+
+ <listitem>
+ <para>Feste Regeln: kein <quote>Read-Up</quote>, kein
+ <quote>Write-Down</quote> (ein Subjekt kann nur Objekte gleicher oder
+ <emphasis>niedrigerer</emphasis> Stufe lesen, und es kann nur Objekte
+ gleicher oder <emphasis>h&ouml;herer</emphasis> Stufe
+ schreiben);</para>
+ </listitem>
+
+ <listitem>
+ <para>Geheimhaltung (indem unangemessene Offenlegung von Daten
+ verhindert wird);</para>
+ </listitem>
+
+ <listitem>
+ <para>Eine Basis zum Entwerfen von Systemen, die Daten verschiedener
+ Vertraulichkeitsebenen gleichzeitig handhaben sollen (ohne das
+ geheime und vertrauliche Informationen untereinander ausgetauscht
+ werden k&ouml;nnen).</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Nachfolgend werden die <command>sysctl</command>-Variablen
+ vorgestellt, die f&uuml;r die Einrichtung spezieller Dienste und
+ Schnittstellen vorhanden sind.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>security.mac.mls.enabled</literal> schaltet die
+ Richtlinie <acronym>MLS</acronym> ein (oder aus).</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>security.mac.mls.ptys_equal</literal> sorgt daf&uuml;r,
+ dass w&auml;hrend der Initialisierung alle &man.pty.4;-Ger&auml;te
+ als <literal>mls/equal</literal> gekennzeichnet werden.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>security.mac.mls.revocation_enabled</literal> sorgt
+ daf&uuml;r, dass die Zugriffsrechte von Objekten wieder
+ zur&uuml;ckgesetzt werden, nachdem deren Label vor&uuml;bergehend auf
+ ein niedrigeres Freigabe-Level ge&auml;ndert wurde.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>security.mac.mls.max_compartments</literal> gibt die
+ maximale Anzahl von Verb&uuml;nden an. Im Prinzip ist es die
+ h&ouml;chste Nummer eines Verbundes auf dem System.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Um die Labels der <acronym>MLS</acronym> Richtlinie zu bearbeiten
+ verwendet man &man.setfmac.8;. Um ein Objekt zu kennzeichnen, benutzen
+ Sie folgendes Kommando:</para>
+
+ <screen>&prompt.root; <userinput>setfmac mls/5 test</userinput></screen>
+
+ <para>Um das <acronym>MLS</acronym>-Label der Datei
+ <filename>test</filename> auszulesen, verwenden Sie dieses
+ Kommando:</para>
+
+ <screen>&prompt.root; <userinput>getfmac test</userinput></screen>
+
+ <para>Dies ist eine Zusammenstellung der Merkmale von
+ <filename>test</filename>. Ein anderer Ansatz ist, f&uuml;r diese
+ Richtlinie eine Konfigurationsdatei in <filename
+ class="directory">/etc</filename> abzulegen, die alle Informationen
+ enth&auml;lt und mit der dann das Kommando <command>setfmac</command>
+ gef&uuml;ttert wird. Diese Vorgehensweise wird erkl&auml;rt, nachdem
+ alle Richtlinien vorgestellt wurden.</para>
+
+ <sect2>
+ <title>Verbindlicher Vertraulichkeit in der Planungsphase</title>
+
+ <para>Mit dem Richtlinienmodul <literal> Multi-Level Security</literal>
+ bereitet sich ein Administrator darauf vor, den Flu&szlig;
+ vertraulicher Informationen zu kontrollieren. Beim Starten der
+ Richtlinie ist immer <literal>mls/low</literal> voreingestellt&nbsp;-
+ alles kann auf alles zugreifen. Der Administrator &auml;ndert dies
+ w&auml;hrend der eigentlichen Konfiguration, indem er die
+ Vertraulichkeit bestimmter Objekte erh&ouml;ht.</para>
+
+ <para>Jenseits der drei Grundeinstellungen des Labels kann der
+ Administrator einzelne Nutzer oder Nutzergruppen nach Bedarf
+ zusammenschlie&szlig;en und den Informationsaustausch zwischen diesen
+ gestatten oder unterbinden. Es ist sicher eine Vereinfachung, die
+ Freigabe-Level mit Begriffen wie <literal>vertraulich</literal>,
+ <literal>geheim</literal> oder <literal>streng geheim</literal> zu
+ bezeichnen. Einige Administratoren erstellen einfach verschiedene
+ Gruppen auf der Ebene von gegenw&auml;rtigen Projekten. Ungeachtet der
+ Herangehensweise bei der Klassifizierung mu&szlig; ein gut durchdachter
+ Plan existieren, bevor eine derart einengende Richtlinie umgesetzt
+ wird.</para>
+
+ <para>Exemplarisch f&uuml;r die Anwendung dieses Moduls bzw. dieser
+ Richtlinie seien angef&uuml;hrt:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Ein E-Commerce Webserver</para>
+ </listitem>
+
+ <listitem>
+ <para>Ein Dateiserver, der vertrauliche Informationen einer Firma
+ oder eines Konzerns speichert</para>
+ </listitem>
+
+ <listitem>
+ <para>Umgebungen in Finanzeinrichtungen</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Der unsinnigste Einsatzort f&uuml;r diese Richtlinie w&auml;re ein
+ Arbeitsplatzrechner mit nur zwei oder drei Benutzern.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="mac-biba">
+ <title>Das MAC Modul Biba</title>
+
+ <indexterm>
+ <primary>MAC Biba Integrity Policy</primary>
+ </indexterm>
+
+ <para>Modulname: <filename>mac_biba.ko</filename></para>
+
+ <para>Parameter f&uuml;r die Kernelkonfiguration:
+ <literal>options MAC_BIBA</literal></para>
+
+ <para>Bootparameter: <literal>mac_biba_load="YES"</literal></para>
+
+ <para>Das Modul &man.mac.biba.4; l&auml;dt die <acronym>MAC</acronym> Biba
+ Richtlinie. Diese &auml;hnelt stark der <acronym>MLS</acronym>
+ Richtlinie, nur das die Regeln f&uuml;r den Informationsflu&szlig; ein
+ wenig vertauscht sind. Es wird in diesem Fall der absteigende Flu&szlig;
+ sicherheitskritischer Information geregelt, w&auml;hrend die
+ <acronym>MLS</acronym> Richtlinie den aufsteigenden Flu&szlig; regelt.
+ In gewissen Sinne treffen dieses und das vorangegangene Unterkapitel also
+ auf beide Richtlinien zu.</para>
+
+ <para>In einer Biba-Umgebung wird jedem Subjekt und jedem Objekt ein
+ <quote>Integrit&auml;ts</quote>-Label zugeordnet. Diese Labels sind in
+ hierarchischen Klassen und nicht-hierarchischen Komponenten geordnet. Je
+ h&ouml;her die Klasse, um so h&ouml;her die Integrit&auml;t.</para>
+
+ <para>Die unterst&uuml;tzten Labels hei&szlig;en
+ <literal>biba/low</literal>, <literal>biba/equal</literal> und
+ <literal>biba/high</literal>. Sie werden im Folgenden
+ erkl&auml;rt:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>biba/low</literal> ist die niedrigste Stufe der
+ Integrit&auml;t, die einem Objekt verliehen werden kann. Wenn sie
+ einem Objekt oder Subjekt zugeordnet wird, kann dieses auf Objekte
+ oder Subjekte, die biba/high markiert wurden, zwar lesend zugreifen,
+ nicht jedoch schreibend.</para>
+ </listitem>
+
+ <listitem>
+ <para>Das Label <literal>biba/equal</literal> ist, wie der aufmerksame
+ Leser sicherlich schon ahnt, f&uuml;r die Ausnahmen dieser Richtlinie
+ gedacht und sollte nur diesen Ausnahmen entsprechenden Objekten
+ verliehen werden.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>biba/high</literal> markierte Subjekte und Objekte
+ k&ouml;nnen Objekte niedrigerer Stufe schreiben , nicht jedoch lesen.
+ Es wird empfohlen, dass dieses Label an Objekte vergeben wird, die
+ sich auf Integrit&auml;t des gesamten Systems auswirken.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Biba stellt bereit:
+
+ <itemizedlist>
+ <listitem>
+ <para>Hierarchische Integrit&auml;tsstufen mit einem Satz
+ nichthierarchischer Integrit&auml;tskategorien;</para>
+ </listitem>
+
+ <listitem>
+ <para>Festgeschriebene Regeln: kein <quote>Write-Up</quote>, kein
+ <quote>Read-Down</quote> (der Gegensatz zu MLS - ein Subjekt
+ erh&auml;lt schreibenden Zugriff auf Objekte gleicher oder geringerer
+ Stufe, aber nicht bei h&ouml;herer, und lesenden Zugriff bei gleicher
+ Stufe oder h&ouml;erer, aber nicht bei niedrigerer);</para>
+ </listitem>
+
+ <listitem>
+ <para>Integrit&auml;t (es wird die Echtheit der Daten
+ gew&auml;hrleistet, indem unangemessene Ver&auml;nderungen verhindert
+ werden);</para>
+ </listitem>
+
+ <listitem>
+ <para>Eine Abstufung der Gew&auml;hrleistung (im Gegensatz zu MLS, bei
+ der eine Abstufung der Vertraulichkeit vorgenommen wird).</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Folgende <command>sysctl</command> Parameter werden zur Nutzung der
+ Biba-Richtlinie angeboten:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>security.mac.biba.enabled</literal> zum
+ Aktivieren/Deaktivieren der Richtlinie auf dem Zielsystem.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>security.mac.biba.ptys_equal</literal> wird verwendet,
+ um die Biba-Richtlinie auf der &man.pty.4;-Schnittstelle zu
+ deaktivieren.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>security.mac.biba.revocation_enabled</literal>
+ erzwingt das Zur&uuml;cksetzen des Labels, falls dieses zeitweise
+ ge&auml;ndert wurde um ein Subjekt zu dominieren.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Um Einstellungen der Biba Richtlinie f&uuml;r Systemobjekte zu
+ ver&auml;ndern werden die Befehle <command>setfmac</command> und
+ <command>getfmac</command> verwendet:</para>
+
+ <screen>&prompt.root; <userinput>setfmac biba/low test</userinput>
+&prompt.root; <userinput>getfmac test</userinput>
+test: biba/low</screen>
+
+ <sect2>
+ <title>Verbindliche Integrit&auml;t in der Planungsphase</title>
+
+ <para>Integrit&auml;t garantiert, im Unterschied zu Sensitivit&auml;t,
+ dass Informationen nur durch vertraute Parteien ver&auml;ndert werden
+ k&ouml;nnen. Dies schlie&szlig;t Informationen ein, die zwischen
+ Subjekten ausgetauscht werden, zwischen Objekt, oder auch zwischen den
+ beiden. Durch Integrit&auml;t wird gesichert, das Nutzer nur
+ Informationen ver&auml;ndern, oder gar nur lesen k&ouml;nnen, die sie
+ explizit ben&ouml;tigen.</para>
+
+ <para>Das Modul &man.mac.biba.4; er&ouml;ffnet einem Administrator die
+ M&ouml;glichkeit zu bestimmen, welche Dateien oder Programme ein Nutzer
+ oder eine Nutzergruppe sehen bzw. aufrufen darf. Gleichzeitig kann er
+ zusichern, dass dieselben Programme und Dateien frei von Bedrohungen
+ sind und das System die Echtheit gew&auml;hrleistet - f&uuml;r diesen
+ Nutzer oder die Nutzergruppe.</para>
+
+ <para>W&auml;hrend der anf&auml;nglichen Phase der Planung mu&szlig; der
+ Administrator vorbereitet sein, Nutzer in Klassen, Stufen und Bereiche
+ einzuteilen. Der Zugriff auf Dateien und insbesondere auch Programme
+ wird verhindert sowohl vor als auch nachdem sie gestartet wurden. Das
+ System selbst erh&auml;lt als Voreinstellung das Label
+ <literal>biba/high</literal> sobald das Modul aktiviert wird&nbsp;- und
+ es liegt allein am Administrator, die verschiedenen Klassen und Stufen
+ f&uuml;r die einzelnen Nutzer zu konfigurieren. Anstatt mit Freigaben
+ zu arbeiten, wie weiter oben gezeigt wurde, k&ouml;nnte man auch
+ &Uuml;berbegriffe f&uuml;r Projekte oder Systemkomponenten entwerfen.
+ Zum Beispiel, ausschlie&szlig;lich Entwicklern den Vollzugriff auf
+ Quellcode, Compiler und Entwicklungswerkzeuge gew&auml;hren,
+ w&auml;hrend man andere Nutzer in Kategorien wie Tester, Designer oder
+ einfach nur <quote>allgemeiner Nutzer</quote> zusammenfa&szlig;t, die
+ f&uuml;r diese Bereiche lediglich lesenden Zugriff erhalten
+ sollen.</para>
+
+ <para>Mit seinem urspr&uuml;nglichen Sicherheits-Standpunkt ist ein
+ Subjekt niedrigerer Integrit&auml;t unf&auml;hig, ein Subjekt
+ h&ouml;herer Integrit&auml;t zu ver&auml;ndern. Ein Subjekt
+ h&ouml;herer Integrit&auml;t kann ein Subjekt niedrigerer
+ Integrit&auml;t weder beobachten noch lesen. Wenn man ein Label
+ f&uuml;r die niedrigstm&ouml;gliche Klasse erstellt, kann man diese
+ allen Subjekten verwehren. Einige weitsichtig eingerichtete
+ Umgebungen, die diese Richtlinie verwenden, sind eingeschr&auml;nkte
+ Webserver, Entwicklungs- oder Test-Rechner oder Quellcode-Sammlungen.
+ Wenig sinnvoll ist diese Richtlinie auf einer Arbeitsstation, oder auf
+ Rechnern die als Router oder Firewall verwendet werden.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="mac-lomac">
+ <title>Das MAC Modul LOMAC</title>
+
+ <indexterm>
+ <primary>MAC LOMAC</primary>
+ </indexterm>
+ <para>Modulname: <filename>mac_lomac.ko</filename></para>
+
+ <para>Parameter f&uuml;r die Kernelkonfiguration:
+ <literal>options MAC_LOMAC</literal></para>
+
+ <para>Bootparameter: <literal>mac_lomac_load="YES"</literal></para>
+
+ <para>Anders als die Biba Richtlinie erlaubt die &man.mac.lomac.4;
+ Richtlinie den Zugriff auf Objekte niedrigerer Integrit&auml;t nur,
+ nachdem das Integrit&auml;tslevel gesenkt wurde. Dadurch wird eine
+ St&ouml;rung derIntegrit&auml;tsregeln verhindert.</para>
+
+ <para>Die <acronym>MAC</acronym> Version der <quote>Low-Watermark</quote>
+ Richtlinie, die nicht mit der &auml;lteren &man.lomac.4;-Implementierung
+ verwechselt werden darf, arbeitet fast genauso wie Biba. Anders ist,
+ dass hier <quote>schwebende</quote> Label verwendet werden, die ein
+ Herunterstufen von Subjekten durch Hilfsverb&uuml;nde erm&ouml;glichen.
+ Dieser zweite Verbund wird in der Form <literal>[auxgrade]</literal>
+ angegeben und sollte in etwa aussehen wie <literal>lomac/10[2]</literal>,
+ wobei die Ziffer zwei (2) hier den Hilfsverbund abbildet.</para>
+
+ <para>Die <acronym>MAC</acronym> Richtlinie <literal> LOMAC</literal>
+ beruht auf einer durchg&auml;ngigen Etikettierung aller Systemobjekte mit
+ Integrit&auml;tslabeln, die Subjekten das Lesen von Objekten niedriger
+ Integrit&auml;t gestatten und dann das Label des Subjektes herunterstufen
+ - um zuk&uuml;nftige Schreibvorg&auml;nge auf Objekte hoher
+ Integrit&auml;t zu unterbinden. Dies ist die Funktion der Option
+ <literal>[auxgrade]</literal>, die eben vorgestellt wurde. Durch sie
+ erh&auml;lt diese Richtlinie eine bessere Kompatibilit&auml;t und die
+ Initialisierung ist weniger aufw&auml;ndig als bei der Richtlinie
+ Biba.</para>
+ <sect2>
+
+ <title>Beispiele</title>
+
+ <para>Wie schon bei den Richtlinien Biba und <acronym>MLS</acronym>
+ werden die Befehle <command>setfmac</command> und
+ <command>setpmac</command> verwendet, um die Labels an den
+ Systemobjekten zu setzen:</para>
+
+ <screen>&prompt.root; <userinput>setfmac /usr/home/trhodes lomac/high[low]</userinput>
+&prompt.root; <userinput>getfmac /usr/home/trhodes</userinput> lomac/high[low]</screen>
+
+ <para>Beachten Sie, dass hier der Hilfswert auf <literal>low</literal>
+ gesetzt wurde - dieses Leistungsmerkmal ist nur in der
+ <acronym>MAC</acronym> <literal>LOMAC</literal> Richtlinie
+ enthalten.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="mac-implementing">
+ <title>Beispiel 1: Nagios in einer MAC Jail</title>
+
+ <indexterm>
+ <primary>Nagios in a MAC Jail</primary>
+ </indexterm>
+
+ <para>Die folgende Demonstration setzt eine sichere Umgebung mithilfe
+ verschiedener <acronym>MAC</acronym> Module und sorgf&auml;ltig
+ konfigurierter Richtlinien um. Es handelt sich jedoch nur um einen Test
+ und sollte nicht als Antwort auf jedes Problem in Fragen Sicherheit
+ gesehen werden. Eine Richtlinie nur umzusetzen und dann einfach laufen
+ zu lassen, funktioniert nie und kann eine echte Arbeitsumgebung in eine
+ Katastrophe st&uuml;rzen.</para>
+
+ <para>Bevor es losgeht, mu&szlig; jedes Dateisystem mit der Option
+ <option>multilabel</option>, wie weiter oben beschrieben, markiert
+ werden. Dies nicht zu tun, f&uuml;hrt zu Fehlern. Au&szlig;erdem
+ m&uuml;ssen die Ports <filename
+ role="package">net-mngt/nagios-plugins</filename>, <filename
+ role="package">net-mngt/nagios</filename> und <filename
+ role="package">www/apache13</filename> installiert und konfiguriert sein,
+ so dass sie ordentlich laufen.</para>
+
+ <sect2>
+ <title>Erstellen einer Nutzerklasse <literal>insecure</literal></title>
+
+ <para>Beginnen wir die Prozedur mit dem Hinzuf&uuml;gen einer
+ Nutzerklasse in der Datei <filename>/etc/login.conf</filename>:
+
+ <programlisting>insecure:\
+:copyright=/etc/COPYRIGHT:\
+:welcome=/etc/motd:\
+:setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\
+:path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin--
+:manpath=/usr/share/man /usr/local/man:\
+:nologin=/usr/sbin/nologin:\
+:cputime=1h30m:\
+:datasize=8M:\
+:vmemoryuse=100M:\
+:stacksize=2M:\
+:memorylocked=4M:\
+:memoryuse=8M:\
+:filesize=8M:\
+:coredumpsize=8M:\
+:openfiles=24:\
+:maxproc=32:\
+:priority=0:\
+:requirehome:\
+:passwordtime=91d:\
+:umask=022:\
+:ignoretime@:\
+:label=biba/10(10-10):</programlisting>
+
+ <para>Zus&auml;tzlich f&uuml;gen wir beim Standardnutzer folgende Zeile
+ hinzu:</para>
+
+ <programlisting>:label=biba/high:</programlisting>
+
+ <para>Anschlie&szlig;end mu&szlig; die Datenbank neu erstellt
+ werden:</para>
+
+ <screen>&prompt.root; <userinput>cap_mkdb /etc/login.conf</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>Boot-Konfiguration</title>
+
+ <para>Starten Sie den Rechner noch nicht neu. F&uuml;gen Sie
+ zun&auml;chst noch die folgenden Zeilen in die Datei
+ <filename>/boot/loader.conf</filename> ein, damit die ben&ouml;tigten
+ Module w&auml;hrend des Systemstarts geladen werden:</para>
+
+ <programlisting>mac_biba_load="YES"
+mac_seeotheruids_load="YES"</programlisting>
+ </sect2>
+
+ <sect2>
+ <title>Nutzer einrichten</title>
+ <para>Ordnen Sie den Superuser <username>root</username> der Klasse
+ <literal>default</literal> zu:</para>
+
+ <screen>&prompt.root; <userinput>pw usermod root -L default</userinput></screen>
+
+ <para>Alle Nutzerkonten, die weder <username>root</username> noch
+ Systemkonten sind, brauchen nun eine Loginklasse, da sie sonst keinen
+ Zugriff auf sonst &uuml;bliche Befehle erhalten, wie bspw. &man.vi.1;.
+ Das folgende <command>sh</command> Skript wird diese Aufgabe
+ erledigen:</para>
+
+ <screen>&prompt.root; <userinput>for x in `awk -F: '($3 &gt;= 1001) &amp;&amp; ($3 != 65534) { print $1 }' \</userinput>
+ <userinput>/etc/passwd`; do pw usermod $x -L default; done;</userinput></screen>
+
+ <para>Verschieben Sie die Nutzer <username>nagios</username> und
+ <username>www</username> in die <literal>insecure</literal>
+ Klasse:</para>
+
+ <screen>&prompt.root; <userinput>pw usermod nagios -L insecure</userinput></screen>
+ <screen>&prompt.root; <userinput>pw usermod www -L insecure</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>Die Kontextdatei erstellen</title>
+
+ <para>Nun mu&szlig; eine Kontextdatei erstellt werden. Die folgende
+ Beispieldatei soll dazu in <filename>/etc/policy.contexts</filename>
+ gespeichert werden:</para>
+
+ <programlisting># This is the default BIBA policy for this system.
+
+# System:
+/var/run biba/equal
+/var/run/* biba/equal
+
+/dev biba/equal
+/dev/* biba/equal
+
+/var biba/equal
+/var/spool biba/equal
+/var/spool/* biba/equal
+
+/var/log biba/equal
+/var/log/* biba/equal
+
+/tmp biba/equal
+/tmp/* biba/equal
+/var/tmp biba/equal
+/var/tmp/* biba/equal
+
+/var/spool/mqueue biba/equal
+/var/spool/clientmqueue biba/equal
+
+# For Nagios:
+/usr/local/etc/nagios
+/usr/local/etc/nagios/* biba/10
+
+/var/spool/nagios biba/10
+/var/spool/nagios/* biba/10
+
+# For apache
+/usr/local/etc/apache biba/10
+/usr/local/etc/apache/* biba/10
+</programlisting>
+
+ <para>Die Richtlinie erzwingt Sicherheit, indem der
+ Informationsflu&szlig; Einschr&auml;nkungen unterworfen wird. In der
+ vorliegenden Konfiguration kann kein Nutzer, weder
+ <username>root</username> noch andere, auf
+ <application>Nagios</application> zugreifen. Konfigurationsdateien und
+ die Prozesse, die Teil von <application>Nagios</application> sind,
+ werden durch unsere <acronym>MAC</acronym> vollst&auml;ndig
+ abgegrenzt.</para>
+
+ <para>Die Kontextdatei kann nun vom System eingelesen werden, indem
+ folgender Befehl ausgef&uuml;hrt wird:</para>
+
+ <screen>&prompt.root; <userinput>setfmac -ef /etc/policy.contexts /</userinput>
+&prompt.root; <userinput>setfmac -ef /etc/policy.contexts /</userinput></screen>
+
+ <note>
+ <para>Das obenstehende Dateisystem-Layout kann, je nach Umgebung, sehr
+ unterschiedlich aussehen. Au&szlig;erdem mu&szlig; es auf jedem
+ einzelnen Dateisystem ausgef&uuml;hrt werden.</para>
+ </note>
+
+ <para>In die Datei <filename>/etc/mac.conf</filename> m&uuml;ssen nun
+ noch diese &Auml;nderungen eingetragen werden:</para>
+
+ <programlisting>default_labels file ?biba
+default_labels ifnet ?biba
+default_labels process ?biba
+default_labels socket ?biba
+</programlisting>
+ </sect2>
+
+ <sect2>
+ <title>Netzwerke einbinden</title>
+
+ <para>Tragen Sie die folgende Zeile in die Datei
+ <filename>/boot/loader.conf</filename> ein:</para>
+
+ <programlisting>security.mac.biba.trust_all_interfaces=1</programlisting>
+
+ <para>Und das Folgende geh&ouml;rt in Datei <filename>rc.conf</filename>
+ zu den Optionen f&uuml;r die Netzwerkkarte. Falls die
+ Netzwerkverbindung(-en) via <acronym>DHCP</acronym>
+ konfiguriert werden, mu&szlig; man dies nach jedem Systemstart
+ eigenh&auml;ndig nachtragen:</para>
+
+ <programlisting>maclabel biba/equal</programlisting>
+ </sect2>
+
+ <sect2>
+ <title>Testen der Konfiguration</title>
+
+ <indexterm>
+ <primary>MAC Configuration Testing</primary>
+ </indexterm>
+
+ <para>Versichern Sie sich, dass der Webserver und
+ <application>Nagios</application> nicht automatisch geladen werden und
+ starten Sie den Rechner neu. Pr&uuml;fen Sie nun, ob
+ <username>root</username> wirklich keinen Zugriff auf die Dateien im
+ Konfigurationsverzeichnis von <application>Nagios</application> hat.
+ Wenn <username>root</username> den Befehl &man.ls.1; auf
+ <filename>/var/spool/nagios</filename> ausf&uuml;hren kann, ist
+ irgendwas schief gelaufen. Es sollte ein <errorname>permission
+ denied</errorname> Fehler ausgegeben werden.</para>
+
+ <para>Wenn alles gut aussieht, k&ouml;nnen
+ <application>Nagios</application>,
+ <application>Apache</application> und
+ <application>Sendmail</application> gestartet werden - allerdings auf
+ eine Weise, die unserer Richtlinie gerecht wird. Zum Beispiel durch die
+ folgenden Kommandos:</para>
+
+ <screen>&prompt.root; <userinput>cd /etc/mail &amp;&amp; make stop &amp;&amp; \
+setpmac biba/equal make start &amp;&amp; setpmac biba/10\(10-10\) apachectl start &amp;&amp; \
+setpmac biba/10\(10-10\) /usr/local/etc/rc.d/nagios.sh forcestart</userinput></screen>
+
+ <para>Versichern Sie sich lieber doppelt, dass alles ordentlich
+ l&auml;uft. Wenn nicht, pr&uuml;fen Sie die Logs und Fehlermeldungen.
+ Verwenden Sie das &man.sysctl.8; Werkzeug um die Sicherheitsrichtlinie
+ &man.sysctl.8; zu deaktivieren und versuchen Sie dann alles noch einmal
+ zu starten.</para>
+
+ <note>
+ <para>Der Superuser kann den Vollzug der Richtlinie schalten und die
+ Konfiguration ohne Furcht ver&auml;ndern. Folgender Befehl stuft
+ eine neu gestartete Shell herunter:</para>
+
+ <screen>&prompt.root; <userinput>setpmac biba/10 csh</userinput></screen>
+
+ <para>Um dies zu vermeiden, werden die Nutzer durch &man.login.conf.5;
+ eingeschr&auml;nkt. Wenn &man.setpmac.8; einen Befehl
+ au&szlig;erhalb der definierten Schranken ausf&uuml;hren soll, wird
+ ein Fehler zur&uuml;ckgeliefert. In so einem Fall mu&szlig;
+ <username>root</username> auf <literal>biba/high(high-high)</literal>
+ gesetzt werden.</para>
+ </note>
+ </sect2>
+ </sect1>
+
+ <sect1 id="mac-userlocked">
+ <title>Beispiel 2: User Lock Down</title>
+
+ <para>Grundlage dieses Beispiels ist ein relativ kleines System zur
+ Datenspeicherung mit weniger als 50 Benutzern. Diese haben die
+ M&ouml;glichkeit, sich einzuloggen und d&uuml;rfen nicht nur Daten
+ speichern, sondern auch auf andere Ressourcen zugreifen.</para>
+
+ <para>Die Richtlinien &man.mac.bsdextended.4; und &man.mac.seeotheruids.4;
+ k&ouml;nnen gleichzeitig eingesetzt werden. Zusammen kann man mit ihnen
+ nicht nur den Zugriff auf Systemobjekte einschr&auml;nken, sondern auch
+ Nutzerprozesse verstecken.</para>
+
+ <para>Beginnen Sie, indem Sie die folgende Zeile in die Datei
+ <filename>/boot/loader.conf</filename> eintragen:<para>
+
+ <programlisting>mac_seeotheruids_load="YES"</programlisting>
+
+ <para>Die Richtlinie &man.mac.bsdextended.4; wird durch den
+ anschlie&szlig;enden Eintrag in <filename>/etc/rc.conf</filename>
+ hinzugef&uuml;gt:</para>
+
+ <programlisting>ugidfw_enable="YES"</programlisting>
+
+ <para>Die Standardregeln, welche in
+ <filename>/etc/rc.bsdextended</filename> gespeichert sind, werden zum
+ Systemstart geladen. Sie m&uuml;ssen aber noch angepa&szlig;t werden.
+ Da dieser Computer nur Nutzern dienen soll und weitere Dienste gestartet
+ werden, kann alles bis auf die beiden letzten Zeilen auskommentiert
+ werden. Das sorgt daf&uuml;r dass jeder Nutzer seine eigenen
+ Systemobjekte erh&auml;lt.</para>
+
+ <para>Nun f&uuml;gen wir alle ben&ouml;tigten Nutzer auf der Maschine hinzu
+ und starten neu. Zum Testen der Einstellungen loggen Sie sich parallel
+ zwei mal mit unterschiedlichen Nutzernamen ein und starten Sie das
+ Kommando <command>ps aux</command>. Dort sehen Sie, dass Sie die
+ Prozesse des anderen Nutzers nicht sehen k&ouml;nnen. Versuchen Sie,
+ &man.ls.1; auf das Heimatverzeichnis eines anderen Nutzers
+ auszuf&uuml;hren. Auch dieser Versuch wird fehlschlagen.</para>
+
+ <para>Solange nicht die speziellen <command>sysctl</command>-Variablen
+ ge&auml;ndert wurden, hat der Superuser noch vollen Zugriff. Sobald auch
+ diese Einstellungen angepa&szlig;t wurden, f&uuml;hren Sie ruhig auch
+ den obigen Test als <username>root</username> aus.</para>
+
+ <note>
+ <para>Wenn ein neuer Benutzer hinzugef&uuml;gt wird, ist f&uuml;r diesen
+ zun&auml;chst keine &man.mac.bsdextended.4; Regel im Regelsatz
+ vorhanden. Schnelle Abhilfe schafft hier, einfach das Kernelmodul mit
+ &man.kldunload.8; zu entladen und mit &man.kldload.8; erneut
+ einzubinden.</para>
+ </note>
+ </sect1>
+
+ <sect1 id="mac-troubleshoot">
+ <title>Fehler im MAC beheben</title>
+
+ <indexterm>
+ <primary>MAC Troubleshooting</primary>
+ </indexterm>
+
+ <para>W&auml;hrend der Entwicklung des Frameworks haben einige Nutzer auf
+ Probleme hingewiesen. Einige davon werden hier aufgef&uuml;hrt:</para>
+
+ <sect2>
+ <title>Die Option <option>multilabel</option> greift nicht auf der
+ <filename>/</filename>-Partition</title>
+
+ <para>Es scheint, dass etwa jedem f&uuml;nfzigsten Nutzer dieses Problem
+ widerf&auml;hrt. Und in der Tat - auch wir kennen es aus der
+ Entwicklung. Genauere Untersuchungen dieses <quote>Bugs</quote>
+ machten uns glauben, dass es sich entweder um einen Fehler in oder eine
+ fehlerhafte Interpretation der Dokumentation handelt. Warum auch immer
+ dieser Fehler auftritt - er kann mit folgender Prozedur behoben
+ werden:<para>
+
+ <procedure>
+ <step>
+ <para>&Ouml;ffnen Sie die Datei <filename>/etc/fstab</filename> und
+ setzen Sie die Rootpartition auf <option>ro</option> wie
+ <quote>read-only</quote>.</para>
+ </step>
+
+ <step>
+ <para>Starten Sie in den Einzelnutzermodus.</para>
+ </step>
+
+ <step>
+ <para>Rufen Sie <command>tunefs</command> <option>-l enable</option>
+ f&uuml;r <filename>/</filename> auf.</para>
+ </step>
+
+ <step>
+ <para>Starten Sie in den Mehrbenutzermodus.</para>
+ </step>
+
+ <step>
+ <para>F&uuml;hren Sie <command>mount</command>
+ <option>-urw</option> <filename>/</filename> aus und &auml;ndern
+ Sie anschlie&szlig;end in der Datei <filename>/etc/fstab</filename>
+ die Option <option>ro</option> zur&uuml;ck in <option>rw</option>.
+ Starten Sie das System noch einmal neu.</para>
+ </step>
+
+ <step>
+ <para>Achten Sie besonders auf die Ausgabe von
+ <command>mount</command> um sich zu versichern, dass die
+ <option>multilabel</option> korrekt f&uuml;r das root-Dateisystem
+ gesetzt wurde.</para>
+ </step>
+ </procedure>
+
+ </sect2>
+
+ <sect2>
+ <title>Mit der aktivierten MAC kann ich keinen X11 Server starten</title>
+
+ <para>Dies kann durch die Richtlinie <literal>partition</literal>
+ oder einer fehlerhaften Verwendung einer Richtlinie, die mit Labels
+ arbeitet, auftreten. Zum debuggen versuchen Sie folgendes:</para>
+
+ <procedure>
+ <step>
+ <para>Schauen Sie sich die Fehlermeldungen genau an. Wenn der Nutzer
+ einer <literal>insecure</literal> Klasse angeh&ouml;rt, ist
+ wahrscheinlich die Richtlinie <literal>partition</literal> die
+ Ursache. Versuchen Sie, die Nutzerklasse auf
+ <literal>default</literal> zu stellen und danach die Datenbank mit
+ <command>cap_mkdb</command> zu erneuern. Wenn das Problem dadurch
+ nicht gel&ouml;st wird, gehen Sie weiter zu Schritt 2.</para>
+ </step>
+
+ <step>
+ <para>Gehen Sie die Label-Richtlinien Schritt f&uuml;r Schritt
+ nocheinmal durch. Achten Sie darauf, dass f&uuml;r den Nutzer, bei
+ dem das Problem auftritt, f&uuml;r X11 und das Verzeichnis
+ <filename class="directory">/dev</filename> alle Einstellungen
+ korrekt sind.</para>
+ </step>
+
+ <step>
+ <para>Falls all dies nicht helfen sollte, senden Sie die
+ Fehlermeldung und eine Beschreibung ihrer Arbeitsumgebung an die
+ (englisch-sprachige) TrustedBSD Diskussionsliste auf der <ulink
+ url="http://www.TrustedBSD.org">TrustedBSD</ulink> Webseite oder an
+ die &a.questions; Mailingliste./para>
+ </step>
+ </procedure>
+ </sect2>
+
+ <sect2>
+ <title>Error: &man..secure.path.3; cannot stat
+ <filename>.login_conf</filename></title>
+
+ <para>Wenn ich versuche, von <username>root</username> zu einem anderen
+ Nutzer des Systems zu wechseln, erhalte ich die Fehlermeldung
+ <errorname>_secure_path: unable to state .login_conf</errorname>.
+ </para>
+
+ <para>Diese Meldung wird gew&ouml;hnlich ausgegeben, wenn der Nutzer ein
+ h&ouml;here Label-Einstellung hat als der, dessen Identit&auml;t man
+ annehmen m&ouml;chte. Ausf&uuml;hrlich: Wenn ein Nutzer
+ <username>joe</username> als <option>biba/low</option> gelabelt wurde,
+ kann <username>root</username>, der <option>biba/high</option> als
+ Voreinstellung tr&auml;gt, das Heimatverzeichnis von
+ <username>joe</username> nicht einsehen. Das passiert unabh&auml;nig
+ davon, ob <username>root</username> vorher mit <command>su</command>
+ die Identit&auml;t von <username>joe</username> angenommen hat oder
+ nicht, da das Label sich nicht &auml;ndert. Hier haben wir also einen
+ Fall, in dem das Gew&auml;hrleistungsmodell von Biba verhindert, das
+ der Superuser Objekte einer niedrigeren Integrit&auml;t betrachten
+ kann.</para>
+ </sect2>
+
+ <sect2>
+ <title>Der Nutzer <username>root</username> ist kaputt!</title>
+
+ <para>Im normalen oder sogar im Einzelbenutzermodus wird
+ <username>root</username> nicht anerkannt. Das Kommando
+ <command>whoami</command> liefert 0 (null) und <command>su</command>
+ liefert <errorname>who are you?</errorname> zur&uuml;ck. Was geht da
+ vor?</para>
+
+ <para>Das kann passieren, wenn eine Label-Richtlinie ausgeschaltet wird -
+ entweder durch &man.sysctl.8; oder wenn das Richtlinienmodul entladen
+ wurde. Wenn eine Richtlinie deaktiviert oder auch nur
+ vor&uuml;bergehen deaktiviert wird, mu&szlig; die
+ Bef&auml;higungsdatenbank neu konfiguriert werden, d.h. die
+ <option>label</option> Option mu&szlig; entfernt werden.
+ &Uuml;berpr&uuml;fen Sie, ob alle <option>label</option> Eintr&auml;ge
+ aus der Datei <filename>/etc/login.conf</filename> entfernt wurden und
+ bauen Sie die Datenbank mit <command>cap_mkdb</command> neu.</para>
+
+ <para>Dieser Fehler kann auch auftreten, wenn eine Richtlinie den Zugriff
+ auf die Datei <filename>master.passwd</filename> einschr&auml;nkt.
+ Normalerweise passiert das nur, wenn ein Administrator ein Label an
+ diese Datei vergibt, das mit der allgemeing&uuml;ltigen Richtlinie, die
+ das System verwendet, in Konflikt steht. In solchen F&auml;llen werden
+ die Nutzerinformationen vom System ausgelesen und jeder weitere Zugriff
+ wird blockiert, sobald das neue Label greift. Wenn man die Richtlinie
+ via &man.sysctl.8; ausschaltet, sollte es erstmal wieder gehen.</para>
+ </sect2>
+ </sect1>
</chapter>
<!--
diff --git a/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml b/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml
index 53b9a869d6..d71617e67c 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.162 2010/02/19 19:20:24 fboerner Exp $
- basiert auf: 1.476
+ $FreeBSDde: de-docproj/books/handbook/mirrors/chapter.sgml,v 1.166 2010/05/13 12:23:30 fboerner Exp $
+ basiert auf: 1.479
-->
<appendix id="mirrors">
@@ -939,10 +939,7 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
&man.csup.1; &uuml;ber den Port <filename
role="package">net/csup</filename> installieren. Alternativ
k&ouml;nnen Sie zur Installation auch ein vorkompiliertes
- Paket (Package) verwenden. <application>csup</application>
- unterst&uuml;tzt allerdings keinen CVS-Modus. Wollen Sie
- komplette Repositories spiegeln, m&uuml;ssen Sie also
- weiterhin <application>CVSup</application> einsetzen.
+ Paket (Package) verwenden.
Wollen Sie k&uuml;nftig <application>csup</application>
einsetzen, &uuml;berspringen Sie in den folgenden
Ausf&uuml;hrungen einfach den Abschnitt zur Installation von
@@ -2826,13 +2823,13 @@ doc/zh_*</screen>
</varlistentry>
<varlistentry>
- <term>RELENG_7_3_0_RELEASE</term>
-
- <listitem>
- <para>&os; 7.3</para>
- </listitem>
- </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/porters-handbook/book.sgml b/de_DE.ISO8859-1/books/porters-handbook/book.sgml
index d0ae8a4cb0..43480cf5b9 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.165 2010/01/24 17:02:20 fboerner Exp $
- basiert auf: 1.1016
+ $FreeBSDde: de-docproj/books/porters-handbook/book.sgml,v 1.206 2010/05/16 15:52:14 fboerner Exp $
+ basiert auf: 1.1058
-->
<!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
@@ -33,6 +33,7 @@
<year>2007</year>
<year>2008</year>
<year>2009</year>
+ <year>2010</year>
<holder role="mailto:doc@FreeBSD.org">The FreeBSD German
Documentation Project</holder>
</copyright>
@@ -1866,7 +1867,7 @@ PORTEPOCH= 1</programlisting>
<row>
<entry><filename>java</filename></entry>
- <entry>Software f&uuml;r die Java-Programmiersprache.
+ <entry>Software f&uuml;r die Java&trade;-Programmiersprache.
</entry>
<entry>Die <filename>java</filename>-Kategorie sollte
nicht die Einzige f&uuml;r einen Port sein mit
@@ -3854,10 +3855,10 @@ ALWAYS_KEEP_DISTFILES= yes
in der <filename>/etc/make.conf</filename> zu setzen.
Zum Beispiel w&uuml;rde das Setzen von
- <programlisting>USE_GCC=3.2</programlisting>
+ <programlisting>USE_GCC=3.4</programlisting>
- eine Abh&auml;ngigkeit f&uuml;r GCC32 f&uuml;r jeden Port
- einschliesslich GCC32 selbst hinzuf&uuml;gen!</para>
+ eine Abh&auml;ngigkeit f&uuml;r GCC34 f&uuml;r jeden Port
+ einschliesslich GCC34 selbst hinzuf&uuml;gen!</para>
</note>
<table frame="none">
@@ -3908,8 +3909,8 @@ ALWAYS_KEEP_DISTFILES= yes
<entry>Dieser Port ben&ouml;tigt eine bestimmte
Version von <command>gcc</command> zur Erstellung.
Die genaue Version kann festgelegt werden mit
- Werten wie <literal>3.2</literal>.
- Mit <literal>3.2+</literal> kann die mindestens
+ Werten wie <literal>3.4</literal>.
+ Mit <literal>3.4+</literal> kann die mindestens
erforderliche Version spezifiziert werden.
Der <command>gcc</command> aus
dem Basissystem wird genutzt, wenn er die
@@ -4116,7 +4117,7 @@ MASTERDIR= ${.CURDIR}/../xdvi300
Sie veranlassen zudem den Installationsabschnitt
dazu, die Manualpages zu Komprimieren oder zu Dekomprimieren
abh&auml;ngig vom gesetzten Wert der Variable
- <makevar>NOMANCOMPRESS</makevar> in
+ <makevar>NO_MANCOMPRESS</makevar> in
<filename>/etc/make.conf</filename>.</para>
<para>Falls Ihr Port versucht verschiedene Namen f&uuml;r
@@ -4138,7 +4139,7 @@ MASTERDIR= ${.CURDIR}/../xdvi300
<literal>yes</literal> bedeutet, dass Manualpages bereits
komprimiert installiert sind, bei <literal>no</literal> sind
sie es nicht und <literal>maybe</literal> bedeutet, dass die
- Software bereits den Wert von <makevar>NOMANCOMPRESS</makevar>
+ Software bereits den Wert von <makevar>NO_MANCOMPRESS</makevar>
beachtet, damit <filename>bsd.port.mk</filename> nichts
Besonderes auszuf&uuml;hren hat.</para>
@@ -4231,11 +4232,11 @@ ${MANPREFIX}/man/de/man3/baz.3.gz</programlisting>
Die Eintr&auml;ge enthalten nur den relativen Pfad zu
<filename><makevar>PREFIX</makevar>/<makevar>INFO_PATH</makevar></filename>.
Zum Beispiel installiert <filename
- role="package">lang/gcc33</filename> Info-Dateien nach
- <filename><makevar>PREFIX</makevar>/<makevar>INFO_PATH</makevar>/gcc33</filename>,
+ role="package">lang/gcc34</filename> Info-Dateien nach
+ <filename><makevar>PREFIX</makevar>/<makevar>INFO_PATH</makevar>/gcc34</filename>,
wobei <makevar>INFO</makevar> etwa so aussieht:
- <programlisting>INFO= gcc33/cpp gcc33/cppinternals gcc33/g77 ...</programlisting>
+ <programlisting>INFO= gcc34/cpp gcc34/cppinternals gcc34/g77 ...</programlisting>
Entsprechende Installations-/Deinstalltions-Codes werden vor
der Paket-Registrierung automatisch der vorl&auml;ufigen
@@ -5895,7 +5896,7 @@ PLIST_SUB+= NLS="@comment "
Abh&auml;ngigkeit von verschiedenen Komponenten diese
Projektes in der Variable <makevar>USE_GL</makevar>
spezifizieren. ouml;gliche Optionen sind: <literal>glut,
- glu, glw, gl</literal> und <literal>linux</literal>.
+ glu, glw, glew, gl</literal> und <literal>linux</literal>.
F&uuml;r Abw&auml;rtskompatibilit&auml;t gilt der
Wert <literal>yes</literal> als
<literal>glu</literal>.</para>
@@ -6187,42 +6188,10 @@ USE_XORG= x11 xpm</programlisting>
der Webseite des FreeBSD/GNOME-Projektes.</para>
</sect1>
- <sect1 id="using-kde">
- <title>Benutzung von KDE</title>
-
- <sect2 id="kde-variables">
- <title>Variablen-Definitionen</title>
-
- <table frame="none">
- <title>Variablen f&uuml;r Ports, die KDE benutzen</title>
-
- <tgroup cols="2">
- <tbody>
- <row>
- <entry><makevar>USE_KDELIBS_VER</makevar></entry>
- <entry>Der Port benutzt KDE-Bibliotheken. Die Variable
- spezifiziert die Major Version von KDE, die benutzt
- werden soll, und impliziert
- <makevar>USE_QT_VER</makevar> der entsprechenden
- Version. Der einzig m&ouml;gliche Wert ist
- <literal>3</literal>.</entry>
- </row>
+ <sect1 id="using-qt">
+ <title>Benutzung von Qt</title>
- <row>
- <entry><makevar>USE_KDEBASE_VER</makevar></entry>
- <entry>Der Port benutzt die KDE-Base. Die Variable
- spezifiziert die Major Version von KDE, die benutzt
- werden soll, und impliziert
- <makevar>USE_QT_VER</makevar> der entsprechenden
- Version. Der einzig m&ouml;gliche Wert ist
- <literal>3</literal>.</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </sect2>
-
- <sect2 id="kde-qt">
+ <sect2 id="qt-common">
<title>Ports, die Qt ben&ouml;tigen</title>
<table frame="none">
@@ -6580,13 +6549,180 @@ do-configure:
</sect2>
</sect1>
+ <sect1 id="using-kde">
+ <title>Benutzung von KDE</title>
+
+ <sect2 id="kde-variables">
+ <title>Variablen-Definitionen (KDE 3)</title>
+
+ <table frame="none">
+ <title>Variablen f&uuml;r Ports, die KDE 3 benutzen</title>
+
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry><makevar>USE_KDELIBS_VER</makevar></entry>
+ <entry>Der Port benutzt KDE-Bibliotheken. Die Variable
+ spezifiziert die Major Version von KDE, die benutzt
+ werden soll, und impliziert
+ <makevar>USE_QT_VER</makevar> der entsprechenden
+ Version. Der einzig m&ouml;gliche Wert ist
+ <literal>3</literal>.</entry>
+ </row>
+
+ <row>
+ <entry><makevar>USE_KDEBASE_VER</makevar></entry>
+ <entry>Der Port benutzt die KDE-Base. Die Variable
+ spezifiziert die Major Version von KDE, die benutzt
+ werden soll, und impliziert
+ <makevar>USE_QT_VER</makevar> der entsprechenden
+ Version. Der einzig m&ouml;gliche Wert ist
+ <literal>3</literal>.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </sect2>
+
+ <sect2 id="kde4-variables">
+ <title>Variablen-Definitionen (KDE 4)</title>
+
+ <para>Falls Ihre Anwendung von KDE 4 abh&auml;ngt, weisen Sie
+ <makevar>USE_KDE4</makevar> eine Liste mit ben&ouml;tigten
+ Komponenten zu. Die am h&auml;ufigsten gebrauchten sind
+ unten aufgelistet (<makevar>_USE_KDE4_ALL</makevar> in
+ <filename>/usr/ports/Mk/bsd.kde4.mk</filename> enth&auml;lt
+ stets die aktuelle Liste):</para>
+
+ <table frame="none">
+ <title>Verf&uuml;gbare KDE 4-Komponenten</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Beschreibung</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><literal>akonadi</literal></entry>
+ <entry>Personal Information Management
+ (PIM)-Speicherdienst</entry>
+ </row>
+
+ <row>
+ <entry><literal>automoc4</literal></entry>
+ <entry>L&auml;sst den Port das Bauwerkzeug automoc4
+ verwenden.</entry>
+ </row>
+
+ <row>
+ <entry><literal>kdebase</literal></entry>
+ <entry>Grundlegende KDE-Anwendungen (Konqueror,
+ Dolphin, Konsole)</entry>
+ </row>
+
+ <row>
+ <entry><literal>kdeexp</literal></entry>
+ <entry>Experimentelle KDE-Bibliotheken (mit einer API,
+ die als non-stable eingestuft ist)</entry>
+ </row>
+
+ <row>
+ <entry><literal>kdehier</literal></entry>
+ <entry>Stellt allgemeine KDE-Verzeichnisse
+ bereit</entry>
+ </row>
+
+ <row>
+ <entry><literal>kdelibs</literal></entry>
+ <entry>Die grundlegenden KDE-Bibliotheken</entry>
+ </row>
+
+ <row>
+ <entry><literal>kdeprefix</literal></entry>
+ <entry>Falls in der Liste vorhanden, wird der Port
+ unter <literal>&dollar;{KDE4_PREFIX}</literal> statt
+ <literal>&dollar;{LOCALBASE}</literal>
+ installiert</entry>
+ </row>
+
+ <row>
+ <entry><literal>pimlibs</literal></entry>
+ <entry>PIM-Bibliotheken</entry>
+ </row>
+
+ <row>
+ <entry><literal>workspace</literal></entry>
+ <entry>Anwendungen und Bibliotheken, welche die
+ Desktopumgebung gestalten (Plasma, KWin)</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>KDE 4-Ports werden unter
+ <literal>&dollar;{KDE4_PREFIX}</literal>, zur Zeit
+ <filename>/usr/local/kde4</filename>, installiert, um
+ Konflikte mit KDE 3-Ports zu verhindern. Dies wird durch
+ Auflisten der Komponente <literal>kdeprefix</literal>
+ erreicht, welche die standardm&auml;&szlig;ig gesetzte
+ Variable <makevar>PREFIX</makevar> &uuml;berschreibt. Die
+ Ports &uuml;bernehmen jedoch, jeden &uuml;ber die
+ Umgebungsvariable <envar>MAKEFLAGS</envar> oder
+ <application>make</application>-Parameter festgelegten Wert
+ f&uuml;r <makevar>PREFIX</makevar>.</para>
+
+ <para>Es k&ouml;nnte bei der Installation von KDE 4-Ports zu
+ Konflikten mit KDE 3-Ports kommen, sodass diese bei
+ aktivierter <literal>kdeprefix</literal>-Komponente unter
+ <literal>&dollar;{KDE4_PREFIX}</literal> installiert werden.
+ Der Standardwert von <literal>KDE4_PREFIX</literal> ist zur
+ Zeit <filename>/usr/local/kde4</filename>. Es ist auch
+ m&ouml;glich, KDE 4-Ports unter einem angepassten
+ <literal>PREFIX</literal> zu installieren. Wenn
+ <literal>PREFIX</literal> als
+ <envar>MAKEFLAGS</envar>-Umgebungsvariable oder als
+ <application>make</application>-Parameter gesetzt wird,
+ &uuml;berschreibt dies den von <literal>kdeprefix</literal>
+ festgelegten Wert.</para>
+
+ <example id="kde4-components-example">
+ <title><makevar>USE_KDE4</makevar>-Beispiel</title>
+
+ <para>Dies ist ein einfaches Beispiel f&uuml;r einen KDE
+ 4-Port. <makevar>USE_CMAKE</makevar> weist den Port an,
+ <application>CMake</application>, ein unter KDE
+ 4-Projekten weit verbreitetes Konfigurationswerkzeug, zu
+ verwenden. <makevar>USE_KDE4</makevar> legt die
+ Abh&auml;ngigkeit von KDE-Bibliotheken und die Verwendung
+ von <application>automoc4</application> w&auml;hrend der
+ Kompilierung fest. Mit Hilfe des configure-Protokolls
+ k&ouml;nnen die KDE-Komponenten und andere
+ Abh&auml;ngigkeiten festgestellt werden.
+ <makevar>USE_KDE4</makevar> impliziert
+ <makevar>USE_QT_VER</makevar> nicht. Falls der Port Qt
+ 4-Komponenten ben&ouml;tigt, sollten
+ <makevar>USE_QT_VER</makevar> gesetzt und verlangte
+ Komponenten festgelegt werden.</para>
+
+ <programlisting>USE_CMAKE= yes
+USE_KDE4= automoc4 kdelibs kdeprefix
+USE_QT_VER= 4
+QT_COMPONENTS= qmake_build moc_build rcc_build uic_build</programlisting>
+ </example>
+ </sect2>
+ </sect1>
+
<sect1 id="using-java">
<title>Benutzung von Java</title>
<sect2 id="java-variables">
<title>Variablen-Definitionen</title>
- <para>Wenn Ihr Port ein Java&trade; Development Kit (JDK)
+ <para>Wenn Ihr Port ein Java&trade; Development Kit (JDK&trade;)
ben&ouml;tigt, entweder zum Bauen, zur Laufzeit oder
sogar, um das Distfile auszupacken, dann sollten Sie
<makevar>USE_JAVA</makevar> setzen.</para>
@@ -6597,7 +6733,7 @@ do-configure:
Wenn Ihr Port eine bestimmte dieser Versionen
ben&ouml;tigt, k&ouml;nnen Sie definieren welche.
Die aktuelle Version ist <filename
- role="package">java/jdk15</filename>.</para>
+ role="package">java/jdk16</filename>.</para>
<table frame="none">
<title>Variablen, die von Ports, die Java benutzen, gesetzt
@@ -6753,7 +6889,7 @@ do-configure:
<entry><makevar>JAVAC</makevar></entry>
<entry>Pfad zum Java-Compiler, der benutzt werden soll
(z.B. <filename>
- '/usr/local/jdk1.1.8/bin/javac'</filename> oder
+ '/usr/local/jdk1.3.1/bin/javac'</filename> oder
<filename>'/usr/local/bin/jikes'</filename>).</entry>
</row>
@@ -6761,7 +6897,7 @@ do-configure:
<entry><makevar>JAR</makevar></entry>
<entry>Pfad zum <command>jar</command>-Werkzeug, das
benutzt werden soll (z.B. <filename>
- '/usr/local/jdk1.2.2/bin/jar'</filename> oder
+ '/usr/local/jdk1.3.1/bin/jar'</filename> oder
<filename>'/usr/local/bin/fastjar'</filename>).</entry>
</row>
@@ -6769,7 +6905,7 @@ do-configure:
<entry><makevar>APPLETVIEWER</makevar></entry>
<entry>Pfad zum <command>appletviewer</command>-Werkzeug
(z.B. <filename>
- '/usr/local/linux-jdk1.2.2/bin/appletviewer'</filename>).</entry>
+ '/usr/local/linux-jdk1.3.1/bin/appletviewer'</filename>).</entry>
</row>
<row>
@@ -6798,9 +6934,7 @@ do-configure:
<row>
<entry><makevar>JAVA_KEYTOOL</makevar></entry>
- <entry>Pfad zum <command>keytool</command>-Werkzeug.
- Diese Variable ist nur verf&uuml;gbar, wenn das JDK Java
- 1.2 oder h&ouml;her ist.</entry>
+ <entry>Pfad zum <command>keytool</command>-Werkzeug.</entry>
</row>
<row>
@@ -6811,9 +6945,7 @@ do-configure:
<row>
<entry><makevar>JAVA_POLICYTOOL</makevar></entry>
- <entry>Pfad zum <command>policytool</command> Programm.
- Diese Variable ist nur verf&uuml;gbar, wenn das JDK
- Java 1.2 oder h&ouml;her ist.</entry>
+ <entry>Pfad zum <command>policytool</command> Programm.</entry>
</row>
<row>
@@ -6836,19 +6968,13 @@ do-configure:
<row>
<entry><makevar>RMID</makevar></entry>
- <entry>Pfad zum RMI Daemon <command>rmid</command>.
- Diese Variable ist nur verf&uuml;gbar, wenn das JDK
- Java 1.2 oder h&ouml;her unterst&uuml;tzt.</entry>
+ <entry>Pfad zum RMI Daemon <command>rmid</command>.</entry>
</row>
<row>
<entry><makevar>JAVA_CLASSES</makevar></entry>
<entry>Pfad zum Archiv, das die JDK-Klassendateien
- enth&auml;lt. F&uuml;r das JDK 1.2 oder sp&auml;ter
- ist dies
- <filename>${JAVA_HOME}/jre/lib/rt.jar</filename>.
- Fr&uuml;here JDKs benutzten <filename>
- ${JAVA_HOME}/lib/classes.zip</filename>.</entry>
+ enth&auml;lt, <filename>${JAVA_HOME}/jre/lib/rt.jar</filename>.</entry>
</row>
<row>
@@ -6924,7 +7050,7 @@ do-configure:
wird eine Standardvorgabe benutzt, die einfach Ant
entsprechend <makevar>MAKE_ENV</makevar>,
<makevar>MAKE_ARGS</makevar> und
- <makevar>ALL_TARGETS</makevar> aufruft. Das &auml;hnelt dem
+ <makevar>ALL_TARGET</makevar> aufruft. Das &auml;hnelt dem
<makevar>USE_GMAKE</makevar>-Mechanismus, der in <xref
linkend="building"> dokumentiert ist.</para>
@@ -9171,7 +9297,7 @@ CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}"
praktischen Aspekten bez&uuml;glich
<filename>rc.d</filename>-Skripten.</para>
- <para>Ein oder mehrere rc-Skripten k&ouml;nnen installiert
+ <para>Ein oder mehrere <filename>rc.d</filename>-Skripten k&ouml;nnen installiert
werden mittels:</para>
<programlisting>USE_RC_SUBR= doormand</programlisting>
@@ -9179,14 +9305,9 @@ CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}"
<para>Skripten m&uuml;ssen im Unterverzeichnis
<filename>files</filename> abgelegt und jeder Skript-Datei
muss ein <literal>.in</literal>-Suffix hinzugef&uuml;gt
- werden. Der einzige Unterschied zu einem
- <filename>rc.d</filename>-Skript aus dem Basissystem ist, dass
- die Zeile <literal>.&nbsp;/etc/rc.subr</literal> in
- <literal>.&nbsp;%%RC_SUBR%%</literal> umbenannt werden muss,
- da &auml;ltere Versionen von &os; die Datei
- <filename>/etc/rc.subr</filename> nicht besitzen.
- Standarderweiterungen wie <makevar>SUB_LIST</makevar> werden
- ebenfalls unterst&uuml;tzt. Die Verwendung von
+ werden. Standardm&auml;&szlig;ige
+ <makevar>SUB_LIST</makevar>-Ersetzungen werden f&uuml;r diese
+ Dateien unterst&uuml;tzt. Die Verwendung von
<literal>%%PREFIX%%</literal> und
<literal>%%LOCALBASE%%</literal> wird dringend empfohlen.
N&auml;heres zu <makevar>SUB_LIST</makevar> kann im <link
@@ -9197,7 +9318,12 @@ CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}"
sind, ist die Integration mittels &man.rcorder.8;
m&ouml;glich, indem <makevar>USE_RCORDER</makevar> anstatt
<makevar>USE_RC_SUBR</makevar> verwendet wird. Die Verwendung
- dieser Methode wird aber nicht mehr empfohlen.</para>
+ dieser Methode ist jedoch nur notwendig, wenn der Port in die
+ Verzeichnisstruktur des Basissystems installiert werden kann
+ oder der Dienst vor den
+ <filename>FILESYSTEMS</filename>-Skripten in
+ <filename>rc.d</filename> des Basissystems gestartet sein
+ muss.</para>
<para>Seit &os;&nbsp;6.1-RELEASE sind lokale
<filename>rc.d</filename>-Skripten (inklusive der durch Ports
@@ -9209,8 +9335,11 @@ CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}"
<programlisting>#!/bin/sh
+# &dollar;FreeBSD&dollar;
+#
# PROVIDE: doormand
# REQUIRE: LOGIN
+# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
# to enable this service:
@@ -9221,7 +9350,7 @@ CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}"
# by default.
#
-. %%RC_SUBR%%
+. /etc/rc.subr
name="doormand"
rcvar=${name}_enable
@@ -9238,6 +9367,18 @@ command_args="-p $pidfile -f $doormand_config"
run_rc_command "$1"</programlisting>
+ <para>Solange kein guter Grund daf&uuml;r besteht, einen Dienst
+ fr&uuml;her starten zu lassen, sollten alle Ports-Skripten
+ <programlisting>REQUIRE: LOGIN</programlisting> verwenden.
+ Falls der Port von einem bestimmten Benutzer (au&szlig;er
+ root) ausgef&uuml;hrt wird, ist dies zwingend.
+ <programlisting>KEYWORD: shutdown</programlisting> ist im
+ Skript oben deswegen vorhanden, weil der frei erfundene
+ Beispiel-Port einen Dienst startet und dieser beim
+ Herunterfahren des Systems sauber beendet werden sollte.
+ Startete das Skript keinen persistenten Dienst, w&auml;re dies
+ nicht notwendig.</para>
+
<para>F&uuml;r die Wertzuweisung von Variablen sollte
&quot;=&quot; anstatt &quot;:=&quot; verwendet werden, da bei
Ersterem nur auf einen Standardwert gesetzt wird, wenn die
@@ -9249,14 +9390,6 @@ run_rc_command "$1"</programlisting>
eine Variablenzuweisung mittels &quot;:=&quot; w&uuml;rde in
diesem Fall die Benutzerdefinition &uuml;berschreiben.</para>
- <para>Der Suffix des rc-Skriptes wird durch
- <makevar>RC_SUBR_SUFFIX</makevar> f&uuml;r die weitere
- Verwendung im <filename>Makefile</filename> des Ports
- bereitgestellt. Aktuelle Versionen von &os; f&uuml;gen keinen
- Suffix den Skriptnamen hinzu im Gegensatz zu &auml;ltere
- Versionen, die dies mit dem Suffix <filename>.sh</filename>
- taten.</para>
-
<note>
<para>Es sollten keine weiteren Skripten mit der
<filename>.sh</filename>-Endung hinzugef&uuml;gt werden.
@@ -9286,6 +9419,37 @@ run_rc_command "$1"</programlisting>
&uuml;bereinstimmen.</para>
</sect2>
</sect1>
+
+ <sect1 id="users-and-groups">
+ <title>Hinzuf&uuml;gen von Benutzern und Gruppen</title>
+
+ <para>Manche Ports setzen voraus, dass ein bestimmter Benutzer
+ auf dem System angelegt ist. W&auml;hlen Sie in einem solchen
+ Fall eine freie Kennnummer zwischen 50 und 999 aus und tragen
+ Sie diese in <filename>ports/UIDs</filename> (f&uuml;r
+ Benutzer) oder <filename>ports/GIDs</filename> (f&uuml;r
+ Gruppen) ein. Stellen Sie dabei sicher, dass Sie keine
+ Kennnummer ausw&auml;hlen, die bereits vom System oder von
+ anderen Ports verwendet wird.</para>
+
+ <para>Erstellen Sie bitte eine entsprechende Patch-Datei
+ f&uuml;r diese beiden Dateien, wenn f&uuml;r Ihren Port ein
+ neuer Benutzer oder eine neue Gruppe angelegt werden
+ muss.</para>
+
+ <para>Sie k&ouml;nnen dann die Variablen
+ <makevar>USERS</makevar> und <makevar>GROUPS</makevar> im
+ <filename>Makefile</filename> benutzen, um bei der
+ Port-Installation das automatische Anlegen des Benutzers zu
+ veranlassen.</para>
+
+ <programlisting>USERS= pulse
+GROUPS= pulse pulse-access pulse-rt</programlisting>
+
+ <para>Die Liste mit den momentan belegten UIDs (GIDs) befindet
+ sich in <filename>ports/UIDs</filename>
+ (<filename>ports/GIDs</filename>).</para>
+ </sect1>
</chapter>
<chapter id="plist">
@@ -9339,6 +9503,27 @@ PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION}</programlisting>
(oder manchmal sogar hunderte) Zeilen in
<filename>pkg-plist</filename> anpassen.</para>
+ <para>Falls Ihr Port in Abh&auml;ngigkeit von den
+ ausgew&auml;hlten Optionen Dateien installiert, ist es
+ &uuml;blich, den entsprechenden Zeilen in der
+ <filename>pkg-plist</filename> eine Zeichenfolge
+ <literal>%%TAG%%</literal> voranzustellen, wobei der
+ Platzhalter <literal>TAG</literal> der Variablen
+ <makevar>PLIST_SUB</makevar> im <filename>Makefile</filename>
+ bei gleichzeitiger Zuweisung des speziellen Werts
+ <literal>@comment</literal> hinzugef&uuml;gt wird, der die
+ Paket-Werkzeuge die Zeile ignorieren l&auml;sst:</para>
+
+ <programlisting>.if defined(WITH_X11)
+PLIST_SUB+= X11=""
+.else
+PLIST_SUB+= X11="@comment "
+.endif</programlisting>
+
+ <para>und in der <filename>pkg-plist</filename>:</para>
+
+ <programlisting>%%X11%%bin/foo-gui</programlisting>
+
<para>Diese Ersetzung (ebenso wie das Hinzuf&uuml;gen weiterer
<link linkend="makefile-manpages">Manualpages</link>) wird
zwischen den <maketarget>pre-install</maketarget>- und
@@ -9958,8 +10143,7 @@ as .putsy.conf and edit it.</programlisting>
<para><makevar>PREFIX</makevar> bestimmt, an welche Stelle der
Port installiert werden soll. In der Regel ist
dies<filename>/usr/local</filename> oder
- <filename>/opt</filename>. Benutzer k&ouml;nnen
- <makevar>PREFIX</makevar> setzen, wie sie wollen. Ihr Port
+ <filename>/opt</filename>, was jedoch anpassbar ist. Ihr Port
muss sich an diese Variable halten.</para>
<para><makevar>DESTDIR</makevar>, wenn es vom Benutzer gesetzt
@@ -10416,7 +10600,7 @@ as .putsy.conf and edit it.</programlisting>
&lt;dates&gt;
&lt;discovery&gt;2010-05-25&lt;/discovery&gt; <co id="co-vx-dsc">
&lt;entry&gt;2010-07-13&lt;/entry&gt; <co id="co-vx-ent">
- &lt;modified&gt;2010-09-17&lt;/entry&gt; <co id="co-vx-mod">
+ &lt;modified&gt;2010-09-17&lt;/modified&gt; <co id="co-vx-mod">
&lt;/dates&gt;
&lt;/vuln&gt;</programlisting>
@@ -13751,8 +13935,43 @@ Reference: &lt;http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00
<entry>06.&nbsp;Juni&nbsp;2009</entry>
<entry>7.2-STABLE nach dem Einflie&szlig;en von PmcTools.</entry>
</row>
-
+
<row>
+ <entry>702104</entry>
+ <entry>14.&nbsp;Juli&nbsp;2009</entry>
+ <entry>7.2-STABLE nach dem Einflie&szlig;en des
+ Systemaufrufs <function>closefrom</function>.</entry>
+ </row>
+
+ <row>
+ <entry>702105</entry>
+ <entry>31.&nbsp;Juli&nbsp;2009</entry>
+ <entry>7.2-STABLE nach dem Einflie&szlig;en der
+ &Auml;nderung an der SYSVIPC-ABI.</entry>
+ </row>
+
+ <row>
+ <entry>702106</entry>
+ <entry>14.&nbsp;September&nbsp;2009</entry>
+ <entry>7.2-STABLE nach dem Einflie&szlig;en der
+ PAT-Verbesserungen f&uuml;r x86-Prozessoren sowie dem
+ Hinzuf&uuml;gen von d_mmap_single() und des
+ VM-Objekttyps f&uuml;r scatter/gather-Listen.</entry>
+ </row>
+
+ <row>
+ <entry>703000</entry>
+ <entry>9.&nbsp;Februar&nbsp;2010</entry>
+ <entry>7.3-RELEASE</entry>
+ </row>
+
+ <row>
+ <entry>703100</entry>
+ <entry>9.&nbsp;Februar&nbsp;2010</entry>
+ <entry>7.3-STABLE nach 7.3-RELEASE.</entry>
+ </row>
+
+ <row>
<entry>800000</entry>
<entry>11.&nbsp;Oktober&nbsp;2007</entry>
<entry>8.0-CURRENT. Nach der Trennung in "wide und
@@ -14522,7 +14741,174 @@ Reference: &lt;http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00
Zahlenmangel zusammengefasst.
-->
</row>
- </tbody>
+
+ <row>
+ <entry>800097</entry>
+ <entry>8.&nbsp;Juni&nbsp;2009</entry>
+ <entry>8.0-CURRENT nach Einf&uuml;hrung der
+ Destruktor-Infrastruktur f&uuml;r vnet
+ einschlie&szlig;lich Hooks.</entry>
+ </row>
+
+ <row>
+ <entry>800097</entry>
+ <entry>11.&nbsp;Juni&nbsp;2009</entry>
+ <entry>8.0-CURRENT nach Einf&uuml;hrung eines
+ Erkennungssystems f&uuml;r ausgehende Pakete, die
+ direkt wieder in netgraph gelangen und deswegen
+ eingereiht werden. Dabei wurde auch die Definition von
+ struct thread ge&auml;ndert.</entry>
+ </row>
+
+ <row>
+ <entry>800098</entry>
+ <entry>14.&nbsp;Juni&nbsp;2009</entry>
+ <entry>8.0-CURRENT nach dem Einflie&szlig;en von OpenSSL
+ 0.9.8k.</entry>
+ </row>
+
+ <row>
+ <entry>800099</entry>
+ <entry>22.&nbsp;Juni&nbsp;2009</entry>
+ <entry>8.0-CURRENT nach der Aktualisierung von NGROUPS
+ und dem Verschieben der Routing-Virtualisierung in ein
+ eigenes VImage-Modul.</entry>
+ </row>
+
+ <row>
+ <entry>800100</entry>
+ <entry>24.&nbsp;Juni&nbsp;2009</entry>
+ <entry>8.0-CURRENT nach &Auml;nderung der
+ SYSVIPC-ABI.</entry>
+ </row>
+
+ <row>
+ <entry>800101</entry>
+ <entry>29.&nbsp;Juni&nbsp;2009</entry>
+ <entry>8.0-CURRENT nach dem Entfernen der
+ zeichenorientierten Ger&auml;te aus /dev/net, von
+ denen f&uuml;r jede Schnittstelle eines
+ existiert.</entry>
+ </row>
+
+ <row>
+ <entry>800102</entry>
+ <entry>12.&nbsp;Juli&nbsp;2009</entry>
+ <entry>8.0-CURRENT, nachdem struct sackhint, struct
+ tcpcb und struct tcpstat mit Padding-Bytes
+ aufgef&uuml;llt wurden.</entry>
+ </row>
+
+ <row>
+ <entry>800103</entry>
+ <entry>13.&nbsp;Juli&nbsp;2009</entry>
+ <entry>8.0-CURRENT, nachdem struct tcpopt durch struct
+ toeopt in der Schnittstelle zwischen dem TOE-Treiber
+ und dem TCP-SYN-Cache ersetzt wurde.</entry>
+ </row>
+
+ <row>
+ <entry>800104</entry>
+ <entry>19.&nbsp;Juli&nbsp;2009</entry>
+ <entry>8.0-CURRENT nach dem Hinzuf&uuml;gen einer
+ vnet-spezifischen Speicherzuweisung, die auf dem
+ Linker-Set-Verfahren basiert.</entry>
+ </row>
+
+ <row>
+ <entry>800105</entry>
+ <entry>19.&nbsp;Juli&nbsp;2009</entry>
+ <entry>8.0-CURRENT nach der Inkrementierung der
+ Versionsnummer aller Shared-Libraries, die
+ Symbol-Versioning nicht aktiviert haben.</entry>
+ </row>
+
+ <row>
+ <entry>800106</entry>
+ <entry>24.&nbsp;Juli&nbsp;2009</entry>
+ <entry>8.0-CURRENT nach Einf&uuml;hrung des
+ VM-Objekttyps OBJT_SG.</entry>
+ </row>
+
+ <row>
+ <entry>800107</entry>
+ <entry>2.&nbsp;August&nbsp;2009</entry>
+ <entry>8.0-CURRENT nach Befreiung des Newbus-Subsystems
+ von Giant durch Hinzuf&uuml;gen von sxlock und 8.0-RELEASE.</entry>
+ </row>
+
+ <row>
+ <entry>800108</entry>
+ <entry>21.&nbsp;November&nbsp;2009</entry>
+ <entry>8.0-CURRENT nach Implementierung des
+ kevent-Filters EVFILT_USER.</entry>
+ </row>
+
+ <row>
+ <entry>800500</entry>
+ <entry>7.&nbsp;Januar&nbsp;2010</entry>
+ <entry>8.0-STABLE nach Erh&ouml;hung von
+ <literal>__FreeBSD_version</literal>, damit
+ <command>pkg_add -r</command> packages-8-stable
+ verwendet.</entry>
+ </row>
+
+ <row>
+ <entry>800501</entry>
+ <entry>24.&nbsp;Januar&nbsp;2010</entry>
+ <entry>8.0-STABLE, nachdem die Prototypen von
+ <function>scandir(3)</function> und
+ <function>alphasort(3)</function> ge&auml;ndert
+ wurden, um der SUSv4 zu entsprechen.</entry>
+ </row>
+
+ <row>
+ <entry>800502</entry>
+ <entry>31.&nbsp;Januar&nbsp;2010</entry>
+ <entry>8.0-STABLE nach Hinzuf&uuml;gen von
+ <function>sigpause(3)</function>.</entry>
+ </row>
+
+ <row>
+ <entry>800503</entry>
+ <entry>25.&nbsp;Februar&nbsp;2010</entry>
+ <entry>8.0-STABLE nach dem Hinzuf&uuml;gen der ioctls
+ SIOCGIFDESCR und SIOCSIFDESCR f&uuml;r
+ Netzwerk-Schnittstellen. Diese ioctls k&ouml;nnen,
+ nach dem Vorbild von OpenBSD, dazu verwendet werden,
+ Schnittstellenbeschreibungen zu bearbeiten und
+ auszulesen.</entry>
+ </row>
+
+ <row>
+ <entry>800504</entry>
+ <entry>1.&nbsp;M&auml;rz&nbsp;2010</entry>
+ <entry>8.0-STABLE, nachdem x86emu, ein Software-Emulator
+ von OpenBSD f&uuml;r x86-Prozessoren im Real-Mode, von
+ CURRENT &uuml;bernommen wurde.</entry>
+ </row>
+
+ <row>
+ <entry>900000</entry>
+ <entry>22.&nbsp;August&nbsp;2009</entry>
+ <entry>9.0-CURRENT.</entry>
+ </row>
+
+ <row>
+ <entry>900001</entry>
+ <entry>8.&nbsp;September&nbsp;2009</entry>
+ <entry>9.0-CURRENT nach dem Import von x86emu, einem
+ Software-Emulator von OpenBSD f&uuml;r x86-Prozessoren
+ im Real-Mode.</entry>
+ </row>
+
+ <row>
+ <entry>900002</entry>
+ <entry>23.&nbsp;September&nbsp;2009</entry>
+ <entry>9.0-CURRENT nach Implementierung des
+ kevent-Filters EVFILT_USER.</entry>
+ </row>
+ </tbody>
</tgroup>
</table>
@@ -14633,6 +15019,76 @@ Reference: &lt;http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00
linkend="porting-prefix"> Mehr Informationen &uuml;ber
<makevar>PREFIX</makevar></link>).</entry>
</row>
+
+ <row>
+ <entry>900003</entry>
+ <entry>2.&nbsp;Dezember&nbsp;2009</entry>
+ <entry>9.0-CURRENT nach Hinzuf&uuml;gen von
+ <function>sigpause(3)</function> und der
+ PIE-Unterst&uuml;tzung zu csu.</entry>
+ </row>
+
+ <row>
+ <entry>900004</entry>
+ <entry>6.&nbsp;Dezember&nbsp;2009</entry>
+ <entry>9.0-CURRENT nach Hinzuf&uuml;gen von libulog und
+ dessen
+ libutempter-Kompatibilit&auml;tsschnittstelle.</entry>
+ </row>
+
+ <row>
+ <entry>900005</entry>
+ <entry>12.&nbsp;Dezember&nbsp;2009</entry>
+ <entry>9.0-CURRENT nach Hinzuf&uuml;gen von
+ <function>sleepq_sleepcnt()</function>, das dazu
+ verwendet werden kann, die Anzahl der in einer
+ bestimmten Warteschlange eingereihten Threads
+ abzufragen.</entry>
+ </row>
+
+ <row>
+ <entry>900006</entry>
+ <entry>4.&nbsp;Januar&nbsp;2010</entry>
+ <entry>9.0-CURRENT, nachdem die Prototypen von
+ <function>scandir(3)</function> und
+ <function>alphasort(3)</function> ge&auml;ndert
+ wurden, um der SUSv4 zu entsprechen.</entry>
+ </row>
+
+ <row>
+ <entry>900007</entry>
+ <entry>13.&nbsp;Januar&nbsp;2010</entry>
+ <entry>9.0-CURRENT nach dem Entfernen von utmp(5) und
+ dem Hinzuf&uuml;gen von utmpx (siehe
+ <function>getutxent(3)</function>) zur besseren
+ Erfassung von Benutzeranmeldungen und
+ Systemereignissen.</entry>
+ </row>
+
+ <row>
+ <entry>900008</entry>
+ <entry>20.&nbsp;Januar&nbsp;2010</entry>
+ <entry>9.0-CURRENT nach der Einf&uuml;hrung von BSDL
+ bc/dc zur Ersetzung von GNU bc/dc.</entry>
+ </row>
+
+ <row>
+ <entry>900009</entry>
+ <entry>26.&nbsp;Januar&nbsp;2010</entry>
+ <entry>9.0-CURRENT nach dem Hinzuf&uuml;gen der ioctls
+ SIOCGIFDESCR und SIOCSIFDESCR f&uuml;r
+ Netzwerk-Schnittstellen. Diese ioctls k&ouml;nnen,
+ nach dem Vorbild von OpenBSD, dazu verwendet werden,
+ Schnittstellenbemerkungen zu bearbeiten und
+ auszulesen.</entry>
+ </row>
+
+ <row>
+ <entry>900010</entry>
+ <entry>22.&nbsp;M&auml;rz&nbsp;2010</entry>
+ <entry>9.0-CURRENT nach dem Import von zlib
+ 1.2.4.</entry>
+ </row>
</tbody>
</tgroup>
</informaltable>
@@ -14694,35 +15150,6 @@ exec %%LOCALBASE%%/bin/java -jar %%DATADIR%%/foo.jar "$@"</programlisting>
Systemressourcen.</para>
</sect1>
- <sect1 id="dads-uid-and-gids">
- <title>UIDs und GIDs</title>
-
- <para>Die aktuellen Listen von reservierten UIDs und GIDs sind
- in <filename>ports/UIDs</filename> und
- <filename>ports/GIDs</filename> zu finden.</para>
-
- <para>Falls Ihr Port einen bestimmten Benutzer auf dem zu
- installierendem System ben&ouml;tigt, lassen Sie das
- <filename>pkg-install</filename>-Skript den Aufruf von
- <command>pw</command> machen, um ihn automatisch anzulegen.
- Schauen Sie sich f&uuml;r ein Beispiel <filename
- role="package">sysutils/symon</filename> an.
- Ihr Port muss eine feste Benutzer/Gruppen-ID verwenden.
- Sie m&uuml;ssen eine nicht benutzte UID
- zwischen 50 und 999 benutzen und entweder in
- <filename>ports/UIDs</filename> (f&uuml;r Benutzer) oder in
- <filename>ports/GIDs</filename> (f&uuml;r Gruppen)
- registrieren.</para>
-
- <para>Stellen Sie sicher, dass Sie keine UIDs verwenden,
- welche schon vom System oder von einem anderen Port gebraucht
- werden.</para>
-
- <para>Bitte f&uuml;gen Sie einen Patch f&uuml;r diese beiden
- Datei hinzu, falls f&uuml;r Ihren Port ein neuer Benutzer oder
- Gruppe angelegt werden muss.</para>
- </sect1>
-
<sect1 id="dads-rational">
<title>Aufgaben vern&uuml;nftig l&ouml;sen</title>
@@ -15145,7 +15572,7 @@ exec %%LOCALBASE%%/bin/java -jar %%DATADIR%%/foo.jar "$@"</programlisting>
tritt das Problem beim Versuch
<filename>/usr/ports/INDEX</filename> zu bauen auf (siehe
<xref linkend="make-describe">). Jedoch schlagen auch
- trivialere Befehle wie <command>make -V maintainer</command>
+ trivialere Befehle wie <command>make maintainer</command>
in diesem Fall fehl. Dies ist nicht akzeptabel!</para>
<example id="dot-error-breaks-index">
@@ -15448,14 +15875,14 @@ pre-install:
</sect1>
<sect1 id="distfile-survey">
- <title>Die &os; Port-Distfile-Pr&uuml;fung</title>
+ <title>Der &os; Ports-Distfile-Scanner</title>
<para>Der Build-Cluster ist dazu bestimmt, das neueste Release
jedes Ports aus bereits heruntergeladenden Distfiles zu bauen.
Da sich das Internet aber st&auml;ndig ver&auml;ndert,
- k&ouml;nnen Distfiles schnell verloren gehen. Die <ulink
- url="http://people.FreeBSD.org/~fenner/portsurvey/">FreeBSD
- Ports Distfiles Pr&uuml;fung</ulink> versucht jeden
+ k&ouml;nnen Distfiles schnell verloren gehen. Der <ulink
+ url="http://www.portscout.org">FreeBSD
+ Ports-Distfile-Scanner</ulink> versucht jeden
Download-Standort f&uuml;r jeden Port anzufragen, um
herauszufinden, ob jedes Distfile noch verf&uuml;gbar ist.
Maintainer werden gebeten diesen Bericht regelm&auml;&szlig;ig
diff --git a/de_DE.ISO8859-1/share/sgml/mailing-lists.ent b/de_DE.ISO8859-1/share/sgml/mailing-lists.ent
index fc05aeb3a8..8ac36d96a1 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.37 2010/02/05 16:19:40 bcr Exp $
+ $FreeBSDde: de-docproj/share/sgml/mailing-lists.ent,v 1.38 2010/05/14 16:22:05 fboerner Exp $
$FreeBSD$
- basiert auf: 1.69
+ basiert auf: 1.70
-->
<!ENTITY a.mailman.listinfo "http://lists.FreeBSD.org/mailman/listinfo">
@@ -565,6 +565,12 @@
messages for the vendor work area tree</ulink>">
<!ENTITY a.svn-src-vendor.name "<ulink
url='&a.svn-src-vendor.url;'>svn-src-vendor</ulink>">
+
+<!ENTITY a.sysinstall.url "&a.mailman.listinfo;/freebsd-sysinstall">
+<!ENTITY a.sysinstall "<ulink url='&a.sysinstall.url;'>Sysinstall
+ development mailing list</ulink>">
+<!ENTITY a.sysinstall.name "<ulink
+ url='&a.sysinstall.url;'>freebsd-sysinstall</ulink>">
<!ENTITY a.test.url "&a.mailman.listinfo;/freebsd-test">
<!ENTITY a.test "<ulink url='&a.test.url;'>FreeBSD test</ulink>">