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