Add a new translated section (Inetd).
This commit is contained in:
parent
98b506b8a9
commit
4e6ce4d0e7
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=20583
1 changed files with 501 additions and 17 deletions
|
@ -2564,36 +2564,520 @@ redirect_port tcp 192.168.0.3:80 80</programlisting>
|
|||
</sect1>
|
||||
|
||||
<sect1 id="network-inetd">
|
||||
<title>inetd <quote>Super-Server</quote> ** Traduction en Cours **</title>
|
||||
<sect1info>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Chern</firstname>
|
||||
<surname>Lee</surname>
|
||||
<contrib>Contribution de </contrib>
|
||||
</author>
|
||||
</authorgroup>
|
||||
</sect1info>
|
||||
|
||||
<title>Le “super-serveur”
|
||||
<application>inetd</application></title>
|
||||
|
||||
<sect2 id="network-inetd-overview">
|
||||
<title>Overview</title>
|
||||
<para></para>
|
||||
<title>Généralités</title>
|
||||
|
||||
<para>On fait souvent référence à
|
||||
&man.inetd.8; comme étant le “super-serveur
|
||||
Internet” parce qu'il gére les connexions pour
|
||||
plusieurs “daemons”. Les programmes assurant des
|
||||
services réseau sont généralement connus
|
||||
sous le nom de “daemon”.
|
||||
<application>inetd</application> joue le rôle de serveur
|
||||
de régulateur pour les autres “daemon”s.
|
||||
Quand une connexion est reçue par
|
||||
<application>inetd</application>, ce dernier détermine
|
||||
à quel “daemon” la connexion est
|
||||
destinée, invoque le “daemon” en question
|
||||
et lui délègue la “socket”.
|
||||
Exécuter une instance
|
||||
d'<application>inetd</application> réduit la charge
|
||||
système globale par rapport à l'exécution
|
||||
de chaque “daemon” individuellement en mode
|
||||
autonome.</para>
|
||||
|
||||
<para><application>inetd</application> est utilisé pour
|
||||
invoquer d'autres “daemon”s, mais plusieurs
|
||||
protocoles triviaux sont gérés directement,
|
||||
comme <application>chargen</application>,
|
||||
<application>auth</application>, et
|
||||
<application>daytime</application>.</para>
|
||||
|
||||
<para>Cette section abordera la configuration de base
|
||||
d'<application>inetd</application> à travers ses
|
||||
options en ligne de commande et son fichier de configuration
|
||||
<filename>/etc/inetd.conf</filename>.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="inetd-settings">
|
||||
<title>Settings</title>
|
||||
<para></para>
|
||||
<sect2 id="network-inetd-settings">
|
||||
<title>Configuration</title>
|
||||
|
||||
<para><application>inetd</application> est initialisé par
|
||||
l'intermédiaire du système
|
||||
<filename>/etc/rc.conf</filename>. L'option
|
||||
<literal>inetd_enable</literal> est positionnée
|
||||
à la valeur <literal>NO</literal> par défaut,
|
||||
mais est activée par
|
||||
<application>sysinstall</application> avec le profil de
|
||||
sécurité modéré. Placer
|
||||
<programlisting>inetd_enable="YES"</programlisting> ou
|
||||
<programlisting>inetd_enable="NO"</programlisting> dans
|
||||
<filename>/etc/rc.conf</filename> peut activer ou
|
||||
désactiver le démarrage
|
||||
d'<application>inetd</application> à la mise en route
|
||||
du système.</para>
|
||||
|
||||
<para>De plus, différentes options de ligne de commande
|
||||
peuvent être passées à
|
||||
<application>inetd</application> par l'intermédiaire de
|
||||
l'option <literal>inetd_flags</literal>.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="inetd-cmdline">
|
||||
<title>Command-Line Options</title>
|
||||
<para></para>
|
||||
<sect2 id="network-inetd-cmdline">
|
||||
<title>Options en ligne de commande</title>
|
||||
|
||||
<para>Synopsis d'<application>inetd</application>:</para>
|
||||
|
||||
<para><option> inetd [-d] [-l] [-w] [-W] [-c maximum] [-C taux] [-a adresse | nom de machine]
|
||||
[-p fichier] [-R taux] [fichier de configuration]</option></para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>-d</term>
|
||||
|
||||
<listitem>
|
||||
<para>Active le débogage.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-l</term>
|
||||
|
||||
<listitem>
|
||||
<para>Active le journal des connexions
|
||||
réussies.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-w</term>
|
||||
|
||||
<listitem>
|
||||
<para>Active le “TCP Wrapping” pour les
|
||||
services externes (actif par défaut).</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-W</term>
|
||||
|
||||
<listitem>
|
||||
<para>Active le “TCP Wrapping” pour les
|
||||
services internes qui font partie
|
||||
d'<application>inetd</application> (actif par
|
||||
défaut).</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-c maximum</term>
|
||||
|
||||
<listitem>
|
||||
<para>Spécifie le nombre maximal par défaut
|
||||
d'invocations simultanées pour chaque service; il
|
||||
n'y a pas de limite par défaut. Cette option peut
|
||||
être surchargée pour chaque service à
|
||||
l'aide du paramètre
|
||||
<option>nb-max-enfants</option>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-C taux</term>
|
||||
|
||||
<listitem>
|
||||
<para>Précise le nombre maximal de fois qu'un
|
||||
service peut être invoqué à partir
|
||||
d'une unique adresse IP et cela sur une minute. Ce
|
||||
paramètre peut être configuré
|
||||
différemment pour chaque service avec le
|
||||
paramètre
|
||||
<option>nb-max-connexions-par-ip-par-minute</option>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-R taux</term>
|
||||
|
||||
<listitem>
|
||||
<para>Précise le nombre maximal de fois qu'un
|
||||
service peut être invoqué par minute; la
|
||||
valeur par défaut est 256. Un taux de 0 autorise
|
||||
un nombre illimité d'invocations.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-a</term>
|
||||
|
||||
<listitem>
|
||||
<para>Indique l'adresse IP sur laquelle le trafic sera
|
||||
attendu. Alternativement, un nom de machine peut
|
||||
être utilisé, dans ce cas l'adresse IPv4 ou
|
||||
IPv6 correspondant à la machine sera
|
||||
utilisée. Généralement, un nom de
|
||||
machine est précisé quand
|
||||
<application>inetd</application> est exécuté
|
||||
à l'intérieur d'un environnement
|
||||
&man.jail.8;, dans quel cas le nom de machine correspond
|
||||
à l'environnement &man.jail.8;.</para>
|
||||
|
||||
<para>Quand un nom de machine est utilisé et que
|
||||
l'on doit être à l'écoute sur une
|
||||
adresse IPv4 et IPv6, une entrée avec le
|
||||
protocole adapté pour chaque type d'adresse est
|
||||
nécessaire pour chaque service dans
|
||||
<filename>/etc/inetd.conf</filename>. Par exemple, un
|
||||
service de type TCP nécessitera deux
|
||||
entrées, une utilisant <literal>tcp4</literal>
|
||||
pour le protocole et une autre utilisant
|
||||
<literal>tcp6</literal>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-p</term>
|
||||
|
||||
<listitem>
|
||||
<para>Spécifie un fichier différent dans
|
||||
lequel stocker l'indentifiant du processus.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Ces options peuvent être passées à
|
||||
<application>inetd</application> en utilisant l'option
|
||||
<literal>inetd_flags</literal> de
|
||||
<filename>/etc/rc.conf</filename>. Par défaut,
|
||||
<literal>inetd_flags</literal> est positionné à
|
||||
<literal>-wW</literal>, ce qui active le “TCP
|
||||
wrapping” pour les services internes et externes
|
||||
d'<application>inetd</application>. Pour un utilisateur de
|
||||
base ces paramètres ne doivent
|
||||
généralement pas être modifiés ou
|
||||
même ajoutés au fichier
|
||||
<filename>/etc/rc.conf</filename>.</para>
|
||||
|
||||
<note>
|
||||
<para>Un service externe est un “daemon”
|
||||
indépendant d'<application>inetd</application>, qui est
|
||||
invoqué quand une connexion lui étant
|
||||
destinée est reçue. D'autre part, un service
|
||||
interne est un service qu'<application>inetd</application>
|
||||
peut offrir directement.</para>
|
||||
</note>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="inetd-conf">
|
||||
<sect2 id="network-inetd-conf">
|
||||
<title><filename>inetd.conf</filename></title>
|
||||
<para></para>
|
||||
|
||||
<para>La configuration d'<application>inetd</application> se
|
||||
fait par l'intermédiaire du fichier
|
||||
<filename>/etc/inetd.conf</filename>.</para>
|
||||
|
||||
<para>Quand le fichier <filename>/etc/inetd.conf</filename> est
|
||||
modifié, <application>inetd</application> peut
|
||||
être forcé de relire son fichier de configuration
|
||||
en envoyant un signal “HangUP” au processus
|
||||
<application>inetd</application> comme suit:</para>
|
||||
|
||||
<example id="network-inetd-hangup">
|
||||
<title>Envoyer un signal “HangUP” à
|
||||
<application>inetd</application></title>
|
||||
|
||||
<screen>&prompt.root; <userinput>kill -HUP `cat /var/run/inetd.pid`</userinput></screen>
|
||||
</example>
|
||||
|
||||
<para>Chaque ligne du fichier de configuration ne mentionne
|
||||
qu'un seul “daemon”. Les commentaires dans le
|
||||
fichier sont précédés par un
|
||||
“#”. Le format du fichier
|
||||
<filename>/etc/inetd.conf</filename> est le suivant:</para>
|
||||
|
||||
<programlisting>nom-du-service
|
||||
type-de-socket
|
||||
protocole
|
||||
{wait|nowait}[/nb-max-enfants[/nb-connexions-max-par-minute]]
|
||||
utilisateur[:groupe][/classe-session]
|
||||
programme-serveur
|
||||
arguments-du-programme-serveur</programlisting>
|
||||
|
||||
<para>Un exemple d'entrée pour le “daemon”
|
||||
<application>ftpd</application> utilisant l'IPv4:</para>
|
||||
|
||||
<programlisting>ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l</programlisting>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>nom-du-service</term>
|
||||
|
||||
<listitem>
|
||||
<para>C'est le nom de service du “daemon” en
|
||||
question. Il doit correspondre à un des services
|
||||
listés dans le fichier
|
||||
<filename>/etc/services</filename>. Cela détermine
|
||||
quel port <application>inetd</application> doit
|
||||
écouter. Si un nouveau service est
|
||||
créé, il doit être ajouté en
|
||||
premier lieu dans
|
||||
<filename>/etc/services</filename>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>type-de-socket</term>
|
||||
|
||||
<listitem>
|
||||
<para>Soit <literal>stream</literal>, soit
|
||||
<literal>dgram</literal>, soit <literal>raw</literal>, ou
|
||||
<literal>seqpacket</literal>. <literal>stream</literal>
|
||||
doit être utilisé pour les
|
||||
“daemon”s TCP, alors que
|
||||
<literal>dgram</literal> est utilisé pour les
|
||||
“daemon”s utilisant le protocole UDP.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>protocole</term>
|
||||
|
||||
<listitem>
|
||||
<para>Un des suivants:</para>
|
||||
|
||||
<informaltable>
|
||||
<tgroup cols="2">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Protocole</entry>
|
||||
<entry>Explication</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>tcp, tcp4</entry>
|
||||
<entry>TCP IPv4</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>udp, udp4</entry>
|
||||
<entry>UDP IPv4</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>tcp6</entry>
|
||||
<entry>TCP IPv6</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>udp6</entry>
|
||||
<entry>UDP IPv6</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>tcp46</entry>
|
||||
<entry>TCP IPv4 et v6</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>udp46</entry>
|
||||
<entry>UDP IPv4 et v6</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>{wait|nowait}[/nb-max-enfants[/nb-max-connexions-par-ip-par-minute]]</term>
|
||||
|
||||
<listitem>
|
||||
<para><option>wait|nowait</option> indique si le
|
||||
“daemon” invoqué par
|
||||
<application>inetd</application> est capable ou non de
|
||||
gérer sa propre “socket”. Les
|
||||
“socket”s de type <option>dgram</option>
|
||||
doivent utiliser l'option <option>wait</option>, alors
|
||||
que les “daemons à socket stream”,
|
||||
qui sont généralement
|
||||
multi-threadés, devraient utiliser
|
||||
<option>nowait</option>. L'option <option>wait</option>
|
||||
a généralement pour conséquence de
|
||||
fournir plusieurs “socket”s à un
|
||||
“daemon”, tandis que l'option
|
||||
<option>nowait</option> invoquera un
|
||||
“daemon” enfant pour chaque nouvelle
|
||||
“socket”.</para>
|
||||
|
||||
<para>Le nombre maximal de “daemon”s
|
||||
qu'<application>inetd</application> peut invoquer peut
|
||||
être fixé en utilisant l'option
|
||||
<option>nb-max-enfants</option>. Si une limite de dix
|
||||
instances pour un “daemon” est
|
||||
nécessaire, <literal>/10</literal> devra
|
||||
être placé après
|
||||
<option>nowait</option>.</para>
|
||||
|
||||
<para>En plus de <option>nb-max-enfants</option>, une
|
||||
autre option limitant le nombre maximal de connexions
|
||||
à partir d'un emplacement vers un
|
||||
“daemon” particulier peut être
|
||||
activée. L'option
|
||||
<option>nb-max-connexions-par-ip-par-minute</option> est
|
||||
l'option en question. Ici, une valeur de dix limiterait
|
||||
à dix le nombre de tentatives de connexions par
|
||||
minute pour une adresse IP particulière. C'est
|
||||
utile pour empêcher l'abus intentionnel ou par
|
||||
inadvertance des ressources et les attaques par
|
||||
déni de service (“Denial of
|
||||
Service—DOS”).</para>
|
||||
|
||||
<para>Dans ce champ, <option>wait</option> ou
|
||||
<option>nowait</option> est obligatoire.
|
||||
<option>nb-max-enfants</option> et
|
||||
<option>nb-max-connexions-par-ip-par-minute</option>
|
||||
sont optionnelles.</para>
|
||||
|
||||
<para>Un “daemon” utilisant un flux de type
|
||||
multi-threadé sans limites
|
||||
<option>nb-max-enfants</option> ou
|
||||
<option>nb-max-connexions-par-ip-par-minute</option>
|
||||
sera tout simplement affecté de l'option
|
||||
<literal>nowait</literal>.</para>
|
||||
|
||||
<para>Le même “daemon” avec une limite
|
||||
maximale de dix “daemon” serait:
|
||||
<literal>nowait/10</literal>.</para>
|
||||
|
||||
<para>De plus, la même configuration avec une limite
|
||||
de vingt connexions par adresse IP par minute et une
|
||||
limite maximale de dix “daemon”s enfant
|
||||
serait: <literal>nowait/10/20</literal>.</para>
|
||||
|
||||
<para>Ces options sont utilisées comme valeurs par
|
||||
défaut par le “daemon”
|
||||
<application>fingerd</application>, comme le montre ce
|
||||
qui suit:</para>
|
||||
|
||||
<programlisting>finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -s</programlisting>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>utilisateur</term>
|
||||
|
||||
<listitem>
|
||||
<para>C'est l'utilisateur sous lequel le
|
||||
“daemon” en question est
|
||||
exécuté. En général les
|
||||
“daemon”s tournent sous l'utilisateur
|
||||
<username>root</username>. Pour des questions de
|
||||
sécurité, il est courant de rencontrer des
|
||||
serveurs tournant sous l'utilisateur
|
||||
<username>daemon</username>, ou sous l'utilisateur avec
|
||||
le moins de privilèges:
|
||||
<username>nobody</username>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>programme-serveur</term>
|
||||
|
||||
<listitem>
|
||||
<para>Le chemin complet du “daemon” qui doit
|
||||
être exécuté quand une requête
|
||||
est reçue. Si le “daemon” est un
|
||||
service fourni en interne par
|
||||
<application>inetd</application>, alors l'option
|
||||
<option>internal</option> devrait être
|
||||
utilisée.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>arguments-programme-serveur</term>
|
||||
|
||||
<listitem>
|
||||
<para>Cette option va de pair avec
|
||||
<option>programme-serveur</option> en précisant
|
||||
les arguments, en commençant avec
|
||||
<literal>argv[0]</literal>, passés au
|
||||
“daemon” lors de son invocation. Si
|
||||
<command>mydaemon -d</command> est la ligne de commande,
|
||||
<literal>mydaemon -d</literal> sera la valeur de
|
||||
l'option <option>arguments-programme-serveur</option>.
|
||||
Ici également, si le “daemon” est un
|
||||
service interne, utilisez
|
||||
<option>internal</option>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="inetd-security">
|
||||
<title>Security</title>
|
||||
<para></para>
|
||||
<sect2 id="network-inetd-security">
|
||||
<title>Sécurité</title>
|
||||
|
||||
<para>En fonction du profil de sécurité choisi
|
||||
à l'installation, plusieurs “daemon”s
|
||||
peuvent être activés par défaut. S'il n'y
|
||||
a pas de raison particulière à l'utilisation
|
||||
d'un “daemon”, désactivez-le! Ajoutez un
|
||||
caractère “#” devant le
|
||||
“daemon” en question, et envoyer un <link
|
||||
linkend="network-inetd-hangup">signal hangup à
|
||||
inetd</link>. Certains “daemon”s comme
|
||||
<application>fingerd</application>, devraient être
|
||||
évités parce qu'ils donnent trop d'informations
|
||||
aux personnes malveillantes.</para>
|
||||
|
||||
<para>Certains “daemon”s n'ont aucune conscience des
|
||||
problèmes de sécurité, ou n'ont pas de
|
||||
délai limite d'expiration pour les tentatives de
|
||||
connexions. Cela permet à une personne malveillante
|
||||
d'envoyer régulièrement et de manière
|
||||
espacée des demandes de connexions à un
|
||||
“daemon” particulier, avec pour conséquence
|
||||
de saturer les ressources disponibles. Cela peut être
|
||||
une bonne idée de placer des limitations
|
||||
<option>nb-max-connexions-par-ip-par-minute</option> et
|
||||
<option>nb-max-enfants</option> sur certains
|
||||
“daemon”s.</para>
|
||||
|
||||
<para>Par défaut, le “TCP wrapping” est
|
||||
activé. Consultez la page de manuel
|
||||
&man.hosts.access.5; pour plus d'information sur le placement
|
||||
de restrictions TCP pour divers “daemon”s
|
||||
invoqués par <application>inetd</application>.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="inetd-misc">
|
||||
<title>Miscellaneous</title>
|
||||
<para></para>
|
||||
<sect2 id="network-inetd-misc">
|
||||
<title>Divers</title>
|
||||
|
||||
<para><application>daytime</application>,
|
||||
<application>time</application>,
|
||||
<application>echo</application>,
|
||||
<application>discard</application>,
|
||||
<application>chargen</application>, et
|
||||
<application>auth</application> sont des services fournis en
|
||||
interne par <application>inetd</application>.</para>
|
||||
|
||||
<para>Le service <application>auth</application> fournit les
|
||||
services réseau d'identification
|
||||
(<application>ident</application>,
|
||||
<application>identd</application>), et est configurable
|
||||
à un certain degré.</para>
|
||||
|
||||
<para>Consultez la page de manuel de &man.inetd.8; pour plus
|
||||
d'informations.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
|
|
Loading…
Reference in a new issue