Add a new translated section.

This commit is contained in:
Marc Fonvieille 2008-09-28 20:08:43 +00:00
parent 0678df027c
commit 458b09001e
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=32977

View file

@ -963,9 +963,281 @@ permit port ttyd0</programlisting>
<indexterm><primary>TCP Wrappers</primary></indexterm>
<title>TCP Wrappers ** Traduction en Cours **</title>
<title>L'encapsuleur TCP (<quote>TCP Wrappers</quote>)</title>
<para></para>
<para>Toute personne famili&egrave;re avec &man.inetd.8; a
probablement entendu parl&eacute; &agrave; un moment ou &agrave;
un autre de l'encapsuleur <acronym>TCP</acronym> (<quote>TCP
Wrappers</quote>). Mais peu sont ceux qui semblent saisir
compl&egrave;tement son int&eacute;r&ecirc;t dans un
r&eacute;seau. Il semble que tout le monde d&eacute;sire
installer un coupe-feu pour contr&ocirc;ler les connexions
r&eacute;seaux. Alors qu'un coupe-feu peut avoir de nombreuses
utilisations, il existe des choses qu'un coupe-feu ne peut
g&eacute;rer comme renvoyer un message &agrave; l'initiateur
d'une connexion. L'encapsuleur <acronym>TCP</acronym> en est
capable ainsi que bien d'autres choses. Dans les sections
suivantes plusieurs fonctionnalit&eacute;s de l'encapsuleur
<acronym>TCP</acronym> seront abord&eacute;es, et, d&egrave;s
que ce sera possible, un exemple de configuration sera
propos&eacute;.</para>
<para>L'encapsuleur <acronym>TCP</acronym> &eacute;tend les
capacit&eacute;s d'<application>inetd</application> au niveau du
support pour chaque serveur sous son contr&ocirc;le. En
utilisant cette m&eacute;thode il est possible d'offrir le
support des ouvertures de session, de retourner des messages
lors des connexions, de permettre &agrave; un
<quote>daemon</quote> de n'accepter que les connexions internes,
etc. Bien que certaines de ces fonctionnalit&eacute;s peuvent
&ecirc;tre obtenues par l'impl&eacute;mentation d'un coupe-feu,
ce syst&egrave;me ajoutera non seulement une couche
suppl&eacute;mentaire de protection mais ira plus loin dans le
contr&ocirc;le que ce que peut fournir un coupe-feu.</para>
<para>Les fonctionnalit&eacute;s apport&eacute;es par
l'encapsuleur <acronym>TCP</acronym> ne peuvent se substituer
&agrave; l'utilisation d'un bon coupe-feu. L'encapsuleur
<acronym>TCP</acronym> peut &ecirc;tre utilis&eacute; de paire
avec un coupe-feu ou tout autre syst&egrave;me de
s&eacute;curit&eacute; et il pourra alors servir comme une
couche suppl&eacute;mentaire de protection pour le
syst&egrave;me.</para>
<para>Etant donn&eacute; que ce programme est une extension
&agrave; la configuration du programme
<application>inetd</application>, le lecteur est suppos&eacute;
avoir pris connaissance de la section de <link
linkend="network-inetd">configuration d'inetd</link>.</para>
<note>
<para>Bien que les programmes lanc&eacute;s par &man.inetd.8; ne
soient pas tout &agrave; fait des <quote>daemons</quote>, ils
sont traditionnellement appel&eacute;s <quote>daemons</quote>.
C'est le terme que nous utiliserons &eacute;galement dans le
reste de cette section.</para>
</note>
<sect2>
<title>Configuration initiale</title>
<para>Le seul pr&eacute;-requis &agrave; l'utilisation de
l'encapsuleur <acronym>TCP</acronym> sous &os; est de
s'assurer que le serveur <application>inetd</application> est
lanc&eacute; &agrave; partir de <filename>rc.conf</filename>
avec l'option <option>-Ww</option>; c'est la configuration par
d&eacute;faut. Bien &eacute;videmment une configuration
correcte du fichier <filename>/etc/hosts.allow</filename> est
&eacute;galement sous-entendue, mais dans le cas contraire
&man.syslogd.8; &eacute;mettra des messages d'avertissement
dans les journaux du syst&egrave;me.</para>
<note>
<para>Contrairement &agrave; d'autres impl&eacute;mentations
de l'encapsuleur <acronym>TCP</acronym>, l'emploi du fichier
<filename>hosts.deny</filename> est obsol&egrave;te. Toutes
les options de configuration doivent &ecirc;tre
plac&eacute;es dans le fichier
<filename>/etc/hosts.allow</filename>.</para>
</note>
<para>Dans la configuration la plus simple, la politique de
connexion aux <quote>daemons</quote> est soit de tout
autoriser ou soit de tout bloquer en fonctions des options
choisies dans <filename>/etc/hosts.allow</filename>. La
configuration par d&eacute;faut sous &os; est d'autoriser les
connexions &agrave; chaque <quote>daemon</quote> lanc&eacute;
&agrave; l'aide d'<application>inetd</application>. La
modification de ce r&eacute;glage par d&eacute;faut sera
discut&eacute;e une fois que la configuration de base aura
&eacute;t&eacute; vue.</para>
<para>Une configuration de base prend en g&eacute;n&eacute;ral
la forme <literal>daemon : adresse : action</literal>.
O&ugrave; <literal>daemon</literal> est le nom du
<quote>daemon</quote> lanc&eacute; par
<application>inetd</application>.
L'<literal>adresse</literal> peut &ecirc;tre un nom de machine
valide, une adresse <acronym>IP</acronym> ou une adresse IPv6
entre crochets ([&nbsp;]). Le champ <literal>action</literal>
pourra avoir comme valeur <literal>allow</literal> ou
<literal>deny</literal> pour autoriser ou interdire
l'acc&egrave;s. Gardez &agrave; l'esprit que ce type de
configuration fonctionne de mani&egrave;re &agrave; honorer la
premi&egrave;re r&egrave;gle s&eacute;mantique correspondante,
cela signifie que le fichier de configuration est parcouru
&agrave; la recherche d'une r&egrave;gle correspondant
&agrave; la requ&ecirc;te. Quand une correspondance est
trouv&eacute;e, la r&egrave;gle est appliqu&eacute;e et la
recherche s'arr&ecirc;te.</para>
<para>Plusieurs autres options existent mais elles seront
expos&eacute;es dans une section ult&eacute;rieure. Une
simple ligne de configuration peut &ecirc;tre construite avec
peu d'information. Par exemple, pour autoriser les connexions
<acronym>POP</acronym>3 via le <quote>daemon</quote> <filename
role="package">mail/qpopper</filename>, les lignes suivantes
doivent &ecirc;tre ajout&eacute;es au fichier
<filename>hosts.allow</filename>:</para>
<programlisting># This line is required for POP3 connections:
qpopper : ALL : allow</programlisting>
<para>Apr&egrave;s l'ajout de cette ligne,
<application>inetd</application> devra &ecirc;tre
red&eacute;marr&eacute;. Cela sera fait en utilisant la
commande &man.kill.1;, ou avec le passage du param&egrave;tre
<parameter>restart</parameter> &agrave; la commande
<filename>/etc/rc.d/inetd</filename>.</para>
</sect2>
<sect2>
<title>Configuration avanc&eacute;e</title>
<para>L'encapsuleur <acronym>TCP</acronym> dispose
&eacute;galement d'options avanc&eacute;es; elles permettrons
plus de contr&ocirc;le sur la mani&egrave;re dont sont
g&eacute;r&eacute;es les connexions. Dans certains cas cela
peut &ecirc;tre une bonne id&eacute;e de renvoyer un
commentaire &agrave; certaines machines ou lors de connexions
&agrave; certains <quote>daemon</quote>s. Dans d'autres cas,
peut-&ecirc;tre qu'un fichier journal pourrait &ecirc;tre
enregistr&eacute; ou un courrier &eacute;lectronique pourrait
&ecirc;tre envoy&eacute; &agrave; l'administrateur. D'autres
situations peuvent n&eacute;cessiter l'utilisation d'un
service uniquement pour les connexions locales. Tout cela est
possible &agrave; l'aide des options de configuration connues
sous le nom de <literal>jokers</literal>, caract&egrave;res
d'expansion et d'ex&eacute;cution de commandes externes. Les
deux sections suivantes abordent ces situations.</para>
<sect3>
<title>Commandes externes</title>
<para>Imaginez une situation dans laquelle une connexion doit
&ecirc;tre refus&eacute;e et que la raison de ce refus doit
&ecirc;tre envoy&eacute;e &agrave; la personne qui a
tent&eacute; d'&eacute;tablir cette connexion. Comment cela
peut-il &ecirc;tre mis en place? Ce type d'action est rendu
possible par l'emploi de l'option <option>twist</option>.
Quand une tentative de connexion est faite,
<option>twist</option> sera appel&eacute;e pour
ex&eacute;cuter une commande ou une proc&eacute;dure
d'interpr&eacute;teur de commande. Un exemple est
d&eacute;j&agrave; pr&eacute;sent dans le fichier
<filename>hosts.allow</filename>:</para>
<programlisting># The rest of the daemons are protected.
ALL : ALL \
: severity auth.info \
: twist /bin/echo "You are not welcome to use %d from %h."</programlisting>
<para>Cet exemple montre que le message <quote>You are not
allowed to use <literal>daemon</literal> from
<literal>hostname</literal>.</quote> sera retourn&eacute;
pour tout <quote>daemon</quote> qui n'a pas
&eacute;t&eacute; pr&eacute;c&eacute;demment
configur&eacute; dans le fichier d'acc&egrave;s. Cette
fonction est tr&egrave;s utile pour envoyer une
r&eacute;ponse &agrave; l'initiateur de la connexion juste
apr&egrave;s le refus de la connexion. Notez que tout
message &agrave; retourner <emphasis>doit</emphasis>
&ecirc;tre plac&eacute; entre des guillemets
<literal>"</literal>; il n'y a pas d'exception possible
&agrave; cette r&egrave;gle.</para>
<warning>
<para>Il est possible de lancer une attaque par d&eacute;ni
de service sur le serveur si un agresseur, ou un groupe
d'agresseurs sont en mesure de submerger ces
<quote>daemon</quote>s avec des demandes de
connexion.</para>
</warning>
<para>Une autre possibilit&eacute; dans ce cas est d'employer
l'option <option>spawn</option>. Tout comme l'option
<option>twist</option>, <option>spawn</option> interdit
implicitement les connexions et peut &ecirc;tre
utilis&eacute;e pour lancer une commande ou une
proc&eacute;dure externe. Contrairement &agrave;
<option>twist</option>, <option>spawn</option> n'enverra pas
de r&eacute;ponse &agrave; la personne qui a &eacute;tabli
la connexion. Examinons par exemple la ligne de
configuration suivante:</para>
<programlisting># We do not allow connections from example.com:
ALL : .example.com \
: spawn (/bin/echo %a from %h attempted to access %d &gt;&gt; \
/var/log/connections.log) \
: deny</programlisting>
<para>Cela interdira toute tentative de connexion &agrave;
partir du domaine <hostid
role="fqdn">*.example.com</hostid>, enregistrant
simultan&eacute;ment dans le fichier
<filename>/var/log/connections.log</filename> le nom de
machine, l'adresse <acronym>IP</acronym> et le
<quote>daemon</quote> auquel on tente
d'acc&eacute;der.</para>
<para>Il existe d'autres caract&egrave;res de substitution en
dehors de ceux d&eacute;j&agrave; pr&eacute;sent&eacute;s,
par exemple <literal>%a</literal>. Consultez la page de
manuel &man.hosts.access.5; pour une liste
compl&egrave;te.</para>
</sect3>
<sect3>
<title>Les options jokers</title>
<para>Jusqu'ici l'option <literal>ALL</literal> a
&eacute;t&eacute; utilis&eacute;e dans tous les exemples.
Il existe d'autres options pour &eacute;tendre un peu plus
les fonctionnalit&eacute;s. Par exemple, l'option
<literal>ALL</literal> peut &ecirc;tre utilis&eacute;e pour
prendre en compte chaque instance d'un
<quote>daemon</quote>, d'un domaine ou d'une adresse
<acronym>IP</acronym>. Un autre joker disponible est
l'option <literal>PARANOID</literal> qui peut &ecirc;tre
employ&eacute;e pour prendre en compte toute machine qui
fournirait une adresse <acronym>IP</acronym> susceptible
d'&ecirc;tre falsifi&eacute;e. En d'autres termes, l'option
<literal>PARANOID</literal> peut &ecirc;tre utilis&eacute;e
pour d&eacute;finir l'action a effectuer d&egrave;s qu'une
connexion se fait &agrave; partir d'une adresse
<acronym>IP</acronym> qui diff&egrave;re de celle
attach&eacute;e &agrave; une machine. L'exemple suivant
apporte un &eacute;clairage sur cette option:</para>
<programlisting># Block possibly spoofed requests to sendmail:
sendmail : PARANOID : deny</programlisting>
<para>Dans cet exemple, toutes les requ&ecirc;tes de connexion
&agrave; <application>sendmail</application> &agrave; partir
d'adresses <acronym>IP</acronym> diff&eacute;rentes de celle
correspondant au nom de la machine seront
refus&eacute;es.</para>
<caution>
<para>Utiliser l'option <literal>PARANOID</literal> peut
gravement paralyser les serveurs si le client ou le
serveur a une configuration de <acronym>DNS</acronym>
d&eacute;fectueuse. Les administrateurs sont maintenant
pr&eacute;venus.</para>
</caution>
<para>Pour en apprendre plus sur les jokers et leurs
fonctionnalit&eacute;s associ&eacute;es, consultez la page
de manuel &man.hosts.access.5;.</para>
<para>Avant que n'importe quelle des lignes de configuration
donn&eacute;es ci-dessus ne fonctionne, la premi&egrave;re
ligne de configuration du fichier
<filename>hosts.allow</filename> devra &ecirc;tre
d&eacute;-comment&eacute;e. Cela a &eacute;t&eacute;
not&eacute; en d&eacute;but de section.</para>
</sect3>
</sect2>
</sect1>
<sect1 id="kerberosIV">