bottleneck testcase based on rubbos
[bottlenecks.git] / rubbos / app / apache2 / manual / dns-caveats.html.fr
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head><!--
4         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5               This file is generated from xml source: DO NOT EDIT
6         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7       -->
8 <title>Problèmes DNS avec Apache - Serveur Apache HTTP</title>
9 <link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
12 <link href="./images/favicon.ico" rel="shortcut icon" /></head>
13 <body id="manual-page"><div id="page-header">
14 <p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/directives.html">Directives</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a></p>
15 <p class="apache">Serveur Apache HTTP Version 2.0</p>
16 <img alt="" src="./images/feather.gif" /></div>
17 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
18 <div id="path">
19 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="./">Version 2.0</a></div><div id="page-content"><div id="preamble"><h1>Problèmes DNS avec Apache</h1>
20 <div class="toplang">
21 <p><span>Langues Disponibles: </span><a href="./en/dns-caveats.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
22 <a href="./es/dns-caveats.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
23 <a href="./fr/dns-caveats.html" title="Français">&nbsp;fr&nbsp;</a> |
24 <a href="./ja/dns-caveats.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
25 <a href="./ko/dns-caveats.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
26 <a href="./tr/dns-caveats.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
27 </div>
28
29     <p>L'ensemble de cette page pourrait se résumer à la phrase&nbsp;: ne 
30     jamais configurer Apache de telle sorte qu'il s'appuie sur des 
31     résolutions DNS pour parcourir ses fichiers de configuration. 
32     Une telle configuration risque d'engendrer des problèmes de 
33     fiabilité (le serveur peut ne pas démarrer), des attaques de type 
34     déni et de vol de service (comme par exemple des utilisateurs volant 
35     les hits d'autres utilisateurs).</p>
36   </div>
37 <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#example">Un exemple simple</a></li>
38 <li><img alt="" src="./images/down.gif" /> <a href="#denial">Déni de Service</a></li>
39 <li><img alt="" src="./images/down.gif" /> <a href="#main">L'Adresse du "serveur principal"</a></li>
40 <li><img alt="" src="./images/down.gif" /> <a href="#tips">Comment éviter ces problèmes</a></li>
41 <li><img alt="" src="./images/down.gif" /> <a href="#appendix">Appendice: Perspectives futures</a></li>
42 </ul></div>
43 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
44 <div class="section">
45 <h2><a name="example" id="example">Un exemple simple</a></h2>
46     
47
48     <div class="example"><p><code>
49       &lt;VirtualHost www.abc.dom&gt; <br />
50       ServerAdmin webgirl@abc.dom <br />
51       DocumentRoot /www/abc <br />
52       &lt;/VirtualHost&gt;
53     </code></p></div>
54
55     <p>Pour qu'Apache fonctionne correctement, il a absolument besoin 
56     de deux informations pour chacun de ses serveurs virtuels&nbsp;:
57     <code class="directive"><a href="./mod/core.html#servername">ServerName</a></code> ainsi qu'au moins une
58     adresse IP à laquelle le serveur s'attachera pour répondre.
59     L'exemple ci-dessus ne précise pas l'adresse IP, si bien qu'Apache doit
60     utiliser le DNS pour trouver l'adresse de <code>www.abc.dom</code>. 
61     Si, pour une raison ou une autre, le DNS ne fonctionne pas au moment 
62     où Apache lit ses fichiers de configuration, le serveur virtuel 
63     <strong>ne sera pas configuré</strong>. Il sera incapable de répondre 
64     aux requêtes. Jusqu'à la version 1.2, Apache refusait même de 
65     démarrer dans ce cas de figure.</p>
66
67     <p>Prenons le cas où l'adresse de <code>www.abc.dom</code> est 10.0.0.1 
68     et considérons cet extrait de configuration&nbsp;:</p>
69
70     <div class="example"><p><code>
71       &lt;VirtualHost 10.0.0.1&gt; <br />
72       ServerAdmin webgirl@abc.dom <br />
73       DocumentRoot /www/abc <br />
74       &lt;/VirtualHost&gt;
75     </code></p></div>
76
77     <p>Cette fois, Apache a besoin d'utiliser la résolution DNS 
78     inversée pour déterminer le nom <code>ServerName</code> de ce 
79     serveur virtuel. Si cette résolution n'aboutit pas, le serveur 
80     virtuel sera partiellement mis hors service (jusqu'à la version 
81     1.2, Apache refusait même de démarrer dans ce cas de figure). Si 
82     le serveur virtuel est un serveur basé sur un nom (name-based), 
83     il sera totalement hors service, mais s'il s'agit d'un serveur 
84     par IP (IP-based), il fonctionnera correctement. Cependant, dans 
85     le cas où Apache doit générer une adresse complète URL en 
86     s'appuyant sur le nom du serveur, il échouera à fournir une 
87     adresse valide.</p>
88
89     <p>Voici un extrait de configuration qui résout ces deux problèmes&nbsp;:</p>
90
91     <div class="example"><p><code>
92       &lt;VirtualHost 10.0.0.1&gt; <br />
93       ServerName www.abc.dom <br />
94       ServerAdmin webgirl@abc.dom <br />
95       DocumentRoot /www/abc <br />
96       &lt;/VirtualHost&gt;
97     </code></p></div>
98   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
99 <div class="section">
100 <h2><a name="denial" id="denial">Déni de Service</a></h2>
101     
102
103     <p>Il existe (au moins) deux problèmes possibles de déni de service.
104     Les versions d'Apache antérieures à 1.2 ne démarreront pas si 
105     l'une des deux requêtes DNS citées ci-dessus n'aboutissent pas pour 
106     un de vos serveurs virtuels. Dans certains cas, les entrées DNS 
107     sont hors de contrôle de l'administrateur Web&nbsp;; par exemple si 
108     <code>abc.dom</code> appartient à un de vos clients qui a la 
109     maîtrise de son propre DNS, celui-ci peut empêcher votre serveur 
110     Web (avant la version 1.2) de démarrer, simplement en effaçant 
111     l'enregistrement <code>www.abc.dom</code> du DNS.</p>
112     
113     <p>L'autre problème possible est bien plus pernicieux. Dans la 
114     configuration suivante&nbsp;:</p>
115
116     <div class="example"><p><code>
117       &lt;VirtualHost www.abc.dom&gt; <br />
118       &nbsp;&nbsp;ServerAdmin webgirl@abc.dom <br />
119       &nbsp;&nbsp;DocumentRoot /www/abc <br />
120       &lt;/VirtualHost&gt; <br />
121       <br />
122       &lt;VirtualHost www.def.dom&gt; <br />
123       &nbsp;&nbsp;ServerAdmin webguy@def.dom <br />
124       &nbsp;&nbsp;DocumentRoot /www/def <br />
125       &lt;/VirtualHost&gt;
126     </code></p></div>
127
128     <p>Supposons que <code>www.abc.dom</code> ait l'adresse 10.0.0.1, 
129     et que <code>www.def.dom</code> ait l'adresse 10.0.0.2. Supposons 
130     également que <code>def.com</code> ait la main sur son DNS. 
131     Cette configuration peut permettre à <code>def.dom</code> de 
132     détourner vers son serveur tout le trafic destiné à 
133     <code>abc.dom</code>. Pour ce faire, il doit simplement
134     positionner le champ DNS de <code>www.def.dom</code> sur 10.0.0.1, 
135     et rien ne peut l'empêcher de faire, puisqu'il a la main sur 
136     son DNS.</p>
137
138     <p>Les requêtes à destination de 10.0.0.1 (incluant celles dont 
139     l'URL contient <code>http://www.abc.com/tout_et_n_importe_quoi</code>) 
140     seront envoyées au serveur virtuel de <code>def.dom</code>. Une 
141     bonne compréhension des mécanismes internes d'Apache concernant 
142     la gestion des serveur virtuels est requise. 
143     <a href="vhosts/details.html">Ce document</a> explique ce 
144     fonctionnement.</p>
145   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
146 <div class="section">
147 <h2><a name="main" id="main">L'Adresse du "serveur principal"</a></h2>
148     
149
150     <p>L'implémentation du support des serveur virtuels <a href="vhosts/name-based.html">par nom</a> depuis Apache 1.1 suppose
151     qu'Apache connaisse la ou les adresse(s) IP sur lesquelles le serveur 
152     écoute. Pour déterminer cette adresse, Apache utilise soit la 
153     directive globale <code class="directive"><a href="./mod/core.html#servername">ServerName</a></code> 
154     (si elle est présente), soit un appel à la fonction C 
155     <code>gethostname</code> (cet appel renvoie le même résultat 
156     que la commande "hostname" entrée sur une ligne de commande). 
157     Une résolution DNS est alors effectuée sur l'adresse obtenue. 
158     Pour l'instant, il n'existe aucun moyen de contourner cette 
159     requête DNS.</p>
160
161     <p>Pour se prémunir du cas où cette résolution DNS échouerait à 
162     cause de la défaillance du serveur DNS, le nom d'hôte peut être 
163     ajouté dans <code>/etc/hosts</code> (il y est probablement déjà). 
164     Assurez vous que votre machine est configurée pour lire ce fichier 
165     <code>/etc/hosts</code> en cas de défaillance du serveur DNS. 
166     Pour cela, selon votre système d'exploitation, il vous faudra configurer 
167     <code>/etc/resolv.conf</code> ou <code>/etc/nsswitch.conf</code>.</p>
168
169     <p>Au cas où votre serveur n'a pas besoin de réaliser des requêtes 
170     DNS pour d'autres raisons que de démarrer Apache, il est possible 
171     que vous puissiez vous en sortir en positionnant la variable 
172     d'environnement <code>HOSTRESORDER</code> sur "local". Ceci dépend 
173     cependant de votre système d'exploitation et des librairies de 
174     résolution DNS que vous utilisez. Ceci affecte également le 
175     comportement des scripts CGIs, à moins que vous n'utilisiez 
176     <code class="module"><a href="./mod/mod_env.html">mod_env</a></code> pour contrôler leur environnement. La 
177     meilleure solution est de consulter les pages "man" ou les FAQs 
178     spécifiques à votre système d'exploitation.</p>
179   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
180 <div class="section">
181 <h2><a name="tips" id="tips">Comment éviter ces problèmes</a></h2>
182     
183
184     <ul>
185       <li>
186         spécifier les adresses IP dans les 
187         <code class="directive"><a href="./mod/core.html#virtualhost">VirtualHost</a></code>
188       </li>
189
190       <li>
191         spécifier les adresses IP au moyen de
192         <code class="directive"><a href="./mod/mpm_common.html#listen">Listen</a></code>
193       </li>
194
195       <li>
196         s'assurer que tous les serveurs virtuels spécifient explicitement 
197         leur <code class="directive"><a href="./mod/core.html#servername">ServerName</a></code>
198       </li>
199
200       <li>créer un serveur virtuel <code>&lt;VirtualHost _default_:*&gt;</code>
201       qui ne sert aucune page</li>
202     </ul>
203   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
204 <div class="section">
205 <h2><a name="appendix" id="appendix">Appendice: Perspectives futures</a></h2>
206     
207
208     <p>Les problèmes liés au DNS sont très indésirables. À partir 
209     d'Apache 1.2, nous avons travaillé à ce qu'Apache démarre même 
210     dans le cas où les requêtes DNS échouent, mais ce n'est pas 
211     forcément la meilleure des solutions. En tous cas, obliger 
212     l'administrateur à spécifier explicitement des adresses IP est 
213     également très indésirable sur le réseau Internet tel qu'il 
214     existe actuellement, où le nombre d'adresses IP commence à manquer.</p>
215     
216     <p>Une réponse possible au problème de vol de trafic décrit ci-avant
217     pourrait être de réaliser une résolution inverse DNS sur l'adresse IP 
218     renvoyée par la première requête, et de comparer les deux noms 
219     obtenus -- lorsqu'ils sont différents, le serveur virtuel serait 
220     désactivé. Ceci suppose que la configuration pour la résolution 
221     inverse DNS soit faite correctement (c'est une chose à laquelle 
222     les administrateurs DNS commencent à s'habituer, en raison de 
223     l'utilisation de plus en plus répandue des requêtes DNS 
224     "double-reverse" par les serveurs FTP et les filtrages 
225     "TCP wrappers").</p>
226     
227     <p>Dans tous les cas de figures, il ne semble pas possible de 
228     démarrer de façon fiable un serveur virtuel quand la requête 
229     DNS a échoué, à moins de recourir à l'utilisation d'adresses 
230     IP fixes. Des solutions partielles, telles que désactiver des 
231     portions de la configuration selon les tâches attribuées au 
232     serveur Web, risquent d'être pires que ne pas démarrer du tout.</p>
233     
234     <p>Au fur et à mesure que HTTP/1.1 se répand, et que les navigateurs 
235     et les serveurs mandataires envoient l'en-tête <code>Host</code>, 
236     il devient possible d'éviter complètement l'utilisation de serveurs 
237     virtuels par IP. Dans ce cas, les serveurs Web n'ont plus aucun 
238     besoin de réaliser des requêtes DNS lors de leur démarrage. Au 1er 
239     mars 1997, ces fonctionnalités ne sont pas suffisamment déployées pour 
240     que des serveurs Web sensibles les mettent en oeuvre (NdT&nbsp;: cette 
241     remarque est aujourd'hui complètement dépassée, HTTP/1.1 est 
242     désormais supporté par l'immense majorité des navigateurs et 
243     des serveurs mandataires).</p>
244   </div></div>
245 <div class="bottomlang">
246 <p><span>Langues Disponibles: </span><a href="./en/dns-caveats.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
247 <a href="./es/dns-caveats.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
248 <a href="./fr/dns-caveats.html" title="Français">&nbsp;fr&nbsp;</a> |
249 <a href="./ja/dns-caveats.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
250 <a href="./ko/dns-caveats.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
251 <a href="./tr/dns-caveats.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
252 </div><div id="footer">
253 <p class="apache">Copyright 2009 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
254 <p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/directives.html">Directives</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a></p></div>
255 </body></html>