Page MenuHomeFreeBSD

D5640.id14344.diff
No OneTemporary

D5640.id14344.diff

Index: head/de_DE.ISO8859-1/books/handbook/security/chapter.xml
===================================================================
--- head/de_DE.ISO8859-1/books/handbook/security/chapter.xml
+++ head/de_DE.ISO8859-1/books/handbook/security/chapter.xml
@@ -5,7 +5,7 @@
$FreeBSD$
$FreeBSDde: de-docproj/books/handbook/security/chapter.xml,v 1.178 2012/04/30 17:07:41 bcr Exp $
- basiert auf: r41320
+ basiert auf: r42014
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="security">
<info><title>Sicherheit</title>
@@ -25,22 +25,19 @@
<title>Übersicht</title>
<para>Dieses Kapitel bietet eine Einführung in die Konzepte
- der Systemsicherheit. Neben einigen Daumenregeln werden
- weiterführende Themen wie S/Key, OpenSSL und Kerberos
- diskutiert. Die meisten der hier besprochenen Punkte treffen
- sowohl auf die Systemsicherheit sowie die Internetsicherheit zu.
- Das Internet hat aufgehört ein <quote>friedlicher</quote>
- Ort zu sein, an dem Sie nur nette Leute finden werden. Es ist
- unumgänglich, dass Sie Ihre Daten, Ihr geistiges Eigentum,
- Ihre Zeit und vieles mehr vor dem Zugriff von Hackern
- schützen.</para>
-
- <para>&os; besitzt eine Reihe von Werkzeugen und Mechanismen, um die
- Integrität und die Sicherheit Ihrer Systeme und Netzwerke
- zu gewährleisten.</para>
+ der Systemsicherheit. Des weiteren werden einige allgemeine
+ Daumenregeln und einige fortgeschrittene Themen unter &os;
+ behandelt. Viele der hier besprochenen Punkte treffen sowohl
+ auf die Systemsicherheit als auch auf die Internetsicherheit zu.
+ Die Absicherung eines Systems ist unumgänglich, um Daten,
+ geistiges Eigentum, Zeit und vieles mehr vor Hackern und
+ dergleichen zu schützen.</para>
+
+ <para>&os; besitzt eine Reihe von Werkzeugen und Mechanismen, um
+ die Integrität und die Sicherheit des Systems und des Netzwerks
+ zu schützen.</para>
- <para>Nachdem Sie dieses Kapitel durchgearbeitet haben, werden
- Sie:</para>
+ <para>Nachdem Sie dieses Kapitel gelesen haben, werden Sie:</para>
<itemizedlist>
<listitem>
@@ -50,8 +47,7 @@
<listitem>
<para>Die verschiedenen Verschlüsselungsmechanismen
- von &os;, wie <acronym>DES</acronym> oder
- <acronym>MD5</acronym>, kennen.</para>
+ von &os; kennen.</para>
</listitem>
<listitem>
@@ -60,36 +56,33 @@
</listitem>
<listitem>
- <para><acronym>TCP</acronym>-Wrapper für
- <application>inetd</application> einrichten können.</para>
+ <para><acronym>TCP</acronym>-Wrapper für &man.inetd.8;
+ einrichten können.</para>
</listitem>
<listitem>
- <para>Wissen, wie Sie <application>Kerberos5</application>
+ <para>Wissen, wie Sie <application>Kerberos</application>
unter &os; einrichten.</para>
</listitem>
<listitem>
- <para>Firewalls mit <acronym>IPFW</acronym>
- erstellen können.</para>
+ <para>Wissen, wie Sie IPsec konfigurieren und ein
+ <acronym>VPN</acronym> einrichten.</para>
</listitem>
<listitem>
- <para>Wissen, wie Sie IPsec konfigurieren und ein
- <acronym>VPN</acronym> zwischen &os;/&windows;
- Systemen einrichten,</para>
+ <para>Wissen, wie Sie <application>OpenSSH</application> unter
+ &os; konfigurieren und benutzen.</para>
</listitem>
<listitem>
- <para><application>OpenSSH</application>, &os;s
- Implementierung von <acronym>SSH</acronym>, konfigurieren
- und benutzen können.</para>
+ <para>Wissen, wie Sie <acronym>ACL</acronym>s für Dateisysteme
+ benutzen.</para>
</listitem>
<listitem>
<para><application>Portaudit</application> anwenden können,
- um Softwarepakete Dritter, die Sie über die
- Ports-Sammlung installieren, auf bekannte
+ um Softwarepakete aus der Ports-Sammlung auf bekannte
Sicherheitslücken hin zu überprüfen.</para>
</listitem>
@@ -99,8 +92,13 @@
<listitem>
<para>Eine Vorstellung davon haben, was Prozessüberwachung
- (<foreignphrase>Process Accounting</foreignphrase>) ist und wie
- Sie diese Funktion unter &os; aktivieren können.</para>
+ (<foreignphrase>Process Accounting</foreignphrase>) ist und
+ wie Sie diese Funktion unter &os; aktivieren können.</para>
+ </listitem>
+
+ <listitem>
+ <para>Wissen, wie Sie die Ressourcen-Datenbank benutzt, um die
+ Ressourcen für Benutzer zu steuern.</para>
</listitem>
</itemizedlist>
@@ -114,33 +112,26 @@
</itemizedlist>
<para>Dieses Buch behandelt weitere Sicherheitsthemen.
- Beispielsweise werden vorgeschriebene Zugriffskontrollen
- in <xref linkend="mac"/> und Firewalls in
+ Beispielsweise werden verbindliche Zugriffskontrollen
+ im <xref linkend="mac"/> und Firewalls im
<xref linkend="firewalls"/> besprochen.</para>
</sect1>
<sect1 xml:id="security-intro">
<title>Einführung</title>
- <para>Sicherheit ist ein Konzept, das beim Systemadministrator anfängt
- und aufhört. Obwohl alle BSD &unix; Mehrbenutzersysteme über
- Sicherheitsfunktionen verfügen, ist es wohl eine der
- größten Aufgaben eines Systemadministrators zusätzliche
- Sicherheitsmechanismen zu erstellen und zu pflegen. Maschinen sind
- nur so sicher wie sie gemacht werden und Sicherheitsanforderungen
- stehen oft der Benutzerfreundlichkeit entgegen. Auf &unix; Systemen
- können sehr viele Prozesse gleichzeitig laufen und viele dieser
- Prozesse sind Server, das heißt von außen kann auf sie
- zugegriffen werden. In einer Zeit, in der die Minicomputer und
- Mainframes von gestern die Desktops von heute sind und Rechner
- immer mehr vernetzt werden, kommt der Sicherheit eine große
- Bedeutung zu.</para>
+ <para>Sicherheit ist ein Konzept, das beim Systemadministrator
+ anfängt und aufhört. Obwohl &os; über Sicherheitsfunktionen
+ verfügt, ist die Erstellung und Pflege von zusätzlichen
+ Sicherheitsmechanismen wohl eine der größten Aufgaben eines
+ Systemadministrators.</para>
<para>Zur Systemsicherheit gehört auch die Beschäftigung mit
verschiedenen Arten von Angriffen, auch solchen, die versuchen,
ein System still zu legen, oder sonst unbrauchbar zu machen ohne
- <systemitem class="username">root</systemitem> zu kompromittieren. Sicherheitsaspekte
- lassen sich in mehrere Kategorien unterteilen:</para>
+ <systemitem class="username">root</systemitem> zu
+ kompromittieren. Sicherheitsaspekte lassen sich in mehrere
+ Kategorien unterteilen:</para>
<orderedlist>
<listitem>
@@ -152,8 +143,9 @@
</listitem>
<listitem>
- <para>Kompromittierter <systemitem class="username">root</systemitem>-Account durch
- zugreifbare Server.</para>
+ <para>Kompromittierter <systemitem
+ class="username">root</systemitem>-Account durch
+ zugängliche Server.</para>
</listitem>
<listitem>
@@ -167,32 +159,30 @@
</orderedlist>
<indexterm>
- <primary>DoS Angriffe</primary>
+ <primary>DoS-Angriffe</primary>
<see>Denial-of-Service (DoS)</see>
</indexterm>
<indexterm>
<primary>Sicherheit</primary>
- <secondary>DoS Angriffe</secondary>
+ <secondary>DoS-AAngriffe</secondary>
<see>Denial-of-Service (DoS)</see>
</indexterm>
<indexterm><primary>Denial-of-Service (DoS)</primary></indexterm>
- <para>Ein Denial-of-Service (Verhinderung von Diensten, DoS) Angriff
+ <para>Ein Denial-of-Service <acronym>DoS</acronym>-Angriff
entzieht einer Maschine Ressourcen, die sie zur Bereitstellung
- von Diensten benötigt. Meist versuchen Denial-of-Service Angriffe
- die Dienste oder den Netzwerkstack einer Maschine zu überlasten,
- um so die Maschine auszuschalten oder nicht nutzbar zu machen. Einige
- Angriffe versuchen, Fehler im Netzwerkstack auszunutzen, und die
- Maschine mit einem einzigen Paket auszuschalten. Diese Art des
- Angriffs kann nur verhindert werden, indem der entsprechende Fehler
- im Kernel behoben wird. Oft können Angriffe auf Dienste durch
- die Angabe von Optionen verhindert werden, die die Last, die ein
- Dienst auf das System unter widrigen Umständen ausüben kann,
- begrenzt. Angriffen auf das Netzwerk ist schwerer zu begegnen.
- Außer durch Trennen der Internetverbindung ist zum Beispiel
- einem Angriff mit gefälschten Paketen nicht zu begegnen.
- Diese Art von Angriff wird Ihr System zwar nicht unbrauchbar machen,
- kann aber die Internetverbindung sättigen.</para>
+ von Diensten benötigt. Meist versuchen
+ <acronym>DoS</acronym>-Angriffe die Dienste oder den
+ Netzwerkstack einer Maschine zu überlasten, um so die Maschine
+ auszuschalten oder nicht nutzbar zu machen. Oft können
+ Angriffe auf Dienste durch die Angabe von Optionen verhindert
+ werden, die die Last, die ein Dienst auf das System unter
+ widrigen Umständen ausüben kann, begrenzt. Angriffen auf das
+ Netzwerk ist schwerer zu begegnen. Außer durch Trennen der
+ Internetverbindung ist zum Beispiel einem Angriff mit
+ gefälschten Paketen nicht zu begegnen. Diese Art von Angriff
+ wird das System zwar nicht unbrauchbar machen, kann aber die
+ Internetverbindung sättigen.</para>
<indexterm>
<primary>Sicherheit</primary>
@@ -200,25 +190,20 @@
</indexterm>
<para>Kompromittierte Accounts kommen noch häufiger als
- DoS Angriffe vor. Viele Systemadministratoren lassen auf ihren
- Maschinen noch die Dienste <application>telnetd</application>,
- <application>rlogind</application>, <application>rshd</application>
- und <application>ftpd</application> laufen. Verbindungen zu diesen
- Servern werden nicht verschlüsselt. Wenn Sie eine
- größere Benutzerzahl auf Ihrem System haben, die sich von
- einem entfernten System anmelden, ist die Folge davon, dass
- das Passwort eines oder mehrerer Benutzer ausgespäht wurde.
- Ein aufmerksamer Systemadministrator wird die Logs über Anmeldungen
- von entfernten Systemen auf verdächtige Quelladressen, auch
- für erfolgreiche Anmeldungen, untersuchen.</para>
-
- <para>Es ist immer davon auszugehen, dass ein Angreifer, der
- Zugriff auf einen Account hat, Zugang zum
- <systemitem class="username">root</systemitem>-Account erlangt. Allerdings gibt der
- Zugriff auf einen Account auf einem gut gesicherten und
- gepflegten System nicht notwendig Zugriff auf den
- <systemitem class="username">root</systemitem>-Account. Diese Unterscheidung ist wichtig,
- da ein Angreifer, der keinen Zugang zu <systemitem class="username">root</systemitem>
+ <acronym>DoS</acronym>-Angriffe vor. Viele
+ Systemadministratoren lassen immer noch unverschlüsselte Dienste
+ laufen, was zur Folge hat, dass das Passwort von Benutzern, die
+ sich von einem entfernten Standort anmelden, leicht ausgespäht
+ werden kann. Ein aufmerksamer Systemadministrator wird die
+ Logdateien über Anmeldungen von entfernten Systemen auf
+ verdächtige Quelladressen, auch für erfolgreiche Anmeldungen,
+ untersuchen.</para>
+
+ <para>Allerdings gibt der Zugriff auf einen Account auf einem gut
+ gesicherten und gepflegten System nicht notwendig Zugriff auf
+ den <systemitem class="username">root</systemitem>-Account.
+ Diese Unterscheidung ist wichtig, da ein Angreifer, der keinen
+ Zugang zu <systemitem class="username">root</systemitem>
besitzt, seine Spuren nicht verwischen kann. Er kann höchstens
die Dateien des betreffenden Benutzers verändern oder die
Maschine stilllegen. Kompromittierte Accounts sind sehr
@@ -240,21 +225,7 @@
ihm erlaubt, <systemitem class="username">root</systemitem> zu werden, wenn er einmal
einen Account kompromittiert hat. Wenn ein Angreifer einen
Weg gefunden hat, <systemitem class="username">root</systemitem> zu werden, braucht er
- vielleicht keine Hintertür auf dem System installieren.
- Viele der heute
- bekannten und geschlossenen Sicherheitslöcher, die zu einem
- <systemitem class="username">root</systemitem> Zugriff führen, verlangen vom Angreifer
- einen erheblichen Aufwand, um seine Spuren zu verwischen. Aus diesem
- Grund wird er sich wahrscheinlich entschließen, eine Hintertür
- (engl. <foreignphrase>Backdoor</foreignphrase>) zu installieren.
- Eine Hintertür erlaubt es
- dem Angreifer leicht auf den <systemitem class="username">root</systemitem>-Account
- zuzugreifen. Einem klugen Systemadministrator erlaubt sie allerdings
- auch, den Einbruch zu entdecken. Wenn Sie es einem Angreifer verwehren,
- Hintertüren zu installieren, kann das schädlich für
- Ihre Sicherheit sein, da es vielleicht verhindert, dass die
- Lücke, die der Angreifer für den Einbruch ausgenutzt hat,
- entdeckt wird.</para>
+ vielleicht keine Hintertür auf dem System installieren.</para>
<para>Sicherheitsmaßnahmen sollten immer in mehreren Schichten
angelegt werden. Die Schichten können wie folgt eingeteilt
@@ -262,8 +233,8 @@
<orderedlist>
<listitem>
- <para>Absichern von <systemitem class="username">root</systemitem> und
- Accounts.</para>
+ <para>Absichern von <systemitem
+ class="username">root</systemitem>-Accounts.</para>
</listitem>
<listitem>
@@ -272,7 +243,7 @@
</listitem>
<listitem>
- <para>Absichern von Accounts.</para>
+ <para>Absichern von Benutzer-Accounts.</para>
</listitem>
<listitem>
@@ -306,91 +277,69 @@
<secondary>&os; absichern</secondary>
</indexterm>
- <note>
- <title>Kommandos und Protokolle</title>
- <para>In diesem Abschnitt werden Anwendungen
- <application>fett</application> gekennzeichnet, spezifische
- Kommandos werden in einer <command>Fixschrift</command>
- dargestellt und Protokolle verwenden die normale Schriftart.
- Diese typographische Konvention hilft, Begriffe wie ssh
- zu unterscheiden, die sowohl Protokoll als auch Kommando
- sein können.</para>
- </note>
-
- <para>Die folgenden Abschnitte behandeln die im
- <link linkend="security-intro">letzten Abschnitt</link> erwähnten
- Methoden Ihr &os;-System zu sichern.</para>
+ <para>Dieser Abschnitt behandelt die im
+ <link linkend="security-intro">letzten Abschnitt</link>
+ erwähnten Methoden zur Absicherung eines &os;-Systems.</para>
<sect2 xml:id="securing-root-and-staff">
<title>Absichern von <systemitem class="username">root</systemitem> und
Accounts</title>
<indexterm>
- <primary><command>su</command></primary>
+ <primary>&man.su.1;</primary>
</indexterm>
- <para>Zuallererst, kümmern Sie sich nicht um die Absicherung
- von Accounts, wenn Sie <systemitem class="username">root</systemitem>
- noch nicht abgesichert haben. Auf den meisten Systemen ist
- <systemitem class="username">root</systemitem> ein Passwort zugewiesen. Sie
- sollten <emphasis>immer</emphasis> davon ausgehen, dass
- dieses Passwort kompromittiert ist. Das heißt nicht,
- dass Sie das Passwort entfernen sollten, da es meist
- für den Konsolenzugriff notwendig ist. Vielmehr heißt
- es, dass Sie das Passwort nicht außerhalb der
- Konsole, auch nicht zusammen mit &man.su.1;, verwenden sollten.
- Stellen Sie sicher, dass Ihre PTYs in <filename>ttys</filename> als
- unsicher markiert sind und damit Anmeldungen von
- <systemitem class="username">root</systemitem> mit <command>telnet</command> oder
- <command>rlogin</command> verboten sind. Wenn Sie andere
- Anwendungen wie <application>SSH</application> zum Anmelden
- benutzen, vergewissern Sie sich, dass dort ebenfalls
- Anmeldungen als <systemitem class="username">root</systemitem> verboten sind. Für
- <application>SSH</application> editieren Sie
- <filename>/etc/ssh/sshd_config</filename> und überprüfen,
- dass <literal>PermitRootLogin</literal> auf <literal>no</literal>
- gesetzt ist. Beachten Sie jede Zugriffsmethode &ndash; Dienste
- wie FTP werden oft vergessen. Nur an der Systemkonsole sollte
- ein direktes Anmelden als <systemitem class="username">root</systemitem> möglich
- sein.</para>
+ <para>Auf den meisten Systemen ist <systemitem
+ class="username">root</systemitem> ein Passwort zugewiesen.
+ Sie sollten <emphasis>immer</emphasis> davon ausgehen, dass
+ dieses Passwort kompromittiert ist. Das heißt nicht, dass Sie
+ das Passwort entfernen sollten, da es meist für den
+ Konsolenzugriff notwendig ist. Vielmehr heißt es, dass Sie
+ das Passwort nicht außerhalb der Konsole, auch nicht zusammen
+ mit &man.su.1;, verwenden sollten. Stellen Sie sicher, dass
+ die PTYs in <filename>ttys</filename> als
+ <literal>insecure</literal> markiert sind und damit
+ Anmeldungen von <systemitem class="username">root</systemitem>
+ verboten sind. In &os; ist die Anmeldung für <systemitem
+ class="username">root</systemitem> über &man.ssh.1; in der
+ Voreinstellung deaktiviert, da in
+ <filename>/etc/ssh/sshd_config</filename>
+ <literal>PermitRootLogin</literal> auf <literal>no</literal>
+ gesetzt ist. Beachten Sie jede Zugriffsmethode &ndash;
+ Dienste wie FTP werden oft vergessen. Nur an der
+ Systemkonsole sollte ein direktes Anmelden als <systemitem
+ class="username">root</systemitem> möglich sein.</para>
<indexterm>
<primary><systemitem class="groupname">wheel</systemitem></primary>
</indexterm>
- <para>Natürlich müssen Sie als Systemadministrator
- <systemitem class="username">root</systemitem>-Zugriff erlangen können. Dieser
- sollte aber durch zusätzliche Passwörter
- geschützt sein. Ein Weg, Zugang zu <systemitem class="username">root</systemitem>
- zu ermöglichen, ist es, berechtigte Mitarbeiter in
- <filename>/etc/group</filename> in die Gruppe
- <systemitem class="groupname">wheel</systemitem> aufzunehmen. Die Personen, die
- Mitglieder in der Gruppe <systemitem class="groupname">wheel</systemitem> sind,
- können mit <command>su</command> zu <systemitem class="username">root</systemitem>
- wechseln. Ihre Mitarbeiter sollten niemals die Gruppe
- <systemitem class="groupname">wheel</systemitem> als primäre Gruppe in
- <filename>/etc/passwd</filename> besitzen. Mitarbeiter sollten
- der Gruppe <systemitem class="groupname">staff</systemitem> angehören und über
- <filename>/etc/group</filename> in <systemitem class="groupname">wheel</systemitem>
- aufgenommen werden. Es sollten auch nur die Mitarbeiter, die
- wirklich <systemitem class="username">root</systemitem> Zugriff benötigen in
- <systemitem class="groupname">wheel</systemitem> aufgenommen werden. Mit anderen
- Authentifizierungsmethoden müssen Sie niemanden in
- <systemitem class="groupname">wheel</systemitem> aufnehmen. Wenn Sie z.B.
- <application>Kerberos</application> benutzen, wechseln Sie mit
- &man.ksu.1; zu <systemitem class="username">root</systemitem> und der Zugriff wird
- mit der Datei <filename>.k5login</filename> geregelt. Dies ist
- vielleicht eine bessere Lösung, da es der
- <systemitem class="groupname">wheel</systemitem>-Mechanismus einem Angreifer immer
- noch möglich macht, den <systemitem class="username">root</systemitem>-Account
- zu knacken, nachdem er einen Mitarbeiter-Account geknackt hat.
- Obwohl der <systemitem class="groupname">wheel</systemitem>-Mechanismus besser als
- gar nichts ist, ist er nicht unbedingt die sicherste Lösung.</para>
+ <para>Natürlich muss ein Systemadministrator
+ <systemitem class="username">root</systemitem>-Zugriff
+ erlangen können. Dieser sollte aber durch zusätzliche
+ Passwörter geschützt sein. Ein Weg, Zugang zu <systemitem
+ class="username">root</systemitem> zu ermöglichen, ist es,
+ berechtigte Mitarbeiter in <filename>/etc/group</filename> in
+ die Gruppe <systemitem class="groupname">wheel</systemitem>
+ aufzunehmen. Die Personen dieser Gruppe können mit
+ <command>su</command> zu <systemitem
+ class="username">root</systemitem> wechseln. Nur die
+ Mitarbeiter, die tatsächlich <systemitem
+ class="username">root</systemitem>-Zugriff benötigen,
+ sollten in die Gruppe <systemitem
+ class="groupname">wheel</systemitem> aufgenommen werden.
+ Wenn Sie Kerberos für die Authentifizierung benutzen,
+ erstellen Sie <filename>.k5login</filename> im
+ Heimatverzeichnis von <systemitem
+ class="username">root</systemitem>, damit &man.su.1;
+ verwendet werden kann, ohne jemanden in <systemitem
+ class="groupname">wheel</systemitem> aufnehmen zu
+ müssen.</para>
- <para>Um ein Konto komplett zu sperren, verwenden Sie den Befehl
+ <para>Um ein Konto komplett zu sperren, verwenden Sie
&man.pw.8;:</para>
- <screen>&prompt.root;<userinput>pw lock staff</userinput></screen>
+ <screen>&prompt.root;<userinput>pw lock <replaceable>staff</replaceable></userinput></screen>
<para>Danach ist es diesem Benutzer nicht mehr möglich (auch
nicht mit &man.ssh.1;), sich anzumelden.</para>
@@ -404,32 +353,30 @@
<programlisting>foobar:R9DT/Fa1/LV9U:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcsh</programlisting>
- <para>wie folgt abgeändert werden:</para>
+ <para>mit &man.vipw.8; wie folgt abgeändert werden:</para>
<programlisting>foobar:*:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcsh</programlisting>
- <para>Durch diese Änderung wird der Benutzer
- <systemitem class="username">foobar</systemitem> daran gehindert, sich auf
- konventionellem Wege am System anzumelden. Diese
- Maßnahmen greifen allerdings nicht, wenn das betroffene
- System auch eine Anmeldung über
- <application>Kerberos</application> oder &man.ssh.1; erlaubt.</para>
-
- <para>Diese Sicherheitsmechanismen setzen voraus, dass
- Sie sich von einer restriktiven Maschine auf einer weniger restriktiven
- Maschine anmelden. Wenn zum Beispiel auf Ihrem Hauptrechner alle
- möglichen Arten von Servern laufen, so sollten auf Ihrer
- Workstation keine Server laufen. Um Ihre Workstation vernünftig
- abzusichern, sollten auf Ihr so wenig Server wie möglich bis hin
- zu keinem Server laufen. Sie sollten zudem über einen
- Bildschirmschoner verfügen, der mit einem Passwort
- gesichert ist. Natürlich kann ein Angreifer, der physikalischen
- Zugang zu einer Maschine hat, jede Art von Sicherheitsmechanismen
- umgehen. Dieses Problem sollten Sie daher auch in Ihren
- Überlegungen berücksichtigen. Beachten Sie dabei aber,
- dass der Großteil der Einbrüche über das
- Netzwerk erfolgt und die Einbrecher keinen Zugang zu der Maschine
- besitzen.</para>
+ <para>Diese Änderung hindert den Benutzer <systemitem
+ class="username">foobar</systemitem> daran, sich auf
+ konventionellem Wege am System anzumelden. Diese Maßnahmen
+ greifen allerdings nicht, wenn das betroffene System auch
+ eine Anmeldung über <application>Kerberos</application> oder
+ &man.ssh.1; erlaubt.</para>
+
+ <para>Diese Sicherheitsmechanismen setzen voraus, dass sich
+ Benutzer von einer restriktiven Maschine auf einer weniger
+ restriktiven Maschine anmelden. Wenn zum Beispiel auf dem
+ Hauptrechner alle möglichen Arten von Servern laufen, so
+ sollten auf der Workstation keine Server laufen. Um die
+ Workstation vernünftig abzusichern, sollten darauf so wenig
+ Server wie möglich bis hin zu keinem Server laufen. Sie
+ sollten zudem über einen Bildschirmschoner verfügen, der mit
+ einem Passwort gesichert ist. Natürlich kann ein Angreifer,
+ der physikalischen Zugang zu einer Maschine hat, jede Art von
+ Sicherheitsmechanismen umgehen. Beachten Sie, dass der
+ Großteil der Einbrüche über das Netzwerk erfolgt und die
+ Einbrecher keinen Zugang zu der Maschine besitzen.</para>
<para>Mit <application>Kerberos</application> können Sie das
Passwort eines Mitarbeiters an einer Stelle ändern
@@ -443,8 +390,7 @@
Beschränkungen für Passwörter festlegen:
Nicht nur das Ticket kann nach einiger Zeit ungültig werden,
Sie können auch festlegen, dass ein Benutzer nach einer
- bestimmten Zeit, z.B. nach einem Monat, das Passwort wechseln
- muss.</para>
+ bestimmten Zeit das Passwort wechseln muss.</para>
</sect2>
<sect2>
@@ -452,112 +398,39 @@
Servern und SUID/SGID Programmen</title>
<indexterm>
- <primary><command>ntalk</command></primary>
- </indexterm>
- <indexterm>
- <primary><command>comsat</command></primary>
- </indexterm>
- <indexterm>
- <primary><command>finger</command></primary>
- </indexterm>
- <indexterm>
<primary>Sandkästen</primary>
</indexterm>
<indexterm>
- <primary><application>sshd</application></primary>
- </indexterm>
- <indexterm>
- <primary><application>telnetd</application></primary>
- </indexterm>
- <indexterm>
- <primary><application>rshd</application></primary>
- </indexterm>
- <indexterm>
- <primary><application>rlogind</application></primary>
- </indexterm>
-
- <para>Ein kluger Systemadministrator lässt nur die
- Dienste, die er wirklich braucht, laufen; nicht mehr und auch
- nicht weniger. Beachten Sie, dass Server von Dritten die
- fehleranfälligsten sind. Wenn Sie z.B. eine alte Version von
- <application>imapd</application> oder <application>popper</application>
- laufen lassen, ist das so, als würden Sie der ganzen Welt
- freien Zugang zu <systemitem class="username">root</systemitem> geben. Lassen Sie keine
- Server laufen, die Sie vorher nicht genau überprüft haben.
- Viele Server müssen nicht unter <systemitem class="username">root</systemitem>
- laufen, zum Beispiel können <application>ntalk</application>,
- <application>comsat</application> und <application>finger</application>
- in speziellen <firstterm>Sandkästen</firstterm> unter
- einem Benutzer laufen. Ein Sandkasten ist keine perfekte Lösung,
- wenn Sie nicht eine Menge Arbeit in die Konfiguration investieren,
- doch bewährt sich hier das Prinzip, die Sicherheit in Schichten
- aufzubauen. Wenn es einem Angreifer gelingt, in einen Server,
- der in einem Sandkasten läuft, einzubrechen, dann muss
- er immer noch aus dem Sandkasten selber ausbrechen. Je mehr Schichten
- der Angreifer zu durchbrechen hat, desto kleiner sind seine Aussichten
- auf Erfolg. In der Vergangenheit wurden praktisch in jedem
- Server, der unter <systemitem class="username">root</systemitem> läuft, Lücken
- gefunden, die zu einem <systemitem class="username">root</systemitem> Zugriff führten.
- Dies betrifft selbst die grundlegenden Systemdienste. Wenn Sie eine
- Maschine betreiben, auf der man sich nur mit
- <application>SSH</application> anmelden kann, dann stellen Sie die
- Dienste <application>telnetd</application>,
- <application>rshd</application> oder <application>rlogind</application>
- ab!</para>
-
- <para>In der Voreinstellung laufen unter &os;
- <application>ntalkd</application>, <application>comsat</application>
- und <application>finger</application> nun in einem Sandkasten. Ein
- weiteres Programm, das in einem Sandkasten laufen sollte, ist
- &man.named.8;. In <filename>/etc/defaults/rc.conf</filename> sind
- die notwendigen Argumente, um <application>named</application> in
- einem Sandkasten laufen zu lassen, in kommentierter Form schon
- enthalten. Abhängig davon, ob Sie ein neues System installieren
- oder ein altes System aktualisieren, sind die hierfür
- benötigten Benutzer noch nicht installiert.
- Ein kluger Systemadministrator sollte immer nach Möglichkeiten
- suchen, Server in einem Sandkasten laufen zu lassen.</para>
- <indexterm>
- <primary><application>sendmail</application></primary>
+ <primary>&man.sshd.8;</primary>
</indexterm>
- <para>Einige Server wie <application>sendmail</application>,
- <application>popper</application>, <application>imapd</application>
- und <application>ftpd</application> werden normalerweise nicht in
- Sandkästen betrieben. Zu einigen Servern gibt es Alternativen,
- aber diese wollen Sie vielleicht wegen der zusätzlich nötigen
- Arbeit nicht installieren (ein weiteres Beispiel für den
- Widerspruch zwischen Sicherheit und Benutzerfreundlichkeit).
- In diesem Fall müssen Sie die
- Server unter <systemitem class="username">root</systemitem> laufen lassen und auf die
- eingebauten Mechanismen vertrauen, Einbrüche zu entdecken.</para>
-
- <para>Weitere potentielle Löcher, die zu einem
- <systemitem class="username">root</systemitem>-Zugriff führen können, sind
- die auf dem System installierten SUID- und SGID-Programme. Die
- meisten dieser Programme wie <application>rlogin</application> stehen
- in <filename>/bin</filename>,
- <filename>/sbin</filename>,
- <filename>/usr/bin</filename>, oder
- <filename>/usr/sbin</filename>.
- Obwohl nichts 100% sicher ist, können Sie davon ausgehen,
- dass die SUID- und SGID-Programme des Basissystems ausreichend
- sicher sind. Allerdings werden ab und an in diesen Programmen
- Löcher gefunden. 1998 wurde in <literal>Xlib</literal> ein
- Loch gefunden, das <application>xterm</application>, der
- normal mit SUID installiert wird, verwundbar machte. Es ist besser
- auf der sicheren Seite zu sein, als sich später zu beklagen,
- darum wird ein kluger Systemadministrator den Zugriff auf
- SUID-Programme mit einer Gruppe, auf die nur Mitarbeiter zugreifen
- können, beschränken. SUID-Programme, die niemand benutzt,
- sollten mit <command>chmod 000</command> deaktiviert werden. Zum
- Beispiel braucht ein Server ohne Bildschirm kein
- <application>xterm</application> Programm. SGID-Programme sind
+ <para>Ein kluger Systemadministrator lässt nur die wirklich
+ benötigten Dienste laufen und ist sich darüber im Klaren, dass
+ Server von Dritten oft die fehleranfälligsten sind. Lassen
+ Sie keine Server laufen, die Sie vorher nicht genau überprüft
+ haben. Denken Sie zweimal darüber nach, bevor Sie einen
+ Dienst als <systemitem class="username">root</systemitem>
+ laufen lassen. Viele Daemonen können unter einem separaten
+ Dienstkonto, oder in einem Sandkasten ausgeführt werden.
+ Aktivieren Sie keine unsicheren Dienste, wie &man.telnetd.8;
+ oder &man.rlogind.8;.</para>
+
+ <para>Ein weiteres potentielles Risiko sind SUID- und
+ SGID-Programme. Die meisten dieser Programme, wie
+ &man.rlogin.1; stehen in <filename>/bin</filename>,
+ <filename>/sbin</filename>, <filename>/usr/bin</filename>,
+ oder <filename>/usr/sbin</filename> zur Verfügung. Obwohl
+ nichts 100% sicher ist, können Sie davon ausgehen, dass die
+ SUID- und SGID-Programme des Basissystems ausreichend
+ sicher sind. Es wird empfohlen, den Zugriff auf
+ SUID-Programme mit einer Gruppe, auf die nur Mitarbeiter
+ zugreifen können, zu beschränken. SUID-Programme, die niemand
+ benutzt, sollten gelöscht werden. SGID-Programme sind
vergleichbar gefährlich. Wenn ein Einbrecher Zugriff auf
- SGID-<systemitem class="groupname">kmem</systemitem> Programm erhält, kann er
- vielleicht <filename>/dev/kmem</filename> und damit die
- verschlüsselte Passwortdatei lesen. Dies kompromittiert
- unter Umständen jeden Account, der mit einem Passwort
+ SGID-<systemitem class="groupname">kmem</systemitem> Programm
+ erhält, kann er vielleicht <filename>/dev/kmem</filename> und
+ damit die verschlüsselte Passwortdatei lesen. Dies
+ kompromittiert unter Umständen jeden Account, der mit einem Passwort
geschützt ist. Alternativ kann ein Einbrecher, der in die
Gruppe <systemitem class="groupname">kmem</systemitem> eingebrochen ist, die
Tastendrücke auf PTYs verfolgen. Dies schließt
@@ -571,29 +444,22 @@
</sect2>
<sect2 xml:id="secure-users">
- <title>Absichern von Accounts</title>
+ <title>Absichern von Benutzer-Accounts</title>
<para>Accounts sind für gewöhnlich sehr schwierig
- abzusichern. Während Sie drakonische Beschränkungen
- für Ihre Mitarbeiter einrichten und deren Passwörter
- als ungültig markieren können, werden Sie das
- vielleicht bei den normalen Accounts nicht durchsetzen.
- Wenn Sie über ausreichend Macht verfügen, gelingt es Ihnen
- vielleicht doch, ansonsten müssen Sie diese Accounts
- aufmerksam überwachen. Wegen der zusätzlichen
- Administrationsarbeit und der nötigen technischen
- Unterstützung ist die Verwendung von
- <application>SSH</application> und <application>Kerberos</application>
- mit normalen Accounts erschwert, obwohl das natürlich
- sicherer als die Verwendung von verschlüsselten
- Passwörtern ist.</para>
+ abzusichern. Seien Sie daher aufmerksam bei der Überwachung
+ der Benutzerkonten. Die Verwendung von &man.ssh.1; und
+ <application>Kerberos</application> erfordert zwar zusätzliche
+ Administration und technische Unterstützung, ist aber
+ verglichen mit der verschlüsselten Passwort-Datei die bessere
+ Lösung.</para>
</sect2>
<sect2>
<title>Absichern der Passwort-Datei</title>
- <para>Der einzig sichere Weg ist, so viele Accounts wie möglich als
- ungültig zu markieren und <application>SSH</application> oder
+ <para>Der einzig sichere Weg ist, so viele Accounts wie möglich
+ als ungültig zu markieren und &man.ssh.1; oder
<application>Kerberos</application> zu benutzen, um auf sie
zuzugreifen. Obwohl die Datei <filename>/etc/spwd.db</filename>,
die die verschlüsselten Passwörter enthält,
@@ -601,88 +467,79 @@
Angreifer lesenden Zugriff auf diese Datei erlangen, ohne die
Fähigkeit sie auch zu beschreiben.</para>
- <para>Ihre Überwachungsskripten sollten Änderungen
- an der Passwort-Datei melden (siehe <link linkend="security-integrity">Überprüfen der
- Integrität von Dateien</link> weiter unten).</para>
+ <para>Überwachungsskripten sollten Änderungen
+ an der Passwort-Datei melden. Dies wird in <link
+ linkend="security-integrity">Überprüfen der Integrität von
+ Dateien</link> beschrieben.</para>
</sect2>
<sect2>
<title>Absichern des Kernels, der Geräte und von
Dateisystemen</title>
- <para>Wenn ein Angreifer <systemitem class="username">root</systemitem>-Zugriff erlangt,
- kann er so ziemlich alles mit Ihrem System anstellen, doch sollten Sie
- es ihm nicht zu leicht machen. Die meisten modernen Kernel haben
- zum Beispiel einen Gerätetreiber, der es erlaubt, Pakete
- abzuhören. Unter &os; wird das Gerät
- <filename>bpf</filename> genannt. Für gewöhnlich
- wird ein Angreifer versuchen, dieses Gerät zu nutzen, um
- Pakete abzuhören. Sie sollten ihm diese Gelegenheit nicht
- geben und auf den meisten Systemen ist das Gerät
- <filename>bpf</filename> nicht nötig.</para>
+ <para>Die meisten modernen Kernel haben einen Gerätetreiber,
+ der es erlaubt, Pakete abzuhören. Unter &os; wird das Gerät
+ <filename>bpf</filename> genannt. Dieses Gerät ist für
+ <acronym>DHCP</acronym> erforderlich, kann aber in der
+ Kernelkonfigurationsdatei entfernt werden, wenn das System
+ kein <acronym>DHCP</acronym> anbietet.</para>
<indexterm>
- <primary><command>sysctl</command></primary>
+ <primary>&man.sysctl.8;</primary>
</indexterm>
- <para>Auch wenn Sie <filename>bpf</filename> nicht verwenden,
+
+ <para>Auch wenn <filename>bpf</filename> deaktiviert ist,
müssen Sie sich immer noch um <filename>/dev/mem</filename>
und <filename>/dev/kmem</filename> sorgen. Außerdem
kann der Angreifer immer noch auf die rohen Geräte
(<foreignphrase>raw devices</foreignphrase>)
- schreiben. Weiterhin gibt es ein Programm zum Nachladen von
- Modulen in den Kernel: &man.kldload.8;. Ein unternehmungslustiger
- Angreifer kann dies benutzen, um sein eigenes
+ schreiben. Ein Angreifer könnte &man.kldload.8; benutzen, um
+ sein eigenes
<filename>bpf</filename> oder ein anderes zum Abhören
geeignetes Gerät in den laufenden Kernel einzubringen. Um
- dieses Problem zu vermeiden, müssen Sie den Kernel auf
- einem höheren Sicherheitslevel laufen lassen, mindestens
+ diese Probleme zu vermeiden, lassen Sie den Kernel auf
+ einem höheren Sicherheitslevel laufen, mindestens
auf securelevel 1.</para>
<para>Das Securelevel des Kernels kann auf verschiedene Wege
- gesetzt werden. Der einfachste Weg ist das erhöhen des
- Securelevel des laufenden Kernels durch ein
- <command>sysctl</command> der <varname>kern.securelevel</varname>
- Kernel Variablen:</para>
+ gesetzt werden. Der einfachste Weg, den Securelevel des
+ laufenden Kernels zu erhöhen, ist das Setzen von
+ <varname>kern.securelevel</varname>:</para>
<screen>&prompt.root; <userinput>sysctl kern.securelevel=1</userinput></screen>
- <para>Standardmässig bootet der &os; Kernel mit einem
+ <para>In der Voreinstellung bootet der &os; Kernel mit einem
Securelevel von -1. Der Securelevel wird solange bei -1 bleiben,
bis er entweder durch den Administrator oder von &man.init.8;
- durch einen Eintrag im Startup Script verändert wird. Der
+ durch einen Eintrag im Startskript verändert wird. Der
Securelevel kann während des Systemstarts durch das Setzen
- der Variable <varname>kern_securelevel_enable</varname> auf
+ von <varname>kern_securelevel_enable</varname> auf
<literal>YES</literal> und der Wert der Variable
<varname>kern_securelevel</varname> auf den gewünschten
Securelevel in der <filename>/etc/rc.conf</filename>
erhöht werden.</para>
- <para>Der Standard Securelevel von einem &os;-System direkt nach
- dem Start ist -1. Dies wird <quote>insecure mode</quote> genannt,
- da zum Beispiel unverändeliche Dateiflags abgeschaltet werden
- könnten, von allen Geräten gelesen und auf alle geschrieben
- werden kann.</para>
-
<para>Sobald der Securelevel auf den Wert 1 oder höher gesetzt
ist, werden die append-only und die unveränderlichen Dateien
geschützt, die Flags können nicht abgeschaltet werden
und der Zugriff auf raw Devices ist verboten. Höhere Levels
- verbieten mehr Aktionen. Eine vollständige Liste
- aller Securelevels finden Sie in &man.security.7;.</para>
+ verbieten sogar noch weitere Aktionen. Eine vollständige
+ Beschreibung aller Securelevels finden Sie in &man.security.7;
+ und &man.init.8;.</para>
<note>
<para>Das Erhöhen des Securelevels auf 1 oder höher
- kann einige Probleme mit X11 verursachen (Zugriff auf
- <filename>/dev/io</filename> wird geblockt), ebenso die Installation
- von &os; aus den Quellen (der <buildtarget>installworld</buildtarget>
- Teil muss zeitweilig die append-only und die
- unveränderlichen Flags einiger Dateien zurücksetzen),
- und auch noch in einigen anderen Fällen. Manchmal kann es,
- wie bei X11, durch das sehr frühe Starten von &man.xdm.1;
- im Boot Prozess möglich sein, dies zu umgehen, wenn der
- Securelevel noch niedrig genug ist.
- Workarounds wie dieser sind nicht f&uml;r alle Securelevels
- und für alle Einschränkungen, die sie schaffen,
+ kann einige Probleme mit <application>&xorg;</application>,
+ verursachen, da der Zugriff auf <filename>/dev/io</filename>
+ geblockt wird, ebenso die Installation von &os; aus den
+ Quellen, da der <buildtarget>installworld</buildtarget>
+ Teil zeitweilig die append-only und die unveränderlichen
+ Flags einiger Dateien zurücksetzen muss. Manchmal kann es,
+ wie bei <application>&xorg;</application>, durch das sehr
+ frühe Starten von &man.xdm.1; im Boot Prozess möglich sein,
+ dies zu umgehen, wenn der Securelevel noch niedrig genug
+ ist. Workarounds wie dieser sind nicht für alle
+ Securelevels und für alle Einschränkungen, die sie schaffen,
möglich. Ein bisschen Vorausplanung ist eine gute
Idee. Das Verständnis für die Beschränkungen,
die durch jedes Securelevel verursacht werden, ist wichtig, da sie
@@ -694,20 +551,15 @@
<para>Wenn das Securelevel des Kernel auf einen Wert von 1 oder
höher gesetzt ist, kann es sinnvoll sein das
<literal>schg</literal> Flag auf kritische Startdateien,
- Verzeichnisse und Scripte (z.B. alles was läuft bis zu
- dem Punkt auf dem das Securelevel gesetzt ist) zu setzen. Dies
- könnte etwas &uuml;bertrieben sein, und auch das Upgrade
- des Systems ist sehr viel schwerer, wenn es auf einem hohen
- Securelevel läuft. Ein strengerer Kompromiss ist es, das
- System auf einem höheren Securelevel laufen zu lassen, aber
- keine <literal>schg</literal> Flags für alle Systemdateien
- und Verzeichnisse zu setzen. Eine andere Möglichkeit ist es,
- einfach die Verzeichnisse <filename>/</filename> und
- <filename>/usr</filename> read-only zu mounten.
- Es sei darauf hingewiesen, dass Sie nicht vor lauter Überlegen
- das Wichtigste, nämlich die Entdeckung eines Eindringens,
- vergessen.</para>
-
+ Verzeichnisse und Skripte zu setzen. Ein weniger strenger
+ Kompromiss ist es, das System auf einem höheren Securelevel
+ laufen zu lassen, aber keine <literal>schg</literal> Flags für
+ alle Systemdateien und Verzeichnisse zu setzen. Eine andere
+ Möglichkeit ist es, die Verzeichnisse <filename>/</filename>
+ und <filename>/usr</filename> read-only zu mounten. Es sei
+ darauf hingewiesen, dass Sie nicht vor lauter Überlegen das
+ Wichtigste, nämlich die Entdeckung eines Eindringens,
+ vergessen.</para>
</sect2>
<sect2 xml:id="security-integrity">
@@ -722,14 +574,12 @@
Arbeit mehr behindern
als nützen. Die Maßnahme schützt zwar die
Dateien, schließt aber auch eine Möglichkeit,
- Veränderungen zu entdecken, aus. Die letzte Schicht des
- Sicherheitsmodells &ndash; das Aufdecken von Einbrüchen &ndash;
- ist sicherlich die wichtigste. Alle Sicherheitsmaßnahmen sind
- nichts wert, oder wiegen Sie in falscher Sicherheit, wenn Sie
- nicht in der Lage sind, einen möglichen Einbruch zu entdecken.
- Die Hälfte der Sicherheitsmaßnahmen hat die Aufgabe,
- einen Einbruch zu verlangsamen, um es zu ermöglichen, den
- Einbrecher auf frischer Tat zu ertappen.</para>
+ Veränderungen zu entdecken, aus. Sicherheitsmaßnahmen
+ sind nutzlos, oder schlimmer noch, vermitteln ein falsches
+ Gefühl von Sicherheit, wenn der potentielle Angreifer nicht
+ entdeckt wird. Die Aufgabe besteht nicht darin, den Angreifer
+ aufzuhalten, sondern seine Angriffe zu verzögern, um ihn dann
+ auf frischer Tat zu ertappen.</para>
<para>Der beste Weg, einen Einbruch zu entdecken, ist es, nach
veränderten, fehlenden oder unerwarteten Dateien zu suchen.
@@ -890,14 +740,14 @@
<para><application>Sendmail</application> besitzt die Option
<option>-OMaxDaemonChildren</option>, die besser als die
eingebauten Optionen zur Begrenzung der Systemauslastung funktioniert.
- Sie sollten beim Start von <application>sendmail</application>
+ Sie sollten beim Start von <application>Sendmail</application>
<literal>MaxDaemonChildren</literal> so hoch setzen, dass Sie
die erwartete Auslastung gut abfangen können. Allerdings
sollten Sie den Wert nicht so hoch setzen, dass der
Rechner über seine eigenen Füße fällt.
Es ist auch klug, <application>Sendmail</application> im
Queue-Modus (<option>-ODeliveryMode=queued</option>) laufen zu
- lassen. Der D&aelig;mon (<command>sendmail -bd</command>) sollte
+ lassen. Der Daemon (<command>sendmail -bd</command>) sollte
getrennt von den Queue-Läufen (<command>sendmail -q15m</command>)
laufen. Wenn Sie trotzdem eine sofortige Auslieferung der Post
wünschen, können Sie die Queue in einem geringeren
@@ -931,7 +781,7 @@
<application>named</application>, wenn Sie den primären
Namensdienst für eine Zone anbieten,
<application>ntalkd</application> oder
- <application>sendmail</application> erlauben. Wenn Sie die
+ <application>Sendmail</application> erlauben. Wenn Sie die
Firewall so konfigurieren, das sie in der Voreinstellung alle
Zugriffe erlaubt, ist es sehr wahrscheinlich, dass Sie
vergessen, eine Reihe von Diensten zu blockieren bzw. einen
@@ -1172,6 +1022,7 @@
<sect1 xml:id="one-time-passwords">
<title>Einmalpasswörter</title>
+
<indexterm><primary>Einmalpasswörter</primary></indexterm>
<indexterm>
<primary>Sicherheit</primary>
@@ -1179,98 +1030,89 @@
</indexterm>
<para>In der Voreinstellung unterstützt &os;
- OPIE (<foreignphrase>One-time Passwords in
- Everything</foreignphrase>), das in der Regel MD5-Hash-Funktionen
- einsetzt.</para>
-
- <para>Im Folgenden werden drei verschiedene
- Passwörter verwendet. Das erste ist Ihr normales System- oder
- Kerberos-Passwort und wird im Folgenden <quote>System-Passwort</quote>
- genannt. Das zweite ist das Einmalpasswort, das bei OPIE von
- <command>opiekey</command> generiert und von
- <command>opiepasswd</command> und dem Login-Programm akzeptiert wird.
- Im Folgenden wird es <quote>Einmalpasswort</quote> genannt. Das dritte
- Passwort ist das geheime Passwort, das Sie mit
+ <foreignphrase>One-time Passwords in Everything</foreignphrase>
+ (<acronym>OPIE</acronym>), das in der Voreinstellung
+ MD5-Hash-Funktionen einsetzt.</para>
+
+ <para>Es gibt drei verschiedene Arten von Passwörtern. Das erste
+ ist das normales &unix;- oder Kerberos-Passwort. Das zweite ist
+ das Einmalpasswort, das von <command>opiekey</command> generiert
+ und von <command>opiepasswd</command> und dem Anmeldeprompt
+ akzeptiert wird. Das dritte Passwort ist das
+ <quote>geheime Passwort</quote>, das mit
<command>opiekey</command> (manchmal auch mit
- <command>opiepasswd</command>) zum Erstellen
- der Einmalpasswörter verwenden. Dieses Passwort
- werden wir im Folgenden <quote>geheimes Passwort</quote>
- oder schlicht <quote>Passwort</quote> nennen.</para>
+ <command>opiepasswd</command>) zum Erstellen der
+ Einmalpasswörter verwendet wird.</para>
- <para>Das geheime Passwort steht in keiner Beziehung zu Ihrem
- System-Passwort, beide können gleich sein, obwohl das nicht
+ <para>Das geheime Passwort steht in keiner Beziehung zum
+ &unix;-Passwort. Beide können gleich sein, obwohl das nicht
empfohlen wird. Die geheimen Passwörter von
- OPIE sind nicht auf eine Länge von 8&nbsp;Zeichen,
+ <acronym>OPIE</acronym> sind nicht auf eine Länge von 8 Zeichen,
wie alte &unix; Passwörter<footnote>
<para>Unter &os; darf das System-Passwort maximal
- 128&nbsp;Zeichen lang sein.</para></footnote>, beschränkt.
- Sie können so lang sein, wie Sie wollen. Gebräuchlich sind
- Passwörter, die sich aus sechs bis sieben Wörtern
- zusammensetzen. Das OPIE-System arbeitet
- größtenteils unabhängig von den
- auf &unix;-Systemen verwendeten Passwort-Mechanismen.</para>
+ 128 Zeichen lang sein.</para></footnote>, beschränkt.
+ Gebräuchlich sind Passwörter, die sich aus sechs bis sieben
+ Wörtern zusammensetzen. Das <acronym>OPIE</acronym>-System
+ arbeitet vollständig unabhängig von den auf &unix;-Systemen
+ verwendeten Passwort-Mechanismen.</para>
<para>Neben dem Passwort gibt es noch zwei Werte, die für
- OPIE wichtig sind. Der erste ist der
- <quote>Initialwert</quote> (engl. <foreignphrase>seed</foreignphrase>
- oder <foreignphrase>key</foreignphrase>), der aus zwei Buchstaben
- und fünf Ziffern besteht. Der zweite Wert ist der
- <quote>Iterationszähler</quote>, eine Zahl zwischen
- 1 und 100. OPIE generiert das Einmalpasswort, indem
+ <acronym>OPIE</acronym> wichtig sind. Der erste ist der
+ <quote>Initialwert</quote> (engl.
+ <foreignphrase>seed</foreignphrase> oder
+ <foreignphrase>key</foreignphrase>), der aus zwei Buchstaben und
+ fünf Ziffern besteht. Der zweite Wert ist der
+ <quote>Iterationszähler</quote>, eine Zahl zwischen 1 und 100.
+ <acronym>OPIE</acronym> generiert das Einmalpasswort, indem
es den Initialwert und das geheime Passwort aneinander hängt
und dann die MD5-Hash-Funktion so oft, wie durch den
Iterationszähler gegeben, anwendet. Das Ergebnis wird in
- sechs englische Wörter umgewandelt, die Ihr Einmalpasswort
- sind. Das Authentifizierungssystem (meistens PAM) merkt sich das
- zuletzt benutzte Einmalpasswort und Sie sind authentisiert,
- wenn die Hash-Funktion des Passworts dem vorigen Passwort
- entspricht. Da nicht umkehrbare Hash-Funktionen benutzt werden,
- ist es unmöglich, aus einem bekannten Passwort weitere
- gültige Einmalpasswörter zu berechnen. Der
- Iterationszähler wird nach jeder erfolgreichen Anmeldung um
- eins verringert und stellt so die Synchronisation zwischen Benutzer
- und Login-Programm sicher. Wenn der Iterationszähler den
- Wert 1 erreicht, muss OPIE neu initialisiert werden.</para>
-
- <para>In jedem System werden mehrere Programme verwendet, die weiter
- unten beschrieben werden. <command>opiekey</command> verlangt
- einen Iterationszähler, einen Initialwert und ein geheimes
- Passwort. Daraus generiert es ein Einmalpasswort oder eine Liste
- von Einmalpasswörtern. <command>opiepasswd</command> wird
- dazu benutzt, um OPIE zu initialisieren. Mit diesem Programm
- können Passwörter, Iterationszähler oder
- Initialwerte geändert werden. Als Parameter verlangt es
+ sechs englische Wörter umgewandelt, die das Einmalpasswort
+ ergeben. Das Authentifizierungssystem (meistens PAM) merkt sich
+ das zuletzt benutzte Einmalpasswort und der Benutzer ist
+ authentifiziert, wenn die Hash-Funktion des Passworts dem
+ vorigen Passwort entspricht. Da nicht umkehrbare
+ Hash-Funktionen benutzt werden, ist es unmöglich, aus einem
+ bekannten Passwort weitere gültige Einmalpasswörter zu
+ berechnen. Der Iterationszähler wird nach jeder erfolgreichen
+ Anmeldung um eins verringert und stellt so die Synchronisation
+ zwischen Benutzer und Login-Programm sicher. Wenn der
+ Iterationszähler den Wert 1 erreicht, muss
+ <acronym>OPIE</acronym> neu initialisiert werden.</para>
+
+ <para>Es gibt ein paar Programme, die in diesen Prozess einbezogen
+ werden. &man.opiekey.1; akzeptiert einen Iterationszähler,
+ einen Initialwert und ein geheimes Passwort. Daraus generiert
+ es ein Einmalpasswort oder eine Liste von Einmalpasswörtern.
+ &man.opiepasswd.1; wird benutzt, um Passwörter, Iterationszähler
+ oder Initialwerte zu ändern. Als Parameter verlangt es
entweder ein geheimes Passwort oder einen Iterationszähler
oder einen Initialwert und ein Einmalpasswort.
- <command>opieinfo</command> hingegen gibt den momentanen
- Iterationszähler und Initialwert eines Benutzers aus. Diese
- werden aus der Datei <filename>/etc/opiekeys</filename>
- ermittelt.</para>
+ &man.opieinfo.1; hingegen gibt den momentanen Iterationszähler
+ und Initialwert eines Benutzers aus, den es aus
+ <filename>/etc/opiekeys</filename> ermittelt.</para>
<!-- Credential Dateien -->
- <para>Im Folgenden werden vier verschiedene Tätigkeiten beschrieben.
- Zuerst wird erläutert, wie
- <command>opiepasswd</command> über eine gesicherte Verbindung
- eingesetzt werden, um Einmalpasswörter das erste Mal
- zu konfigurieren oder das Passwort oder den Initialwert
- zu ändern. Als nächstes wird erklärt, wie
- <command>opiepasswd</command> über eine nicht gesicherte
- Verbindung, oder zusammen mit <command>opiekey</command> über
- eine gesicherte Verbindung eingesetzt werden, um dasselbe zu
- erreichen. Als drittes wird beschrieben, wie
- <command>opiekey</command> genutzt wird,
- um sich über eine nicht gesicherte Verbindung anzumelden.
- Die vierte Tätigkeit beschreibt, wie mit
- <command>opiekey</command> eine Reihe von Schlüsseln
- generiert wird, die Sie sich aufschreiben oder ausdrucken können,
- um sich von Orten anzumelden, die über keine gesicherten
+ <para>Es gibt vier verschiedene Arten von Tätigkeiten. Zuerst
+ wird erläutert, wie &man.opiepasswd.1; über eine gesicherte
+ Verbindung eingesetzt werden, um Einmalpasswörter das erste Mal
+ zu konfigurieren oder das Passwort oder den Initialwert zu
+ ändern. Als nächstes wird erklärt, wie &man.opiepasswd.1; über
+ eine nicht gesicherte Verbindung, oder zusammen mit
+ &man.opiekey.1; über eine gesicherte Verbindung eingesetzt
+ werden, um dasselbe zu erreichen. Als drittes wird beschrieben,
+ wie &man.opiekey.1; genutzt wird, um sich über eine nicht
+ gesicherte Verbindung anzumelden. Die vierte Tätigkeit
+ beschreibt, wie mit &man.opiekey.1; eine Reihe von Schlüsseln
+ generiert wird, die Sie sich aufschreiben oder ausdrucken
+ können, um sich von Orten anzumelden, die über keine gesicherten
Verbindungen verfügen.</para>
<sect2>
<title>Einrichten über eine gesicherte Verbindung</title>
- <para>Um OPIE erstmals zu initalisieren, rufen Sie
- <command>opiepasswd</command> auf:</para>
+ <para>Um <acronym>OPIE</acronym> erstmals zu initialisieren,
+ rufen Sie &man.opiepasswd.1; auf:</para>
<screen>&prompt.user; <userinput>opiepasswd -c</userinput>
[grimreaper] ~ $ opiepasswd -f -c
@@ -1292,27 +1134,27 @@
anmelden, sondern es wird genutzt, um das Einmalpasswort
zu generieren. Die Zeile, die mit <quote>ID</quote> anfängt,
enthält Ihren Login-Namen, den Iterationszähler und den
- Initialwert. Diese Werte müssen Sie sich nicht behalten, da
+ Initialwert. Diese Werte müssen Sie sich nicht merken, da
das System sie zeigen wird, wenn Sie sich anmelden. In der letzten
Zeile steht das Einmalpasswort, das aus diesen Parametern
- und Ihrem geheimen Passwort ermittelt wurde. Wenn sie sich jetzt
- wieder anmelden wollten, dann müssten Sie dieses
- Passwort benutzen.</para>
+ und Ihrem geheimen Passwort ermittelt wurde. Bei der nächsten
+ Anmeldung müssen Sie dann dieses Einmalpasswort
+ benutzen.</para>
</sect2>
<sect2>
<title>Einrichten über eine nicht gesicherte Verbindung</title>
- <para>Um Einmalpasswörter über eine nicht gesicherte
- Verbindung einzurichten, oder das geheime Passwort zu ändern,
- müssen Sie über eine gesicherte Verbindung zu einer Stelle
- verfügen, an der Sie <command>opiekey</command> ausführen.
- Dies kann etwa die Eingabeaufforderung auf einer Maschine, der Sie
- vertrauen, sein. Zudem müssen Sie einen Iterationszähler
- vorgeben (100 ist ein guter Wert) und einen Initialwert wählen,
- wobei Sie auch einen zufällig generierten benutzen können.
- Benutzen Sie <command>opiepasswd</command> über die ungesicherte
- Verbindung zu der Maschine, die Sie einrichten wollen:</para>
+ <para>Um Einmalpasswörter über eine nicht gesicherte Verbindung
+ einzurichten, oder das geheime Passwort zu ändern, müssen Sie
+ über eine gesicherte Verbindung zu einer Stelle verfügen, an
+ der Sie &man.opiekey.1; ausführen können. Dies kann etwa die
+ Eingabeaufforderung auf einer Maschine sein, der Sie
+ vertrauen. Zudem müssen Sie einen Iterationszähler vorgeben
+ (100 ist ein guter Wert) und einen Initialwert wählen, wobei
+ Sie auch einen zufällig generierten benutzen können. Benutzen
+ Sie &man.opiepasswd.1; über die ungesicherte Verbindung zu der
+ Maschine, die Sie einrichten wollen:</para>
<screen>&prompt.user; <userinput>opiepasswd</userinput>
@@ -1337,19 +1179,19 @@
<screen>&prompt.user; <userinput>opiekey 498 to4268</userinput>
Using the MD5 algorithm to compute response.
-Reminder: Don't use opiekey from telnet or dial-in sessions.
+Reminder: Don not use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:
GAME GAG WELT OUT DOWN CHAT</screen>
- <para>Gehen Sie nun zurück zu der nicht gesicherten Verbindung
+ <para>Gehen Sie zurück zu der nicht gesicherten Verbindung
und geben dort das eben generierte Einmalpasswort ein.</para>
</sect2>
<sect2>
<title>Erzeugen eines einzelnen Einmalpasswortes</title>
- <para>Nachdem Sie OPIE eingerichtet haben, werden Sie beim
- nächsten Anmelden wie folgt begrüßt:</para>
+ <para>Nachdem Sie <acronym>OPIE</acronym> eingerichtet haben,
+ werden Sie beim nächsten Anmelden wie folgt begrüßt:</para>
<screen>&prompt.user; <userinput>telnet example.com</userinput>
Trying 10.0.0.1...
@@ -1362,52 +1204,49 @@
otp-md5 498 gr4269 ext
Password: </screen>
- <para>Anmerkung: OPIE besitzt eine nützliche Eigenschaft,
- die hier nicht gezeigt ist. Wenn Sie an der Eingabeaufforderung
- <keycap>Return</keycap> eingeben, wird die echo-Funktion eingeschaltet,
- das heißt Sie sehen, was Sie tippen. Dies ist besonders
- nützlich, wenn Sie ein generiertes Passwort von einem
- Ausdruck abtippen müssen.</para>
+ <para><acronym>OPIE</acronym> besitzt eine nützliche
+ Eigenschaft. Wenn Sie an der Eingabeaufforderung
+ <keycap>Return</keycap> drücken, wird die echo-Funktion
+ eingeschaltet, das heißt Sie sehen, was Sie tippen. Dies ist
+ besonders nützlich, wenn Sie ein generiertes Passwort von
+ einem Ausdruck abtippen müssen.</para>
<indexterm><primary>MS-DOS</primary></indexterm>
<indexterm><primary>Windows</primary></indexterm>
<indexterm><primary>MacOS</primary></indexterm>
- <para>Jetzt müssen Sie Ihr Einmalpasswort generieren,
+ <para>Jetzt müssen Sie das Einmalpasswort generieren,
um der Anmeldeaufforderung nachzukommen. Dies muss auf
einem gesicherten System geschehen, auf dem Sie
- oder <command>opiekey</command> ausführen können.
- Dieses Programm gibt es übrigens auch für DOS, &windows; und
- &macos;. Es benötigt den Iterationszähler
- sowie den Initialwert als Parameter, die Sie mittels
- <quote>cut-and-paste</quote> direkt von der Login-Aufforderung
- nehmen können.</para>
+ &man.opiekey.1; ausführen können. Dieses Programm gibt es
+ auch für &windows;, &macos; und &os;. Es benötigt den
+ Iterationszähler sowie den Initialwert als Parameter, die Sie
+ mittels <quote>cut-and-paste</quote> direkt von der
+ Login-Aufforderung nehmen können.</para>
<para>Auf dem sicheren System:</para>
<screen>&prompt.user; <userinput>opiekey 498 to4268</userinput>
Using the MD5 algorithm to compute response.
-Reminder: Don't use opiekey from telnet or dial-in sessions.
+Reminder: Do not use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:
GAME GAG WELT OUT DOWN CHAT</screen>
- <para>Mit dem jetzt generierten Einmalpasswort können
- Sie die Anmeldeprozedur fortsetzen.</para>
+ <para>Sobald das Einmalpasswort generiert wurde, können Sie die
+ Anmeldeprozedur fortsetzen.</para>
</sect2>
<sect2>
<title>Erzeugen von mehreren Einmalpasswörtern</title>
- <para>Manchmal müssen Sie sich an Orte begeben, an denen
- Sie keinen Zugriff auf eine sichere Maschine oder eine
- sichere Verbindung haben. In diesem Fall können Sie
- vorher mit <command>opiekey</command>
- einige Einmalpasswörter generieren, die Sie sich
- ausdrucken und mitnehmen können. Zum Beispiel:</para>
+ <para>Manchmal haben Sie keinen Zugriff auf eine sichere
+ Maschine oder eine sichere Verbindung. In diesem Fall können
+ Sie vorher mit &man.opiekey.1; einige Einmalpasswörter
+ generieren. Zum Beispiel:</para>
<screen>&prompt.user; <userinput>opiekey -n 5 30 zz99999</userinput>
Using the MD5 algorithm to compute response.
-Reminder: Don't use opiekey from telnet or dial-in sessions.
+Reminder: Do not use opiekey from telnet or dial-in sessions.
Enter secret pass phrase: <userinput>&lt;secret password&gt;</userinput>
26: JOAN BORE FOSS DES NAY QUIT
27: LATE BIAS SLAY FOLK MUCH TRIG
@@ -1420,39 +1259,39 @@
Iterationszähler wird durch <option>30</option> gegeben.
Beachten Sie bitte, dass die Passwörter in der
<emphasis>umgekehrten</emphasis> Reihenfolge, in der sie
- zu benutzen sind, ausgeben werden. Wenn Sie wirklich paranoid
- sind, schreiben Sie sich jetzt die Passwörter auf,
- ansonsten drucken Sie sie mit <command>lpr</command> aus.
- Beachten Sie, dass jede Zeile den Iterationszähler
- und das Einmalpasswort zeigt, trotzdem finden Sie es
- vielleicht hilfreich, eine Zeile nach Gebrauch durchzustreichen.</para>
+ zu benutzen sind, ausgeben werden. Wirklich paranoide
+ Benutzer können sich jetzt die Passwörter aufschreiben oder
+ ausdrucken. Sie sollten die Passwörter nach Gebrauch
+ durchstreichen.</para>
</sect2>
<sect2>
<title>Einschränken der Benutzung von
System-Passwörtern</title>
- <para>OPIE kann die Verwendung von System-Passwörtern
- abhängig von der Quell-IP-Adresse einschränken.
- Die dazu nötigen Einstellungen werden in der Datei
- <filename>/etc/opieaccess</filename> vorgenommen, die
- bei der Installation des Systems automatisch erzeugt wird.
- Weitere Informationen über diese Datei und
- Sicherheitshinweise zu ihrer Verwendung entnehmen Sie bitte
- der Hilfeseite &man.opieaccess.5;.</para>
+ <para><acronym>OPIE</acronym> kann die Verwendung von
+ &unix;-Passwörtern abhängig von der
+ <acronym>IP</acronym>-Adresse einschränken. Die dazu nötigen
+ Einstellungen werden in <filename>/etc/opieaccess</filename>
+ vorgenommen, die bei der Installation des Systems automatisch
+ erzeugt wird. Weitere Informationen über diese Datei und
+ Sicherheitshinweise zu ihrer Verwendung finden Sie in
+ &man.opieaccess.5;.</para>
- <para>Die Datei <filename>opieaccess</filename> könnte
+ <para><filename>opieaccess</filename> könnte
beispielsweise die folgende Zeile enthalten:</para>
<programlisting>permit 192.168.0.0 255.255.0.0</programlisting>
<para>Diese Zeile erlaubt es Benutzern, die sich von einer der
- angegebenen Quell-IP-Adressen anmelden, ihr System-Passwort
- zu verwenden. Beachten Sie bitte, dass eine Quell-IP-Adresse
- leicht gefälscht werden kann.</para>
+ angegebenen <acronym>IP</acronym>-Adressen anmelden, ihr
+ &unix;-Passwort zu verwenden. Beachten Sie bitte, dass eine
+ <acronym>IP</acronym>-Adresse leicht gefälscht werden
+ kann.</para>
<para>Findet sich in <filename>opieaccess</filename> kein
- passender Eintrag, muss die Anmeldung mit OPIE erfolgen.</para>
+ passender Eintrag, muss die Anmeldung mit
+ <acronym>OPIE</acronym> erfolgen.</para>
</sect2>
</sect1>
@@ -1469,64 +1308,31 @@
<primary>TCP-Wrapper</primary>
</indexterm>
- <para>Wahrscheinlich hat jeder, der &man.inetd.8; kennt,
- schon mal von den TCP-Wrappern gehört. Die
- wenigsten erkennen den vollen Nutzen der TCP-Wrapper
- in einer Netzumgebung. Es scheint, dass die meisten
- Leute Netzverbindungen mit einer Firewall absichern
- wollen. Auch wenn eine Firewall ein mächtiges
- Instrument ist, gibt es Sachen, die eine Firewall
- nicht kann. Eine Firewall kann beispielsweise keine
- Nachricht an den Verbindungsursprung senden. Genau
- das und mehr können aber die
- <acronym>TCP</acronym>-Wrapper. Im Folgenden werden
- die Funktionen der <acronym>TCP</acronym>-Wrapper
- und Beispiele für deren Konfiguration vorgestellt.</para>
-
- <para>Die <acronym>TCP</acronym>-Wrapper erweitern die
- Steuerungsmöglichkeiten, die <application>inetd</application>
- über die Dienste unter seiner Kontrolle hat.
- Beispielsweise können Verbindungen protokolliert,
- Nachrichten zurückgesandt oder nur interne Verbindungen
- angenommen werden. Die <acronym>TCP</acronym>-Wrapper
- bieten nicht nur eine weitere Sicherheitsschicht, die
- teilweise auch von Firewalls geboten wird, sie bieten
- darüber hinaus Funktionen zur Steuerung von
- Verbindungen, die eine Firewall nicht bietet.</para>
-
- <para>Die erweiterten Funktionen der
- <acronym>TCP</acronym>-Wrapper sind kein Firewall-Ersatz.
- Sie sollten zusammen mit einer Firewall und anderen
- Sicherheitsvorkehrungen eingesetzt werden. Die
- <acronym>TCP</acronym>-Wrapper sind eine weitere
- Sicherheitsschicht zum Schutz eines Systems.</para>
-
- <para>Da die Wrapper die Funktion von <application>inetd</application>
- erweitern, wird im Folgenden vorausgesetzt, dass Sie den
- Abschnitt über die
- <link linkend="network-inetd">inetd-Konfiguration</link>
- schon gelesen haben.</para>
-
- <note>
- <para>Streng genommen handelt es sich bei den von &man.inetd.8;
- gestarteten Programmen nicht um <quote>Daemonen</quote>. Da
- sich diese Bezeichnung aber eingebürgert hat, wird sie auch
- in diesem Abschnitt verwendet.</para>
- </note>
+ <para><acronym>TCP</acronym>-Wrapper erweitern die Fähigkeiten von
+ <xref linkend="network-inetd"/>. Beispielsweise können
+ Verbindungen protokolliert, Nachrichten zurückgesandt oder nur
+ interne Verbindungen angenommen werden. Einige dieser
+ Fähigkeiten können auch über eine Firewall implementiert werden,
+ <acronym>TCP</acronym>-Wrapper fügen jedoch noch eine weitere
+ Sicherheitsschicht und Kontrollmöglichkeiten hinzu, die eine
+ Firewall nicht bieten kann.</para>
+
+ <para><acronym>TCP</acronym>-Wrapper sollten nicht als Ersatz für
+ eine ordentlich konfigurierte Firewall angesehen werden, sondern
+ stattdessen in Verbindung mit einer Firewall und anderen
+ Sicherheitsmechanismen eingesetzt werden.</para>
<sect2>
<title>TCP-Wrapper einrichten</title>
- <para>Um die <acronym>TCP</acronym>-Wrapper unter &os;
- zu benutzen, muss nur der <application>inetd</application>
- aus <filename>rc.conf</filename> mit den voreingestellten
- Optionen <option>-Ww</option> gestartet werden.
- Die Konfigurationsdatei <filename>/etc/hosts.allow</filename>
- darf keine Fehler enthalten; falls doch, werden die
- Fehler mit &man.syslogd.8; protokolliert.</para>
+ <para>Um <acronym>TCP</acronym>-Wrapper unter &os; zu benutzen,
+ muss der &man.inetd.8;-Server aus <filename>rc.conf</filename>
+ mit den Optionen <option>-Ww</option> gestartet werden.
+ Anschließend muss <filename>/etc/hosts.allow</filename>
+ richtig konfiguriert werden.</para>
<note>
- <para>Im Gegensatz zu anderen Implementationen der
+ <para>Im Gegensatz zu anderen Implementierungen der
<acronym>TCP</acronym>-Wrapper wird vom Gebrauch
der Datei <filename>hosts.deny</filename> abgeraten.
Die Konfiguration sollte sich vollständig in der
@@ -1537,18 +1343,17 @@
abhängig vom Inhalt der Datei
<filename>/etc/hosts.allow</filename> erlaubt oder
gesperrt. Unter &os; wird in der Voreinstellung
- jeder von <application>inetd</application> gestartete Dienst
- erlaubt. Sehen wir uns zunächst die Grundkonfiguration
- an.</para>
+ jeder von &man.inetd.8; gestartete Dienst
+ erlaubt.</para>
<para>Eine Konfigurationszeile ist wie folgt aufgebaut:
<literal>Dienst : Adresse : Aktion</literal>.
- <literal>Dienst</literal> ist der von <application>inetd</application>
+ <literal>Dienst</literal> ist der von &man.inetd.8;
gestartete Dienst (auch Daemon genannt). Die
- <literal>Adresse</literal> kann ein gültiger
+ <literal>Adresse</literal> ist ein gültiger
Rechnername, eine <acronym>IP</acronym>-Adresse oder
- eine IPv6-Adresse in Klammern
- (<literal>[</literal>&nbsp;<literal>]</literal>) sein.
+ eine <acronym>IPv6</acronym>-Adresse in Klammern
+ (<literal>[</literal>&nbsp;<literal>]</literal>).
Der Wert <literal>allow</literal> im Feld
<literal>Aktion</literal> erlaubt Zugriffe, der Wert
<literal>deny</literal> verbietet Zugriffe.
@@ -1558,53 +1363,47 @@
zu, wird die entsprechende Aktion ausgeführt
und die Abarbeitung ist beendet.</para>
- <para>Es gibt noch weitere Konfigurationsoptionen, die
- gleich erläutert werden. Das bisher Gesagte
- reicht, um eine einfache Regel aufzustellen. Wenn
- Sie einkommende <acronym>POP</acronym>3-Verbindungen
- für den Dienst
- <package>mail/qpopper</package>
- erlauben wollen, erweitern Sie
- <filename>hosts.allow</filename> um die nachstehende Zeile:</para>
+ <para>Um beispielsweise einkommende
+ <acronym>POP</acronym>3-Verbindungen für den Dienst
+ <package>mail/qpopper</package> zu erlauben, sollte
+ <filename>hosts.allow</filename> um die nachstehende Zeile
+ erweitert werden:</para>
<programlisting># This line is required for POP3 connections:
qpopper : ALL : allow</programlisting>
<para>Nachdem Sie die Zeile hinzugefügt haben, muss
- <application>inetd</application> mithilfe von &man.service.8;
- neu gestartet werden:</para>
+ &man.inetd.8; neu gestartet werden:</para>
<screen>&prompt.root; <userinput>service inetd restart</userinput></screen>
</sect2>
<sect2>
- <title>Erweiterte Konfiguration der TCP-Wrapper</title>
+ <title>Erweiterte Konfiguration</title>
- <para>Die <acronym>TCP</acronym>-Wrapper besitzen
+ <para><acronym>TCP</acronym>-Wrapper besitzen
weitere Optionen, die bestimmen, wie Verbindungen
behandelt werden. In einigen Fällen ist es
gut, wenn bestimmten Rechnern oder Diensten eine
Nachricht geschickt wird. In anderen Fällen
soll vielleicht der Verbindungsaufbau protokolliert
oder eine E-Mail an einen Administrator versandt
- werden. Oder ein Dienst soll nur für das
+ werden. Oder ein Dienst soll nur für das
lokale Netz bereitstehen. Dies alles ist mit so genannten
Wildcards, Metazeichen und der Ausführung externer
- Programme möglich und wird in den nächsten
- zwei Abschnitten erläutert.</para>
+ Programme möglich.</para>
<sect3>
- <title>Externe Kommandos ausführen</title>
+ <title>Externe Kommandos</title>
<para>Stellen Sie sich vor, eine Verbindung soll
verhindert werden und gleichzeitig soll demjenigen,
der die Verbindung aufgebaut hat, eine Nachricht
- geschickt werden. Auf welche Art müssen
- die <acronym>TCP</acronym>-Wrapper konfiguriert werden?
- Die Option <option>twist</option> führt beim
- Verbindungsaufbau ein Kommando aus. In der Datei
- <filename>hosts.allow</filename> ist ein Beispiel
- für diese Option enthalten:</para>
+ geschickt werden. Solch eine Aktion ist mit
+ <option>twist</option> möglich. <option>twist</option>
+ führt beim Verbindungsaufbau ein Kommando oder ein Skript
+ aus. Ein Beispiel ist in <filename>hosts.allow</filename>
+ enthalten:</para>
<programlisting># Alle anderen Dienste sind geschützt
ALL : ALL \
@@ -1612,16 +1411,14 @@
: twist /bin/echo "You are not welcome to use %d from %h."</programlisting>
<para>Für jeden Dienst, der nicht vorher in
- der Datei <filename>hosts.allow</filename> konfiguriert
- wurde, wird die Meldung <quote>You are not allowed to use
- <literal>daemon</literal> from
- <literal>hostname</literal>.</quote> zurückgegegeben.
- Dies ist besonders nützlich, wenn Sie die
- Gegenstelle sofort benachrichtigen wollen, nachdem
- die Verbindung getrennt wurde. Beachten Sie, dass
- der Text der Meldung in Anführungszeichen
- (<literal>"</literal>) stehen <emphasis>muss</emphasis>,
- es gibt keine Ausnahmen zu dieser Regel.</para>
+ <filename>hosts.allow</filename> konfiguriert wurde, wird
+ die Meldung <quote>You are not allowed to use
+ <literal>daemon</literal> from
+ <literal>hostname</literal>.</quote> zurückgegeben.
+ Dies ist nützlich, wenn die Gegenstelle sofort
+ benachrichtigt werden soll, nachdem die Verbindung getrennt
+ wurde. Der Text der Meldung <emphasis>muss</emphasis> in
+ Anführungszeichen (<literal>"</literal>) stehen.</para>
<warning>
<para>Ein so konfigurierter Server ist anfällig
@@ -1630,14 +1427,12 @@
überfluten.</para>
</warning>
- <para>Um einem Denial-of-Service-Angriff zu entgehen,
- benutzen Sie die Option <option>spawn</option>.
- Wie die Option <option>twist</option> verbietet die Option
- <option>spawn</option> die Verbindung und führt
- externe Kommandos aus. Allerdings sendet die
- Option <option>spawn</option> der Gegenstelle
- keine Rückmeldung. Sehen Sie sich die
- nachstehende Konfigurationsdatei an:</para>
+ <para>Eine weitere Möglichkeit bietet <option>spawn</option>.
+ Wie <option>twist</option> verbietet <option>spawn</option>
+ die Verbindung und führt externe Kommandos aus. Allerdings
+ sendet <option>spawn</option> der Gegenstelle keine
+ Rückmeldung. Sehen Sie sich die nachstehende
+ Konfigurationsdatei an:</para>
<programlisting># Verbindungen von example.com sind gesperrt:
ALL : .example.com \
@@ -1647,44 +1442,36 @@
<para>Damit sind Verbindungen von der Domain
<systemitem class="fqdomainname">*.example.com</systemitem> gesperrt.
- Jeder Verbindungsaufbau wird zudem in der Datei
+ Jeder Verbindungsaufbau wird zudem in
<filename>/var/log/connections.log</filename>
protokolliert. Das Protokoll enthält den
Rechnernamen, die <acronym>IP</acronym>-Adresse
und den Dienst, der angesprochen wurde.</para>
- <para>In der Konfigurationsdatei wurde beispielsweise
- das Metazeichen <literal>%a</literal> verwendet. Es gibt weitere
- Metazeichen, die in der Hilfeseite &man.hosts.access.5;
- beschrieben werden.</para>
+ <para>In diesem Beispiel wurden die Metazeichen
+ <literal>%a</literal> und <literal>%h</literal> verwendet.
+ Eine vollständige Liste der Metazeichen finden Sie in
+ &man.hosts.access.5;.</para>
</sect3>
<sect3>
<title>Wildcards</title>
- <para>Bisher verwendeten die Beispiele immer die
- Wildcard <literal>ALL</literal>. Es gibt andere Wildcards,
- welche die Funktionalität ein bisschen erweitern. Die Wildcard
- <literal>ALL</literal> passt beispielsweise auf
- jeden Dienst, jede Domain oder jede
- <acronym>IP</acronym>-Adresse. Eine andere
- Wildcard ist <literal>PARANOID</literal>. Sie passt
- auf jeden Rechner, dessen <acronym>IP</acronym>-Adresse
- möglicherweise gefälscht ist. Dies ist dann
- der Fall, wenn der Verbindungsaufbau von einer
- <acronym>IP</acronym>-Adresse erfolgt, die nicht
- zu dem übermittelten Rechnernamen passt. Das folgende
- Beispiel sollte das ganze etwas klarer werden lassen:
- </para>
+ <para>Die Wildcard <literal>ALL</literal> passt auf jeden
+ Dienst, jede Domain oder jede <acronym>IP</acronym>-Adresse.
+ Eine andere Wildcard ist <literal>PARANOID</literal>. Sie
+ passt auf jeden Rechner, dessen
+ <acronym>IP</acronym>-Adresse möglicherweise gefälscht ist.
+ Dies ist beispielsweise der Fall, wenn der Verbindungsaufbau
+ von einer <acronym>IP</acronym>-Adresse erfolgt, die nicht
+ zu dem übermittelten Rechnernamen passt. In diesem Beispiel
+ werden alle Verbindungsanfragen zu &man.sendmail.8;
+ abgelehnt, wenn die <acronym>IP</acronym>-Adresse nicht zum
+ Rechnernamen passt:</para>
<programlisting># Block possibly spoofed requests to sendmail:
sendmail : PARANOID : deny</programlisting>
- <para>In diesem Beispiel werden alle Verbindungen zu
- <command>sendmail</command> verboten, die von einer
- <acronym>IP</acronym>-Adresse ausgehen, die nicht zum
- Rechnernamen passt.</para>
-
<caution>
<para>Die Wildcard <literal>PARANOID</literal>
kann einen Dienst unbrauchbar machen, wenn der
@@ -1694,14 +1481,13 @@
in Ihre Konfiguration aufnehmen wollen.</para>
</caution>
- <para>Weiteres über Wildcards und deren Funktion
- lesen Sie bitte in der Hilfeseite &man.hosts.access.5;
- nach.</para>
-
- <para>
- Damit die gezeigten Beispiele funktionieren, müssen
- Sie die erste Konfigurationszeile in der Datei
- <filename>hosts.allow</filename> auskommentieren.</para>
+ <para>Weitere Informationen über Wildcards und deren Funktion
+ finden Sie in &man.hosts.access.5;.</para>
+
+ <para>Damit die gezeigten Beispiele funktionieren, muss die
+ erste Konfigurationszeile in
+ <filename>hosts.allow</filename> auskommentiert
+ werden.</para>
</sect3>
</sect2>
</sect1>
@@ -1720,27 +1506,25 @@
<para><application>Kerberos</application> ist ein Netzwerk-Protokoll,
das Benutzer mithilfe eines sicheren Servers authentifiziert.
- Mit Risiken behaftete Dienste, wie das Anmelden an entfernten
- Systemen oder das Kopieren von Daten auf entfernte Systeme,
- werden durch <application>Kerberos</application> erheblich
- sicherer und lassen sich leichter steuern.</para>
+ Die Daten einer Kommunikation können verschlüsselt werden,
+ nachdem die Kommunikationspartner mit
+ <application>Kerberos</application> ihre Identität geprüft
+ haben.</para>
- <para><application>Kerberos</application> hat eine Aufgabe:
+ <para><application>Kerberos</application> hat nur eine Aufgabe:
Die sichere Prüfung der Identität eines Benutzers
(Authentifizierung) über das Netzwerk. Das System
überprüft weder die Berechtigungen der Benutzer
(Autorisierung), noch verfolgt es die durchgeführten
- Aktionen (Audit). Daher sollte <application>Kerberos</application>
- zusammen mit anderen Sicherheits-Systemen eingesetzt werden, die
- diese Funktionen bereitstellen. Die Daten einer Kommunikation
- können verschlüsselt werden, nachdem die
- Kommunikationspartner mit <application>Kerberos</application>
- ihre Identität geprüft haben.</para>
+ Aktionen (Audit). Daher sollte
+ <application>Kerberos</application> zusammen mit anderen
+ Sicherheits-Systemen eingesetzt werden, die diese Funktionen
+ bereitstellen.</para>
<para>Die folgenden Anweisungen beschreiben, wie Sie das mit
&os; gelieferte <application>Kerberos</application> einrichten.
- Eine vollständige Beschreibung des Systems entnehmen
- Sie bitte den entsprechenden Hilfeseiten.</para>
+ Eine vollständige Beschreibung des Systems entnehmen Sie den
+ entsprechenden Hilfeseiten.</para>
<para>Die Beschreibung der
<application>Kerberos</application>-Installation benutzt
@@ -1748,13 +1532,14 @@
<itemizedlist>
<listitem>
- <para>Die <acronym>DNS</acronym>-Domain (Zone) heißt
- example.org.</para>
+ <para>Die <acronym>DNS</acronym>-Domain (<quote>Zone</quote>)
+ heißt <systemitem
+ class="fqdomainname">example.org</systemitem>.</para>
</listitem>
<listitem>
<para>Das <application>Kerberos</application>-Realm
- heißt EXAMPLE.ORG.</para>
+ heißt <literal>EXAMPLE.ORG</literal>.</para>
</listitem>
</itemizedlist>
@@ -1773,9 +1558,9 @@
<secondary>Geschichte</secondary>
</indexterm>
- <para>Das <acronym>MIT</acronym> entwickelte
- <application>Kerberos</application>, um Sicherheitsprobleme
- auf dem Netzwerk zu lösen. Das
+ <para>Das <acronym>MIT</acronym> hat
+ <application>Kerberos</application> entwickelt, um
+ Sicherheitsprobleme auf dem Netzwerk zu lösen. Das
<application>Kerberos</application>-Protokoll verwendet
starke Kryptographie, sodass ein Server die Identität
eines Clients (der umgekehrte Vorgang ist auch möglich)
@@ -1783,8 +1568,8 @@
<para>Der Begriff Kerberos wird sowohl für das Protokoll
als auch für Programme verwendet, die
- <application>Kerberos</application> benutzen (wie
- <application>Kerberos</application>-Telnet). Die aktuelle
+ <application>Kerberos</application> benutzen, wie
+ <application>Kerberos</application>-Telnet. Die aktuelle
Protokollversion ist 5 und wird in
<acronym>RFC</acronym>&nbsp;1510 beschrieben.</para>
@@ -1798,18 +1583,17 @@
eingesetzt, unterlag aber Export-Beschränkungen,
da sie in den <acronym>USA</acronym> entwickelt wurde.
Die <acronym>MIT</acronym>-Version von
- <application>Kerberos</application> befindet sich im Port
- <package>security/krb5</package>.
+ <application>Kerberos</application> ist als Port oder Paket
+ <package>security/krb5</package> verfügbar.
Heimdal ist eine weitere Implementierung der Protokollversion 5.
Sie wurde außerhalb der <acronym>USA</acronym> entwickelt
und unterliegt daher keinen Export-Beschränkungen.
Heimdal-<application>Kerberos</application> befindet sich
- im Port <package>security/heimdal</package>
+ im Port oder Paket <package>security/heimdal</package>
und das Basissystem von &os; enthält eine minimale
Installation von Heimdal.</para>
- <para>Um möglichst viele Benutzer anzusprechen, verwenden
- die folgenden Beispiele die in &os; enthaltene
+ <para>Die folgenden Beispiele verwenden die in &os; enthaltene
Heimdal-Distribution.</para>
</sect2>
@@ -1830,9 +1614,9 @@
das <acronym>KDC</acronym> erhöhte
Sicherheitsanforderungen.</para>
- <para>Obwohl das <acronym>KDC</acronym> wenig Ressourcen eines
- Rechners benötigt, sollte es wegen der
- Sicherheitsanforderungen auf einem separaten Rechner
+ <para>Obwohl der <application>Kerberos</application>-Server
+ wenig Ressourcen benötigt, sollte das <acronym>KDC</acronym>
+ wegen der Sicherheitsanforderungen auf einem separaten Rechner
installiert werden.</para>
<para>Das <acronym>KDC</acronym> wird in
@@ -1841,9 +1625,8 @@
<programlisting>kerberos5_server_enable="YES"
kadmind5_server_enable="YES"</programlisting>
- <para>Danach wird die Konfigurationsdatei von
- <application>Kerberos</application>,
- <filename>/etc/krb5.conf</filename>, erstellt:</para>
+ <para>Danach wird <filename>/etc/krb5.conf</filename>
+ wie folgt bearbeitet:</para>
<programlisting>[libdefaults]
default_realm = EXAMPLE.ORG
@@ -1857,16 +1640,17 @@
<para>Diese Einstellungen setzen voraus, dass der voll
qualifizierte Name des <acronym>KDC</acronym>s
- <systemitem class="fqdomainname">kerberos.example.org</systemitem> ist.
- Wenn Ihr <acronym>KDC</acronym> einen anderen Namen hat,
- müssen Sie in der DNS-Zone einen Alias-Eintrag (CNAME-Record)
- für das <acronym>KDC</acronym> hinzufügen.</para>
+ <systemitem
+ class="fqdomainname">kerberos.example.org</systemitem> ist.
+ Wenn das <acronym>KDC</acronym> einen anderen Namen hat,
+ muss in der <acronym>DNS</acronym>-Zone ein Alias-Eintrag
+ (CNAME-Record) für das <acronym>KDC</acronym> hinzugefügt
+ werden.</para>
<note>
- <para>Auf großen Netzwerken mit einem ordentlich
- konfigurierten <acronym>BIND</acronym>
- <acronym>DNS</acronym>-Server kann die Datei verkürzt
- werden:</para>
+ <para>In großen Netzwerken mit einem ordentlich
+ konfigurierten <acronym>DNS</acronym>-Server kann die Datei
+ aus dem obigen Beispiel verkürzt werden:</para>
<programlisting>[libdefaults]
default_realm = EXAMPLE.ORG</programlisting>
@@ -1882,42 +1666,39 @@
</note>
<note>
- <para>Damit Klienten die
+ <para>Damit die Clients die
<application>Kerberos</application>-Dienste benutzen
- können, muss die Datei <filename>/etc/krb5.conf</filename>
+ können, muss <filename>/etc/krb5.conf</filename>
entweder die vollständige Konfiguration enthalten
oder eine minimale Konfiguration enthalten
- <emphasis>und</emphasis> zusätzlich ein DNS-Server
- richtig eingerichtet sein.</para>
+ <emphasis>und</emphasis> zusätzlich ein
+ <acronym>DNS</acronym>-Server richtig eingerichtet
+ sein.</para>
</note>
<para>Im nächsten Schritt wird die
<application>Kerberos</application>-Datenbank eingerichtet.
Die Datenbank enthält die Schlüssel aller Prinzipale
und ist mit einem Passwort geschützt. Dieses Passwort
- brauchen Sie nicht zu behalten, da ein davon abgeleiteter
- Schlüssel in der Datei <filename>/var/heimdal/m-key</filename>
- gespeichert wird. Den Schlüssel erstellen Sie, indem
- Sie das Programm <command>kstash</command> aufrufen und
- ein Passwort eingeben.</para>
-
- <para>Nachdem Sie den Schlüssel in
- <filename>/var/heimdal/m-key</filename> erstellt haben,
- können Sie die Datenbank mit dem Kommando
- <command>kadmin</command> initialisieren. Verwenden
- Sie hierbei die Option <option>-l</option> (lokal). Mit
- dieser Option wird die Datenbank lokal modifiziert. Normal
- würde der <command>kadmind</command>-Dienst benutzt,
- der aber zu diesem Zeitpunkt noch nicht läuft. An
- der Eingabeaufforderung von <command>kadmin</command>
- können Sie mit dem Kommando <command>init</command>
- die Datenbank des Realms einrichten.</para>
-
- <para>Zuletzt erstellen Sie mit dem Kommando <command>add</command>
- Ihren ersten Prinzipal. Benutzen Sie die voreingestellten
- Optionen; Sie können die Einstellungen später
- mit dem Kommando <command>modify</command> ändern.
- An der Eingabeaufforderung zeigt das Kommando
+ brauchen Sie sich nicht merken, da ein davon abgeleiteter
+ Schlüssel in <filename>/var/heimdal/m-key</filename>
+ gespeichert wird. Um den Schlüssel zu erstellen, rufen Sie
+ &man.kstash.8; auf und geben Sie ein Passwort ein.</para>
+
+ <para>Nachdem der Schlüssel erstellt wurde, sollte die
+ Datenbank initialisiert werden. Das
+ <application>Kerberos</application>-Werkzeug &man.kadmin.8;
+ kann mit <command>kadmin -l</command> im lokalen Modus benutzt
+ werden, ohne den Netzwerkdienst, welcher zu diesem Zeitpunkt
+ noch nicht läuft, zu verwenden. An der Eingabeaufforderung
+ von &man.kadmin.8; kann mit <command>init</command>
+ die Datenbank des Realms initialisiert werden.</para>
+
+ <para>Zuletzt wird mit <command>add</command> das erste
+ Prinzipal erstellt. Benutzen Sie die voreingestellten
+ Optionen. Die Einstellungen können später
+ <command>modify</command> verändert werden. An der
+ Eingabeaufforderung von &man.kadmin.8; zeigt
<command>?</command> Hilfetexte an.</para>
<para>Zusammengefasst wird die Datenbank wie folgt
@@ -1938,14 +1719,14 @@
Verifying password - Password: <userinput>xxxxxxxx</userinput></screen>
<para>Jetzt kann das <acronym>KDC</acronym> gestartet werden.
- Führen Sie zum Start der Dienste die Kommandos
- <command>/etc/rc.d/kerberos start</command> und
- <command>/etc/rc.d/kadmind start</command> aus. Obwohl
+ Führen Sie zum Start der Dienste
+ <command>service kerberos start</command> und
+ <command>service kadmind start</command> aus. Obwohl
zu diesem Zeitpunkt noch keine kerberisierten Dienste
- laufen, können Sie die Funktion des <acronym>KDC</acronym>s
- schon überprüfen. Für den eben angelegten
+ laufen, kann die Funktion des <acronym>KDC</acronym>s
+ schon überprüft werden. Für den eben angelegten
Benutzer können Sie sich vom <acronym>KDC</acronym>
- Tickets holen und diese Tickets anzeigen:</para>
+ Tickets holen und anzeigen lassen:</para>
<screen>&prompt.user; <userinput>kinit tillman</userinput>
tillman@EXAMPLE.ORG's Password:
@@ -1957,8 +1738,8 @@
Issued Expires Principal
Aug 27 15:37:58 Aug 28 01:37:58 krbtgt/EXAMPLE.ORG@EXAMPLE.ORG</screen>
- <para>Dieses Ticket kann, nachdem Sie Ihre Arbeit beendet haben,
- zurückgezogen werden:</para>
+ <para>Nachdem der Test abgeschlossen ist, kann das temporäre
+ Ticket zurückgezogen werden:</para>
<screen>&prompt.user; <userinput>kdestroy</userinput></screen>
</sect2>
@@ -1971,56 +1752,68 @@
<secondary>Dienste einrichten</secondary>
</indexterm>
- <para>Alle Rechner, die kerberisierte Dienste anbieten,
- müssen eine Kopie der
- <application>Kerberos</application>-Konfigurationsdatei
- <filename>/etc/krb5.conf</filename> besitzen. Sie
- können die Datei einfach vom <acronym>KDC</acronym>
- kopieren.</para>
-
- <para>Anschließend müssen Sie die Datei
- <filename>/etc/krb5.keytab</filename> erzeugen. Im
- Gegensatz zu normalen Workstations benötigt jeder
- Server eine <filename>keytab</filename>.
- Diese Datei enthält den Schlüssel des
- Servers, mit dem sich der Server und das
- <acronym>KDC</acronym> gegenseitig authentifizieren
- können. Die Datei muss sicher auf den Server
- transportiert werden (beispielsweise mit &man.scp.1;
- oder einer Diskette). Unter keinen Umständen
- darf die Datei im Klartext, zum Beispiel mit
- <acronym>FTP</acronym>, übertragen werden,
- da sonst die Sicherheit des Servers gefährdet
- ist.</para>
-
- <para>Sie können die <filename>keytab</filename> auch
- mit dem Programm <command>kadmin</command> übertragen.
- Da Sie mit <command>kadmin</command> sowieso einen Host-Prinzipal
- für den Server einrichten müssen, ist das ganz
- praktisch.</para>
-
- <para>Sie müssen allerdings schon ein Ticket
- besitzen und berechtigt sein, <command>kadmin</command>
- auszuführen. Die Berechtigung erhalten Sie durch
- einen Eintrag in der Zugriffskontrollliste
- <filename>kadmind.acl</filename>. Weitere Informationen
- über Zugriffskontrolllisten erhalten Sie in den
- Heimdal-Info-Seiten (<command>info heimdal</command>)
- im Abschnitt <quote>Remote administration</quote>. Wenn
- der Zugriff auf <command>kadmin</command> von entfernten
- Maschinen verboten ist, müssen Sie sich sicher
- auf dem <acronym>KDC</acronym> anmelden (lokale Konsole,
- &man.ssh.1; oder kerberisiertes Telnet) und die
- <filename>keytab</filename> lokal mit
- <command>kadmin -l</command> erzeugen.</para>
-
- <para>Nachdem Sie die Datei <filename>/etc/krb5.conf</filename>
- installiert haben, können Sie das Kommando
- <command>kadmin</command> benutzen. An der Eingabeaufforderung
- von <command>kadmin</command> erstellt das Kommando
- <command>add --random-key</command> den Host-Prinzipal
- und das Kommando <command>ext</command> extrahiert den
- Schlüssel des Prinzipals in eine Datei:</para>
+ <para>Bei der Konfiguration eines Servers für die
+ <application>Kerberos</application>-Authentifizierung muss
+ zuerst sichergestellt werden, dass
+ <filename>/etc/krb5.conf</filename> richtig konfiguriert ist.
+ Die Datei kann entweder vom <acronym>KDC</acronym> kopiert,
+ oder auf dem neuen System regeneriert werden.</para>
+
+ <para>Als nächstes muss auf dem Server die
+ <filename>/etc/krb5.keytab</filename> erzeugt werden. Dies
+ ist der Hauptbestandteil um Dienste zu
+ <quote>kerberisieren</quote> und entspricht der Erzeugung
+ eines geheimen Schlüssels zwischen dem Dienst und dem
+ <application>KDC</application>. Das Geheimnis ist ein
+ kryptographischer Schlüssel, der in einem
+ <filename>keytab</filename>> abgelegt wird. Diese Datei
+ enthält den Schlüssel des Servers, mit dem sich der Server und
+ das <acronym>KDC</acronym> gegenseitig authentifizieren
+ können. Sie muss in einer sicheren Art und Weise an den
+ Server übertragen werden, da ansonsten die Sicherheit des
+ Servers gefährdet ist, wenn z.B. die Schlüssel öffentlich
+ werden. In der Regel wird die <filename>keytab</filename> auf
+ einem vertrauenswürdigen Rechner mit <command>kadmin</command>
+ erzeugt und anschließend sicher auf den Server übertragen,
+ beispielsweise mit &man.scp.1;. Wenn die
+ Sicherheitsrichtlinien es erlauben, kann die Datei auch direkt
+ auf dem Server erzeugt werden. Es ist sehr wichtig, dass die
+ <filename>keytab</filename> auf sichere Weise auf den Server
+ übertragen wird. Wenn der Schlüssel einer anderen Partei
+ bekannt wird, kann sich diese Partei den Benutzern als
+ Server ausgeben! Da der Eintrag für das Host-Prinzipal für
+ die <acronym>KDC</acronym>-Datenbank auch mit
+ <command>kadmin</command> erstellt wird, ist es praktisch,
+ <command>kadmin</command> direkt auf dem Server zu
+ benutzen.</para>
+
+ <para>Natürlich ist auch <command>kadmin</command> ein
+ kerberisierter Dienst: ein
+ <application>Kerberos</application>-Ticket ist erforderlich,
+ um sich gegenüber dem Netzwerkdienst zu authentifizieren und
+ um sicherzustellen, dass der Benutzer, der
+ <command>kadmin</command> ausführt, tatsächlich vorhanden ist.
+ <command>kadmin</command> wird nach dem Passwort fragen, um
+ ein neues Ticket zu generieren. Das Prinzipal, das sich mit
+ dem kadmin-Dienst authentifiziert, muss über die
+ Zugriffskontrollliste <filename>kadmin.acl</filename> dazu
+ berechtigt sein. Weitere Informationen über
+ Zugriffskontrolllisten finden Sie in den Heimdal-Info-Seiten
+ (<command>info heimdal</command>) im Abschnitt
+ <quote>Remote administration</quote>. Wenn der Zugriff auf
+ <command>kadmin</command> von entfernten Rechnern verboten
+ ist, kann sich der Administrator entweder über die lokale
+ Konsole oder über &man.ssh.1; mit dem <acronym>KDC</acronym>
+ verbinden, um die lokale Administration mit
+ <command>kadmin -l</command> durchzuführen.</para>
+
+ <para>Nach der Installation von
+ <filename>/etc/krb5.conf</filename>, können Sie das Kommando
+ <command>add --random-key</command> in
+ <command>kadmin</command> ausführen, um das Host-Prinzipal in
+ die Datenbank zu schreiben. Das Kommando
+ <command>ext</command> extrahiert den Schlüssel des Prinzipals
+ in eine eigene keytab:</para>
<screen>&prompt.root; <userinput>kadmin</userinput>
kadmin&gt; <userinput>add --random-key host/myserver.example.org</userinput>
@@ -2030,105 +1823,82 @@
kadmin&gt; <userinput>ext host/myserver.example.org</userinput>
kadmin&gt; <userinput>exit</userinput></screen>
- <para>Das Kommando <command>ext</command> (von
- <foreignphrase>extract</foreignphrase>) speichert den
- extrahierten Schlüssel in der Datei
- <filename>/etc/krb5.keytab</filename>.</para>
-
- <para>Wenn auf dem <acronym>KDC</acronym>, vielleicht aus
- Sicherheitsgründen, <command>kadmind</command>
- nicht läuft, können Sie das Kommando
- <command>kadmin</command> von entfernten Rechnern nicht
- benutzen. In diesem Fall legen Sie den Host-Prinzipal
- <systemitem class="username">host/myserver.EXAMPLE.ORG</systemitem> direkt
- auf dem <acronym>KDC</acronym> an. Den Schlüssel
- extrahieren Sie in eine temporäre Datei (damit
- die Datei <filename>/etc/krb5.keytab</filename> nicht
- überschrieben wird):</para>
+ <para>Beachten Sie, dass <command>ext</command> den
+ extrahierten Schlüssel standardmäßig in
+ <filename>/etc/krb5.keytab</filename> speichert. Das ist
+ gut, wenn das Kommando auf dem kerberisierten Server
+ ausgeführt wird, ansonsten sollte das Argument
+ <command>--keytab
+ <replaceable>pfad/zur/datei</replaceable></command>
+ benutzt werden, wenn die keytab an einen anderen Ort
+ extrahiert wird:</para>
<screen>&prompt.root; <userinput>kadmin</userinput>
-kadmin&gt; <userinput>ext --keytab=/tmp/example.keytab host/myserver.example.org</userinput>
+kadmin&gt; <userinput>ext --keytab=/tmp/example.keytab <replaceable>host/myserver.example.org</replaceable></userinput>
kadmin&gt; <userinput>exit</userinput></screen>
- <para>Anschließend müssen Sie die erzeugte
- <filename>example.keytab</filename> sicher auf den
- Server kopieren (mit <command>scp</command> oder
- mithilfe einer Diskette). Geben Sie auf jeden Fall
- einen anderen Namen für die <filename>keytab</filename>
- an, weil sonst die <filename>keytab</filename> des
- <acronym>KDC</acronym>s überschrieben würde.</para>
+ <para>Anschließend kann die erzeugte keytab sicher mit
+ <command>scp</command> auf Server oder auf einen
+ Wechseldatenträger kopiert werden. Geben Sie auf jeden Fall
+ einen anderen Namen für die keytab an, weil sonst die keytab
+ des <acronym>KDC</acronym>s überschrieben würde.</para>
<para>Wegen der Datei <filename>krb5.conf</filename> kann
der Server nun mit dem <acronym>KDC</acronym> kommunizieren
und seine Identität mithilfe der Datei
<filename>krb5.keytab</filename> nachweisen. Jetzt
- können wir kerberisierte Dienste aktivieren.
- Für <command>telnet</command> muss die folgende
- Zeile in <filename>/etc/inetd.conf</filename> eingefügt
- werden:</para>
-
- <programlisting>telnet stream tcp nowait root /usr/libexec/telnetd telnetd -a user</programlisting>
-
- <para>Ausschlaggebend ist, dass die Authentifizierungs-Methode
- mit <option>-a</option> auf <literal>user</literal> gesetzt
- wird. Weitere Details entnehmen Sie bitte der Hilfeseite
- &man.telnetd.8;.</para>
-
- <para>Nachdem sie die Zeile in <filename>/etc/inetd.conf</filename>
- eingefügt haben, starten Sie &man.inetd.8; mit
- dem Kommando <command>/etc/rc.d/inetd restart</command>
- durch.</para>
+ können die kerberisierten Dienste aktiviert werden. Einer der
+ gebräuchlichsten Dienste ist &man.sshd.8;, der
+ <application>Kerberos</application> über
+ <acronym>GSS-API</acronym> unterstützt. Fügen Sie folgende
+ Zeile in <filename>/etc/ssh/sshd_config</filename> ein:</para>
+
+ <programlisting>GSSAPIAuthentication yes</programlisting>
+
+ <para>Nach dieser Änderung muss &man.sshd.8; mit
+ <command>service sshd restart</command> neu gestartet werden,
+ damit die neue Konfiguration wirksam wird.</para>
</sect2>
<sect2>
<title>Heimdal <application>Kerberos</application>-Clients
einrichten</title>
+
<indexterm>
<primary>Kerberos5</primary>
<secondary>Clients einrichten</secondary>
</indexterm>
- <para>Ein Client lässt sich leicht einrichten.
- Sie benötigen nur die
- <application>Kerberos</application>-Konfigurationsdatei
- <filename>/etc/krb5.conf</filename>. Kopieren Sie
- die Konfigurationsdatei einfach vom <acronym>KDC</acronym>
- auf den Client.</para>
-
- <para>Sie können jetzt mit <command>kinit</command>
- Tickets anfordern, mit <command>klist</command> Tickets
- anzeigen und mit <command>kdestroy</command> Tickets
- löschen. Sie können mit
- <application>Kerberos</application>-Anwendungen kerberisierte
- Server ansprechen. Wenn das nicht funktioniert,
- Sie aber Tickets anfordern können, hat wahrscheinlich
- der kerberisierte Server ein Problem und nicht der
- Client oder das <acronym>KDC</acronym>.</para>
-
- <para>Wenn Sie eine Anwendung wie <command>telnet</command>
- testen, können Sie mit einem Paket-Sniffer
- (beispielsweise &man.tcpdump.1;) überprüfen,
- dass Passwörter verschlüsselt übertragen
- werden. Probieren Sie auch die Option <option>-x</option>
- von <command>telnet</command>, die den gesamten Datenverkehr
- verschlüsselt (analog zu <command>ssh</command>).</para>
-
- <para>Zu Heimdal gehören noch weitere Anwendungen.
- Allerdings enthält das &os;-Basissystem nur eine
- minimale Heimdal-Installation mit nur einer
- kerberisierten Anwendung: <command>telnet</command>.</para>
-
- <para>Der Heimdal-Port enthält noch mehr kerberisierte
- Anwendungen wie <command>ftp</command>, <command>rsh</command>,
- <command>rcp</command> und <command>rlogin</command>.
- Der <acronym>MIT</acronym>-Port enthält ebenfalls
- weitere kerberisierte Anwendungen.</para>
- </sect2>
-
- <sect2>
- <title>Die Benutzerkonfigurationsdateien
- <filename>.k5login</filename> und
- <filename>.k5users</filename></title>
+ <para>Genau wie der Server, benötigt auch der Client eine
+ Konfiguration in <filename>/etc/krb5.conf</filename>.
+ Kopien Sie die Datei (sicher) vom <acronym>KDC</acronym>
+ auf den Client, oder schreiben Sie die Datei bei Bedarf
+ einfach neu. Testen Sie den Client, indem Sie mit
+ <command>kinit</command> Tickets anfordern, mit
+ <command>klist</command> Tickets anzeigen und mit
+ <command>kdestroy</command> Tickets löschen.
+ <application>Kerberos</application>-Anwendungen sollten auch
+ kerberisierte Server ansprechen können. Wenn das nicht
+ funktioniert, Sie aber Tickets anfordern können, hat
+ wahrscheinlich der kerberisierte Server ein Problem und nicht
+ der Client oder das <acronym>KDC</acronym>. Im Falle eines
+ kerberisierten &man.ssh.1; ist <acronym>GSS-API</acronym> in
+ der Voreinstellung deaktiviert. Testen Sie daher mit
+ <command>ssh -o GSSAPIAuthentication=yes
+ <replaceable>hostname</replaceable></command>.</para>
+
+ <para>Wenn Sie die kerberisierten Anwendungen testen, können Sie
+ einen Paket-Sniffer wie <command>tcpdump</command> benutzen,
+ um sicherzustellen, dass keine sensiblen Informationen im
+ Klartext übertragen werden.</para>
+
+ <para>Es stehen verschiedene
+ <application>Kerberos</application>-Anwendungen zur Verfügung.
+ Die Anwendungen, die <acronym>SASL</acronym> benutzen, können
+ dann auch <acronym>GSS-API</acronym> benutzen. Viele Arten
+ von Anwendungen können <application>Kerberos</application> zur
+ Authentifizierung verwenden, vom Jabber-Client bis zum
+ <acronym>IMAP</acronym>-Client.</para>
<indexterm>
<primary><filename>.k5login</filename></primary>
@@ -2138,42 +1908,30 @@
</indexterm>
<para>Normalerweise wird ein
- <application>Kerberos</application>-Prinzipal wie
- <systemitem class="username">tillman@EXAMPLE.ORG</systemitem> auf ein lokales
- Benutzerkonto, beispielsweise <systemitem class="username">tillman</systemitem>,
- abgebildet. Daher benötigen Client-Anwendungen (zum
- Beispiel <command>telnet</command>) keinen Benutzernamen.</para>
-
- <para>Manchmal wird aber Zugriff auf ein lokales Benutzerkonto
- benötigt, zu dem es keinen passenden
+ <application>Kerberos</application>-Prinzipal auf ein lokales
+ Benutzerkonto abgebildet. Manchmal wird aber Zugriff auf ein
+ lokales Benutzerkonto benötigt, zu dem es keinen passenden
<application>Kerberos</application>-Prinzipal gibt.
- Der Prinzipal <systemitem class="username">tillman@EXAMPLE.ORG</systemitem>
- bräuchte beispielsweise Zugriff auf das Konto
- <systemitem class="username">webdevelopers</systemitem>. Ebenso könnten
+ Der Prinzipal <systemitem
+ class="username">tillman@EXAMPLE.ORG</systemitem> bräuchte
+ beispielsweise Zugriff auf das Konto <systemitem
+ class="username">webdevelopers</systemitem>. Ebenso könnten
andere Prinzipale auf dieses Konto zugreifen wollen.</para>
<para>Die Dateien <filename>.k5login</filename> und
<filename>.k5users</filename> im Heimatverzeichnis eines
- Benutzerkontos gewähren Zugriffe ähnlich wie
- die Dateien <filename>.hosts</filename> und
- <filename>.rhosts</filename>. Um den Prinzipalen
- <systemitem class="username">tillman@example.org</systemitem> und
- <systemitem class="username">jdoe@example.org</systemitem> auf das Konto
- <systemitem class="username">webdevelopers</systemitem> zu geben, wird im
- Heimatverzeichnis von <systemitem class="username">webdevelopers</systemitem>
- die Datei <filename>.k5login</filename> mit folgendem
- Inhalt angelegt:</para>
-
- <screen>tillman@example.org
-jdoe@example.org</screen>
-
- <para>Die angegebenen Prinzipale haben nun ohne ein gemeinsames
- Passwort Zugriff auf das Konto.</para>
-
- <para>Einzelheiten entnehmen Sie bitte den Hilfeseiten
- zu diesen Dateien. Die Datei <filename>.k5users</filename>
- wird in der Hilfeseite des Kommandos <command>ksu</command>
- beschrieben.</para>
+ Benutzers können verwendet werden, um dieses Problem zu lösen.
+ Mit der folgenden <filename>.k5login</filename> im
+ Heimatverzeichnis des Benutzers <systemitem
+ class="username">webdevelopers</systemitem> haben beide
+ Prinzipale auch ohne das gemeinsame Passwort Zugriff auf das
+ Konto:</para>
+
+ <programlisting>tillmann@example.org
+jdoe@example.org</programlisting>
+
+ <para>Weitere Informationen zu <filename>.k5users</filename>
+ finden Sie in &man.ksu.1;.</para>
</sect2>
<sect2>
@@ -2188,14 +1946,13 @@
<para>Wenn Sie den Heimdal-Port oder den
<acronym>MIT</acronym>-Port benutzen, muss in der
Umgebungsvariable <envar>PATH</envar> der Pfad zu
- den Programmen des Ports vor dem Pfad zu den
- <application>Kerberos</application>-Programmen des Systems
- stehen.</para>
+ den <application>Kerberos</application>-Programmen vor dem
+ Pfad zu den Programmen des Systems stehen.</para>
</listitem>
<listitem>
- <para>Sind die Uhrzeiten der Systeme synchronisiert?
- Wenn nicht, schlägt vielleicht die Authentifizierung
+ <para>Wenn die Clients im Realm ihre Uhrzeit nicht
+ synchronisieren, schlägt vielleicht die Authentifizierung
fehl. <xref linkend="network-ntp"/> beschreibt, wie
Sie mithilfe von <acronym>NTP</acronym> die Uhrzeiten
synchronisieren.</para>
@@ -2203,24 +1960,24 @@
<listitem>
<para>Die <acronym>MIT</acronym>- und Heimdal-Systeme
- arbeiten bis auf <command>kadmin</command> gut zusammen.
- Für <command>kadmin</command> wurde das Protokoll
- nicht normiert.</para>
+ arbeiten bis auf <command>kadmin</command>, welches nicht
+ standardisiert ist, gut zusammen.</para>
</listitem>
<listitem>
<para>Wenn Sie den Namen eines Rechners ändern,
- müssen Sie auch den <systemitem class="username">host/</systemitem>-Prinzipal
- ändern und die Datei <filename>keytab</filename>
- aktualisieren. Dies betrifft auch spezielle Einträge
- wie den Prinzipal für Apaches <package>www/mod_auth_kerb</package>.</para>
+ müssen Sie auch den <systemitem
+ class="username">host/</systemitem>-Prinzipal ändern und
+ die <filename>keytab</filename> aktualisieren. Dies
+ betrifft auch spezielle Einträge wie den Prinzipal für
+ Apaches <package>www/mod_auth_kerb</package>.</para>
</listitem>
<listitem>
- <para>Die Rechnernamen müssen vor- und
- rückwärts aufgelöst werden (im
- <acronym>DNS</acronym> oder in
- <filename>/etc/hosts</filename>).
+ <para>Alle Rechner in einem Realm müssen vor- und
+ rückwärts aufgelöst werden können. Entweder über
+ <acronym>DNS</acronym>, zumindest aber über
+ <filename>/etc/hosts</filename>.
<acronym>CNAME</acronym>-Einträge im
<acronym>DNS</acronym> funktionieren, aber die
entsprechenden A- und PTR-Einträge müssen
@@ -2234,10 +1991,11 @@
<listitem>
<para>Einige Betriebssysteme installieren
<command>ksu</command> mit falschen Zugriffsrechten;
- es fehlt das Set-UID-Bit für <systemitem class="username">root</systemitem>.
- Das mag aus Sicherheitsgründen richtig sein,
- doch funktioniert <command>ksu</command> dann nicht.
- Dies ist kein Fehler des <acronym>KDC</acronym>s.</para>
+ es fehlt das Set-UID-Bit für <systemitem
+ class="username">root</systemitem>. Das hat zur Folge,
+ dass <command>ksu</command> nicht funktioniert. Dies ist
+ ein Fehler in den Zugriffsrechten und kein Fehler des
+ <acronym>KDC</acronym>s.</para>
</listitem>
<listitem>
@@ -2249,8 +2007,11 @@
Sie das <command>modify_principal</command> von
<command>kadmin</command>, um die maximale
Gültigkeitsdauer für den Prinzipal selbst
- und den Prinzipal <systemitem class="username">krbtgt</systemitem>
- zu erhöhen.</para>
+ und den Prinzipal <systemitem
+ class="username">krbtgt</systemitem>
+ zu erhöhen. Das Prinzipal kann dann mit
+ <command>kinit -l</command> ein Ticket mit einer
+ längeren Gültigkeit beantragen.</para>
</listitem>
<listitem>
@@ -2272,7 +2033,7 @@
erhält der Benutzer einen Sitzungs-Schlüssel
für die künftige verschlüsselte
Kommunikation mit dem <acronym>KDC</acronym> und das
- Ticket-Granting-Ticket. Das Ticket-Granting-Ticket
+ <acronym>TGT</acronym>. Das <acronym>TGT</acronym>
wiederum ist mit dem Schlüssel des <acronym>KDC</acronym>s
verschlüsselt. Diese Verschlüsselung ist
für den Benutzer völlig transparent und
@@ -2284,15 +2045,15 @@
<listitem>
<para>Wenn Sie <application>OpenSSH</application> verwenden
und Tickets mir einer langen Gültigkeit
- (beispielsweise einer Woche) benutzen, setzen Sie die Option
- <option>TicketCleanup</option> in der Datei
+ (beispielsweise einer Woche) benutzen, setzen Sie
+ <option>TicketCleanup</option> in
<filename>sshd_config</filename> auf <literal>no</literal>.
- Ansonsten werden Ihre Tickets gelöscht, wenn Sie
+ Ansonsten werden die Tickets gelöscht, wenn Sie
sich abmelden.</para>
</listitem>
<listitem>
- <para>Host-Prinzipale können ebenfalls Tickets mit
+ <para>Host-Prinzipale können Tickets mit
längerer Gültigkeit besitzen. Wenn der
Prinzipal eines Benutzers über ein Ticket verfügt,
das eine Woche gültig ist, das Ticket des
@@ -2304,15 +2065,13 @@
<listitem>
<para>Wenn Sie mit <filename>krb5.dict</filename> die
- Verwendung schlechter Passwörter verhindern wollen,
- geht das nur mit Prinzipalen, denen eine Passwort-Policy
- zugewiesen wurde. Die Hilfeseite von
- <command>kadmind</command> beschreibt kurz, wie
- <filename>krb5.dict</filename> verwendet wird. Das
- Format von <filename>krb5.dict</filename> ist
- einfach: Die Datei enthält pro Zeile ein Wort.
- Sie können daher einen symbolischen Link auf
- <filename>/usr/share/dict/words</filename> erstellen.</para>
+ Verwendung schlechter Passwörter verhindern wollen, wie
+ in &man.kadmin.8; beschrieben, geht das nur mit
+ Prinzipalen, denen eine Passwort-Policy zugewiesen wurde.
+ Das Format von <filename>krb5.dict</filename> enthält pro
+ Zeile ein Wort. Sie können daher einen symbolischen Link
+ auf <filename>/usr/share/dict/words</filename>
+ erstellen.</para>
</listitem>
</itemizedlist>
</sect2>
@@ -2335,8 +2094,8 @@
Client-Anwendungen leicht geänderte Kommandozeilenoptionen
besitzen. Folgen Sie bitte der Anleitung auf der
<application>Kerberos</application>-Seite
- (<uri xlink:href="http://web.mit.edu/Kerberos/www/">http://web.mit.edu/Kerberos/www/</uri>) des
- <acronym>MIT</acronym>s. Achten Sie besonders auf den
+ <uri xlink:href="http://web.mit.edu/Kerberos/www/">http://web.mit.edu/Kerberos/www/</uri>
+ des <acronym>MIT</acronym>s. Achten Sie besonders auf den
Suchpfad für Anwendungen. Der <acronym>MIT</acronym>-Port
wird standardmäßig in
<filename>/usr/local/</filename>
@@ -2351,7 +2110,7 @@
erscheint bei der Anmeldung mit <command>telnetd</command>
und <command>klogind</command> die Fehlermeldung
<errorname>incorrect permissions on cache file</errorname>.
- Lesen Sie dazu bitte die im Port enthaltene Datei
+ Lesen Sie dazu die im Port enthaltene Datei
<filename>/usr/local/share/doc/krb5/README.FreeBSD</filename>.
Wichtig ist, dass zur Authentifizierung die Binärdatei
<command>login.krb5</command> verwendet wird, die
@@ -2359,7 +2118,9 @@
korrekt ändert.</para>
</note>
- <para>In der Datei <filename>rc.conf</filename> müssen
+ <para>Wird
+ <acronym>MIT</acronym>-<application>Kerberos</application> auf
+ &os; eingesetzt, sollten in <filename>rc.conf</filename>
folgende Zeilen aufgenommen werden:</para>
<programlisting>kerberos5_server="/usr/local/sbin/krb5kdc"
@@ -2368,8 +2129,9 @@
kadmind5_server_enable="YES"</programlisting>
<para>Diese Zeilen sind notwendig, weil die Anwendungen
- von <acronym>MIT</acronym>-Kerberos Binärdateien
- unterhalb von <filename>/usr/local</filename> installieren.</para>
+ von <acronym>MIT</acronym>-<acronym>Kerberos</acronym> die
+ Binärdateien unterhalb von <filename>/usr/local</filename>
+ installieren.</para>
</sect2>
<sect2>
@@ -2384,17 +2146,17 @@
<title><application>Kerberos</application> muss ganzheitlich
verwendet werden</title>
- <para>Jeder über das Netzwerk angebotetene Dienst
+ <para>Jeder über das Netzwerk angebotene Dienst
muss mit <application>Kerberos</application>
zusammenarbeiten oder auf anderen Wegen gegen Angriffe
aus dem Netzwerk geschützt sein. Andernfalls
können Berechtigungen gestohlen und wiederverwendet
werden. Es ist beispielsweise nicht sinnvoll, für
- Anmeldungen mit <command>rsh</command> und
- <command>telnet</command> <application>Kerberos</application>
+ Remote-Shells<application>Kerberos</application>
zu benutzen, dagegen aber <acronym>POP3</acronym>-Zugriff
- auf einen Mail-Server zu erlauben, da <acronym>POP3</acronym>
- Passwörter im Klartext versendet.</para>
+ auf einen Mail-Server zu erlauben, da
+ <acronym>POP3</acronym>-Passwörter im Klartext
+ versendet.</para>
</sect3>
<sect3>
@@ -2407,13 +2169,13 @@
lesbaren Verzeichnis <filename>/tmp</filename>
gespeichert werden. Wenn ein Rechner von mehreren
Benutzern verwendet wird, ist es möglich, dass
- Tickets gestohlen werden.</para>
+ Tickets von einem anderen Benutzer gestohlen oder
+ kopiert werden.</para>
<para>Dieses Problem können Sie lösen, indem Sie mit
der Kommandozeilenoption <option>-c</option> oder besser
mit der Umgebungsvariablen <envar>KRB5CCNAME</envar> einen
- Ort für die Tickets vorgeben. Diese Vorgehensweise
- wird leider selten benutzt. Es reicht, die Tickets
+ Ort für die Tickets vorgeben. Es reicht, die Tickets
im Heimatverzeichnis eines Benutzers zu speichern und
mit Zugriffsrechten zu schützen.</para>
</sect3>
@@ -2423,7 +2185,7 @@
<para>Das <acronym>KDC</acronym> muss genauso abgesichert
werden wie die auf ihm befindliche Passwort-Datenbank.
- Auf dem <acronym>KDC</acronym> dürfen keine anderen
+ Auf dem <acronym>KDC</acronym> sollten absolut keine anderen
Dienste laufen und der Rechner sollte physikalisch
gesichert sein. Die Gefahr ist groß, da
<application>Kerberos</application> alle Passwörter
@@ -2442,17 +2204,15 @@
anfangen.</para>
<para>Wenn das <acronym>KDC</acronym> nicht zur Verfügung
- steht, vielleicht wegen eines Denial-of-Service Angriffs
- oder wegen eines Netzwerkproblems, ist eine Authentifizierung
- unmöglich. Damit können die Netzwerk-Dienste
- nicht benutzt werden; das <acronym>KDC</acronym> ist
- also ein optimales Ziel für einen Denial-of-Service
- Angriff. Sie können diesem Angriff ausweichen,
- indem Sie mehrere <acronym>KDC</acronym>s (einen Master
- und einen oder mehrere Slaves) verwenden. Der Rückfall
- auf ein sekundäres <acronym>KDC</acronym> oder
- eine andere Authentifizierungs-Methode (dazu ist
- <acronym>PAM</acronym> bestens geeignet) muss sorgfältig
+ steht, sind auch die Netzwerkdienste nicht benutzbar, da
+ eine Authentifizierung nicht durchgeführt werden kann.
+ Das <acronym>KDC</acronym> ist also ein optimales Ziel für
+ einen Denial-of-Service Angriff. Sie können diesem Angriff
+ entgegenwirken, indem Sie einen
+ <acronym>KDC</acronym>-Master und einen oder mehrere Slaves
+ verwenden. Der Rückfall auf ein sekundäres
+ <acronym>KDC</acronym> mittels
+ <acronym>PAM</acronym>-Authentifizierung muss sorgfältig
eingerichtet werden.</para>
</sect3>
@@ -2465,7 +2225,7 @@
authentifizieren. Allerdings existiert kein Mechanismus,
der das <acronym>KDC</acronym> gegenüber Benutzern,
Rechnern oder Diensten authentifiziert. Ein verändertes
- <command>kinit</command> könnte beispielsweise alle
+ &man.kinit.1; könnte beispielsweise alle
Benutzernamen und Passwörter abfangen. Die von
veränderten Programmen ausgehende Gefahr können
Sie lindern, indem Sie die Integrität von Dateien
@@ -2527,9 +2287,9 @@
</indexterm>
<indexterm><primary>OpenSSL</primary></indexterm>
- <para>Es wird oft übersehen, dass
- <application>OpenSSL</application> Teil des &os;-Basissystems
- ist. <application>OpenSSL</application> bietet eine
+ <para><application>OpenSSL</application> ist eine freie
+ Implementierung der <acronym>SSL</acronym> und
+ <acronym>TLS</acronym>-Protokolle. Es bietet eine
verschlüsselte Transportschicht oberhalb der
normalen Kommunikationsschicht und kann daher zusammen
mit vielen Netzdiensten benutzt werden.</para>
@@ -2551,9 +2311,9 @@
<package>security/openssl</package>.</para>
</note>
- <para>Das <application>OpenSSL</application> von &os; stellt
- die Protokolle Secure Sockets Layer v2/v3 (SSLv2/SSLv3) und
- Transport Layer Security v1 (TLSv1) zur Verfügung.
+ <para>Das in &os; integrierte <application>OpenSSL</application>
+ stellt die Protokolle Secure Sockets Layer v2/v3 (SSLv2/SSLv3)
+ und Transport Layer Security v1 (TLSv1) zur Verfügung.
Die <application>OpenSSL</application>-Bibliotheken stellen
kryptographische Funktionen bereit.</para>
@@ -2565,7 +2325,7 @@
<acronym>IDEA</acronym>-Lizenz akzeptieren, können
Sie den <acronym>IDEA</acronym>-Algorithmus aktivieren,
indem Sie die Variable <varname>MAKE_IDEA</varname>
- in <filename>make.conf</filename> setzen.</para>
+ in <filename>/etc/make.conf</filename> setzen.</para>
</note>
<para>Meist wird <application>OpenSSL</application> eingesetzt,
@@ -2582,7 +2342,6 @@
bestätigt. Diese Prozedur kostet Geld, ist aber
keine Voraussetzung für den Einsatz von Zertifikaten,
beruhigt aber sicherheitsbewusste Benutzer.</para>
- <!-- XXX paranoid users ?? -->
<sect2>
<title>Zertifikate erzeugen</title>
@@ -2608,36 +2367,36 @@
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
-Country Name (2 letter code) [AU]:<userinput>US</userinput>
-State or Province Name (full name) [Some-State]:<userinput>PA</userinput>
-Locality Name (eg, city) []:<userinput>Pittsburgh</userinput>
-Organization Name (eg, company) [Internet Widgits Pty Ltd]:<userinput>My Company</userinput>
-Organizational Unit Name (eg, section) []:<userinput>Systems Administrator</userinput>
-Common Name (eg, YOUR name) []:<userinput>localhost.example.org</userinput>
-Email Address []:<userinput>trhodes@FreeBSD.org</userinput>
+Country Name (2 letter code) [AU]:<userinput><replaceable>US</replaceable></userinput>
+State or Province Name (full name) [Some-State]:<userinput><replaceable>PA</replaceable></userinput>
+Locality Name (eg, city) []:<userinput><replaceable>Pittsburgh</replaceable></userinput>
+Organization Name (eg, company) [Internet Widgits Pty Ltd]:<userinput><replaceable>My Company</replaceable></userinput>
+Organizational Unit Name (eg, section) []:<userinput><replaceable>Systems Administrator</replaceable></userinput>
+Common Name (eg, YOUR name) []:<userinput><replaceable>localhost.example.org</replaceable></userinput>
+Email Address []:<userinput><replaceable>trhodes@FreeBSD.org</replaceable></userinput>
Please enter the following 'extra' attributes
to be sent with your certificate request
-A challenge password []:<userinput>SOME PASSWORD</userinput>
-An optional company name []:<userinput>Another Name</userinput></screen>
+A challenge password []:
+An optional company name []:<userinput><replaceable>Another Name</replaceable></userinput></screen>
- <para>Beachten Sie bitte, dass die Eingabe bei
+ <para>Beachten Sie, dass die Eingabe bei
<quote>Common Name</quote> ein gültiger Domain-Name
sein muss. Eine andere Eingabe erzeugt ein unbrauchbares
Zertifikat. Das Zertifikat kann mit einer
Gültigkeitsdauer und anderen
Verschlüsselungsalgorithmen erzeugt werden.
- Die Hilfeseite &man.openssl.1; beschreibt die zur
+ &man.openssl.1; beschreibt die zur
Verfügung stehenden Optionen.</para>
<para>Das Verzeichnis, in dem Sie den letzten Befehl ausgeführt
haben, enthält nun zwei Dateien: Die Anforderung für
ein neues Zertifikat wurde in <filename>req.pem</filename>
gespeichert. Diese Datei können Sie an eine
- Zertifizierungsstelle senden, wo Ihre Angaben geprüft werden.
- Nach erfolgreicher Prüfung wird das Zertifikat an Sie
- zurückgesandt. Die zweite Datei, <filename>cert.pem</filename>,
- enthält den privaten Schlüssel für Ihr Zertifikat
+ <acronym>CA</acronym> senden, wo die Angaben geprüft werden.
+ Nach erfolgreicher Prüfung wird das Zertifikat unterschrieben
+ und an Sie zurückgesandt. Die zweite Datei, <filename>cert.pem</filename>,
+ enthält den privaten Schlüssel für das Zertifikat
und darf auch keine Fall in fremde Hände geraten, da ein
Angreifer sonst in der Lage ist, anderen Personen oder Rechnern
vorzugaukeln, dass es sich bei ihm um Sie handelt.</para>
@@ -2663,33 +2422,29 @@
<filename>myca.key</filename> und das Zertifikat selbst,
<filename>new.crt</filename>. Sie sollten in einem
Verzeichnis, vorzugsweise unterhalb von
- <filename>/etc</filename> abgelegt
+ <filename>/etc/ssl</filename> abgelegt
werden, das nur von <systemitem class="username">root</systemitem> lesbar
- ist. Setzen Sie die Zugriffsrechte der Dateien mit
- <command>chmod</command> auf <literal>0700</literal>.</para>
+ ist. Die Zugriffsrechte der Dateien können mit &man.chmod.1;
+ auf <literal>0700</literal> gesetzt werden.</para>
</sect2>
<sect2>
- <title>Beispiel für Zertifikate</title>
+ <title>Zertifikate benutzen</title>
- <para>Was fangen Sie mit einem Zertifikat an? Sie
- könnten damit beispielsweise die Verbindungen zu
- <application>Sendmail</application> verschlüsseln.
- Dies würde die Klartext-Authentifizierung
- für Benutzer des lokalen <acronym>MTA</acronym>
- überflüssig machen.</para>
+ <para>Mit einem Zertifikat können beispielsweise die
+ Verbindungen zu <application>Sendmail</application>
+ verschlüsselt werden, um eine Klartext-Authentifizierung
+ zu verhindern.</para>
<note>
- <para>Das ist nicht unbedingt die beste Lösung,
- da einige <acronym>MUA</acronym>s Warnungen ausgeben,
- wenn ein Zertifikat nicht lokal installiert ist.
- Die Installation von Zertifikaten wird in der
- Dokumentation der <acronym>MUA</acronym>s
- beschrieben.</para>
+ <para>Einige E-Mail-Programme geben Warnungen aus, wenn ein
+ Zertifikat nicht lokal installiert ist. Weitere
+ Informationen zur Installation von Zertifikaten finden Sie
+ in der Dokumentation der entsprechenden Software.</para>
</note>
<para>Ergänzen Sie die Konfigurationsdatei von
- <application>sendmail</application> (<filename>.mc</filename>)
+ <application>Sendmail</application> (<filename>.mc</filename>)
um die nachstehenden Zeilen:</para>
<programlisting>dnl SSL Options
@@ -2699,22 +2454,20 @@
define(`confSERVER_KEY',`/etc/certs/myca.key')dnl
define(`confTLS_SRV_OPTIONS', `V')dnl</programlisting>
- <para>Im Verzeichnis <filename>/etc/certs</filename>
- befindet sich der Schlüssel und das Zertifikat. Bauen Sie danach
- im Verzeichnis <filename>/etc/mail</filename>
- mit dem Kommando <command>make
- install</command> die
- <filename>.cf</filename>-Datei und starten Sie anschließend
- <application>sendmail</application> mit <command>make
- restart</command> neu.</para>
+ <para>Im Verzeichnis <filename>/etc/certs</filename> befindet
+ sich der Schlüssel und das Zertifikat. Bauen Sie danach im
+ Verzeichnis <filename>/etc/mail</filename>
+ mit dem Kommando <command>make install</command> die
+ <filename>.cf</filename>-Datei. Starten Sie anschließend
+ <application>Sendmail</application> mit
+ <command>make restart</command> neu.</para>
<para>Wenn alles gut ging, erscheinen keine Fehlermeldungen
- in der Datei <filename>/var/log/maillog</filename> und
- Sie sehen <application>sendmail</application> in der
+ in <filename>/var/log/maillog</filename> und
+ Sie sehen <application>Sendmail</application> in der
Prozessliste.</para>
- <para>Testen Sie nun den Mailserver mit dem Kommando
- &man.telnet.1;:</para>
+ <para>Testen Sie nun den Mailserver mit &man.telnet.1;:</para>
<screen>&prompt.root; <userinput>telnet example.com 25</userinput>
Trying 192.0.34.166...
@@ -2737,13 +2490,13 @@
221 2.0.0 <systemitem class="fqdomainname">example.com</systemitem> closing connection
Connection closed by foreign host.</screen>
- <para>Wenn in einer Zeile <literal>STARTTLS</literal>
+ <para>Wenn die Zeile <literal>STARTTLS</literal>
erscheint, hat alles funktioniert.</para>
</sect2>
</sect1>
<sect1 xml:id="ipsec">
- <info><title>VPNs mit IPsec</title>
+ <info><title><acronym>VPN</acronym> mit IPsec</title>
<authorgroup>
<author><personname><firstname>Nik</firstname><surname>Clayton</surname></personname><affiliation>
<address><email>nik@FreeBSD.org</email></address>
@@ -2751,18 +2504,10 @@
</authorgroup>
</info>
-
-
<indexterm>
<primary>IPsec</primary>
</indexterm>
- <para>Dieser Abschnitt beschreibt, wie Sie mit &os;-Gateways
- ein <firstterm>Virtual-Private-Network</firstterm>
- (<acronym>VPN</acronym>) einrichten. Als Beispiel wird ein
- <acronym>VPN</acronym> zwischen zwei Netzen verwendet,
- die über das Internet miteinander verbunden sind.</para>
-
<sect2>
<info><title>IPsec Grundlagen</title>
<authorgroup>
@@ -2772,15 +2517,13 @@
</authorgroup>
</info>
-
-
- <para>Dieser Abschnitt zeigt Ihnen, wie Sie IPsec einrichten. Um IPsec
- einzurichten, sollten Sie einen neuen Kernel bauen können (siehe
+ <para>Dieser Abschnitt beschreibt die Einrichtung von IPsec. Um
+ IPsec einzurichten, sollten Sie einen neuen Kernel bauen können (siehe
<xref linkend="kernelconfig"/>).</para>
- <para>IPsec ist ein Protokoll, das auf dem Internet-Protokoll
- (IP) aufbaut. Mit IPsec können mehrere Systeme
- geschützt miteinander kommunizieren. Das in
+ <para><emphasis>IPsec</emphasis> ist ein Protokoll, das auf dem
+ Internet-Protokoll (<acronym>IP</acronym>) aufbaut. Mit IPsec
+ können mehrere Systeme geschützt miteinander kommunizieren. Das in
&os; realisierte IPsec-Protokoll baut auf der <link xlink:href="http://www.kame.net/">KAME-Implementierung</link>
auf und unterstützt sowohl IPv4 als auch IPv6.</para>
@@ -2798,18 +2541,19 @@
<itemizedlist>
<listitem>
- <para><emphasis>Encapsulated Security Payload (ESP)</emphasis>
- verschlüsselt IP-Pakete mit einem symmetrischen Verfahren
- (beispielsweise Blowfish oder 3DES). Damit werden
- die Pakete vor Manipulationen Dritter geschützt.</para>
+ <para><emphasis>Encapsulated Security Payload
+ (<acronym>ESP</acronym>)</emphasis> verschlüsselt
+ IP-Pakete mit einem symmetrischen Verfahren wie Blowfish
+ oder 3DES. Damit werden die Pakete vor Manipulationen
+ Dritter geschützt.</para>
</listitem>
<listitem>
- <para>Der <emphasis>Authentication Header (AH)</emphasis>
- enthät eine kryptographische Prüfsumme,
- die sicher stellt, dass ein IP-Paket nicht verändert
- wurde. Der Authentication-Header folgt nach dem
- normalen IP-Header und erlaubt dem Empfänger
+ <para>Der <emphasis>Authentication Header
+ (<acronym>AH</acronym>)</emphasis> enthält eine
+ kryptographische Prüfsumme, die sicher stellt, dass ein
+ IP-Paket nicht verändert wurde. Der Authentication-Header
+ folgt nach dem normalen IP-Header und erlaubt dem Empfänger
eines IP-Paketes, dessen Integrität zu
prüfen.</para>
</listitem>
@@ -2834,10 +2578,11 @@
<firstterm>Tunnel-Modus</firstterm> verbindet zwei
Subnetze miteinander. Durch einen Tunnel können
dann beispielsweise verschlüsselte Daten übertragen
- werden. Ein Tunnel wird auch als Virtual-Private-Network (VPN)
- bezeichnet. Detaillierte Informationen über
- das IPsec-Subsystem von &os; enthält die
- Hilfeseite &man.ipsec.4;.</para>
+ werden. Ein Tunnel wird auch als
+ <foreignphrase>Virtual-Private-Network</foreignphrase>
+ (<acronym>VPN</acronym>) bezeichnet. Detaillierte
+ Informationen über das IPsec-Subsystem von &os; finden Sie in
+ &man.ipsec.4;.</para>
<para>Die folgenden Optionen in der Kernelkonfiguration
aktivieren IPsec:</para>
@@ -2863,35 +2608,25 @@
</sect2>
<sect2>
- <title>Was ist ein VPN?</title>
-
- <para>Es gibt keinen Standard, der festlegt, was ein
- Virtual-Private-Network ist. VPNs können mit
- verschiedenen Techniken, die jeweils eigene Vor- und
- Nachteile besitzen, implementiert werden.
- Dieser Abschnitt stellt eine Möglichkeit vor,
- ein VPN aufzubauen.</para>
- </sect2>
-
- <sect2>
- <title>Das Szenario: Zwei Netzwerke, ein Heim- und ein
- Firmennetzwerk. Beide sind mit dem Internet verbunden und
- verhalten sich dank <acronym>VPN</acronym> wie ein Netzwerk.</title>
+ <title>VPN zwischen einem Heim- und Firmennetzwerk
+ einrichten</title>
<indexterm>
<primary>VPN</primary>
<secondary>einrichten</secondary>
</indexterm>
- <para>Dieses Szenario hat die folgenden Vorausetzungen:</para>
+ <para>Es gibt keinen Standard, der festlegt, was ein
+ Virtual-Private-Network ist. VPNs können mit
+ verschiedenen Techniken, die jeweils eigene Vor- und
+ Nachteile besitzen, implementiert werden.
+ Dieser Abschnitt stellt Möglichkeiten vor, um ein VPN
+ für das folgende Szenario aufzubauen:</para>
<itemizedlist>
<listitem>
- <para>Es müssen zwei Netzwerke vorhanden sein.</para>
- </listitem>
-
- <listitem>
- <para>Beide Netzwerke müssen intern IP benutzen.</para>
+ <para>Es müssen mindestens zwei Netzwerke vorhanden sein,
+ welche intern IP benutzen.</para>
</listitem>
<listitem>
@@ -2907,14 +2642,14 @@
<listitem>
<para>Die intern verwendeten IP-Adressen können
private oder öffentliche Adressen sein.
- Sie dürfen sich nicht überlappen; zum Beispiel:
- nicht beide sollten <systemitem class="ipaddress">192.168.1.x</systemitem>
+ Sie dürfen sich jedoch nicht überlappen. Zum Beispiel
+ sollten nicht beide Netze <systemitem
+ class="ipaddress">192.168.1.x</systemitem>
benutzen.</para>
</listitem>
</itemizedlist>
- </sect2>
- <sect2>
+ <sect3>
<info><title>Konfiguration von IPsec in &os;</title>
<authorgroup>
<author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><affiliation>
@@ -2923,38 +2658,40 @@
</authorgroup>
</info>
-
- <para>Als erstes muss <package>security/ipsec-tools</package> aus
- der Ports-Sammlung installiert werden. Dieses Softwarepaket
- Dritter enthält einige Anwendungen, die ihnen bei der
- Konfiguration von IPsec helfen.</para>
+ <para>Als erstes muss <package>security/ipsec-tools</package>
+ aus der Ports-Sammlung installiert werden. Diese Software
+ enthält einige Anwendungen, die bei der Konfiguration von
+ IPsec hilfreich sind.</para>
<para>Als nächstes müssen zwei &man.gif.4;-Pseudogeräte
angelegt werden, um die Pakete zu tunneln und dafür zu sorgen,
dass beide Netzwerke richtig miteinander kommunizieren können.
- Geben Sie als Benutzer <systemitem class="username">root</systemitem> die folgenden Befehle
- ein: Austausch der <replaceable>internen</replaceable> und
- <replaceable>externen</replaceable> Werte durch die realen internen
- und externen Gateways:</para>
+ Geben Sie als <systemitem class="username">root</systemitem>
+ die folgenden Befehle ein, wobei Sie
+ <replaceable>intern</replaceable> und
+ <replaceable>extern</replaceable> durch die realen internen
+ und externen <acronym>IP</acronym>-Adressen der Gateways
+ ersetzen müssen:</para>
<screen>&prompt.root; <userinput>ifconfig gif0 create</userinput></screen>
- <screen>&prompt.root; <userinput>ifconfig gif0 internal1 internal2</userinput></screen>
- <screen>&prompt.root; <userinput>ifconfig gif0 tunnel external1 external2</userinput></screen>
+ <screen>&prompt.root; <userinput>ifconfig gif0 <replaceable>intern1 intern2</replaceable></userinput></screen>
+ <screen>&prompt.root; <userinput>ifconfig gif0 tunnel <replaceable>extern1 extern2</replaceable></userinput></screen>
- <para>Beispiel: Die öffentliche <acronym>IP</acronym>-Adresse
- des Firmennetzwerkes <acronym>(LAN)</acronym> ist:
- <systemitem class="ipaddress">172.16.5.4</systemitem> mit einer internen
- <acronym>IP</acronym>-Adresse von
- <systemitem class="ipaddress">10.246.38.1</systemitem>. Das Heimnetzwerk
- <acronym>(LAN)</acronym> hat die öffentliche
- <acronym>IP</acronym>-Adresse
- <systemitem class="ipaddress">192.168.1.12</systemitem> mit der internen
- privaten <acronym>IP</acronym>-Adresse
- <systemitem class="ipaddress">10.0.0.5</systemitem>.</para>
+ <para>In diesem Beispiel ist die externe
+ <acronym>IP</acronym>-Adresse des Firmennetzwerkes
+ (<acronym>LAN</acronym>) <systemitem
+ class="ipaddress">172.16.5.4</systemitem> und die interne
+ <acronym>IP</acronym>-Adresse ist <systemitem
+ class="ipaddress">10.246.38.1</systemitem>. Das
+ Heimnetzwerk (<acronym>LAN</acronym>) hat die externe
+ <acronym>IP</acronym>-Adresse <systemitem
+ class="ipaddress">192.168.1.12</systemitem> mit der internen
+ privaten <acronym>IP</acronym>-Adresse <systemitem
+ class="ipaddress">10.0.0.5</systemitem>.</para>
- <para>Dies mag verwirrend erscheinen, schauen Sie sich deshalb
- das folgende Beispiel aus dem &man.ifconfig.8;-Befehl an:</para>
+ <para>Wenn dies verwirrend erscheint, schauen Sie sich die
+ folgende Ausgabe von &man.ifconfig.8;an:</para>
<programlisting>Gateway 1:
@@ -2970,9 +2707,8 @@
inet 10.0.0.5 --&gt; 10.246.38.1 netmask 0xffffff00
inet6 fe80::250:bfff:fe3a:c1f%gif0 prefixlen 64 scopeid 0x4</programlisting>
- <para>Wenn Sie fertig sind, sollten beide privaten
- <acronym>IP</acronym>s mit dem &man.ping.8; Befehl, wie die folgende
- Darstellung zeigt, erreichbar sein:</para>
+ <para>Wenn Sie fertig sind, sollten beide internen Adressen über
+ &man.ping.8; erreichbar sein:</para>
<programlisting>priv-net# ping 10.0.0.5
PING 10.0.0.5 (10.0.0.5): 56 data bytes
@@ -3008,9 +2744,9 @@
<screen>&prompt.root; <userinput>priv-net# route add 10.246.38.0 10.246.38.1 255.255.255.0</userinput></screen>
<screen>&prompt.root; <userinput>priv-net# route add host 10.246.38.0: gateway 10.246.38.1</userinput></screen>
- <para>Ab jetzt sollten die Rechner von den Gateways sowie von den
- Rechnern hinter den Gateways erreichbar sein. Dies wird an dem
- folgendem Beispiel deutlich:</para>
+ <para>Ab jetzt sollten die Rechner von den Gateways sowie von
+ den Rechnern hinter den Gateways erreichbar sein. Dies können
+ Sie wieder mit &man.ping.8; überprüfen:</para>
<programlisting>corp-net# ping 10.0.0.8
PING 10.0.0.8 (10.0.0.8): 56 data bytes
@@ -3035,12 +2771,12 @@
round-trip min/avg/max/stddev = 21.145/31.721/53.491/12.179 ms</programlisting>
<para>Das Konfigurieren der Tunnel ist der einfache Teil. Die
- Konfiguration einer sicheren Verbindung geht sehr viel mehr in
+ Konfiguration einer sicheren Verbindung geht viel mehr in
die Tiefe. Die folgende Konfiguration benutzt pre-shared
(<acronym>PSK</acronym>) <acronym>RSA</acronym>-Schlüssel.
Abgesehen von den <acronym>IP</acronym>-Adressen, sind beide
- <filename>/usr/local/etc/racoon/racoon.conf</filename> identisch
- und sehen ähnlich aus wie:</para>
+ <filename>/usr/local/etc/racoon/racoon.conf</filename>
+ identisch und sehen ähnlich aus:</para>
<programlisting>path pre_shared_key "/usr/local/etc/racoon/psk.txt"; #location of pre-shared key file
log debug; #log verbosity setting: set to 'notify' when testing and debugging is complete
@@ -3100,22 +2836,22 @@
compression_algorithm deflate;
}</programlisting>
- <para>Die Erklärung einer jeden verfügbaren Option würde
- den Rahmen dieses Textes sprengen. Es gibt sehr viele
- relevante Informationen in der
- <application>racoon</application>-Konfigurationsanleitung.</para>
+ <para>Eine Beschreibung der verfügbaren Optionen finden Sie in
+ der Manualpage von <filename>racoon.conf</filename>.</para>
- <para>Die <acronym>SPD</acronym>-Methoden müssn noch konfiguriert
- werden so dass, &os; und <application>racoon</application> in der
+ <para>Die
+ <foreignphrase>Security Policy Database</foreignphrase>
+ (<acronym>SPD</acronym>) muss noch konfiguriert werden, so
+ dass &os; und <application>racoon</application> in der
Lage sind den Netzwerkverkehr zwischen den Hosts zu ver-
und entschlüsseln.</para>
- <para>Dies wird durch ein einfaches Shellscript ähnlich wie das
+ <para>Dies wird durch ein Shellskript ähnlich wie das
folgende, das auf dem Firmennetzwerk-Gateway liegt,
ausgeführt. Diese Datei wird während der
Systeminitialisierung ausgeführt und sollte unter
<filename>/usr/local/etc/racoon/setkey.conf</filename>
- abgespeichert werden.</para>
+ gespeichert werden.</para>
<programlisting>flush;
spdflush;
@@ -3148,10 +2884,11 @@
<para>Um sicherzustellen, dass der Tunnel richtig funktioniert,
wechseln Sie auf eine andere Konsole und benutzen Sie
&man.tcpdump.1; mit dem folgenden Befehl, um sich den
- Netzwerkverkehr anzusehen. Tauschen Sie <literal>em0</literal>
- durch die richtige Netzwerkkarte aus.</para>
+ Netzwerkverkehr anzusehen. Tauschen Sie
+ <literal>em0</literal> durch die richtige Netzwerkkarte
+ aus:</para>
- <screen>&prompt.root; <userinput>tcpdump -i em0 host 172.16.5.4 and dst 192.168.1.12</userinput></screen>
+ <screen>&prompt.root; <userinput>tcpdump -i em0 host <replaceable>172.16.5.4 and dst 192.168.1.12</replaceable></userinput></screen>
<para>Die Ausgabe der Konsole sollte dem hier ähneln. Wenn
nicht, gibt es ein Problem und ein Debuggen der ausgegebenen
@@ -3166,7 +2903,7 @@
Meistens sind beide Netzwerke durch eine Firewall geschützt.
Um den Netzwerkverkehr zwischen den beiden Netzwerken zu erlauben,
ist es notwendig Regeln zu erstellen. Für die &man.ipfw.8;
- Firewall fügen Sie folgende Zeilen in ihre
+ Firewall fügen Sie folgende Zeilen in die
Firewall-Konfigurationsdatei ein:</para>
<programlisting>ipfw add 00201 allow log esp from any to any
@@ -3202,6 +2939,7 @@
ipsec_program="/usr/local/sbin/setkey"
ipsec_file="/usr/local/etc/racoon/setkey.conf" # allows setting up spd policies on boot
racoon_enable="yes"</programlisting>
+ </sect3>
</sect2>
</sect1>
@@ -3213,7 +2951,6 @@
</authorgroup>
</info>
-
<indexterm><primary>OpenSSH</primary></indexterm>
<indexterm>
<primary>Sicherheit</primary>
@@ -3221,28 +2958,24 @@
</indexterm>
<para><application>OpenSSH</application> stellt Werkzeuge bereit,
- um sicher auf entfernte
- Maschinen zuzugreifen. Die Kommandos <command>rlogin</command>,
- <command>rsh</command>, <command>rcp</command> und
- <command>telnet</command> können durch
- <application>OpenSSH</application> ersetzt werden.
- Zusätzlich können TCP/IP-Verbindungen sicher durch
- SSH weitergeleitet (getunnelt) werden. Mit SSH werden alle
- Verbindungen verschlüsselt, dadurch wird verhindert, dass
- die Verbindung zum Beispiel abgehört oder übernommen
+ um sicher auf entfernte Maschinen zuzugreifen. Zusätzlich
+ können TCP/IP-Verbindungen sicher durch <acronym>SSH</acronym>
+ weitergeleitet (getunnelt) werden. Mit <acronym>SSH</acronym>
+ werden alle Verbindungen verschlüsselt, dadurch wird verhindert,
+ dass die Verbindung zum Beispiel abgehört oder übernommen
(<foreignphrase>Hijacking</foreignphrase>) werden kann.</para>
<para><application>OpenSSH</application> wird vom OpenBSD-Projekt
- gepflegt und basiert auf SSH&nbsp;v1.2.12 mit allen aktuellen
- Fixen und Aktualisierungen. <application>OpenSSH</application>
- ist mit den SSH-Protokollen der Versionen 1 und 2 kompatibel.</para>
+ gepflegt und wird in der Voreinstellung von &os; installiert.
+ <application>OpenSSH</application> ist mit den
+ <acronym>SSH</acronym>-Protokollen der Versionen 1 und 2
+ kompatibel.</para>
<sect2>
- <title>Vorteile von OpenSSH</title>
+ <title>Vorteile von <application>OpenSSH</application></title>
- <para>Mit &man.telnet.1; oder &man.rlogin.1; werden Daten in
- einer unverschlüsselten Form über das Netzwerk
- gesendet. Daher besteht die Gefahr, das Benutzer/Passwort
+ <para>Wenn Daten unverschlüsselt über das Netzwerk gesendet
+ werden, besteht die Gefahr, das Benutzer/Passwort
Kombinationen oder alle Daten an beliebiger Stelle zwischen
dem Client und dem Server abgehört werden. Mit
<application>OpenSSH</application> stehen eine Reihe von
@@ -3258,64 +2991,59 @@
<secondary>aktivieren</secondary>
</indexterm>
- <para>Unter &os; entscheidet der
- Anwender bei einer <literal>Standard</literal>-Installation, ob
- der <application>sshd</application>-Daemon aktiviert werden soll.
- Um zu überprüfen, ob <application>sshd</application>
- auf Ihrem System aktiviert ist, suchen Sie in
- <filename>rc.conf</filename> nach der folgenden Zeile:</para>
+ <para>Um zu überprüfen, ob &man.sshd.8; auf dem System aktiviert
+ ist, suchen Sie in <filename>rc.conf</filename> nach der
+ folgenden Zeile:</para>
<programlisting>sshd_enable="YES"</programlisting>
<para>Ist diese Zeile vorhanden, wird &man.sshd.8;, der
- <application>OpenSSH</application>-D&aelig;mon, beim
- Systemstart automatisch aktiviert. Alternativ können Sie
- <application>OpenSSH</application> auch über das
- &man.rc.8;-Skript <filename>/etc/rc.d/sshd</filename>
- starten:</para>
+ <application>OpenSSH</application>-Daemon, beim
+ Systemstart automatisch aktiviert. Alternativ kann
+ <application>OpenSSH</application> auch über &man.service.8;
+ gestartet werden:</para>
- <screen>&prompt.root; <userinput>/etc/rc.d/sshd start</userinput></screen>
+ <screen>&prompt.root; <userinput>service sshd start</userinput></screen>
</sect2>
<sect2>
<title>SSH Client</title>
+
<indexterm>
<primary>OpenSSH</primary>
<secondary>Client</secondary>
</indexterm>
- <para>&man.ssh.1; arbeitet ähnlich wie &man.rlogin.1;:</para>
+ <para>Benutzen Sie &man.ssh.1; um sich mit einem System zu
+ verbinden, auf dem &man.sshd.8; läuft. Verwenden Sie dazu
+ den Benutzernamen und den Namen des Rechners, mit dem Sie
+ sich verbinden möchten:</para>
- <screen>&prompt.root; <userinput>ssh user@example.com</userinput>
+ <screen>&prompt.root; <userinput>ssh <replaceable>user@example.com</replaceable></userinput>
Host key not found from the list of known hosts.
Are you sure you want to continue connecting (yes/no)? <userinput>yes</userinput>
Host 'example.com' added to the list of known hosts.
user@example.com's password: <userinput>*******</userinput></screen>
- <para>Der Anmeldevorgang wird danach, wie von
- <command>rlogin</command> oder <command>telnet</command> gewohnt,
- weiterlaufen. SSH speichert einen Fingerabdruck des
+ <para><acronym>SSH</acronym> speichert einen Fingerabdruck des
Serverschlüssels. Die Aufforderung, <literal>yes</literal>
einzugeben, erscheint nur bei der ersten Verbindung zu einem
Server. Weitere Verbindungen zu dem Server werden gegen den
gespeicherten Fingerabdruck des Schlüssels geprüft und
der Client gibt eine Warnung aus, wenn sich der empfangene
Fingerabdruck von dem gespeicherten unterscheidet. Die
- Fingerabdrücke der Version 1 werden in
- <filename>~/.ssh/known_hosts</filename>, die der Version 2 in
- <filename>~/.ssh/known_hosts2</filename> gespeichert.</para>
-
- <para>In der Voreinstellung akzeptieren aktuelle
- <application>OpenSSH</application>-Server nur SSH&nbsp;v2
- Verbindungen. Wenn möglich, wird Version&nbsp;2 verwendet,
- ist dies nicht möglich, fällt der Server auf
- Version&nbsp;1 zurück. Der Client kann gezwungen werden,
- nur eine der beiden Versionen zu verwenden, indem die Option
- <option>-1</option> (für die Version&nbsp;1) oder
- <option>-2</option> (für die Version&nbsp;2) übergeben
- wird. Die Unterstützung für Version&nbsp;1 ist nur
- noch aus Kompatibilitätsgründen zu älteren
- Versionen enthalten.</para>
+ Fingerabdrücke werden in
+ <filename>~/.ssh/known_hosts</filename> gespeichert.</para>
+
+ <para>In der Voreinstellung akzeptieren aktuelle Versionen von
+ &man.sshd.8; nur <acronym>SSH</acronym>&nbsp;v2 Verbindungen.
+ Wenn möglich, wird der Client versuchen Version&nbsp;2 zu
+ verwenden, ist dies nicht möglich, fällt er auf Version&nbsp;1
+ zurück. Der Client kann gezwungen werden, nur eine der beiden
+ Versionen zu verwenden, indem die Option <option>-1</option>
+ oder <option>-2</option> übergeben wird. Die Unterstützung
+ für Version&nbsp;1 ist nur noch aus Kompatibilitätsgründen zu
+ älteren Versionen enthalten.</para>
</sect2>
<sect2>
@@ -3324,14 +3052,12 @@
<primary>OpenSSH</primary>
<secondary>secure copy</secondary>
</indexterm>
- <indexterm><primary><command>scp</command></primary></indexterm>
+ <indexterm><primary>&man.scp.1;</primary></indexterm>
- <para>Mit &man.scp.1; lassen sich Dateien analog wie mit
- &man.rcp.1; auf entfernte Maschinen kopieren. Mit
- <command>scp</command> werden die Dateien allerdings in einer
- sicheren Weise übertragen.</para>
+ <para>Mit &man.scp.1; lassen sich Dateien in einer sicheren
+ Weise auf entfernte Maschinen übertragen.</para>
- <screen>&prompt.root; <userinput> scp user@example.com:/COPYRIGHT COPYRIGHT</userinput>
+ <screen>&prompt.root; <userinput> scp <replaceable>user@example.com:/COPYRIGHT COPYRIGHT</replaceable></userinput>
user@example.com's password:
COPYRIGHT 100% |*****************************| 4735
00:00
@@ -3342,13 +3068,12 @@
diesem Beispiel überprüft. Da die Fingerabdrücke
übereinstimmen, wird keine Warnung ausgegeben.</para>
- <para>Die Argumente, die <command>scp</command> übergeben
- werden, gleichen denen von <command>cp</command> in der Beziehung,
- dass die ersten Argumente die zu kopierenden Dateien sind und
- das letzte Argument den Bestimmungsort angibt. Da die Dateien
- über das Netzwerk kopiert werden, können ein oder mehrere
- Argumente die Form
- <option>user@host:&lt;path_to_remote_file&gt;</option>
+ <para>Die Argumente, die &man.scp.1; übergeben werden, gleichen
+ denen von &man.cp.1; in der Beziehung, dass die ersten
+ Argumente die zu kopierenden Dateien sind und das letzte
+ Argument den Bestimmungsort angibt. Da die Dateien über das
+ Netzwerk kopiert werden, können ein oder mehrere Argumente die
+ Form <option>user@host:&lt;path_to_remote_file&gt;</option>
besitzen.</para>
</sect2>
@@ -3359,31 +3084,26 @@
<secondary>Konfiguration</secondary>
</indexterm>
- <para>Die für das ganze System gültigen
- Konfigurationsdateien des
- <application>OpenSSH</application>-D&aelig;mons und des Clients
- finden sich in dem Verzeichnis
- <filename>/etc/ssh</filename>.</para>
+ <para>Die für das ganze System gültigen Konfigurationsdateien
+ des <application>OpenSSH</application>-Daemons und des
+ Clients befinden sich in <filename>/etc/ssh</filename>.</para>
<para>Die Client-Konfiguration befindet sich in
- <filename>ssh_config</filename>, die des Servers befindet sich in
- <filename>sshd_config</filename>.</para>
-
- <para>Das SSH-System lässt sich weiterhin über die
- Anweisungen <option>sshd_program</option> (Vorgabe ist
- <filename>/usr/sbin/sshd</filename>) und
- <option>sshd_flags</option> in <filename>/etc/rc.conf</filename>
- konfigurieren.</para>
+ <filename>ssh_config</filename>, die des Servers befindet sich
+ in <filename>sshd_config</filename>. Für beide Dateien
+ existieren Manualpages, welche die einzelnen
+ Konfigurationsoptionen beschreiben.</para>
</sect2>
<sect2 xml:id="security-ssh-keygen">
- <title><application>ssh-keygen</application></title>
+ <title>&man.ssh-keygen.1;</title>
- <para>Mit &man.ssh-keygen.1; können DSA- oder RSA-Schlüssel
- für einen Benutzer erzeugt werden, die anstelle von
- Passwörtern verwendet werden können:</para>
+ <para>Mit &man.ssh-keygen.1; können <acronym>DSA</acronym>- oder
+ <acronym>RSA</acronym>-Schlüssel für einen Benutzer erzeugt
+ werden, die anstelle von Passwörtern verwendet werden
+ können:</para>
- <screen>&prompt.user; <userinput>ssh-keygen -t dsa</userinput>
+ <screen>&prompt.user; <userinput>ssh-keygen -t <replaceable>dsa</replaceable></userinput>
Generating public/private dsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_dsa):
Created directory '/home/user/.ssh'.
@@ -3411,32 +3131,51 @@
funktioniert.</para>
<para>Damit werden Verbindungen zu der entfernten Maschine über
- SSH-Schlüsseln anstelle von Passwörtern
+ <acronym>SSH</acronym>-Schlüsseln anstelle von Passwörtern
authentifiziert.</para>
+ <warning>
+ <para>Viele Benutzer denken, dass die Verwendung von
+ Schlüsseln generell sicher ist. Sie verwenden dann einen
+ Schlüssel ohne eine Passphrase. Dies ist jedoch sehr
+ <emphasis>gefährlich</emphasis>. Ein Administrator kann
+ überprüfen, ob ein Schlüsselpaar mit einer Passphrase
+ geschützt ist. Wenn die Datei mit dem privaten Schlüssel
+ den Text <literal>ENCRYPTED</literal> enthält, dann hat
+ der Benutzer eine Passphrase verwendet. Um die Benutzer
+ zusätzlich zu schützen, kann ein
+ <literal>from</literal>-Feld in der Datei des öffentlichen
+ Schlüssels hinzugefügt werden. Zum Beispiel würde das
+ Hinzufügen von <literal>from="192.168.10.5"</literal> vor
+ dem <literal>ssh-rsa</literal>- oder
+ <literal>ssh-dsa</literal>-Präfix dafür sorgen, dass sich
+ ein bestimmter Benutzer nur noch von dieser
+ <acronym>IP</acronym>-Adresse anmelden darf.</para>
+ </warning>
+
<para>Wenn bei der Erstellung der Schlüssel mit
- &man.ssh-keygen.1; ein Passwort angegeben wurde, wird der
+ &man.ssh-keygen.1; eine Passphrase angegeben wurde, wird der
Benutzer bei jeder Anmeldung zur Eingabe des Passworts
- aufgefordert. Um den Umgang mit SSH-Schlüsseln zu
- erleichtern, kann &man.ssh-agent.1; die Verwaltung dieser
- Schlüssel für Sie übernehmen. Lesen Sie dazu
- den <xref linkend="security-ssh-agent"/> weiter unten.</para>
+ aufgefordert. Um den Umgang mit
+ <acronym>SSH</acronym>-Schlüsseln zu erleichtern, kann
+ &man.ssh-agent.1; die Verwaltung dieser Schlüssel für Sie
+ übernehmen. Lesen Sie dazu den <xref
+ linkend="security-ssh-agent"/>.</para>
<warning>
- <para>Die Kommandozeilenoptionen und Dateinamen sind
+ <para>Die Optionen und Dateinamen sind
abhängig von der <application>OpenSSH</application>-Version.
- Die für Ihr System gültigen Optionen finden Sie
- in der Hilfeseite &man.ssh-keygen.1;.</para>
+ Die für das System gültigen Optionen finden Sie in
+ &man.ssh-keygen.1;.</para>
</warning>
</sect2>
<sect2 xml:id="security-ssh-agent">
- <title><application>ssh-agent</application> und
- <application>ssh-add</application></title>
+ <title>Verwendung von SSH-Agent</title>
<para>Mit &man.ssh-agent.1; und &man.ssh-add.1; ist es
möglich, <application>SSH</application>-Schlüssel
- in den Speicher zu laden, damit die Passphrase nicht jedesmal
+ in den Speicher zu laden, damit die Passphrase nicht jedes Mal
eingegeben werden muss.</para>
<para>&man.ssh-agent.1; übernimmt die Authentifizierung
@@ -3446,13 +3185,12 @@
einen Window-Manager.</para>
<para>Um &man.ssh-agent.1; in einer Shell zu verwenden, muss
- es mit einer Shell als Argument aufgerufen werden.
- Zusätzlich müssen die zu verwaltende Identität
- (durch &man.ssh-add.1;) sowie deren Passphrase für den
- privaten Schlüssel übergeben werden. Nachdem dies
- erledigt ist, kann sich ein Benutzer über &man.ssh.1;
- auf jedem Rechner anmelden, der einen entsprechenden
- öffentlichen Schlüssel besitzt. Dazu ein
+ es mit einer Shell als Argument aufgerufen werden. Zudem muss
+ die zu verwaltende Identität mit &man.ssh-add.1; sowie deren
+ Passphrase für den privaten Schlüssel übergeben werden.
+ Nachdem dies erledigt ist, kann sich ein Benutzer über
+ &man.ssh.1; auf jedem Rechner anmelden, der einen
+ entsprechenden öffentlichen Schlüssel besitzt. Dazu ein
Beispiel:</para>
<screen>&prompt.user; ssh-agent <replaceable>csh</replaceable>
@@ -3461,25 +3199,29 @@
Identity added: /home/user/.ssh/id_dsa (/home/user/.ssh/id_dsa)
&prompt.user;</screen>
- <para>Um &man.ssh-agent.1; unter X11 zu verwenden, müssen
- Sie &man.ssh-agent.1; in Ihre <filename>~/.xinitrc</filename>
- aufnehmen. Dadurch können alle unter X11 gestarteten
- Programme die Dienste von &man.ssh-agent.1; nutzen. Ihre
- <filename>~/.xinitrc</filename> könnte dazu etwas so
- aussehen:</para>
+ <para>Um &man.ssh-agent.1; unter
+ <application>&xorg;</application> zu verwenden, muss
+ &man.ssh-agent.1; in <filename>~/.xinitrc</filename>
+ aufgenommen werden. Dadurch können alle unter
+ <application>&xorg;</application> gestarteten Programme die
+ Dienste von &man.ssh-agent.1; nutzen.
+ <filename>~/.xinitrc</filename> könnte etwa so
+ aussehen:</para>
<programlisting>exec ssh-agent <replaceable>startxfce4</replaceable></programlisting>
- <para>Dadurch wird bei jedem Start von X11 zuerst
- &man.ssh-agent.1; aufgerufen, das wiederum
- <application>XFCE</application> startet. Nachdem Sie diese
- Änderung durchgeführt haben, müssen Sie X11
- neu starten. Danach können Sie mit &man.ssh-add.1;
- Ihre SSH-Schlüssel laden.</para>
+ <para>Dadurch wird bei jedem Start von
+ <application>&xorg;</application> zuerst &man.ssh-agent.1;
+ aufgerufen, das wiederum <application>XFCE</application>
+ startet. Nachdem diese Änderung durchgeführt wurde, muss
+ <application>&xorg;</application> neu gestartet werden.
+ Danach können Sie mit &man.ssh-add.1; die
+ <acronym>SSH</acronym>-Schlüssel laden.</para>
</sect2>
<sect2 xml:id="security-ssh-tunneling">
- <title>SSH-Tunnel</title>
+ <title><acronym>SSH</acronym>-Tunnel</title>
+
<indexterm>
<primary>OpenSSH</primary>
<secondary>Tunnel</secondary>
@@ -3490,22 +3232,21 @@
verschlüsselt übertragen wird.</para>
<para>Das folgende Kommando erzeugt einen Tunnel für
- <application>telnet</application>:</para>
+ &man.telnet.1;:</para>
- <screen>&prompt.user; <userinput>ssh -2 -N -f -L 5023:localhost:23 user@foo.example.com</userinput>
+ <screen>&prompt.user; <userinput>ssh -2 -N -f -L <replaceable>5023:localhost:23 user@foo.example.com</replaceable></userinput>
&prompt.user;</screen>
- <para>Dabei wurden die folgenden Optionen von <command>ssh</command>
- verwendet:</para>
+ <para>Dieses Beispiel verwendet die folgenden Optionen:</para>
<variablelist>
<varlistentry>
<term><option>-2</option></term>
<listitem>
- <para>Erzwingt die Version 2 des Protokolls (Benutzen Sie die
- Option nicht mit langsamen
- <application>SSH</application>-Servern).</para>
+ <para>Zwingt &man.ssh.1; dazu, die Version 2 des
+ Protokolls zu verwenden, um sich mit dem Server zu
+ verbinden.</para>
</listitem>
</varlistentry>
@@ -3514,8 +3255,8 @@
<listitem>
<para>Zeigt an, dass ein Tunnel erstellt werden soll.
- Ohne diese Option würde <command>ssh</command> eine
- normale Sitzung öffnen.</para>
+ Ohne diese Option würde &man.ssh.1; eine normale Sitzung
+ öffnen.</para>
</listitem>
</varlistentry>
@@ -3523,8 +3264,7 @@
<term><option>-f</option></term>
<listitem>
- <para>Zwingt <command>ssh</command> im Hintergrund zu
- laufen.</para>
+ <para>Zwingt &man.ssh.1; im Hintergrund zu laufen.</para>
</listitem>
</varlistentry>
@@ -3544,33 +3284,36 @@
<term><option>user@foo.example.com</option></term>
<listitem>
- <para>Gibt den entfernten SSH-Server an.</para>
+ <para>Gibt den Anmeldenamen auf dem entfernten
+ <acronym>SSH</acronym>-Server an.</para>
</listitem>
</varlistentry>
</variablelist>
+ <para>Ein <acronym>SSH</acronym>-Tunnel erzeugt einen Socket
+ auf <systemitem>localhost</systemitem> und dem angegebenen
+ Port. Jede Verbindung, die auf dem angegebenen Socket
+ aufgemacht wird, wird dann auf den spezifizierten entfernten
+ Rechner und Port weitergeleitet.</para>
+
+ <para>Im Beispiel wird der Port <replaceable>5023</replaceable>
+ auf die entfernte Maschine und dort auf
+ <systemitem>localhost</systemitem> Port
+ <replaceable>23</replaceable> weitergeleitet. Da der Port
+ <replaceable>23</replaceable> für &man.telnet.1; reserviert
+ ist, erzeugt das eine sichere &man.telnet.1;-Verbindung durch
+ einen <acronym>SSH</acronym>-Tunnel.</para>
+
+ <para>Diese Vorgehensweise kann genutzt werden, um jedes
+ unsichere <acronym>TCP</acronym>-Protokoll wie
+ <acronym>SMTP</acronym>, <acronym>POP3</acronym> und
+ <acronym>FTP</acronym> weiterzuleiten.</para>
+
+ <example>
+ <title>Mit &man.ssh.1; einen sicheren Tunnel für
+ <acronym>SMTP</acronym> erstellen</title>
- <para>Ein SSH-Tunnel erzeugt ein Socket auf
- <systemitem>localhost</systemitem> und dem angegebenen Port. Jede
- Verbindung, die auf dem angegebenen Socket aufgemacht wird, wird
- dann auf den spezifizierten entfernten Rechner und Port
- weitergeleitet.</para>
-
- <para>Im Beispiel wird der Port <replaceable>5023</replaceable> auf
- die entfernte Maschine und dort auf <systemitem>localhost</systemitem>
- Port <replaceable>23</replaceable> weitergeleitet. Da der Port
- <replaceable>23</replaceable> für
- <application>Telnet</application> reserviert ist,
- erzeugt das eine sichere
- <application>Telnet</application>-Verbindung durch einen
- SSH-Tunnel.</para>
-
- <para>Diese Vorgehensweise kann genutzt werden, um jedes unsichere
- TCP-Protokoll wie SMTP, POP3, FTP, usw. weiterzuleiten.</para>
-
- <example>
- <title>Mit SSH einen sicheren Tunnel für SMTP erstellen</title>
- <screen>&prompt.user; <userinput>ssh -2 -N -f -L 5025:localhost:25 user@mailserver.example.com</userinput>
+ <screen>&prompt.user; <userinput>ssh -2 -N -f -L <replaceable>5025:localhost:25 user@mailserver.example.com</replaceable></userinput>
user@mailserver.example.com's password: <userinput>*****</userinput>
&prompt.user; <userinput>telnet localhost 5025</userinput>
Trying 127.0.0.1...
@@ -3578,66 +3321,64 @@
Escape character is '^]'.
220 mailserver.example.com ESMTP</screen>
- <para>Zusammen mit &man.ssh-keygen.1; und zusätzlichen
- Benutzer-Accounts können Sie leicht benutzbare SSH-Tunnel
- aufbauen. Anstelle von Passwörtern können Sie
- Schlüssel benutzen und jeder Tunnel kann unter einem eigenen
- Benutzer laufen.</para>
- </example>
+ <para>Zusammen mit &man.ssh-keygen.1; und zusätzlichen
+ Benutzer-Accounts können leicht benutzbare SSH-Tunnel
+ aufgebaut werden. Anstelle von Passwörtern können
+ Schlüssel benutzt werden und jeder Tunnel kann unter einem
+ eigenen Benutzer laufen.</para>
+ </example>
<sect3>
- <title>Beispiel für SSH-Tunnel</title>
+ <title>Praktische Beispiele für
+ <acronym>SSH</acronym>-Tunnel</title>
<sect4>
- <title>Sicherer Zugriff auf einen POP3-Server</title>
+ <title>Sicherer Zugriff auf einen
+ <acronym>POP3</acronym>-Server</title>
- <para>Nehmen wir an, an Ihrer Arbeitsstelle gibt es einen
- SSH-Server, der Verbindungen von außen akzeptiert. Auf
- dem Netzwerk Ihrer Arbeitsstelle soll sich zudem noch ein
- Mail-Server befinden, der POP3 spricht. Das Netzwerk oder die
- Verbindung von Ihrem Haus zu Ihrer Arbeitsstelle ist unsicher
- und daher müssen Sie Ihre E-Mail über eine gesicherte
- Verbindung abholen können. Die Lösung zu diesem
- Problem besteht darin, eine SSH-Verbindung von Ihrem Haus zu
- dem SSH-Server an Ihrer Arbeitsstelle aufzubauen, und von dort
- weiter zum Mail-Server zu tunneln.</para>
+ <para>In diesem Beispiel gibt es einen
+ <acronym>SSH</acronym>-Server, der Verbindungen von außen
+ akzeptiert. Im selben Netzwerk befindet sich zudem
+ noch ein Mail-Server, der <acronym>POP3</acronym> spricht.
+ Um E-Mails auf sichere Weise abzurufen, bauen Sie eine
+ <acronym>SSH</acronym>-Verbindung zu dem
+ <acronym>SSH</acronym>-Server im Netzwerk auf und tunneln
+ von dort zum Mail-Server weiter.</para>
- <screen>&prompt.user; <userinput>ssh -2 -N -f -L 2110:mail.example.com:110 user@ssh-server.example.com</userinput>
+ <screen>&prompt.user; <userinput>ssh -2 -N -f -L <replaceable>2110:mail.example.com:110 user@ssh-server.example.com</replaceable></userinput>
user@ssh-server.example.com's password: <userinput>******</userinput></screen>
- <para>Wenn Sie den Tunnel eingerichtet haben, konfigurieren Sie
- Ihren Mail-Client so, dass er POP3 Anfragen zu
- <systemitem>localhost</systemitem> Port 2110 sendet. Die Verbindung
- wird dann sicher zu <systemitem>mail.example.com</systemitem>
+ <para>Wenn Sie den Tunnel eingerichtet haben, konfigurieren
+ Sie den Mail-Client so, dass er <acronym>POP3</acronym>
+ Anfragen zu <systemitem>localhost</systemitem> auf Port
+ 2110 sendet. Diese Verbindung wird dann über den
+ gesicherten Tunnel zu
+ <systemitem>mail.example.com</systemitem>
weitergeleitet.</para>
</sect4>
<sect4>
<title>Umgehen einer strengen Firewall</title>
- <para>Einige Netzwerkadministratoren stellen sehr drakonische
- Firewall-Regeln auf, die nicht nur einkommende Verbindungen
- filtern, sondern auch ausgehende. Es kann sein, dass Sie
- externe Maschinen nur über die Ports 22 und 80 (SSH und
- Web) erreichen.</para>
-
- <para>Sie wollen auf einen Dienst, der vielleicht nichts mit
- Ihrer Arbeit zu tun hat, wie einen Ogg Vorbis Musik-Server,
- zugreifen. Wenn der Ogg Vorbis Server nicht auf den Ports 22
- oder 80 läuft, können Sie aber nicht auf ihn
- zugreifen.</para>
-
- <para>Die Lösung hier ist es, eine SSH-Verbindung zu einer
- Maschine außerhalb der Firewall aufzumachen und durch
- diese zum Ogg Vorbis Server zu tunneln.</para>
+ <para>Einige Netzwerkadministratoren stellen sehr
+ drakonische Firewall-Regeln auf, die nicht nur einkommende
+ Verbindungen filtern, sondern auch ausgehende. Es kann
+ sein, dass Sie externe Maschinen nur über die Ports 22 und
+ 80 (<acronym>SSH</acronym> und Web) erreichen.</para>
+
+ <para>Die Lösung hier ist es, eine
+ <acronym>SSH</acronym>-Verbindung zu einer Maschine
+ außerhalb der Firewall aufzumachen und durch diese zum
+ gewünschten Dienst zu tunneln.</para>
- <screen>&prompt.user; <userinput>ssh -2 -N -f -L 8888:music.example.com:8000 user@unfirewalled-system.example.org</userinput>
+ <screen>&prompt.user; <userinput>ssh -2 -N -f -L <replaceable>8888:music.example.com:8000 user@unfirewalled-system.example.org</replaceable></userinput>
user@unfirewalled-system.example.org's password: <userinput>*******</userinput></screen>
- <para>Konfigurieren Sie Ihren Client so, dass er
- <systemitem>localhost</systemitem> und Port 8888 benutzt. Die Verbindung
- wird dann zu <systemitem>music.example.com</systemitem> Port 8000
- weitergeleitet und Sie haben die Firewall erfolgreich
+ <para>In diesem Beispiel benutzt ein Ogg Vorbis Client
+ <systemitem>localhost</systemitem> und Port 8888. Die
+ Verbindung wird dann zu
+ <systemitem>music.example.com</systemitem> Port 8000
+ weitergeleitet. Die Firewall wurde somit erfolgreich
umgangen.</para>
</sect4>
</sect3>
@@ -3650,15 +3391,17 @@
Benutzer sich von welchem Rechner aus anmelden können.
Dies lässt sich beispielsweise über die Option
<literal>AllowUsers</literal> festlegen. Soll sich etwa
- nur <systemitem class="username">root</systemitem> vom Rechner mit der IP-Adresse
- <systemitem class="ipaddress">192.168.1.32</systemitem> aus einwählen
+ nur <systemitem class="username">root</systemitem> vom Rechner
+ mit der <acronym>IP</acronym>-Adresse <systemitem
+ class="ipaddress">192.168.1.32</systemitem> aus einwählen
dürfen, würden Sie folgenden Eintrag in
<filename>/etc/ssh/sshd_config</filename> aufnehmen:</para>
<programlisting>AllowUsers root@192.168.1.32</programlisting>
- <para>Damit sich <systemitem class="username">admin</systemitem> von jedem Rechner aus
- anmelden kann, geben Sie nur den Benutzernamen an:</para>
+ <para>Damit sich <systemitem class="username">admin</systemitem>
+ von jedem Rechner aus anmelden kann, geben Sie nur den
+ Benutzernamen an:</para>
<programlisting>AllowUsers admin</programlisting>
@@ -3668,8 +3411,8 @@
<programlisting>AllowUsers root@192.168.1.32 admin</programlisting>
<note>
- <para>Nur ein Benutzer, der in dieser Liste aufgeführt ist,
- darf sich auf diesem Rechner anmelden.</para>
+ <para>Nur Benutzer, die in dieser Liste aufgeführt ist,
+ dürfen sich auf diesem Rechner anmelden.</para>
</note>
<para>Nachdem Sie <filename>/etc/ssh/sshd_config</filename>
@@ -3681,10 +3424,16 @@
<sect2>
<title>Weiterführende Informationen</title>
- <para><link xlink:href="http://www.openssh.com/">OpenSSH</link></para>
+
+ <para><link
+ xlink:href="http://www.openssh.com/">OpenSSH</link></para>
+
<para>&man.ssh.1; &man.scp.1; &man.ssh-keygen.1;
- &man.ssh-agent.1; &man.ssh-add.1; &man.ssh.config.5;</para>
- <para>&man.sshd.8; &man.sftp-server.8; &man.sshd.config.5;</para>
+ &man.ssh-agent.1; &man.ssh-add.1; &man.ssh.config.5; für
+ Client Optionen.</para>
+
+ <para>&man.sshd.8; &man.sftp-server.8; &man.sshd.config.5; für
+ Server Optionen.</para>
</sect2>
</sect1>
@@ -3695,43 +3444,41 @@
</authorgroup>
</info>
-
<indexterm>
<primary>ACL</primary>
</indexterm>
- <para>Zusammen mit anderen Verbesserungen des Dateisystems wie
- Schnappschüsse bietet &os; auch
- <firstterm>Zugriffskontrolllisten</firstterm> (<foreignphrase>access
- control list</foreignphrase>, <acronym>ACL</acronym>).</para>
-
- <para>Zugriffskontrolllisten erweitern die normalen Zugriffsrechte
+ <para><firstterm>Zugriffskontrolllisten</firstterm>
+ (<foreignphrase>Access Control Lists</foreignphrase>,
+ <acronym>ACL</acronym>) erweitern die normalen Zugriffsrechte
von &unix; Systemen auf eine kompatible (&posix;.1e) Weise
und bieten feiner granulierte Sicherheitsmechanismen.</para>
- <para>Zugriffskontrolllisten für Dateisysteme werden mit der
- nachstehenden Zeile in der Kernelkonfiguration aktiviert:</para>
+ <para>Der <filename>GENERIC</filename>-Kernel von &os; bietet
+ <acronym>ACL</acronym>-Unterstützung für
+ <acronym>UFS</acronym>-Dateisysteme. Benutzer, die es vorziehen
+ einen eigenen Kernel zu übersetzen, müssen die folgende Option
+ in die Kernelkonfigurationsdatei aufnehmen:</para>
<programlisting>options UFS_ACL</programlisting>
- <para>Diese Option ist in der <filename>GENERIC</filename>-Konfiguration
- aktiviert. Das System gibt eine Warnung aus, wenn ein Dateisystem mit
+ <para>Das System gibt eine Warnung aus, wenn ein Dateisystem mit
<acronym>ACL</acronym>s eingehangen werden soll und die
Unterstützung für <acronym>ACL</acronym>s nicht im Kernel
- aktiviert ist. Das Dateisystem muss weiterhin erweiterte Attribute
- zur Verfügung stellen, damit <acronym>ACL</acronym>s verwendet
- werden können. Das neue <acronym>UNIX</acronym>-Dateisystem
- <acronym>UFS2</acronym> stellt diese Attribute
- standardmäßig zur Verfügung.</para>
-
- <note><para>Die Konfiguration erweiterter Attribute auf
- <acronym>UFS1</acronym> ist mit einem höheren Aufwand als die
- Konfiguration erweiterter Attribute auf <acronym>UFS2</acronym>
- verbunden. Zudem ist <acronym>UFS2</acronym> mit erweiterten
- Attributen leistungsfähiger als <acronym>UFS1</acronym>.
- Zugriffskontrolllisten sollten daher mit <acronym>UFS2</acronym>
- verwendet werden.</para></note>
+ aktiviert ist. Das Dateisystem muss weiterhin erweiterte
+ Attribute zur Verfügung stellen, damit <acronym>ACL</acronym>s
+ verwendet werden können. <acronym>UFS2</acronym> stellt diese
+ Attribute standardmäßig zur Verfügung.</para>
+
+ <note>
+ <para>Die Konfiguration erweiterter Attribute auf
+ <acronym>UFS1</acronym> ist mit einem höheren Aufwand als die
+ Konfiguration erweiterter Attribute auf
+ <acronym>UFS2</acronym> verbunden. Zugriffskontrolllisten
+ sollten daher mit <acronym>UFS2</acronym> verwendet
+ werden.</para>
+ </note>
<para>Die Angabe der Option <option>acl</option> in
<filename>/etc/fstab</filename> aktiviert Zugriffskontrolllisten
@@ -3754,11 +3501,12 @@
<listitem>
<para>Die Zugriffskontrolllisten auf den Dateisystemen sind,
- unabhängig von den Option in <filename>/etc/fstab</filename>
+ unabhängig von den Optionen in <filename>/etc/fstab</filename>
oder Namensänderungen der Geräte, immer aktiv. Dies
verhindert auch, dass Zugriffskontrolllisten aus Versehen
- auf Dateisystem ohne Zugriffskontrolllisten aktiviert werden und
- durch falsche Zugriffsrechte Sicherheitsprobleme entstehen.</para>
+ auf Dateisystemen ohne Zugriffskontrolllisten aktiviert
+ werden und durch falsche Zugriffsrechte Sicherheitsprobleme
+ entstehen.</para>
</listitem>
</itemizedlist>
@@ -3787,11 +3535,11 @@
drwxrwx---+ 2 robert robert 512 Dec 27 11:57 directory3
drwxr-xr-x 2 robert robert 512 Nov 10 11:54 public_html</programlisting>
- <para>Die Verzeichnisse <filename>directory1</filename>,
- <filename>directory2</filename> und
- <filename>directory3</filename>
- sind durch Zugriffskontrolllisten geschützt, das Verzeichnis
- <filename>public_html</filename> nicht.</para>
+ <para>In diesem Beispiel sind die Verzeichnisse
+ <filename>directory1</filename>, <filename>directory2</filename>
+ und <filename>directory3</filename> durch Zugriffskontrolllisten
+ geschützt, wohingegen das Verzeichnis
+ <filename>public_html</filename> nicht geschützt ist.</para>
<sect2>
<title>Zugriffskontrolllisten benutzen</title>
@@ -3841,7 +3589,7 @@
<indexterm>
- <primary>Portaudit</primary>
+ <primary>portaudit</primary>
</indexterm>
<para>In den letzten Jahren wurden zahlreiche Verbesserungen in
@@ -3859,7 +3607,7 @@
Lage, dies auch für die zahlreichen Softwarepakete von
Dritten zu tun. Dennoch gibt es einen Weg, auch diese
Programmpakete zu überwachen. Das in der Ports-Sammlung
- enthaltene Programm <application>Portaudit</application> wurde
+ enthaltene Programm <application>portaudit</application> wurde
gezielt dafür entwickelt.</para>
<para>Der Port <package>ports-mgmt/portaudit</package>
@@ -3867,7 +3615,7 @@
den Ports-Entwicklern aktualisiert und gewartet wird, auf
bekannte Sicherheitsprobleme ab.</para>
- <para>Bevor Sie <application>Portaudit</application> verwenden
+ <para>Bevor Sie <application>portaudit</application> verwenden
können, müssen Sie es über die Ports-Sammlung
installieren:</para>
@@ -3875,7 +3623,7 @@
<para>Während der Installation werden die
Konfigurationsdateien für &man.periodic.8; aktualisiert, was
- es <application>Portaudit</application> erlaubt, seine Ausgabe
+ es <application>portaudit</application> erlaubt, seine Ausgabe
in den täglichen Sicherheitsbericht einzufügen.
Stellen Sie auf jeden Fall sicher, dass diese (an das
E-Mail-Konto von <systemitem class="username">root</systemitem> gesendeten)
@@ -3905,7 +3653,7 @@
<screen>&prompt.root; <userinput>portaudit -a</userinput></screen>
<para>Existiert in Ihren installierten Softwarepaketen eine
- Sicherheitslücke, wird <application>Portaudit</application>
+ Sicherheitslücke, wird <application>portaudit</application>
eine Ausgabe ähnlich der folgenden produzieren:</para>
<programlisting>Affected package: cups-base-1.1.22.0_1
@@ -3936,10 +3684,8 @@
</authorgroup>
</info>
-
-
<indexterm>
- <primary>Sicherheitshinweise</primary>
+ <primary>&os; Sicherheitshinweise</primary>
</indexterm>
<para>Wie für andere hochwertige Betriebssysteme auch
@@ -3952,8 +3698,7 @@
<sect2>
<title>Wie sieht ein Sicherheitshinweis aus?</title>
- <para>Der nachstehende Sicherheitshinweis stammt von
- der Mailingliste &a.security-notifications.name;:</para>
+ <para>&os; Sicherheitshinweise haben das folgende Format:</para>
<programlisting>=============================================================================
FreeBSD-SA-XX:XX.UTIL Security Advisory
@@ -4020,7 +3765,7 @@
des &os;-Betriebssystems, die Kategorie
<literal>contrib</literal> beschreibt zum Basissystem
gehörende Software Dritter beispielsweise
- <application>sendmail</application>. Die Kategorie
+ <application>Sendmail</application>. Die Kategorie
<literal>ports</literal> beschreibt Software, die
Teil der Ports-Sammlung ist.</para>
</callout>
@@ -4052,7 +3797,7 @@
<para>Welche &os;-Releases betroffen sind, ist im Feld
<literal>Affects</literal> angegeben. Die Version einer
Datei, die zum Kernel gehört, können Sie
- schnell mit <command>ident</command> ermitteln. Bei Ports
+ schnell mit &man.ident.1; ermitteln. Bei Ports
ist die Versionsnummer angegeben, die Sie im Verzeichnis
<filename>/var/db/pkg</filename> finden.
Wenn Sie Ihr System nicht täglich aktualisieren,
@@ -4066,8 +3811,9 @@
<callout arearefs="co-cve">
<para>Reserviert für Informationen, über die
- in der <emphasis>Common Vulnerabilities Database</emphasis>
- nach Sicherheitslücken gesucht werden kann.</para>
+ in der <link xlink:href="http://cve.mitre.org">Common
+ Vulnerabilities Database</link> nach Sicherheitslücken
+ gesucht werden kann.</para>
</callout>
<callout arearefs="co-backround">
@@ -4160,8 +3906,7 @@
konfigurieren</title>
<para>Bevor Sie die Prozess-Überwachung verwenden können,
- müssen Sie diese aktivieren. Dazu führen Sie als
- <systemitem class="username">root</systemitem> die folgenden Befehle aus:</para>
+ müssen Sie diese über die folgenden Befehle aktivieren:</para>
<screen>&prompt.root; <userinput>touch /var/account/acct</userinput>
&prompt.root; <userinput>accton /var/account/acct</userinput>
@@ -4170,29 +3915,144 @@
<para>Einmal aktiviert, wird sofort mit der Überwachung von
<acronym>CPU</acronym>-Statistiken, Befehlen und anderen
Vorgängen begonnen. Protokolldateien werden in einem
- nur von Maschinen lesbaren Format gespeichert, daher müssen
- Sie diese über &man.sa.8; aufrufen. Geben Sie keine
- Optionen an, gibt <command>sa</command> Informationen wie
- die Anzahl der Aufrufe pro Anwender, die abgelaufene Zeit in
- Minuten, die gesamte <acronym>CPU</acronym>- und Anwenderzeit
- in Minuten, die durchschnittliche Anzahl der Ein- und
- Ausgabeoperationen und viel andere mehr aus.</para>
+ nur von Maschinen lesbaren Format gespeichert und können
+ über &man.sa.8; aufgerufen werden. Ohne Optionen gibt
+ &man.sa.8; Informationen wie die Anzahl der Aufrufe pro
+ Anwender, die abgelaufene Zeit in Minuten, die gesamte
+ <acronym>CPU</acronym>- und Anwenderzeit in Minuten und die
+ durchschnittliche Anzahl der Ein- und Ausgabeoperationen
+ aus.</para>
<para>Um Informationen über ausgeführte Befehle zu
erhalten, verwenden Sie &man.lastcomm.1;. So können Sie
- etwa ermittlen, welche Befehle von wem auf welchem &man.ttys.5;
- ausgeführt wurden:</para>
+ etwa ermitteln, welche Befehle von wem auf welchem &man.ttys.5;
+ ausgeführt wurden. Dieses Beispiel zeigt die Nutzung von
+ &man.ls.1; durch <systemitem
+ class="username">trhodes</systemitem> auf dem Terminal
+ <literal>ttyp1</literal>:</para>
<screen>&prompt.root; <userinput>lastcomm ls
trhodes ttyp1</userinput></screen>
- <para>Das Ergebnis sind alle bekannten Einsätze von
- <command>ls</command> durch <systemitem class="username">trhodes</systemitem>
- auf dem Terminal <literal>ttyp1</literal>.</para>
-
- <para>Zahlreiche weitere nützliche Optionen finden Sie in den
- Manualpages zu &man.lastcomm.1;, &man.acct.5; sowie
- &man.sa.8;.</para>
+ <para>Zahlreiche weitere nützliche Optionen finden Sie
+ &man.lastcomm.1;, &man.acct.5; sowie &man.sa.8;.</para>
</sect2>
</sect1>
+
+ <sect1 xml:id="security-resourcelimits">
+ <title>Einschränkung von Ressourcen</title>
+
+ <info>
+ <authorgroup>
+ <author>
+ <personname>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ </personname>
+ <contrib>Beigetragen von </contrib>
+ </author>
+ </authorgroup>
+ </info>
+
+ <indexterm>
+ <primary>Ressourcen einschränken</primary>
+ </indexterm>
+
+ <para>Seit Jahren benutzt &os; die Datenbank
+ <filename>/etc/login.conf</filename> um Ressourcen zu
+ beschränken. Obwohl dies immer noch unterstützt wird, ist es
+ nicht die optimale Methode um die Beschränkung von Ressourcen zu
+ steuern, da Benutzer in verschiedene Gruppen (Login-Klassen)
+ aufgeteilt werden müssen und bei Änderungen immer die Datei und
+ die Passwortdatenbank bearbeitet werden muss. Möglicherweise
+ benötigt ein eingeschränkter Benutzer eine zusätzliche Klasse,
+ dann müsste die Datenbank mit <command>cap_mkdb</command> neu
+ gebaut werden und <filename>/etc/master.passwd</filename> müsste
+ ebenfalls bearbeitet werden. Zusätzlich müsste die
+ Passwortdatenbank mit <command>pwd_mkdb</command> neu gebaut
+ werden. Dieser Prozess kann sehr zeitaufwendig sein, abhängig
+ davon, wie viele Benutzer bearbeitet werden müssen.</para>
+
+ <para>Mit &man.rctl.8; können Ressourcen für Benutzer sehr
+ detailliert gesteuert werden. Die Befehl unterstützt nicht
+ nur die Kontrolle der Ressourcen für Benutzer, sondern auch
+ die Beschränkung auf Prozesse, Jails und den ursprünglichen
+ Login-Klassen. Diese erweiterten Funktionen bieten
+ Administratoren und Benutzern die Möglichkeit, Ressourcen über
+ die Kommandozeile oder über eine Konfigurationsdatei zu
+ steuern.</para>
+
+ <para>Um diese Eigenschaft zu aktivieren, fügen Sie folgende Zeile
+ in die Kernelkonfigurationsdatei:</para>
+
+ <programlisting>options RACCT
+options RCTL</programlisting>
+
+ <para>Das System muss nun neu übersetzt werden. Dieser Vorgang
+ wird in <xref linkend="kernelconfig"/> beschrieben.
+ Anschließend kann <command>rctl</command> benutzt werden, um
+ die Regeln für das System festzulegen.</para>
+
+ <para>Die Syntax der Regeln ist einfach und wird durch
+ <emphasis>subject</emphasis>, <emphasis>subject-id</emphasis>,
+ <emphasis>resource</emphasis> und <emphasis>action</emphasis>
+ gesteuert. Hier ein Beispiel für eine Regel:</para>
+
+ <programlisting>user:trhodes:<literal>maxproc</literal>:<literal>deny</literal>=10/user</programlisting>
+
+ <para>Diese Regel zeigt den grundlegenden Aufbau, hier mit dem
+ Subjekt <literal>user</literal> und der Subjekt-ID
+ <literal>trhodes</literal>. <literal>maxproc</literal>
+ definiert die Anzahl der Prozesse. Die <quote>Aktion</quote>
+ <literal>deny</literal> verhindert, dass neue Prozesse erstellt
+ werden. Im vorherigen Beispiel wurde für den Benutzer
+ <literal>trhodes</literal> eine Beschränkung von
+ <literal>10</literal> (zehn) Prozessen konfiguriert. Es sind
+ noch weitere Aktionen verfügbar, beispielsweise die
+ Protokollierung auf der Konsole, Benachrichtigungen an
+ &man.devd.8; oder das Senden eines <literal>SIGTERM</literal>
+ an einen Prozess.</para>
+
+ <para>Beim hinzufügen von Regeln müssen einige Dinge beachtet
+ werden. Das obige Beispiel würde den Benutzer sogar daran
+ hindern, einfachste Dinge zu tun, nachdem er sich anmeldet und
+ eine <command>screen</command> Sitzung gestartet hat. Sobald
+ die Begrenzung für eine Ressource erreicht ist, wird folgende
+ Meldung ausgegeben:</para>
+
+ <screen>&prompt.root; <userinput>man test</userinput>
+/usr/bin/man: Cannot fork: Resource temporarily unavailable
+eval: Cannot fork: Resource temporarily unavailable</screen>
+
+ <para>&man.rctl.8; kann auch benutzt werden, um einer Jail
+ eine Speichergrenze zuzuweisen. Eine solche Regel könnte
+ wie folgt festgelegt werden:</para>
+
+ <screen>&prompt.root; <userinput>rctl -a jail:httpd:memoryuse:deny=2G/jail</userinput></screen>
+
+ <para>Damit die Regeln auch nach einem Neustart erhalten bleiben,
+ müssen sie in <filename>/etc/rctl.conf</filename> hinzugefügt
+ werden. Dazu schreiben Sie einfach die Regel, ohne das
+ vorhergehende Kommando. Zum Beispiel:</para>
+
+ <programlisting># Block jail from using more than 2G memory:
+jail:httpd:memoryuse:deny=2G/jail</programlisting>
+
+ <para>Mit <command>rctl</command> können auch Regeln entfernt
+ werden:</para>
+
+ <screen>&prompt.root; <userinput>rctl -r user:trhodes:maxproc:deny=10/user</userinput></screen>
+
+ <para>Die Manualpage zeigt auch eine Möglichkeit, alle Regeln zu
+ entfernen. Falls es erforderlich ist alle Regeln für einen
+ einzelnen Benutzer zu entfernen, kann dieser Befehl verwendet
+ werden:</para>
+
+ <screen>&prompt.root; <userinput>rctl -r user:trhodes</userinput></screen>
+
+ <para>Es gibt noch viele weitere Ressourcen, die verwendet werden
+ können, um zusätzliche <literal>subjects</literal> zu
+ kontrollieren. Weitere Informationen zu diesem Thema finden Sie
+ in &man.rctl.8;.</para>
+ </sect1>
</chapter>

File Metadata

Mime Type
text/plain
Expires
Tue, Apr 28, 3:34 PM (13 h, 25 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
32288316
Default Alt Text
D5640.id14344.diff (180 KB)

Event Timeline