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
256
257
258
259
|
<?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 li�s au 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.3</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.3</a></div><div id="page-content"><div id="preamble"><h1>Probl�mes li�s au 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="./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>Cette page pourrait se r�sumer ainsi : configurez Apache de fa�on
� ce qu'il n'ait pas besoin de r�solution DNS pour interpr�ter les
fichiers de configuration. Si Apache doit effectuer des r�solutions
DNS pour interpr�ter les fichiers de configuration, votre serveur
pourra pr�senter des probl�mes de fiabilit� (en d'autres termes,
il est possible qu'il refuse de d�marrer), ou d'attaques par d�ni ou
usurpation de service (y compris le d�tournement d'informations
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">Conseils pour �viter ce genre de probl�me</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#appendix">Appendice : orientations pour le futur</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>
# Cet exemple de configuration est invalide, ne l'utilisez pas comme base
# de configuration
<VirtualHost www.abc.dom> <br />
ServerAdmin webgirl@abc.dom <br />
DocumentRoot /www/abc <br />
</VirtualHost>
</code></p></div>
<p>Pour fonctionner correctement, Apache a absolument besoin de deux
informations � propos de chaque serveur virtuel : le nom du serveur
d�fini par la directive <code class="directive"><a href="./mod/core.html#servername">ServerName</a></code>, et au moins une adresse IP �
laquelle le serveur va se rattacher et r�pondre. L'exemple ci-dessus
ne comporte pas d'adresse IP, si bien qu'Apache devra utiliser le
DNS pour trouver l'adresse IP de <code>www.abc.dom</code>. Si pour
une raison quelconque, le DNS n'est pas disponible au moment o�
votre serveur interpr�te son fichier de configuration, ce serveur
virtuel <strong>ne sera pas pris en compte dans la
configuration</strong>. Il sera incapable de
r�pondre � toute requ�te pour ce serveur virtuel (avec les versions
d'Apache ant�rieures � 1.2, le serveur ne d�marrera tout simplement
pas).</p>
<p>Supposons que l'adresse de <code>www.abc.dom</code> soit
192.0.2.1, et examinons cet extrait de configuration :</p>
<div class="example"><p><code>
# Cet exemple de configuration est invalide, ne l'utilisez pas comme base
# de configuration
<VirtualHost 192.0.2.1> <br />
ServerAdmin webgirl@abc.dom <br />
DocumentRoot /www/abc <br />
</VirtualHost>
</code></p></div>
<p>Cette fois, Apache doit effectuer une recherche DNS inverse pour
trouver le nom <code>ServerName</code> de ce serveur virtuel. Si
cette recherche inverse �choue, le serveur virtuel sera
partiellement d�sactiv� (avec les versions d'Apache ant�rieures �
1.2, le serveur ne d�marrera tout simplement pas). Si le serveur
virtuel est � base de nom, il sera en fait totalement d�sactiv�,
mais s'il est � base d'adresse IP, il fonctionnera probablement.
Cependant, Apache �chouera s'il doit g�n�rer une URL compl�te pour
le serveur qui inclut ce nom de serveur.</p>
<p>Voici un extrait de configuration qui permet d'�viter ces deux
types de probl�mes :</p>
<div class="example"><p><code>
<VirtualHost 192.0.2.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 formes possibles de d�ni de service. Si
vous utilisez une version d'Apache ant�rieure � 1.2, votre serveur
ne d�marrera pas si une des deux recherches DNS mentionn�es
ci-dessus �choue pour au moins un de vos serveurs virtuels. Dans
certains cas, cette recherche DNS ne sera m�me pas sous votre
contr�le ; par exemple, si <code>abc.dom</code> est un de vos
clients et s'il g�re son propre DNS, il peut emp�cher votre
serveur (pre-1.2) de d�marrer, simplement en supprimant
l'enregistrement <code>www.abc.dom</code>.</p>
<p>La deuxi�me forme de d�ni de service est beaucoup plus subtile.
Examinons cet extrait de configuration :</p>
<div class="example"><p><code>
<VirtualHost www.abc.dom><br />
<span class="indent">
ServerAdmin webgirl@abc.dom<br />
DocumentRoot /www/abc<br />
</span>
</VirtualHost><br />
<br />
<VirtualHost www.def.dom><br />
<span class="indent">
ServerAdmin webguy@def.dom<br />
DocumentRoot /www/def<br />
</span>
</VirtualHost>
</code></p></div>
<p>Supposons que vous avez assign� 192.0.2.1 �
<code>www.abc.dom</code> et 192.0.2.2 � <code>www.def.dom</code>. En
outre, supposons que <code>def.dom</code> g�re son propre DNS. Avec
cette configuration, <code>def.dom</code> sera en mesure de
d�tourner tout trafic destin� � <code>abc.dom</code>. Pour y
parvenir, tout ce qu'ils ont � faire consiste � assigner 192.0.2.1 �
<code>www.def.dom</code>. Comme ils g�rent leur propre DNS, vous ne
pouvez pas les emp�cher de faire pointer l'enregistrement
<code>www.def.dom</code> vers l'adresse qu'ils veulent.</p>
<p>Les requ�tes � destination de 192.0.2.1 (y compris toutes celles
o� l'utilisateur � tap� une URL de la forme
<code>http://www.abc.dom/quelquepart</code>), seront toutes servies
par le serveur virtuel <code>def.dom</code>. Une meilleur
compr�hension de la raison pour laquelle ceci peut se produire
n�cessite une discussion plus approfondie � propos de la mani�re
dont Apache associe les requ�tes entrantes aux diff�rents serveurs
virtuels qui vont les servir. Un document de base d�crivant ceci <a href="vhosts/details.html">est disponible</a>.</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'addition du <a href="vhosts/name-based.html">support des
serveurs virtuels � base de nom</a> dans la version 1.1 d'Apache
oblige ce dernier � conna�tre la/les adresse(s) IP de l'h�te sur
lequel <code class="program"><a href="./programs/httpd.html">httpd</a></code> s'ex�cute. Pour obtenir cette
adresse, soit il utilise la directive <code class="directive"><a href="./mod/core.html#servername">ServerName</a></code> globale (si elle est pr�sente),
soit il fait appel � la fonction C <code>gethostname</code> (qui
doit renvoyer le m�me nom que la commande shell "hostname"). Il
effectue ensuite une recherche DNS sur cette adresse. Pour le
moment, il n'existe aucun moyen d'�viter cette recherche DNS.</p>
<p>Si vous craignez que cette recherche DNS �choue parce que votre
serveur DNS est arr�t�, vous pouvez ins�rer le nom d'h�te dans le
fichier <code>/etc/hosts</code> (o� il est probablement d�j�
enregistr� afin que la machine d�marre correctement). Assurez-vous
ensuite que la machine est configur�e pour utiliser
<code>/etc/hosts</code> dans le cas o� la recherche DNS �choue.
Suivant le syst�me d'exploitation que vous utilisez, vous y
parviendrez en �ditant <code>/etc/resolv.conf</code>, ou
<code>/etc/nsswitch.conf</code>.</p>
<p>Si votre serveur n'a aucune autre raison d'effectuer des
recherches DNS, vous pouvez d�finir la variable d'environnement
<code>HOSTRESORDER</code> � "local", et vous serez alors en mesure
d'ex�cuter Apache. Tout d�pend du syst�me d'exploitation et des
biblioth�ques de r�solution de noms que vous utilisez. Elle affecte
aussi les programmes CGI, � moins que vous n'utilisiez
<code class="module"><a href="./mod/mod_env.html">mod_env</a></code> pour contr�ler l'environnement. Il est
conseill� de consulter les pages de manuel ou les FAQs de 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">Conseils pour �viter ce genre de probl�me</a></h2>
<ul>
<li>
utilisez des adresses IP au sein des <code class="directive"><a href="./mod/core.html#virtualhost">VirtualHost</a></code>
</li>
<li>
utilisez des adresses IP avec la directive <code class="directive"><a href="./mod/mpm_common.html#listen">Listen</a></code>
</li>
<li>
v�rifiez que tous les serveurs virtuels poss�dent un nom
<code class="directive"><a href="./mod/core.html#servername">ServerName</a></code> explicite
</li>
<li>cr�ez un serveur virtuel <code><VirtualHost
_default_:*></code> qui n'a aucune page � servir</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 : orientations pour le futur</a></h2>
<p>La situation concernant le DNS appara�t clairement comme non
souhaitable. Avec Apache 1.2, nous avons fait en sorte que le
serveur puisse au moins d�marrer en cas d'�chec de recherche DNS,
mais ce n'est pas ce que nous pouvons faire de mieux. En tout �tat
de cause, le fait de devoir sp�cifier des adresses IP explicites
dans les fichiers de configuration est fortement non souhaitable
avec l'Internet d'aujourd'hui o� les changements de num�rotation
sont une n�cessit�.</p>
<p>Il est possible d'�viter les attaques par usurpation de service
d�crites ci-dessus en effectuant une recherche DNS inverse sur
l'adresse IP renvoy�e par la recherche DNS directe et en comparant
les deux noms -- en cas de non correspondance, le serveur virtuel
serait d�sactiv�. Ceci n�cessite cependant une configuration
correcte du DNS inverse (ce avec quoi les administrateurs sont
familiers � cause de l'utilisation courante des doubles recherches
DNS inverses par les serveurs FTP et les TCP wrappers).</p>
<p>En tout �tat de cause, il ne semble pas envisageable de d�marrer
de mani�re fiable un serveur web avec serveurs virtuels losqu'une
recherche DNS a �chou�, sauf si l'on utilise des adresses IP. Les
solutions partielles consistant � d�sactiver des portions de
configuration pourraient s'av�rer pires que ne pas d�marrer du tout
; tout d�pend de ce que le serveur est suppos� faire.</p>
<p>Au fur et � mesure du d�ploiement de HTTP/1.1, et comme les
navigateurs et les mandataires commencent � g�n�rer l'en-t�te
<code>Host</code>, il devient possible d'envisager de se passer
compl�tement des serveurs virtuels � base d'adresses IP. Dans ce
cas, un serveur web n'a besoin d'aucune recherche DNS pendant
l'interpr�tation de ses fichiers de configuration. Cependant, au
mois de mars 1997, ces fonctionnalit�s n'ont pas �t� assez largement
d�ploy�es pour �tre utilis�es sur des serveurs web critiques.</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="./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>
|