Update to r43706:

First 1/2 of edits to this section.

Shuffle content into a more logical order and clarify text.
This commit is contained in:
Bjoern Heidotting 2016-05-14 08:19:21 +00:00
parent a2eefc8d5e
commit 37d2da8a70
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=48811

View file

@ -5,7 +5,7 @@
$FreeBSD$
$FreeBSDde: de-docproj/books/handbook/network-servers/chapter.xml,v 1.103 2011/12/24 15:51:18 bcr Exp $
basiert auf: r43384
basiert auf: r43706
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="network-servers">
<!--
@ -137,20 +137,22 @@
<title>Der <application>inetd</application>
<quote>Super-Server</quote></title>
<sect2 xml:id="network-inetd-overview">
<title>Überblick</title>
<sect2 xml:id="network-inetd-overview">
<title>Übersicht</title>
<para>&man.inetd.8; wird manchmal auch als <quote>Internet
Super-Server</quote> bezeichnet, weil er Verbindungen für
viele Dienste verwaltet. Wenn eine Verbindung eintrifft,
bestimmt <application>inetd</application>, welches Programm
für die eingetroffene Verbindung zuständig ist,
aktiviert den entsprechenden Prozess und reicht den Socket an
ihn weiter (der Socket dient dabei als Standardein- und -ausgabe
sowie zur Fehlerbehandlung). Der Einsatz des
<application>inetd</application>-Daemons an Stelle
viele einzelner Daemonen kann auf nicht komplett ausgelasteten
Servern zu einer Verringerung der Systemlast führen.</para>
<para>Der &man.inetd.8;-Daemon wird manchmal auch als
<quote>Internet Super-Server</quote> bezeichnet, weil er
Verbindungen für viele Dienste verwaltet. Anstatt mehrere
Anwendungen zu starten, muss nur der
<application>inetd</application>-Dienst gestartet werden.
Wenn eine Verbindung für einen Dienst eintrifft, der von
<application>inetd</application> verwaltet wird, bestimmt
<application>inetd</application>, welches Programm für die
eingetroffene Verbindung zuständig ist, aktiviert den
entsprechenden Prozess und reicht den Socket an ihn weiter.
Der Einsatz von <application>inetd</application> an Stelle
viele einzelner Daemonen kann auf nicht komplett ausgelasteten
Servern zu einer Verringerung der Systemlast führen.</para>
<para><application>inetd</application> wird vor allem dazu
verwendet, andere Daemonen zu aktivieren, einige Protokolle
@ -160,138 +162,58 @@
<application>daytime</application>.</para>
<para>Dieser Abschnitt beschreibt die Konfiguration von
<application>inetd</application> durch Kommandozeilenoptionen
sowie die Konfigurationsdatei
<filename>/etc/inetd.conf</filename>.</para>
</sect2>
<sect2 xml:id="network-inetd-settings">
<title>Einstellungen</title>
<para><application>inetd</application> wird durch das
&man.rc.8;-System initialisiert. Die Option
<literal>inetd_enable</literal> ist in der Voreinstellung
auf <literal>NO</literal> gesetzt. Es kann durch den
Eintrag</para>
<programlisting>inetd_enable="YES"</programlisting>
<para>in <filename>/etc/rc.conf</filename> aktiviert werden.
<application>inetd</application> wird jetzt beim Systemstart
gestartet. Über den Befehl</para>
<screen>&prompt.root; <userinput>service inetd rcvar</userinput></screen>
<para>können Sie die aktuelle Konfiguration
abfragen.</para>
<para>Weitere Optionen können über die Option
<literal>inetd_flags</literal> an
<application>inetd</application> übergeben werden.</para>
</sect2>
<sect2 xml:id="network-inetd-cmdline">
<title>Kommandozeilenoptionen</title>
<para>Wie die meisten anderen Server-Daemonen lässt
sich auch <application>inetd</application> über
verschiedene Optionen steuern. Eine vollständige Liste
dieser Optionen finden Sie in &man.inetd.8;.</para>
<para>Die verschiedenen Optionen können über die Option
<literal>inetd_flags</literal> der Datei
<filename>/etc/rc.conf</filename> an
<application>inetd</application> übergeben werden. In
der Voreinstellung hat diese Option den Wert
<literal>-wW -C 60</literal>. Durch das Setzen dieser Werte
wird das TCP-Wrapping für alle
<application>inetd</application>-Dienste aktiviert.
Zusätzlich kann eine einzelne <acronym>IP</acronym>-Adresse jeden Dienst
nur maximal 60 Mal pro Minute anfordern.</para>
<para>Für Einsteiger ist es erfreulich, dass diese Parameter
in der Regel nicht angepasst werden müssen. Da diese
Parameter aber dennoch von Interesse sein können
(beispielsweise, wenn Sie eine enorme Anzahl von
Verbindungsanfragen erhalten), werden einige dieser
einschränkenden Parameter im Folgenden näher
erläutert. Eine vollständige Liste aller
Optionen finden Sie in &man.inetd.8;.</para>
<variablelist>
<varlistentry>
<term>-c maximum</term>
<listitem>
<para>Legt die maximale Anzahl von parallen Aufrufen eines
Dienstes fest; in der Voreinstellung gibt es keine
Einschränkung. Diese Einstellung kann für jeden
Dienst durch Setzen des <option>max-child</option>
-Parameters festgelegt werden.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-C rate</term>
<listitem>
<para>Legt fest, wie oft ein Dienst von einer einzelnen
<acronym>IP</acronym>-Adresse in einer Minute aufgerufen werden kann; in der
Voreinstellung gibt es keine Einschränkung. Dieser
Wert kann für jeden Dienst durch Setzen des
Parameters
<option>max-connections-per-ip-per-minute</option>
festgelegt werden.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-R rate</term>
<listitem>
<para>Legt fest, wie oft ein Dienst in der Minute aktiviert
werden kann; in der Voreinstellung sind dies 256
Aktivierungen pro Minute. Ein Wert von 0 erlaubt
unbegrenzt viele Aktivierungen.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-s maximum</term>
<listitem>
<para>Legt fest, wie oft ein Dienst in der Minute von einer
einzelnen <acronym>IP</acronym>-Adresse aus aktiviert werden kann; in der
Voreinstellung gibt es hier keine Beschränkung. Diese
Einstellung kann für jeden Dienst durch die Angabe
<option>max-child-per-ip</option> angepasst werden.</para>
</listitem>
</varlistentry>
</variablelist>
<application>inetd</application>.</para>
</sect2>
<sect2 xml:id="network-inetd-conf">
<!-- XXX Dieser Abschnitt ist etwas verwirrend und sollte mal überarbeitet werden. -->
<title><filename>inetd.conf</filename></title>
<title>Konfigurationsdatei</title>
<para>Die Konfiguration von <application>inetd</application>
erfolgt über <filename>/etc/inetd.conf</filename>.</para>
erfolgt über <filename>/etc/inetd.conf</filename> Jede Zeile
dieser Datei repräsentiert eine Anwendung, die von
<application>inetd</application> gestartet werden kann. In
der Voreinstellung beginnt jede Zeile mit einem Kommentar
(<literal>#</literal>), was bedeutet dass
<application>inetd</application> keine Verbindungen für
Anwendungen akzeptiert. Entfernen Sie den Kommentar am Anfang
der Zeile, damit <application>inetd</application> Verbindungen
für diese Anwendung entgegennimmt.</para>
<para>Wenn <filename>/etc/inetd.conf</filename> geändert
wird, kann <application>inetd</application> veranlasst werden,
seine Konfigurationsdatei neu einzulesen.</para>
<para>Nachdem Sie die Änderungen gespeichert haben, fügen Sie
folgende Zeile in <filename>/etc/rc.conf</filename> ein, damit
<application>inetd</application> bei Booten automatisch
gestartet wird:</para>
<programlisting>inetd_enable="YES"</programlisting>
<para>Starten Sie jetzt <application>inetd</application>, so
dass er Verbindungen für die von Ihnen konfigurierten Dienste
entgegennimmt:</para>
<screen>&prompt.root; <userinput>service inetd start</userinput></screen>
<para>Sobald <application>inetd</application> gestartet ist,
muss der Dienst benachrichtigt werden, wenn eine Änderung in
<filename>/etc/inetd.conf</filename> gemacht wird:</para>
<example xml:id="network-inetd-reread">
<title>Die <application>inetd</application>-Konfiguration neu
einlesen</title>
<screen>&prompt.root; <userinput>service inetd reload</userinput></screen>
<title>Die Konfigurationsdatei von
<application>inetd</application> neu einlesen</title>
<screen>&prompt.root; <userinput>service inetd reload</userinput></screen>
</example>
<para>Jede Zeile der Konfigurationsdatei beschreibt jeweils einen
Daemon. Kommentare beginnen mit einem <quote>#</quote>. Ein
Eintrag der Datei <filename>/etc/inetd.conf</filename> hat
folgenden Aufbau:</para>
<para>Normalerweise müssen Sie lediglich den Kommentar vor der
Anwendung entfernen. In einigen Situationen kann es jedoch
sinnvoll sein, den Eintrag weiter zu bearbeiten.</para>
<para>Als Beispiel dient hier der Standardeintrag für
&man.ftpd.8; über IPv4:</para>
<programlisting>ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l</programlisting>
<para>Die sieben Spalten in diesem Eintrag haben folgende
Bedeutung:</para>
<programlisting>service-name
socket-type
@ -301,11 +223,6 @@ user[:group][/login-class]
server-program
server-program-arguments</programlisting>
<para>Ein Eintrag für den IPv4 verwendenden
&man.ftpd.8;-Daemon könnte so aussehen:</para>
<programlisting>ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l</programlisting>
<variablelist>
<varlistentry>
<term>service-name</term>
@ -514,6 +431,84 @@ server-program-arguments</programlisting>
</variablelist>
</sect2>
<sect2 xml:id="network-inetd-cmdline">
<title>Kommandozeilenoptionen</title>
<para>Wie die meisten anderen Server-Daemonen lässt sich auch
<application>inetd</application> über verschiedene Optionen
steuern. In der Voreinstellung wird
<application>inetd</application> mit
<literal>-wW -C 60</literal> gestartet. Durch das Setzen
dieser Werte wird das TCP-Wrapping für alle
<application>inetd</application>-Dienste aktiviert.
Zudem wird verhindert, dass eine <acronym>IP</acronym>-Adresse
eine Dienst öfter als 60 Mal pro Minute anfordern kann.</para>
<para>Um die Voreinstellungen für
<application>inetd</application> zu ändern, fügen Sie einen
Eintrag für <literal>inetd_flags</literal> in
<filename>/etc/rc.conf</filename> hinzu. Wenn
<application>inetd</application> bereits ausgeführt wird,
starten Sie ihn mit <command>service inetd restart</command>
neu.</para>
<para>Die verfügbaren Optionen sind:</para>
<variablelist>
<varlistentry>
<term>-c maximum</term>
<listitem>
<para>Legt die maximale Anzahl von parallelen Aufrufen
eines Dienstes fest; in der Voreinstellung gibt es keine
Einschränkung. Diese Einstellung kann für jeden Dienst
durch Setzen des Parameters <option>max-child</option>
festgelegt werden.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-C rate</term>
<listitem>
<para>Legt fest, wie oft ein Dienst von einer einzelnen
<acronym>IP</acronym>-Adresse in einer Minute aufgerufen
werden kann; in der Voreinstellung gibt es keine
Einschränkung. Dieser Wert kann für jeden Dienst durch
das Setzen des Parameters
<option>max-connections-per-ip-per-minute</option>
festgelegt werden.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-R rate</term>
<listitem>
<para>Legt fest, wie oft ein Dienst in der Minute
aktiviert werden kann; in der Voreinstellung sind dies
<literal>256</literal> Aktivierungen pro Minute. Ein
Wert von <literal>0</literal> erlaubt unbegrenzt viele
Aktivierungen.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-s maximum</term>
<listitem>
<para>Legt fest, wie oft ein Dienst in der Minute von
einer einzelnen <acronym>IP</acronym>-Adresse aus
aktiviert werden kann; in der Voreinstellung gibt es
hier keine Beschränkung. Diese Einstellung kann für
jeden Dienst durch die Angabe von
<option>max-child-per-ip</option> angepasst
werden.</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 xml:id="network-inetd-security">
<title>Sicherheit</title>