diff options
author | Benedict Reuschling <bcr@FreeBSD.org> | 2010-05-16 19:37:37 +0000 |
---|---|---|
committer | Benedict Reuschling <bcr@FreeBSD.org> | 2010-05-16 19:37:37 +0000 |
commit | 708beaa6f8789259db940e4447c3cfa16dea8eab (patch) | |
tree | 4c65ab29e75d8f603eff7133a603ba337ca2372c /de_DE.ISO8859-1 | |
parent | f7c1827650cec24af845fe6f34f113a7572c40b5 (diff) | |
download | doc-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.sgml | 89 | ||||
-rw-r--r-- | de_DE.ISO8859-1/books/handbook/desktop/chapter.sgml | 18 | ||||
-rw-r--r-- | de_DE.ISO8859-1/books/handbook/eresources/chapter.sgml | 9 | ||||
-rw-r--r-- | de_DE.ISO8859-1/books/handbook/mac/chapter.sgml | 2193 | ||||
-rw-r--r-- | de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml | 23 | ||||
-rw-r--r-- | de_DE.ISO8859-1/books/porters-handbook/book.sgml | 681 | ||||
-rw-r--r-- | de_DE.ISO8859-1/share/sgml/mailing-lists.ent | 10 |
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ä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ür die &os;-Versionen - 6.<replaceable>X</replaceable> und - 7.<replaceable>X</replaceable>. Alle Einträge sollten für + 6.<replaceable>X</replaceable> 7.<replaceable>X</replaceable> und + 8.<replaceable>X</replaceable>. Alle Einträge sollten fü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 üblich, wird mit diesem Dokument beabsichtigt, die am hä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ü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öffentlichung von &os; 7.0 galt - die 6.<replaceable>X</replaceable>-Serie als + <para>Bis zur Veröffentlichung von &os; 8.0 galt + die 7.<replaceable>X</replaceable>-Serie als <emphasis>-STABLE</emphasis>. Seither - gibt es für den Zweig 6.<replaceable>X</replaceable> nur mehr + gibt es für den Zweig 7.<replaceable>X</replaceable> nur mehr eine <quote>erweiterte Unterstützung</quote> in der Form von Korrekturen von größeren Problemen, wie neu entdeckten Sicherheitsheitslü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ächste + <para>Aus dem 9-CURRENT-Zweig entsteht die nächste &os;-Generation. Weitere Informationen ü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ür 8-CURRENT</term> + <term>fü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ü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ührliche Antwort: Bei &os; gibt es zwei Quellen fü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ü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ü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ß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ötigen, um die Quellen zu ü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ügung.</para> - <para>Um <application>&acrobat.reader; 7</application> über + <para>Um <application>&acrobat.reader; 8</application> ü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>Übersetzt von </contrib> + </author> + </authorgroup> + </chapterinfo> - <title>Mandatory Access Control (noch nicht übersetzt)</title> + <title>Verbindliche Zugriffskontrolle</title> - <para>Dieses Kapitel ist noch nicht ü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 übersetzen, senden Sie bitte - eine E-Mail an die Mailingliste &a.de.translators;.</para> + <sect1 id="mac-synopsis"> + <title>Übersicht</title> + <indexterm><primary>MAC</primary></indexterm> + <indexterm> + <primary>Mandatory Access Control</primary> + <see>MAC</see> + </indexterm> + + <para> In &os; 5.X wurden neue Sicherheits-Erweiterungen + verfügbar, die aus dem TrustedBSD-Projekt ü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ö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ützt bzw. verstärkt werden. Andere Module wiederum + betreffen in ihrer Funktion das gesamte System - alle vorhandenen + Subjekte und Objekte. Das "Verbindliche" in der Namensgebung + erwä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ü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ügung stellen, konzentrieren.</para> + + <para>Beim Durcharbeiten dieses Kapitels erfahren Sie:</para> + + <itemizedlist> + <listitem> + <para>Welche <acronym>MAC</acronym> Module fü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üge von &unix; und &os; verstanden haben. + (<xref linkend="basics">).</para> + </listitem> + <listitem> + <para>Mit den Grundzügen der Kernelkonfiguration und -kompilierung + vertraut sein (<xref linkend="kernelconfig">).</para> + </listitem> + + <listitem> + <para>Einige Vorkenntnisse über Sicherheitskonzepte im Allgemeinen + und deren Umsetzung in &os; im Besonderen mitbringen (<xref + linkend="security">).</para> + </listitem> + </itemizedlist> + + <warning> + <para>Der unsachgemäße Gebrauch der in diesem Kapitel + enthaltenen Informationen kann den Verlust des Systemzugriffs, + Ärger mit Nutzern oder die Unfä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änzt lediglich die schon existierenden + Sicherheits-Richtlinien - ohne eine gründliche und fundierte + Sicherheitspraxis und regelmäßige Sicherheitsprüfungen + wird Ihr System nie vollständig sicher sein.</para> + + <para>Außerdem sollte angemerkt werden, dass die Beispiele + in diesem Kapitel auch genau dasselbe sein sollen, nä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ß.</para> + </warning> + + <sect2> + <title>Was in diesem Kapitel nicht behandelt wird</title> + + <para>Dieses Kapitel behandelt einen großen Teil + sicherheitsrelevanter Themen, bezogen auf die Verbindliche + Zugriffskontrolle (<acronym>MAC</acronym>). Die gegenwä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ü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üsselbegriffe</title> + + <para>Bevor Sie weiterlesen, müssen noch einige Schlüsselbegriffe + geklärt werden. Dadurch soll jegliche auftretende Verwirrung von + vornherein beseitigt und die plötzliche Einfü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ähren. Man kann sagen, ein solcher Verbund ist eine + Gruppierung, ähnlich einer Arbeitsgruppe, einer Abteilung, einem + Projekt oder einem Thema. Durch die Nutzung von Verbü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öhung der Sicherheitsstufe in Abhängigkeit + der Klassifikation der gesuchten bzw. bereitzustellenden Information. + Normalerweise wird nach Abschluss des Prozesses die + ursprüngliche Sicherheitsstufe wieder hergestellt. Derzeit + enthält die <acronym>MAC</acronym> Grundstruktur keine + Möglichkeit, eine solche Richtlinie umzusetzen, der + Vollständigkeit halber ist die Definition hier jedoch + aufgeführt.</para> + </listitem> + + <listitem> + <para><emphasis>Integrität</emphasis>: Das Schlüsselkonzept + zur Klassifizierung der Vertraulichkeit von Daten nennt man + Integrität. Je weiter die Integrität erhö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ö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öglich, wenn das zugreifende Subjekt eine korrespondierende + Kennzeichnung trägt. Die Bedeutung und Verarbeitung der + Label-Werte ist von der Einrichtung der Richtlinie abhängig: + Während einige Richtlinien das Label zum Kennzeichnen der + Vertraulichkeit oder Geheimhaltungsstufe eines Objekts nutzen, + können andere Richtlinien an derselben Stelle Zugriffsregeln + festschreiben.</para> + </listitem> + + <listitem> + <para><emphasis>Level</emphasis>: Eine erhöhte oder verminderte + Einstellung eines Sicherheitsmerkmals. Wenn das Level erhö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ügbar zu machen. In die meisten Fällen + wird das ursprü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ä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ächlich mit Labels + arbeiten.</para> + </listitem> + + <listitem> + <para><emphasis>Objekt</emphasis>: Ein Objekt oder auch Systemobjekt + ist theoretisch eine Einheit, durch welche Information fließ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ä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ßt + den Begriff in diesem Kontext als + <emphasis>Sicherheitsrichtlinie</emphasis> auf; als eine Sammlung von + Regeln, die den Fluß von Daten und Informationen kontrolliert + und die gleichzeitig definiert, wer auf diese Daten und Informationen + zugreifen darf.</para> + </listitem> + + <listitem> + <para><emphasis>Anfälligkeit</emphasis>: Dieser Begriff wird + normalerweise verwendet, wenn man über <acronym>MLS</acronym> + (Multi Level Security) spricht. Das Anfälligkeits-Level + beschreibt, wie wichtig oder geheim die Daten sein sollen. Um so + höher das Anfä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ür ein ganzes Dateisystem lediglich ein einziges + Label verwendet wird, um Zugriffskontrolle ü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ß usw. In &os; + handelt es sich meistens um einen Thread, der als Prozeß im + Namen eines Nutzers arbeitet.</para> + </listitem> + </itemizedlist> + </sect1> + + <sect1 id="mac-initial"> + <title>Erläuterung</title> + + <para>Mit all diesen neuen Begriffen im Kopf können wir nun + überlegen, wie die Mö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önnen + verwendet werden, um das Netzwerk oder Dateisysteme zu schü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äre + Richtlinien wie zum Beispiel die Firewall, die typischerweise Elemente + eines Systems stabilisiert, das nur für einen speziellen Zweck + verwendet wird. Der Verwaltungsmehraufwand ist jedoch von Nachteil, zum + Beispiel durch die Verwendung von mehreren Labels oder dem + eigenhändigen Erlauben von Netzwerkzugriffen für jeden + einzelnen Nutzer.</para> + + <para>Solche Nachteile sind allerdings gering im Vergleich zum bleibenden + Effekt der erstellten Struktur. Die Möglichkeit zum Beispiel, + für konkrete Anwendungen genau die passenden Richtlinien + auszuwählen und einzurichten, senkt gleichzeitig die Arbeitskosten. + Wenn man unnötige Richtlinien aussortiert, kann man die + Gesamtleistung des Systems genauso steigern wie auch eine höhere + Anpassungsfähigkeit gewährleisten. Eine gute Umsetzung der + <acronym>MAC</acronym> beinhaltet eine Prüfung der gesamten + Sicherheitsanforderungen und einen wirksamen Einsatz der verschiedenen + Module.</para> + + <para>Ein System, auf dem eine <acronym>MAC</acronym> verwendet wird, + muß zumindest garantieren, dass einem Nutzer nicht gestattet wird, + Sicherheitsmerkmale nach eigenem Ermessen zu verändern; dass + Arbeitswerkzeuge, Programme und Skripte, innerhalb der + Beschränkungen arbeiten können, welche die Zugriffsregeln der + ausgewählten Module dem System auferlegen; und dass die volle + Kontrolle über die Regeln der <acronym>MAC</acronym> beim + Administrator ist und bleibt.</para> + + <para>Es ist die einsame Pflicht des zuständigen Administrators, die + richtigen Module sorgfältig auszuwählen. Einige Umgebungen + könnten eine Beschränkung der Zugriffe über die + Netzwerkschnittstellen benötigen - hier wären die Module + &man.mac.portacl.4;, &man.mac.ifoff.4; und sogar &man.mac.biba.4; ein + guter Anfang. In anderen Fällen muß man sehr strenge + Vertraulichkeit von Dateisystemobjekten gewährleisten - dafür + kö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äre eine gute Wahl. + Aber fü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ä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ßes Entwicklerteam angeführt, das in kleine Gruppen von + Mitarbeitern aufgeteilt wurde. Die Entwickler von Projekt A dürfen + nicht auf Objekte zugreifen, die von den Entwicklern von Projekt B + geschrieben wurden. Sie müssen aber trotzdem auf Objekte + zugreifen kö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önnen Anwender in solche Gruppen getrennt und ihnen der Zugriff zu + den gewünschten Systemobjekten gestattet werden - ohne Angst haben + zu müssen, dass Informationen in die falschen Hände + geraten.</para> + + <para>So hat jedes Modul, das eine Sicherheitsrichtlinie verfügbar + macht, einen eigenen Weg, die Sicherheit des Systems zu verstärken. + Die Auswahl der Module sollte auf einem gut durchdachten + Sicherheitskonzept gründen. In vielen Fällen muß das + gesamte Konzept eines Systems überarbeitet und neu eingepflegt + werden. Ein guter Überblick über die Möglichkeiten der + verschiedenen von der <acronym>MAC</acronym> angebotenen Module + hilft einem Administrator, die besten Richtlinien für seine + spezielle Situation auszuwählen.</para> + + <para>Im &os;-Standardkernel ist die Option zur Verwendung der + <acronym>MAC</acronym> nicht enthalten. Daher muß die + Zeile</para> + + + <programlisting>options MAC</programlisting> + + <para>der Kernelkonfiguration hinzugefügt und der Kernel neu + übersetzt und installiert werden.</para> + + <caution> + <para>Verschiedenen Anleitungen für die <acronym>MAC</acronym> + empfehlen, die einzelnen Module direkt in den Kernel einzuarbeiten. + Dabei ist es jedoch möglich, das System aus dem Netzwerk + auszusperren oder gar schlimmeres. Die Arbeit mit der + <acronym>MAC</acronym> ist ähnlich der Arbeit mit einer Firewall - + man muß, wenn man sich nicht selbst aus dem System aussperren + will, genau aufpassen. Man sollte sich eine Möglichkeit + zurechtlegen, wie man eine Implementation einer <acronym>MAC</acronym> + rückgängig machen kann - genauso wie eine Ferninstallation + über das Netzwerk nur mit äuß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ß er/sie verstehen können, was da genau passiert. Die + Attribute, die im speziellen Fall zu vergeben sind, hä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ür + Begleiterscheinungen mit sich bringt, ergibt sich meist als Resultat ein + unerwartetes, ja sogar unerwünschtes Verhalten des gesamten + Systems.</para> + + <para>Ein Label, einem Objekt verliehen, wird verwendet, um anhand einer + Richtlinie eine sicherheitsrelevante Entscheidung über + Zugriffsrechte zu fällen. In einigen Richtlinien enthält + bereits das Label selbst alle dafür nötigen Informationen. + Andere Richtlinien verwenden diese Informationen, um zunä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öglichkeit zum Vergeben + von Labels unter &os; unterstü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ür das jeweilige Objekt oder Subjekt deaktiviert - und das + <quote>high</quote>-Label die höchstmögliche Einstellung + erzwingt. Im Speziellen gilt diese Aussage fü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ür die Zugriffskontrolle auf das gesamte System verwendet + - und das ist meistens auch tatsächlich ausreichend. Es gibt wenige + Fälle, in denen mehrere Labels auf Dateisystemobjekte oder -subjekte + verwendet werden. In einem solchen Fall muß das Dateisystem mit + der &man.tunefs.8;-Option <option>multilabel</option> angepaß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ören, Zugang zu einer Gruppe + von Objekten erhalten.</para> + + <para>In den meisten Fällen wird ein Administrator nur ein einzelnes + Label für das gesamte Dateisystem verwenden.</para> + + <para><emphasis>Moment mal, dass ist doch dasselbe wie + <acronym>DAC</acronym>! Ich dachte, <acronym>MAC</acronym> würde die + Kontrolle strengstens an den Administrator binden!</emphasis> Diese + Aussage hält immer noch stand - <username>root</username> ist + derjenige, der die Kontrolle ausübt und die Richtlinie konfiguriert, + so dass Nutzer in die entsprechenden, angemessenen Kategorien / + Zugriffsklassen eingeordnet werden. Nunja, einige Module schränken + <username>root</username> selbst ein. Die Kontrolle über Objekte + wird dann einer Gruppe zugewiesen, jedoch hat <username>root</username> + die Möglichkeit, die Einstellungen jederzeit zu widerrufen oder zu + ä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ß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ührung dieses Kommandos keine Fehler + aufgetreten sind, gelangt man zur Eingabeaufforderung zurü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ällen wird dieser Fehler <errorname>Permission + denied</errorname> lauten und gewöhnlich dann auftreten, wenn ein + Label an einem Objekt angebracht oder verändert werden soll, das + bereits (Zugriffs-)Beschränkungen + unterliegt.<footnote><para>Andere Vorbedingungen führen + natürlich zu anderen Fehlern. Zum Beispiel wenn das Objekt nicht + dem Nutzer gehört, der das Label ändern möchte, das + Objekt vielleicht gar nicht existiert oder es sich um ein nur lesbares + Objekt handelt. Oder eine verbindliche Richtlinie erlaubt dem + Prozeß die Verä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 ä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 ü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ß ein anderes, valides Label zugeordnet wird. + Das Werkzeug <command>getpmac</command> wird normalerweise auf gerade + laufende Prozesse angewendet. Ähnlich + <application>sendmail</application>: Als Argument wird statt eines + Kommandos eine eine Prozeß-ID übergeben, es verbirgt sich + doch dieselbe Logik dahinter. Wenn ein Nutzer versucht, eine Datei zu + verä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>Ü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ö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äß das niedrigeste Label, das einem + Objekt oder Subjekt verliehen werden kann. Wird es gesetzt, kann + die entsprechende Entität nicht mehr auf Entitäten + zugreifen, die das Label <literal>high</literal> tragen.</para> + </listitem> + + <listitem> + <para>Das Label <literal>equal</literal> wird Entitäten + verliehen, die von der Richtlinie ausgenommen sein sollen.</para> + </listitem> + + <listitem> + <para>Das Label <literal>high</literal> verleiht einer Entität + die höchstmögliche Einstellung.</para> + </listitem> + </itemizedlist> + + <para>Unter Beachtung jedes einzelnen Richtlinienmoduls moduliert und + beschränkt jede dieser Einstellungen den Informationsfluß + unterschiedlich. Genaue Erklä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ß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ü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ür erweiterte Konfigurationen verwenden.</para> + + <para>Sobald sie auf <emphasis>Systemsubjekte</emphasis> angewendet + werden, haben diese eine gegenwärtige Klasse/Verbund- + Konfiguration und diese muß im definierten Rahmen + gegebenenfalls angepaßt (erhö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ü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ür einen Reihe von Abteilungen + zuordnen, die zum Beispiel mit entsprechenden Projekten + korrespondieren. Genauso können aber auch Objekten mehrere + Abteilungen zugeordnet sein. Die Nutzer müssen eventuell ihre + gegenwä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ü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ür jede + Richtlinie eine Einstellung enthä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ür einen Nutzer erzwungen wird. Nutzern darf + niemals gestattet werden, diese Werte selbst zu verä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ücklich empfohlen, dieses Kapitel zu Ende zu lesen, bevor + irgendein Teil dieser Konfiguration ausprobiert wird.</para> + + <note> + <para>Nutzer können ihr eigenes Label nach dem Loginvorgang + durchaus ändern. Jedoch kann diese Änderung nur unter den + Auflagen der gerade gültigen Richtlinie geschehen. Im + Beispiel oben wird für die Biba-Richtlinie eine minimale + Prozeßintegrität von 5, eine maximale von 15 angegeben, + aber die Voreinstellung des tatsächlichen Labels ist 10. Der + Nutzerprozeß läuft also mit einer Integrität von 10 + bis das Label verändert wird, zum Beispiel durch eine + Anwendung des Kommandos <command>setpmac</command>, welches jedoch + auf den Bereich eingeschränkt wird, der zum Zeitpunkt des + Logins angegeben wurde, in diesem Fall von 5 bis 15.</para> + </note> + + <para>Nach einer Änderung der Datei + <filename>login.conf</filename> muß in jedem Fall die + Befähigungsdatenbank mit dem Kommando + <command>cap_mkdb</command> neu erstellt werden - und das gilt + für alle im weiteren Verlauf gezeigten Beispiele und + Diskussionspunkte.</para> + + <para>Es ist nützlich anzumerken, dass viele Einsatzorte eine + große Anzahl von Nutzern haben, die wiederum viele + verschiedenen Nutzerklassen angehören sollen. Hier ist eine + Menge Planungsarbeit notwendig, da die Verwaltung sehr + unübersichtlich und schwierig ist.</para> + + <para>Zukünftige Versionen von &os; sollen neue Mö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örigen Label</title> + + <para>Labels können auch, wenn man sie an Netzwerkschittstellen + vergibt, helfen, den Datenfluß durch das Netzwerk zu + kontrollieren. Das funktioniert in allen Fällen genau so wie mit + Objekten. Nutzer, die in der Biba-Richtlinie das Label + <literal>high</literal> tragen, dürfen nicht auf Schnittstellen + zugreifen, die <literal>low</literal> markiert sind usw.</para> + + <para>Die Option <option>maclabel</option> wird via + <command>ifconfig</command> ü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ß das gesamte Label in Anführungszeichen + geschrieben werden, da sonst eine Fehlermeldung zurückgegeben + wird.</para> + + <para>Jedes Richtlinienmodul, das die Vergabe von Labels + unterstützt, stellt einen Parameter bereit, mit dem das + <acronym>MAC</acronym> Label für Netzwerkschnittstellen + deaktiviert werden kann. Das Label der Netzwerkschnittstelle auf + <literal>equal</literal> zu setzen, fü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ü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ä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ät beim + Einsatzes von Richtlinien ist ebenso gering. Viele Administratoren + wählen daher auch die Option <option>multilabel</option> im + Sicherheitsmodell, wenn die Umstände es erfordern.</para> + + <para>Die Option <option>multilabel</option> gestattet, jedem einzelnen + Subjekt oder Objekt seine eigenen unabhängigen Label zu + zuzuordnen. Die Optionen <option>multilabel</option> und <option> + singlelabel</option> betreffen jedoch nur die Richtlinien, die Labels + als Leistungsmerkmal verwenden, einschließ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ötigt. Dies + betrifft die Richtlinien <literal>seeotheruids</literal>, + <literal>portacl</literal> und <literal>partition</literal>.</para> + + <para>Man sollte sich dessen bewuß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ä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ü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ö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ß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ö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änkt sein und welche Art Einschränkung soll + verwendet werden?</para> + </listitem> + + <listitem> + <para>Welche(s) <acronym>MAC</acronym> Modul(e) wählt man, um sein + Ziel zu erreichen?</para> + </listitem> + </itemizedlist> + + <para>Es ist immer möglich, die Einstellungen des Systems und der + Systemressourcen im Nachhinein zu <quote>optimieren</quote>. Es ist aber + wirklich lä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ändiges Sicherheitsprofil zu erstellen spart weitere + Änderungen, nachdem das System in Betrieb genommen wurde. Also + werden die folgenden Abschnitte die verschiedenen Module vorstellen, die + den Administratoren zur Verfügung gestellt werden, die Nutzung und + Konfiguration der einzelnen Module beschreiben; und in einigen + Fällen Einblicke gewähren, fü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ä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ü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ü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ßerdem + wird erklärt, wie sie in bestimmte Umgebungen eingearbeitet werden + können. Einige Module unterstützen die Verwendung von + <literal>Labels</literal>, das heißt Zugriffskontrolle durch + hinzufü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 + über das Netzwerk kommuniziert werden darf. Im vorangehenden + Abschnitt wurde bereits erlä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ü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ötigen keine im Vorhinein zu setzenden Labels und können + leicht durchschaubar mit den anderen MAC-Modulen zusammenarbeiten.</para> + + <para>Nachdem das Modul geladen wurde, kö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ächst mit den Standardeinstellungen. + Diese verhindern, dass Nutzer Prozesse und Sockets sehen können, + die ihnen nicht selbst gehöen.</para> + </listitem> + + <listitem> + <para> + <literal>security.mac.seeotheruids.specificgid_enabled</literal> kann + eine spezifizierte Nutzergruppe von dieser Richtlinie ausnehmen. Die + entsprechende Gruppe muß an den Parameter + <literal>security.mac.seeotheruids.specificgid=<replaceable>XXX</replaceable></literal> + ü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äre</emphasis> Nutzergruppe von der Richtlinie + auszuschliessen. Dieser Parameter und + <literal>security.mac.seeotheruids.specificgid_enabled</literal> + schließ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ür + das Dateisystem und ist eine Erweiterung des sonst üblichen + Rechtemodells. Es erlaubt einem Administrator einen Regelsatz zum + Schutz von Dateien, Werkzeugen und Verzeichnissen in der + Dateisystemhierarchie zu erstellen, der einer Firewall ä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 Änderung + des &man.sysctl.8; Parameters + <literal>security.mac.bsdextended.firstmatch_enabled</literal> + eingestellt werden. Ähnlich wie bei den anderen Firewallmodulen + in &os; wird eine Datei erstellt, welche die Zugriffsregeln + enthä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önnen auch selbst erstellt werden, + indem die Funktionen der Bibliothek &man.libugidfw.3; verwendet + werden.</para> + + <para>Bei der Arbeit mit diesem Modul ist äuß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ä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äßt, muß + lediglich dieses Kommando ausgefü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ä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ören. + Dies schließt das Auslesen von Verzeichniseinträgen ein. + </para> + + <para>Anstelle <option>uid</option> <username>user1</username> + könnte auch <option>not uid + <replaceable>user2</replaceable></option> als Parameter übergeben + werden. Dies würde diesselben Einschränkungen fü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 Ü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ü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ährend der Bootphase + gestartet werden. Dieses Modul benötigt für seinen Betrieb + weder Labels, die auf dem System eingerichtet werden müssen, noch + hat es Abhängigkeiten zu anderen MAC Modulen.</para> + + <para>Der größte Teil der Kontrolle geschieht ü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ür den Berkeley Paket Filter &man.bpf.4;.</para> + </listitem> + + <listitem> + <para><literal>security.mac.ifoff.other_enabled</literal> + schaltet den Verkehr für alle anderen + Netzwerkschnittstellen.</para> + </listitem> + </itemizedlist> + + <para>Die wahrscheinlich häufigste Nutzung von &man.mac.ifoff.4; ist + die Überwachung des Netzwerks in einer Umgebung, in der kein + Netzwerkverkehr während des Bootvorgangs erlaubt werden soll. Eine + andere mögliche Anwendung wäre ein Script, das mit Hilfe von + <filename role="package">security/aide</filename> automatisch alle + Schnittstellen blockiert, sobald Dateien in geschützten + Verzeichnissen angelegt oder verä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ü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önnen die Anbindungen + an die lokalen <acronym>TCP</acronym> und <acronym>UDP</acronym> Ports + durch eine Vielzahl von <command>sysctl</command> Variablen + beschränkt werden. Genauer gesagt ermö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ür alle + Sockets verfügbar. Die folgenden Variablen können fü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ö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ä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> ü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 + ü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ä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önnen + nur Zahlenwerte übergeben werden. Das heiß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ü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 übernehmen kann, muß die &unix; + Standardeinstellung deaktiviert werden. Dazu ä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ührende Informationen entnehmen Sie bitte den unten aufgefü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ächst bestimmen wir, dass &man.mac.portacl.4; für alle + privilegierten Ports gelten soll und deaktivieren die normale + &unix;-Beschrä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ä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ü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ü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ährend + des Bootvorganges eingebunden wird.</para> + + <para>Der Großteil der Konfiguration geschieht mit dem Kommando + &man.setpmac.8;, wie gleich erklärt wird. Außerdem gibt es folgenden <command>sysctl</command> Parameter für diese Richtlinie.</para> + + <itemizedlist> + <listitem> + <para><literal>security.mac.partition.enabled</literal> erzwingt die + Verwendung von <acronym>MAC</acronym> + Prozeß-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ß-Partition zugeordnet sind. Sie können jedoch nicht auf + Prozesse oder Werkzeuge auß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ß erzeugen.</para> + + <para>Um einen Befehl einer Prozeß-Partition zuzuordnen, muß + 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ügt das Kommando <command>top</command> dem + Labelsatz für Nutzer der Klasse <literal>insecure</literal> hinzu, + sofern die Partition 13 mit der Klasse <literal>insecure</literal> + ü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ändert werden + kann.</para> + + <sect2> + <title>Beispiele</title> + + <para>Der folgende Befehl listet die vergebenen Label für + Prozeß-Partitionen und die laufenden Prozesse auf.</para> + + <screen>&prompt.root; <userinput>ps Zax</userinput></screen> + + <para>Das nächste Kommando liefert das Label der + Prozeß-Partition eines anderen Nutzers + <username>trhodes</username> und dessen gegenwärtig laufenden + Prozesse zurück.</para> + + <screen>&prompt.root; <userinput>ps -ZU trhodes</userinput></screen> + + <note> + <para>Jeder Nutzer kann die Prozesse in der Prozeß-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ä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örigen Manpages genauer erklä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ü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ß 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ünden zusammengefaßt. Da diese Freigabe- + oder Anfälligkeits-Level Zahlen größer 6000 erreichen + können, ist es für jeden Systemadministrator eine undankbare + Aufgabe, jede Entität von Grund auf zu konfigurieren. Zum + Glück gibt es 3 <quote>instant</quote> Labels, die in der Richtlinie + zur Anwendung bereit stehen.</para> + + <para>Diese drei Labels heißen <literal>mls/low</literal>, + <literal>mls/equal</literal> und <literal>mls/high</literal>. Da sie in + den Manpages &man.mac.mls.4; ausführlich beschrieben werden, gibt + es hier nur einen kurzen Abriß:</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öheres Freigabe-Level zugeordnet wurde. Einem Objekt mit + diesem Label kann außerdem keine Information durch ein Objekt + höherer Freigabe übergeben werden, es kann also auch nicht + durch solche Objekte editiert oder ü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örpert das + höchstmögliche Freigabe-Level. Objekte, denen dieses Label + zugeordnet wird, dominieren alle anderen Objekte des Systems. + Trotzdem kö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ö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önnen).</para> + </listitem> + </itemizedlist> + + <para>Nachfolgend werden die <command>sysctl</command>-Variablen + vorgestellt, die fü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ür, + dass während der Initialisierung alle &man.pty.4;-Geräte + als <literal>mls/equal</literal> gekennzeichnet werden.</para> + </listitem> + + <listitem> + <para><literal>security.mac.mls.revocation_enabled</literal> sorgt + dafür, dass die Zugriffsrechte von Objekten wieder + zurückgesetzt werden, nachdem deren Label vorübergehend auf + ein niedrigeres Freigabe-Level geändert wurde.</para> + </listitem> + + <listitem> + <para><literal>security.mac.mls.max_compartments</literal> gibt die + maximale Anzahl von Verbünden an. Im Prinzip ist es die + hö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ür diese + Richtlinie eine Konfigurationsdatei in <filename + class="directory">/etc</filename> abzulegen, die alle Informationen + enthält und mit der dann das Kommando <command>setfmac</command> + gefüttert wird. Diese Vorgehensweise wird erklä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ß + vertraulicher Informationen zu kontrollieren. Beim Starten der + Richtlinie ist immer <literal>mls/low</literal> voreingestellt - + alles kann auf alles zugreifen. Der Administrator ändert dies + während der eigentlichen Konfiguration, indem er die + Vertraulichkeit bestimmter Objekte erhöht.</para> + + <para>Jenseits der drei Grundeinstellungen des Labels kann der + Administrator einzelne Nutzer oder Nutzergruppen nach Bedarf + zusammenschließ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ärtigen Projekten. Ungeachtet der + Herangehensweise bei der Klassifizierung muß ein gut durchdachter + Plan existieren, bevor eine derart einengende Richtlinie umgesetzt + wird.</para> + + <para>Exemplarisch für die Anwendung dieses Moduls bzw. dieser + Richtlinie seien angefü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ür diese Richtlinie wä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ü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ädt die <acronym>MAC</acronym> Biba + Richtlinie. Diese ähnelt stark der <acronym>MLS</acronym> + Richtlinie, nur das die Regeln für den Informationsfluß ein + wenig vertauscht sind. Es wird in diesem Fall der absteigende Fluß + sicherheitskritischer Information geregelt, während die + <acronym>MLS</acronym> Richtlinie den aufsteigenden Fluß 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äts</quote>-Label zugeordnet. Diese Labels sind in + hierarchischen Klassen und nicht-hierarchischen Komponenten geordnet. Je + höher die Klasse, um so höher die Integrität.</para> + + <para>Die unterstützten Labels heißen + <literal>biba/low</literal>, <literal>biba/equal</literal> und + <literal>biba/high</literal>. Sie werden im Folgenden + erklärt:</para> + + <itemizedlist> + <listitem> + <para><literal>biba/low</literal> ist die niedrigste Stufe der + Integritä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ü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önnen Objekte niedrigerer Stufe schreiben , nicht jedoch lesen. + Es wird empfohlen, dass dieses Label an Objekte vergeben wird, die + sich auf Integrität des gesamten Systems auswirken.</para> + </listitem> + </itemizedlist> + + <para>Biba stellt bereit: + + <itemizedlist> + <listitem> + <para>Hierarchische Integritätsstufen mit einem Satz + nichthierarchischer Integritätskategorien;</para> + </listitem> + + <listitem> + <para>Festgeschriebene Regeln: kein <quote>Write-Up</quote>, kein + <quote>Read-Down</quote> (der Gegensatz zu MLS - ein Subjekt + erhält schreibenden Zugriff auf Objekte gleicher oder geringerer + Stufe, aber nicht bei höherer, und lesenden Zugriff bei gleicher + Stufe oder höerer, aber nicht bei niedrigerer);</para> + </listitem> + + <listitem> + <para>Integrität (es wird die Echtheit der Daten + gewährleistet, indem unangemessene Veränderungen verhindert + werden);</para> + </listitem> + + <listitem> + <para>Eine Abstufung der Gewä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ücksetzen des Labels, falls dieses zeitweise + geändert wurde um ein Subjekt zu dominieren.</para> + </listitem> + </itemizedlist> + + <para>Um Einstellungen der Biba Richtlinie für Systemobjekte zu + verä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ät in der Planungsphase</title> + + <para>Integrität garantiert, im Unterschied zu Sensitivität, + dass Informationen nur durch vertraute Parteien verändert werden + können. Dies schließt Informationen ein, die zwischen + Subjekten ausgetauscht werden, zwischen Objekt, oder auch zwischen den + beiden. Durch Integrität wird gesichert, das Nutzer nur + Informationen verändern, oder gar nur lesen können, die sie + explizit benötigen.</para> + + <para>Das Modul &man.mac.biba.4; eröffnet einem Administrator die + Mö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ährleistet - für diesen + Nutzer oder die Nutzergruppe.</para> + + <para>Während der anfänglichen Phase der Planung muß 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ält als Voreinstellung das Label + <literal>biba/high</literal> sobald das Modul aktiviert wird - und + es liegt allein am Administrator, die verschiedenen Klassen und Stufen + für die einzelnen Nutzer zu konfigurieren. Anstatt mit Freigaben + zu arbeiten, wie weiter oben gezeigt wurde, könnte man auch + Überbegriffe für Projekte oder Systemkomponenten entwerfen. + Zum Beispiel, ausschließlich Entwicklern den Vollzugriff auf + Quellcode, Compiler und Entwicklungswerkzeuge gewähren, + während man andere Nutzer in Kategorien wie Tester, Designer oder + einfach nur <quote>allgemeiner Nutzer</quote> zusammenfaßt, die + für diese Bereiche lediglich lesenden Zugriff erhalten + sollen.</para> + + <para>Mit seinem ursprünglichen Sicherheits-Standpunkt ist ein + Subjekt niedrigerer Integrität unfähig, ein Subjekt + höherer Integrität zu verändern. Ein Subjekt + höherer Integrität kann ein Subjekt niedrigerer + Integrität weder beobachten noch lesen. Wenn man ein Label + für die niedrigstmögliche Klasse erstellt, kann man diese + allen Subjekten verwehren. Einige weitsichtig eingerichtete + Umgebungen, die diese Richtlinie verwenden, sind eingeschrä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ü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ät nur, + nachdem das Integritätslevel gesenkt wurde. Dadurch wird eine + Störung derIntegritätsregeln verhindert.</para> + + <para>Die <acronym>MAC</acronym> Version der <quote>Low-Watermark</quote> + Richtlinie, die nicht mit der ä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ünde ermö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ängigen Etikettierung aller Systemobjekte mit + Integritätslabeln, die Subjekten das Lesen von Objekten niedriger + Integrität gestatten und dann das Label des Subjektes herunterstufen + - um zukünftige Schreibvorgänge auf Objekte hoher + Integrität zu unterbinden. Dies ist die Funktion der Option + <literal>[auxgrade]</literal>, die eben vorgestellt wurde. Durch sie + erhält diese Richtlinie eine bessere Kompatibilität und die + Initialisierung ist weniger aufwä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ä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ürzen.</para> + + <para>Bevor es losgeht, muß jedes Dateisystem mit der Option + <option>multilabel</option>, wie weiter oben beschrieben, markiert + werden. Dies nicht zu tun, führt zu Fehlern. Außerdem + mü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ü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ätzlich fügen wir beim Standardnutzer folgende Zeile + hinzu:</para> + + <programlisting>:label=biba/high:</programlisting> + + <para>Anschließend muß 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ügen Sie + zunächst noch die folgenden Zeilen in die Datei + <filename>/boot/loader.conf</filename> ein, damit die benötigten + Module wä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 ü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 >= 1001) && ($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ß 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ß Einschrä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ändig + abgegrenzt.</para> + + <para>Die Kontextdatei kann nun vom System eingelesen werden, indem + folgender Befehl ausgefü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ßerdem muß es auf jedem + einzelnen Dateisystem ausgeführt werden.</para> + </note> + + <para>In die Datei <filename>/etc/mac.conf</filename> müssen nun + noch diese Ä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ört in Datei <filename>rc.conf</filename> + zu den Optionen für die Netzwerkkarte. Falls die + Netzwerkverbindung(-en) via <acronym>DHCP</acronym> + konfiguriert werden, muß man dies nach jedem Systemstart + eigenhä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ü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ühren kann, ist + irgendwas schief gelaufen. Es sollte ein <errorname>permission + denied</errorname> Fehler ausgegeben werden.</para> + + <para>Wenn alles gut aussieht, kö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 && make stop && \ +setpmac biba/equal make start && setpmac biba/10\(10-10\) apachectl start && \ +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äuft. Wenn nicht, prü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ä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änkt. Wenn &man.setpmac.8; einen Befehl + außerhalb der definierten Schranken ausführen soll, wird + ein Fehler zurückgeliefert. In so einem Fall muß + <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öglichkeit, sich einzuloggen und dü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önnen gleichzeitig eingesetzt werden. Zusammen kann man mit ihnen + nicht nur den Zugriff auf Systemobjekte einschrä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ßenden Eintrag in <filename>/etc/rc.conf</filename> + hinzugefü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üssen aber noch angepaß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ür dass jeder Nutzer seine eigenen + Systemobjekte erhält.</para> + + <para>Nun fügen wir alle benö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önnen. Versuchen Sie, + &man.ls.1; auf das Heimatverzeichnis eines anderen Nutzers + auszuführen. Auch dieser Versuch wird fehlschlagen.</para> + + <para>Solange nicht die speziellen <command>sysctl</command>-Variablen + geändert wurden, hat der Superuser noch vollen Zugriff. Sobald auch + diese Einstellungen angepaßt wurden, führen Sie ruhig auch + den obigen Test als <username>root</username> aus.</para> + + <note> + <para>Wenn ein neuer Benutzer hinzugefügt wird, ist für diesen + zunä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ährend der Entwicklung des Frameworks haben einige Nutzer auf + Probleme hingewiesen. Einige davon werden hier aufgeführt:</para> + + <sect2> + <title>Die Option <option>multilabel</option> greift nicht auf der + <filename>/</filename>-Partition</title> + + <para>Es scheint, dass etwa jedem fünfzigsten Nutzer dieses Problem + widerfä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>Ö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ür <filename>/</filename> auf.</para> + </step> + + <step> + <para>Starten Sie in den Mehrbenutzermodus.</para> + </step> + + <step> + <para>Führen Sie <command>mount</command> + <option>-urw</option> <filename>/</filename> aus und ändern + Sie anschließend in der Datei <filename>/etc/fstab</filename> + die Option <option>ro</option> zurü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ü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ö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öst wird, gehen Sie weiter zu Schritt 2.</para> + </step> + + <step> + <para>Gehen Sie die Label-Richtlinien Schritt für Schritt + nocheinmal durch. Achten Sie darauf, dass für den Nutzer, bei + dem das Problem auftritt, fü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öhnlich ausgegeben, wenn der Nutzer ein + höhere Label-Einstellung hat als der, dessen Identität man + annehmen möchte. Ausfü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ägt, das Heimatverzeichnis von + <username>joe</username> nicht einsehen. Das passiert unabhänig + davon, ob <username>root</username> vorher mit <command>su</command> + die Identität von <username>joe</username> angenommen hat oder + nicht, da das Label sich nicht ändert. Hier haben wir also einen + Fall, in dem das Gewährleistungsmodell von Biba verhindert, das + der Superuser Objekte einer niedrigeren Integritä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ü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übergehen deaktiviert wird, muß die + Befähigungsdatenbank neu konfiguriert werden, d.h. die + <option>label</option> Option muß entfernt werden. + Überprüfen Sie, ob alle <option>label</option> Einträ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änkt. + Normalerweise passiert das nur, wenn ein Administrator ein Label an + diese Datei vergibt, das mit der allgemeingültigen Richtlinie, die + das System verwendet, in Konflikt steht. In solchen Fä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; über den Port <filename role="package">net/csup</filename> installieren. Alternativ können Sie zur Installation auch ein vorkompiliertes - Paket (Package) verwenden. <application>csup</application> - unterstützt allerdings keinen CVS-Modus. Wollen Sie - komplette Repositories spiegeln, müssen Sie also - weiterhin <application>CVSup</application> einsetzen. + Paket (Package) verwenden. Wollen Sie künftig <application>csup</application> einsetzen, überspringen Sie in den folgenden Ausfü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ür die Java-Programmiersprache. + <entry>Software für die Java™-Programmiersprache. </entry> <entry>Die <filename>java</filename>-Kategorie sollte nicht die Einzige fü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ürde das Setzen von - <programlisting>USE_GCC=3.2</programlisting> + <programlisting>USE_GCC=3.4</programlisting> - eine Abhängigkeit für GCC32 für jeden Port - einschliesslich GCC32 selbst hinzufügen!</para> + eine Abhängigkeit für GCC34 für jeden Port + einschliesslich GCC34 selbst hinzufügen!</para> </note> <table frame="none"> @@ -3908,8 +3909,8 @@ ALWAYS_KEEP_DISTFILES= yes <entry>Dieser Port benö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ä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ü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ühren hat.</para> @@ -4231,11 +4232,11 @@ ${MANPREFIX}/man/de/man3/baz.3.gz</programlisting> Die Einträ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äufigen @@ -5895,7 +5896,7 @@ PLIST_SUB+= NLS="@comment " Abhä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ür Abwärtskompatibilitä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ü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ö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ö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ö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ü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ö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ö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ängt, weisen Sie + <makevar>USE_KDE4</makevar> eine Liste mit benötigten + Komponenten zu. Die am häufigsten gebrauchten sind + unten aufgelistet (<makevar>_USE_KDE4_ALL</makevar> in + <filename>/usr/ports/Mk/bsd.kde4.mk</filename> enthält + stets die aktuelle Liste):</para> + + <table frame="none"> + <title>Verfü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ä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>${KDE4_PREFIX}</literal> statt + <literal>${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>${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äßig gesetzte + Variable <makevar>PREFIX</makevar> überschreibt. Die + Ports übernehmen jedoch, jeden über die + Umgebungsvariable <envar>MAKEFLAGS</envar> oder + <application>make</application>-Parameter festgelegten Wert + für <makevar>PREFIX</makevar>.</para> + + <para>Es kö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>${KDE4_PREFIX}</literal> installiert werden. + Der Standardwert von <literal>KDE4_PREFIX</literal> ist zur + Zeit <filename>/usr/local/kde4</filename>. Es ist auch + mö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, + ü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ü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ängigkeit von KDE-Bibliotheken und die Verwendung + von <application>automoc4</application> während der + Kompilierung fest. Mit Hilfe des configure-Protokolls + können die KDE-Komponenten und andere + Abhängigkeiten festgestellt werden. + <makevar>USE_KDE4</makevar> impliziert + <makevar>USE_QT_VER</makevar> nicht. Falls der Port Qt + 4-Komponenten benö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™ Development Kit (JDK) + <para>Wenn Ihr Port ein Java™ Development Kit (JDK™) benö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ötigt, kö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ügbar, wenn das JDK Java - 1.2 oder hö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ügbar, wenn das JDK - Java 1.2 oder hö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ügbar, wenn das JDK - Java 1.2 oder höher unterstü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ält. Für das JDK 1.2 oder später - ist dies - <filename>${JAVA_HOME}/jre/lib/rt.jar</filename>. - Frühere JDKs benutzten <filename> - ${JAVA_HOME}/lib/classes.zip</filename>.</entry> + enthä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 ähnelt dem + <makevar>ALL_TARGET</makevar> aufruft. Das ä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üglich <filename>rc.d</filename>-Skripten.</para> - <para>Ein oder mehrere rc-Skripten können installiert + <para>Ein oder mehrere <filename>rc.d</filename>-Skripten können installiert werden mittels:</para> <programlisting>USE_RC_SUBR= doormand</programlisting> @@ -9179,14 +9305,9 @@ CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}" <para>Skripten müssen im Unterverzeichnis <filename>files</filename> abgelegt und jeder Skript-Datei muss ein <literal>.in</literal>-Suffix hinzugefügt - werden. Der einzige Unterschied zu einem - <filename>rc.d</filename>-Skript aus dem Basissystem ist, dass - die Zeile <literal>. /etc/rc.subr</literal> in - <literal>. %%RC_SUBR%%</literal> umbenannt werden muss, - da ältere Versionen von &os; die Datei - <filename>/etc/rc.subr</filename> nicht besitzen. - Standarderweiterungen wie <makevar>SUB_LIST</makevar> werden - ebenfalls unterstützt. Die Verwendung von + werden. Standardmäßige + <makevar>SUB_LIST</makevar>-Ersetzungen werden für diese + Dateien unterstützt. Die Verwendung von <literal>%%PREFIX%%</literal> und <literal>%%LOCALBASE%%</literal> wird dringend empfohlen. Nä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ö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; 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 +# $FreeBSD$ +# # 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ür besteht, einen Dienst + früher starten zu lassen, sollten alle Ports-Skripten + <programlisting>REQUIRE: LOGIN</programlisting> verwenden. + Falls der Port von einem bestimmten Benutzer (außer + root) ausgefü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äre dies + nicht notwendig.</para> + <para>Für die Wertzuweisung von Variablen sollte "=" anstatt ":=" 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 ":=" würde in diesem Fall die Benutzerdefinition überschreiben.</para> - <para>Der Suffix des rc-Skriptes wird durch - <makevar>RC_SUBR_SUFFIX</makevar> für die weitere - Verwendung im <filename>Makefile</filename> des Ports - bereitgestellt. Aktuelle Versionen von &os; fügen keinen - Suffix den Skriptnamen hinzu im Gegensatz zu ä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ügt werden. @@ -9286,6 +9419,37 @@ run_rc_command "$1"</programlisting> übereinstimmen.</para> </sect2> </sect1> + + <sect1 id="users-and-groups"> + <title>Hinzufügen von Benutzern und Gruppen</title> + + <para>Manche Ports setzen voraus, dass ein bestimmter Benutzer + auf dem System angelegt ist. Wählen Sie in einem solchen + Fall eine freie Kennnummer zwischen 50 und 999 aus und tragen + Sie diese in <filename>ports/UIDs</filename> (für + Benutzer) oder <filename>ports/GIDs</filename> (für + Gruppen) ein. Stellen Sie dabei sicher, dass Sie keine + Kennnummer auswählen, die bereits vom System oder von + anderen Ports verwendet wird.</para> + + <para>Erstellen Sie bitte eine entsprechende Patch-Datei + für diese beiden Dateien, wenn für Ihren Port ein + neuer Benutzer oder eine neue Gruppe angelegt werden + muss.</para> + + <para>Sie kö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ängigkeit von den + ausgewählten Optionen Dateien installiert, ist es + ü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ügt wird, der die + Paket-Werkzeuge die Zeile ignorieren lä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ü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ö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> <dates> <discovery>2010-05-25</discovery> <co id="co-vx-dsc"> <entry>2010-07-13</entry> <co id="co-vx-ent"> - <modified>2010-09-17</entry> <co id="co-vx-mod"> + <modified>2010-09-17</modified> <co id="co-vx-mod"> </dates> </vuln></programlisting> @@ -13751,8 +13935,43 @@ Reference: <http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00 <entry>06. Juni 2009</entry> <entry>7.2-STABLE nach dem Einfließen von PmcTools.</entry> </row> - + <row> + <entry>702104</entry> + <entry>14. Juli 2009</entry> + <entry>7.2-STABLE nach dem Einfließen des + Systemaufrufs <function>closefrom</function>.</entry> + </row> + + <row> + <entry>702105</entry> + <entry>31. Juli 2009</entry> + <entry>7.2-STABLE nach dem Einfließen der + Änderung an der SYSVIPC-ABI.</entry> + </row> + + <row> + <entry>702106</entry> + <entry>14. September 2009</entry> + <entry>7.2-STABLE nach dem Einfließen der + PAT-Verbesserungen für x86-Prozessoren sowie dem + Hinzufügen von d_mmap_single() und des + VM-Objekttyps für scatter/gather-Listen.</entry> + </row> + + <row> + <entry>703000</entry> + <entry>9. Februar 2010</entry> + <entry>7.3-RELEASE</entry> + </row> + + <row> + <entry>703100</entry> + <entry>9. Februar 2010</entry> + <entry>7.3-STABLE nach 7.3-RELEASE.</entry> + </row> + + <row> <entry>800000</entry> <entry>11. Oktober 2007</entry> <entry>8.0-CURRENT. Nach der Trennung in "wide und @@ -14522,7 +14741,174 @@ Reference: <http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00 Zahlenmangel zusammengefasst. --> </row> - </tbody> + + <row> + <entry>800097</entry> + <entry>8. Juni 2009</entry> + <entry>8.0-CURRENT nach Einführung der + Destruktor-Infrastruktur für vnet + einschließlich Hooks.</entry> + </row> + + <row> + <entry>800097</entry> + <entry>11. Juni 2009</entry> + <entry>8.0-CURRENT nach Einführung eines + Erkennungssystems für ausgehende Pakete, die + direkt wieder in netgraph gelangen und deswegen + eingereiht werden. Dabei wurde auch die Definition von + struct thread geändert.</entry> + </row> + + <row> + <entry>800098</entry> + <entry>14. Juni 2009</entry> + <entry>8.0-CURRENT nach dem Einfließen von OpenSSL + 0.9.8k.</entry> + </row> + + <row> + <entry>800099</entry> + <entry>22. Juni 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. Juni 2009</entry> + <entry>8.0-CURRENT nach Änderung der + SYSVIPC-ABI.</entry> + </row> + + <row> + <entry>800101</entry> + <entry>29. Juni 2009</entry> + <entry>8.0-CURRENT nach dem Entfernen der + zeichenorientierten Geräte aus /dev/net, von + denen für jede Schnittstelle eines + existiert.</entry> + </row> + + <row> + <entry>800102</entry> + <entry>12. Juli 2009</entry> + <entry>8.0-CURRENT, nachdem struct sackhint, struct + tcpcb und struct tcpstat mit Padding-Bytes + aufgefüllt wurden.</entry> + </row> + + <row> + <entry>800103</entry> + <entry>13. Juli 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. Juli 2009</entry> + <entry>8.0-CURRENT nach dem Hinzufügen einer + vnet-spezifischen Speicherzuweisung, die auf dem + Linker-Set-Verfahren basiert.</entry> + </row> + + <row> + <entry>800105</entry> + <entry>19. Juli 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. Juli 2009</entry> + <entry>8.0-CURRENT nach Einführung des + VM-Objekttyps OBJT_SG.</entry> + </row> + + <row> + <entry>800107</entry> + <entry>2. August 2009</entry> + <entry>8.0-CURRENT nach Befreiung des Newbus-Subsystems + von Giant durch Hinzufügen von sxlock und 8.0-RELEASE.</entry> + </row> + + <row> + <entry>800108</entry> + <entry>21. November 2009</entry> + <entry>8.0-CURRENT nach Implementierung des + kevent-Filters EVFILT_USER.</entry> + </row> + + <row> + <entry>800500</entry> + <entry>7. Januar 2010</entry> + <entry>8.0-STABLE nach Erhöhung von + <literal>__FreeBSD_version</literal>, damit + <command>pkg_add -r</command> packages-8-stable + verwendet.</entry> + </row> + + <row> + <entry>800501</entry> + <entry>24. Januar 2010</entry> + <entry>8.0-STABLE, nachdem die Prototypen von + <function>scandir(3)</function> und + <function>alphasort(3)</function> geändert + wurden, um der SUSv4 zu entsprechen.</entry> + </row> + + <row> + <entry>800502</entry> + <entry>31. Januar 2010</entry> + <entry>8.0-STABLE nach Hinzufügen von + <function>sigpause(3)</function>.</entry> + </row> + + <row> + <entry>800503</entry> + <entry>25. Februar 2010</entry> + <entry>8.0-STABLE nach dem Hinzufügen der ioctls + SIOCGIFDESCR und SIOCSIFDESCR für + Netzwerk-Schnittstellen. Diese ioctls können, + nach dem Vorbild von OpenBSD, dazu verwendet werden, + Schnittstellenbeschreibungen zu bearbeiten und + auszulesen.</entry> + </row> + + <row> + <entry>800504</entry> + <entry>1. März 2010</entry> + <entry>8.0-STABLE, nachdem x86emu, ein Software-Emulator + von OpenBSD für x86-Prozessoren im Real-Mode, von + CURRENT übernommen wurde.</entry> + </row> + + <row> + <entry>900000</entry> + <entry>22. August 2009</entry> + <entry>9.0-CURRENT.</entry> + </row> + + <row> + <entry>900001</entry> + <entry>8. September 2009</entry> + <entry>9.0-CURRENT nach dem Import von x86emu, einem + Software-Emulator von OpenBSD für x86-Prozessoren + im Real-Mode.</entry> + </row> + + <row> + <entry>900002</entry> + <entry>23. September 2009</entry> + <entry>9.0-CURRENT nach Implementierung des + kevent-Filters EVFILT_USER.</entry> + </row> + </tbody> </tgroup> </table> @@ -14633,6 +15019,76 @@ Reference: <http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00 linkend="porting-prefix"> Mehr Informationen über <makevar>PREFIX</makevar></link>).</entry> </row> + + <row> + <entry>900003</entry> + <entry>2. Dezember 2009</entry> + <entry>9.0-CURRENT nach Hinzufügen von + <function>sigpause(3)</function> und der + PIE-Unterstützung zu csu.</entry> + </row> + + <row> + <entry>900004</entry> + <entry>6. Dezember 2009</entry> + <entry>9.0-CURRENT nach Hinzufügen von libulog und + dessen + libutempter-Kompatibilitätsschnittstelle.</entry> + </row> + + <row> + <entry>900005</entry> + <entry>12. Dezember 2009</entry> + <entry>9.0-CURRENT nach Hinzufü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. Januar 2010</entry> + <entry>9.0-CURRENT, nachdem die Prototypen von + <function>scandir(3)</function> und + <function>alphasort(3)</function> geändert + wurden, um der SUSv4 zu entsprechen.</entry> + </row> + + <row> + <entry>900007</entry> + <entry>13. Januar 2010</entry> + <entry>9.0-CURRENT nach dem Entfernen von utmp(5) und + dem Hinzufügen von utmpx (siehe + <function>getutxent(3)</function>) zur besseren + Erfassung von Benutzeranmeldungen und + Systemereignissen.</entry> + </row> + + <row> + <entry>900008</entry> + <entry>20. Januar 2010</entry> + <entry>9.0-CURRENT nach der Einführung von BSDL + bc/dc zur Ersetzung von GNU bc/dc.</entry> + </row> + + <row> + <entry>900009</entry> + <entry>26. Januar 2010</entry> + <entry>9.0-CURRENT nach dem Hinzufügen der ioctls + SIOCGIFDESCR und SIOCSIFDESCR für + Netzwerk-Schnittstellen. Diese ioctls können, + nach dem Vorbild von OpenBSD, dazu verwendet werden, + Schnittstellenbemerkungen zu bearbeiten und + auszulesen.</entry> + </row> + + <row> + <entry>900010</entry> + <entry>22. März 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ötigt, lassen Sie das - <filename>pkg-install</filename>-Skript den Aufruf von - <command>pw</command> machen, um ihn automatisch anzulegen. - Schauen Sie sich für ein Beispiel <filename - role="package">sysutils/symon</filename> an. - Ihr Port muss eine feste Benutzer/Gruppen-ID verwenden. - Sie müssen eine nicht benutzte UID - zwischen 50 und 999 benutzen und entweder in - <filename>ports/UIDs</filename> (für Benutzer) oder in - <filename>ports/GIDs</filename> (fü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ügen Sie einen Patch für diese beiden - Datei hinzu, falls für Ihren Port ein neuer Benutzer oder - Gruppe angelegt werden muss.</para> - </sect1> - <sect1 id="dads-rational"> <title>Aufgaben vernünftig lö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ü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ändig verändert, - können Distfiles schnell verloren gehen. Die <ulink - url="http://people.FreeBSD.org/~fenner/portsurvey/">FreeBSD - Ports Distfiles Prüfung</ulink> versucht jeden + können Distfiles schnell verloren gehen. Der <ulink + url="http://www.portscout.org">FreeBSD + Ports-Distfile-Scanner</ulink> versucht jeden Download-Standort für jeden Port anzufragen, um herauszufinden, ob jedes Distfile noch verfügbar ist. Maintainer werden gebeten diesen Bericht regelmäß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>"> |