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
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="<-" alt="<-" src="./images/left.gif" /></a></div>
19 <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="./">Version 2.0</a></div><div id="page-content"><div id="preamble"><h1>Problèmes DNS avec Apache</h1>
21 <p><span>Langues Disponibles: </span><a href="./en/dns-caveats.html" hreflang="en" rel="alternate" title="English"> en </a> |
22 <a href="./es/dns-caveats.html" hreflang="es" rel="alternate" title="Español"> es </a> |
23 <a href="./fr/dns-caveats.html" title="Français"> fr </a> |
24 <a href="./ja/dns-caveats.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
25 <a href="./ko/dns-caveats.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
26 <a href="./tr/dns-caveats.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
29 <p>L'ensemble de cette page pourrait se résumer à la phrase : 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>
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>
43 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
45 <h2><a name="example" id="example">Un exemple simple</a></h2>
48 <div class="example"><p><code>
49 <VirtualHost www.abc.dom> <br />
50 ServerAdmin webgirl@abc.dom <br />
51 DocumentRoot /www/abc <br />
55 <p>Pour qu'Apache fonctionne correctement, il a absolument besoin
56 de deux informations pour chacun de ses serveurs virtuels :
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>
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 :</p>
70 <div class="example"><p><code>
71 <VirtualHost 10.0.0.1> <br />
72 ServerAdmin webgirl@abc.dom <br />
73 DocumentRoot /www/abc <br />
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
89 <p>Voici un extrait de configuration qui résout ces deux problèmes :</p>
91 <div class="example"><p><code>
92 <VirtualHost 10.0.0.1> <br />
93 ServerName www.abc.dom <br />
94 ServerAdmin webgirl@abc.dom <br />
95 DocumentRoot /www/abc <br />
98 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
100 <h2><a name="denial" id="denial">Déni de Service</a></h2>
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 ; 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>
113 <p>L'autre problème possible est bien plus pernicieux. Dans la
114 configuration suivante :</p>
116 <div class="example"><p><code>
117 <VirtualHost www.abc.dom> <br />
118 ServerAdmin webgirl@abc.dom <br />
119 DocumentRoot /www/abc <br />
120 </VirtualHost> <br />
122 <VirtualHost www.def.dom> <br />
123 ServerAdmin webguy@def.dom <br />
124 DocumentRoot /www/def <br />
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
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
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>
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
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>
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>
186 spécifier les adresses IP dans les
187 <code class="directive"><a href="./mod/core.html#virtualhost">VirtualHost</a></code>
191 spécifier les adresses IP au moyen de
192 <code class="directive"><a href="./mod/mpm_common.html#listen">Listen</a></code>
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>
200 <li>créer un serveur virtuel <code><VirtualHost _default_:*></code>
201 qui ne sert aucune page</li>
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>
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>
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
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>
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 : 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>
245 <div class="bottomlang">
246 <p><span>Langues Disponibles: </span><a href="./en/dns-caveats.html" hreflang="en" rel="alternate" title="English"> en </a> |
247 <a href="./es/dns-caveats.html" hreflang="es" rel="alternate" title="Español"> es </a> |
248 <a href="./fr/dns-caveats.html" title="Français"> fr </a> |
249 <a href="./ja/dns-caveats.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
250 <a href="./ko/dns-caveats.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
251 <a href="./tr/dns-caveats.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </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>