]> granicus.if.org Git - apache/blob - docs/manual/dns-caveats.xml.fr
Rebuilding with new CSS/JS syntax highlighting stuff turned on.
[apache] / docs / manual / dns-caveats.xml.fr
1 <?xml version="1.0" encoding="ISO-8859-1" ?>
2 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
3 <?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
4 <!-- English Revision : 1174747 -->
5 <!-- French translation : Lucien GENTIS -->
6 <!-- Reviewed by : Vincent Deffontaines -->
7
8 <!--
9  Licensed to the Apache Software Foundation (ASF) under one or more
10  contributor license agreements.  See the NOTICE file distributed with
11  this work for additional information regarding copyright ownership.
12  The ASF licenses this file to You under the Apache License, Version 2.0
13  (the "License"); you may not use this file except in compliance with
14  the License.  You may obtain a copy of the License at
15
16      http://www.apache.org/licenses/LICENSE-2.0
17
18  Unless required by applicable law or agreed to in writing, software
19  distributed under the License is distributed on an "AS IS" BASIS,
20  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21  See the License for the specific language governing permissions and
22  limitations under the License.
23 -->
24
25 <manualpage metafile="dns-caveats.xml.meta">
26
27   <title>Probl&egrave;mes li&eacute;s au DNS avec le serveur HTTP Apache</title>
28
29   <summary>
30     <p>Cette page pourrait se r&eacute;sumer ainsi : configurez le
31     serveur HTTP Apache de fa&ccedil;on
32     &agrave; ce qu'il n'ait pas besoin de r&eacute;solution DNS pour interpr&eacute;ter les
33     fichiers de configuration. Si httpd doit effectuer des r&eacute;solutions
34     DNS pour interpr&eacute;ter les fichiers de configuration, votre serveur
35     pourra pr&eacute;senter des probl&egrave;mes de fiabilit&eacute; (en d'autres termes,
36     il est possible qu'il refuse de d&eacute;marrer), ou d'attaques par d&eacute;ni ou
37     usurpation de service (y compris l'attribution de requ&ecirc;tes &agrave; un
38     serveur virtuel autre que le serveur virtuel voulu).</p>
39   </summary>
40
41   <section id="example">
42     <title>Un exemple simple</title>
43
44     <example>
45       # Cet exemple de configuration est invalide, ne l'utilisez pas comme base
46       # de configuration
47       &lt;VirtualHost www.example.dom&gt; <br />
48       ServerAdmin webgirl@example.dom <br />
49       DocumentRoot /www/example <br />
50       &lt;/VirtualHost&gt;
51     </example>
52
53     <p>Pour fonctionner correctement, le serveur a absolument besoin de deux
54     informations &agrave; propos de chaque serveur virtuel : le nom du serveur
55     d&eacute;fini par la directive <directive
56     module="core">ServerName</directive>, et au moins une adresse IP &agrave;
57     laquelle le serveur va se rattacher et r&eacute;pondre. L'exemple ci-dessus
58     ne comporte pas d'adresse IP, si bien que httpd devra utiliser le
59     DNS pour trouver l'adresse IP de <code>www.example.dom</code>. Si pour
60     une raison quelconque, le DNS n'est pas disponible au moment o&ugrave;
61     votre serveur interpr&egrave;te son fichier de configuration, ce serveur
62     virtuel <strong>ne sera pas pris en compte dans la
63     configuration</strong>. Il sera incapable de
64     r&eacute;pondre &agrave; toute requ&ecirc;te pour ce serveur virtuel.</p>
65
66     <p>Supposons que l'adresse de <code>www.example.dom</code> soit
67     192.0.2.1, et examinons cet extrait de configuration :</p>
68
69     <example>
70       # Cet exemple de configuration est invalide, ne l'utilisez pas comme base
71       # de configuration
72       &lt;VirtualHost 192.0.2.1&gt; <br />
73       ServerAdmin webgirl@example.dom <br />
74       DocumentRoot /www/example <br />
75       &lt;/VirtualHost&gt;
76     </example>
77
78     <p>Cette fois, httpd doit effectuer une recherche DNS inverse pour
79     trouver le nom <code>ServerName</code> de ce serveur virtuel. Si
80     cette recherche inverse &eacute;choue, le serveur virtuel sera
81     partiellement d&eacute;sactiv&eacute;. Si le serveur
82     virtuel est &agrave; base de nom, il sera en fait totalement d&eacute;sactiv&eacute;,
83     mais s'il est &agrave; base d'adresse IP, il fonctionnera probablement.
84     Cependant, httpd &eacute;chouera s'il doit g&eacute;n&eacute;rer une URL compl&egrave;te pour
85     le serveur qui inclut ce nom de serveur (comme dans le cas d'une
86     redirection).</p>
87
88     <p>Voici un extrait de configuration qui permet d'&eacute;viter ces deux
89     types de probl&egrave;mes :</p>
90
91     <example>
92       &lt;VirtualHost 192.0.2.1&gt; <br />
93       ServerName www.example.dom <br />
94       ServerAdmin webgirl@example.dom <br />
95       DocumentRoot /www/example <br />
96       &lt;/VirtualHost&gt;
97     </example>
98   </section>
99
100   <section id="denial">
101     <title>D&eacute;ni de service</title>
102
103     <p>Consid&eacute;rons cet extrait de configuration :</p>
104
105     <example>
106       &lt;VirtualHost www.example1.dom&gt;<br />
107       <indent>
108         ServerAdmin webgirl@example1.dom<br />
109         DocumentRoot /www/example1<br />
110       </indent>
111       &lt;/VirtualHost&gt;<br />
112       <br />
113       &lt;VirtualHost www.example2.dom&gt;<br />
114       <indent>
115         ServerAdmin webguy@example2.dom<br />
116         DocumentRoot /www/example2<br />
117       </indent>
118       &lt;/VirtualHost&gt;
119     </example>
120
121     <p>Supposons que vous ayez assign&eacute; 192.0.2.1 &agrave;
122     <code>www.example1.dom</code> et 192.0.2.2 &agrave; <code>www.example2.dom</code>. En
123     outre, supposons que <code>example1.dom</code> g&egrave;re son propre DNS. Avec
124     cette configuration, <code>example1.dom</code> sera en mesure de
125     d&eacute;tourner tout trafic destin&eacute; &agrave; <code>example2.dom</code>. Pour y
126     parvenir, tout ce qu'ils ont &agrave; faire consiste &agrave;
127     assigner 192.0.2.2 &agrave;
128     <code>www.example1.dom</code>. Comme ils g&egrave;rent leur propre DNS, vous ne
129     pouvez pas les emp&ecirc;cher de faire pointer l'enregistrement
130     <code>www.example1.dom</code> vers l'adresse qu'ils veulent.</p>
131
132     <p>Les requ&ecirc;tes &agrave; destination de 192.0.2.2 (y compris toutes celles
133     o&ugrave; l'utilisateur &agrave; tap&eacute; une URL de la forme
134     <code>http://www.example2.dom/quelquepart</code>), seront toutes servies
135     par le serveur virtuel <code>example1.dom</code>. Une meilleur
136     compr&eacute;hension de la raison pour laquelle ceci peut se produire
137     n&eacute;cessite une discussion plus approfondie &agrave; propos de la mani&egrave;re
138     dont httpd associe les requ&ecirc;tes entrantes aux diff&eacute;rents serveurs
139     virtuels qui vont les servir. Un document de base d&eacute;crivant ceci <a
140     href="vhosts/details.html">est disponible</a>.</p>
141   </section>
142
143   <section id="main">
144     <title>L'adresse du "serveur principal"</title>
145
146     <p><a href="vhosts/name-based.html">Le support des
147     serveurs virtuels &agrave; base de nom</a> oblige httpd &agrave;
148     conna&icirc;tre la/les adresse(s) IP de l'h&ocirc;te sur
149     lequel <program>httpd</program> s'ex&eacute;cute. Pour obtenir cette
150     adresse, soit il utilise la directive <directive
151     module="core">ServerName</directive> globale (si elle est pr&eacute;sente),
152     soit il fait appel &agrave; la fonction C <code>gethostname</code> (qui
153     doit renvoyer le m&ecirc;me nom que la commande shell "hostname"). Il
154     effectue ensuite une recherche DNS sur cette adresse. Pour le
155     moment, il n'existe aucun moyen d'&eacute;viter cette recherche DNS.</p>
156
157     <p>Si vous craignez que cette recherche DNS &eacute;choue parce que votre
158     serveur DNS est arr&ecirc;t&eacute;, vous pouvez ins&eacute;rer le nom d'h&ocirc;te dans le
159     fichier <code>/etc/hosts</code> (o&ugrave; il est probablement d&eacute;j&agrave;
160     enregistr&eacute; afin que la machine d&eacute;marre correctement). Assurez-vous
161     ensuite que la machine est configur&eacute;e pour utiliser
162     <code>/etc/hosts</code> dans le cas o&ugrave; la recherche DNS &eacute;choue.
163     Suivant le syst&egrave;me d'exploitation que vous utilisez, vous y
164     parviendrez en &eacute;ditant <code>/etc/resolv.conf</code>, ou
165     <code>/etc/nsswitch.conf</code>.</p>
166
167     <p>Si votre serveur n'a aucune autre raison d'effectuer des
168     recherches DNS, vous pouvez d&eacute;finir la variable d'environnement
169     <code>HOSTRESORDER</code> &agrave; "local", et vous serez alors en mesure
170     d'ex&eacute;cuter httpd. Tout d&eacute;pend du syst&egrave;me d'exploitation et des
171     biblioth&egrave;ques de r&eacute;solution de noms que vous utilisez. Elle affecte
172     aussi les programmes CGI, &agrave; moins que vous n'utilisiez
173     <module>mod_env</module> pour contr&ocirc;ler l'environnement. Il est
174     conseill&eacute; de consulter les pages de manuel ou les FAQs de votre
175     syst&egrave;me d'exploitation.</p>
176   </section>
177
178   <section id="tips">
179     <title>Conseils pour &eacute;viter ce genre de probl&egrave;me</title>
180
181     <ul>
182       <li>
183         utilisez des adresses IP au sein des <directive
184         module="core">VirtualHost</directive>
185       </li>
186
187       <li>
188         utilisez des adresses IP avec la directive <directive
189         module="mpm_common">Listen</directive>
190       </li>
191
192       <li>
193         v&eacute;rifiez que tous les serveurs virtuels poss&egrave;dent un nom
194         <directive module="core">ServerName</directive> explicite
195       </li>
196
197       <li>cr&eacute;ez un serveur virtuel <code>&lt;VirtualHost
198       _default_:*&gt;</code> qui n'a aucune page &agrave; servir</li>
199     </ul>
200   </section>
201
202 </manualpage>