diff --git a/fr_FR.ISO8859-1/books/handbook/advanced-networking/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/advanced-networking/chapter.sgml index 0fc15855fb..794a7e4cee 100644 --- a/fr_FR.ISO8859-1/books/handbook/advanced-networking/chapter.sgml +++ b/fr_FR.ISO8859-1/books/handbook/advanced-networking/chapter.sgml @@ -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>