Add a new translated section (Inetd).

This commit is contained in:
Marc Fonvieille 2004-04-07 19:14:23 +00:00
parent 98b506b8a9
commit 4e6ce4d0e7
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=20583

View file

@ -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 &ldquo;super-serveur&rdquo;
<application>inetd</application></title>
<sect2 id="network-inetd-overview">
<title>Overview</title>
<para></para>
<title>G&eacute;n&eacute;ralit&eacute;s</title>
<para>On fait souvent r&eacute;f&eacute;rence &agrave;
&man.inetd.8; comme &eacute;tant le &ldquo;super-serveur
Internet&rdquo; parce qu'il g&eacute;re les connexions pour
plusieurs &ldquo;daemons&rdquo;. Les programmes assurant des
services r&eacute;seau sont g&eacute;n&eacute;ralement connus
sous le nom de &ldquo;daemon&rdquo;.
<application>inetd</application> joue le r&ocirc;le de serveur
de r&eacute;gulateur pour les autres &ldquo;daemon&rdquo;s.
Quand une connexion est re&ccedil;ue par
<application>inetd</application>, ce dernier d&eacute;termine
&agrave; quel &ldquo;daemon&rdquo; la connexion est
destin&eacute;e, invoque le &ldquo;daemon&rdquo; en question
et lui d&eacute;l&egrave;gue la &ldquo;socket&rdquo;.
Ex&eacute;cuter une instance
d'<application>inetd</application> r&eacute;duit la charge
syst&egrave;me globale par rapport &agrave; l'ex&eacute;cution
de chaque &ldquo;daemon&rdquo; individuellement en mode
autonome.</para>
<para><application>inetd</application> est utilis&eacute; pour
invoquer d'autres &ldquo;daemon&rdquo;s, mais plusieurs
protocoles triviaux sont g&eacute;r&eacute;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> &agrave; 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&eacute; par
l'interm&eacute;diaire du syst&egrave;me
<filename>/etc/rc.conf</filename>. L'option
<literal>inetd_enable</literal> est positionn&eacute;e
&agrave; la valeur <literal>NO</literal> par d&eacute;faut,
mais est activ&eacute;e par
<application>sysinstall</application> avec le profil de
s&eacute;curit&eacute; mod&eacute;r&eacute;. Placer
<programlisting>inetd_enable="YES"</programlisting> ou
<programlisting>inetd_enable="NO"</programlisting> dans
<filename>/etc/rc.conf</filename> peut activer ou
d&eacute;sactiver le d&eacute;marrage
d'<application>inetd</application> &agrave; la mise en route
du syst&egrave;me.</para>
<para>De plus, diff&eacute;rentes options de ligne de commande
peuvent &ecirc;tre pass&eacute;es &agrave;
<application>inetd</application> par l'interm&eacute;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&eacute;bogage.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-l</term>
<listitem>
<para>Active le journal des connexions
r&eacute;ussies.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-w</term>
<listitem>
<para>Active le &ldquo;TCP Wrapping&rdquo; pour les
services externes (actif par d&eacute;faut).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-W</term>
<listitem>
<para>Active le &ldquo;TCP Wrapping&rdquo; pour les
services internes qui font partie
d'<application>inetd</application> (actif par
d&eacute;faut).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-c maximum</term>
<listitem>
<para>Sp&eacute;cifie le nombre maximal par d&eacute;faut
d'invocations simultan&eacute;es pour chaque service; il
n'y a pas de limite par d&eacute;faut. Cette option peut
&ecirc;tre surcharg&eacute;e pour chaque service &agrave;
l'aide du param&egrave;tre
<option>nb-max-enfants</option>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-C taux</term>
<listitem>
<para>Pr&eacute;cise le nombre maximal de fois qu'un
service peut &ecirc;tre invoqu&eacute; &agrave; partir
d'une unique adresse IP et cela sur une minute. Ce
param&egrave;tre peut &ecirc;tre configur&eacute;
diff&eacute;remment pour chaque service avec le
param&egrave;tre
<option>nb-max-connexions-par-ip-par-minute</option>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-R taux</term>
<listitem>
<para>Pr&eacute;cise le nombre maximal de fois qu'un
service peut &ecirc;tre invoqu&eacute; par minute; la
valeur par d&eacute;faut est 256. Un taux de 0 autorise
un nombre illimit&eacute; 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
&ecirc;tre utilis&eacute;, dans ce cas l'adresse IPv4 ou
IPv6 correspondant &agrave; la machine sera
utilis&eacute;e. G&eacute;n&eacute;ralement, un nom de
machine est pr&eacute;cis&eacute; quand
<application>inetd</application> est ex&eacute;cut&eacute;
&agrave; l'int&eacute;rieur d'un environnement
&man.jail.8;, dans quel cas le nom de machine correspond
&agrave; l'environnement &man.jail.8;.</para>
<para>Quand un nom de machine est utilis&eacute; et que
l'on doit &ecirc;tre &agrave; l'&eacute;coute sur une
adresse IPv4 et IPv6, une entr&eacute;e avec le
protocole adapt&eacute; pour chaque type d'adresse est
n&eacute;cessaire pour chaque service dans
<filename>/etc/inetd.conf</filename>. Par exemple, un
service de type TCP n&eacute;cessitera deux
entr&eacute;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&eacute;cifie un fichier diff&eacute;rent dans
lequel stocker l'indentifiant du processus.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Ces options peuvent &ecirc;tre pass&eacute;es &agrave;
<application>inetd</application> en utilisant l'option
<literal>inetd_flags</literal> de
<filename>/etc/rc.conf</filename>. Par d&eacute;faut,
<literal>inetd_flags</literal> est positionn&eacute; &agrave;
<literal>-wW</literal>, ce qui active le &ldquo;TCP
wrapping&rdquo; pour les services internes et externes
d'<application>inetd</application>. Pour un utilisateur de
base ces param&egrave;tres ne doivent
g&eacute;n&eacute;ralement pas &ecirc;tre modifi&eacute;s ou
m&ecirc;me ajout&eacute;s au fichier
<filename>/etc/rc.conf</filename>.</para>
<note>
<para>Un service externe est un &ldquo;daemon&rdquo;
ind&eacute;pendant d'<application>inetd</application>, qui est
invoqu&eacute; quand une connexion lui &eacute;tant
destin&eacute;e est re&ccedil;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&eacute;diaire du fichier
<filename>/etc/inetd.conf</filename>.</para>
<para>Quand le fichier <filename>/etc/inetd.conf</filename> est
modifi&eacute;, <application>inetd</application> peut
&ecirc;tre forc&eacute; de relire son fichier de configuration
en envoyant un signal &ldquo;HangUP&rdquo; au processus
<application>inetd</application> comme suit:</para>
<example id="network-inetd-hangup">
<title>Envoyer un signal &ldquo;HangUP&rdquo; &agrave;
<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 &ldquo;daemon&rdquo;. Les commentaires dans le
fichier sont pr&eacute;c&eacute;d&eacute;s par un
&ldquo;#&rdquo;. 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&eacute;e pour le &ldquo;daemon&rdquo;
<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 &ldquo;daemon&rdquo; en
question. Il doit correspondre &agrave; un des services
list&eacute;s dans le fichier
<filename>/etc/services</filename>. Cela d&eacute;termine
quel port <application>inetd</application> doit
&eacute;couter. Si un nouveau service est
cr&eacute;&eacute;, il doit &ecirc;tre ajout&eacute; 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 &ecirc;tre utilis&eacute; pour les
&ldquo;daemon&rdquo;s TCP, alors que
<literal>dgram</literal> est utilis&eacute; pour les
&ldquo;daemon&rdquo;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
&ldquo;daemon&rdquo; invoqu&eacute; par
<application>inetd</application> est capable ou non de
g&eacute;rer sa propre &ldquo;socket&rdquo;. Les
&ldquo;socket&rdquo;s de type <option>dgram</option>
doivent utiliser l'option <option>wait</option>, alors
que les &ldquo;daemons &agrave; socket stream&rdquo;,
qui sont g&eacute;n&eacute;ralement
multi-thread&eacute;s, devraient utiliser
<option>nowait</option>. L'option <option>wait</option>
a g&eacute;n&eacute;ralement pour cons&eacute;quence de
fournir plusieurs &ldquo;socket&rdquo;s &agrave; un
&ldquo;daemon&rdquo;, tandis que l'option
<option>nowait</option> invoquera un
&ldquo;daemon&rdquo; enfant pour chaque nouvelle
&ldquo;socket&rdquo;.</para>
<para>Le nombre maximal de &ldquo;daemon&rdquo;s
qu'<application>inetd</application> peut invoquer peut
&ecirc;tre fix&eacute; en utilisant l'option
<option>nb-max-enfants</option>. Si une limite de dix
instances pour un &ldquo;daemon&rdquo; est
n&eacute;cessaire, <literal>/10</literal> devra
&ecirc;tre plac&eacute; apr&egrave;s
<option>nowait</option>.</para>
<para>En plus de <option>nb-max-enfants</option>, une
autre option limitant le nombre maximal de connexions
&agrave; partir d'un emplacement vers un
&ldquo;daemon&rdquo; particulier peut &ecirc;tre
activ&eacute;e. L'option
<option>nb-max-connexions-par-ip-par-minute</option> est
l'option en question. Ici, une valeur de dix limiterait
&agrave; dix le nombre de tentatives de connexions par
minute pour une adresse IP particuli&egrave;re. C'est
utile pour emp&ecirc;cher l'abus intentionnel ou par
inadvertance des ressources et les attaques par
d&eacute;ni de service (&ldquo;Denial of
Service&mdash;DOS&rdquo;).</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 &ldquo;daemon&rdquo; utilisant un flux de type
multi-thread&eacute; sans limites
<option>nb-max-enfants</option> ou
<option>nb-max-connexions-par-ip-par-minute</option>
sera tout simplement affect&eacute; de l'option
<literal>nowait</literal>.</para>
<para>Le m&ecirc;me &ldquo;daemon&rdquo; avec une limite
maximale de dix &ldquo;daemon&rdquo; serait:
<literal>nowait/10</literal>.</para>
<para>De plus, la m&ecirc;me configuration avec une limite
de vingt connexions par adresse IP par minute et une
limite maximale de dix &ldquo;daemon&rdquo;s enfant
serait: <literal>nowait/10/20</literal>.</para>
<para>Ces options sont utilis&eacute;es comme valeurs par
d&eacute;faut par le &ldquo;daemon&rdquo;
<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
&ldquo;daemon&rdquo; en question est
ex&eacute;cut&eacute;. En g&eacute;n&eacute;ral les
&ldquo;daemon&rdquo;s tournent sous l'utilisateur
<username>root</username>. Pour des questions de
s&eacute;curit&eacute;, il est courant de rencontrer des
serveurs tournant sous l'utilisateur
<username>daemon</username>, ou sous l'utilisateur avec
le moins de privil&egrave;ges:
<username>nobody</username>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>programme-serveur</term>
<listitem>
<para>Le chemin complet du &ldquo;daemon&rdquo; qui doit
&ecirc;tre ex&eacute;cut&eacute; quand une requ&ecirc;te
est re&ccedil;ue. Si le &ldquo;daemon&rdquo; est un
service fourni en interne par
<application>inetd</application>, alors l'option
<option>internal</option> devrait &ecirc;tre
utilis&eacute;e.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>arguments-programme-serveur</term>
<listitem>
<para>Cette option va de pair avec
<option>programme-serveur</option> en pr&eacute;cisant
les arguments, en commen&ccedil;ant avec
<literal>argv[0]</literal>, pass&eacute;s au
&ldquo;daemon&rdquo; 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 &eacute;galement, si le &ldquo;daemon&rdquo; 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&eacute;curit&eacute;</title>
<para>En fonction du profil de s&eacute;curit&eacute; choisi
&agrave; l'installation, plusieurs &ldquo;daemon&rdquo;s
peuvent &ecirc;tre activ&eacute;s par d&eacute;faut. S'il n'y
a pas de raison particuli&egrave;re &agrave; l'utilisation
d'un &ldquo;daemon&rdquo;, d&eacute;sactivez-le! Ajoutez un
caract&egrave;re &ldquo;#&rdquo; devant le
&ldquo;daemon&rdquo; en question, et envoyer un <link
linkend="network-inetd-hangup">signal hangup &agrave;
inetd</link>. Certains &ldquo;daemon&rdquo;s comme
<application>fingerd</application>, devraient &ecirc;tre
&eacute;vit&eacute;s parce qu'ils donnent trop d'informations
aux personnes malveillantes.</para>
<para>Certains &ldquo;daemon&rdquo;s n'ont aucune conscience des
probl&egrave;mes de s&eacute;curit&eacute;, ou n'ont pas de
d&eacute;lai limite d'expiration pour les tentatives de
connexions. Cela permet &agrave; une personne malveillante
d'envoyer r&eacute;guli&egrave;rement et de mani&egrave;re
espac&eacute;e des demandes de connexions &agrave; un
&ldquo;daemon&rdquo; particulier, avec pour cons&eacute;quence
de saturer les ressources disponibles. Cela peut &ecirc;tre
une bonne id&eacute;e de placer des limitations
<option>nb-max-connexions-par-ip-par-minute</option> et
<option>nb-max-enfants</option> sur certains
&ldquo;daemon&rdquo;s.</para>
<para>Par d&eacute;faut, le &ldquo;TCP wrapping&rdquo; est
activ&eacute;. Consultez la page de manuel
&man.hosts.access.5; pour plus d'information sur le placement
de restrictions TCP pour divers &ldquo;daemon&rdquo;s
invoqu&eacute;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&eacute;seau d'identification
(<application>ident</application>,
<application>identd</application>), et est configurable
&agrave; un certain degr&eacute;.</para>
<para>Consultez la page de manuel de &man.inetd.8; pour plus
d'informations.</para>
</sect2>
</sect1>