]> granicus.if.org Git - apache/blob - docs/manual/dns-caveats.xml.fr
update transformation
[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 : 507346 -->
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 Apache</title>
28
29   <summary>
30     <p>Cette page pourrait se r&eacute;sumer ainsi : configurez Apache de fa&ccedil;on
31     &agrave; ce qu'il n'ait pas besoin de r&eacute;solution DNS pour interpr&eacute;ter les
32     fichiers de configuration. Si Apache doit effectuer des r&eacute;solutions
33     DNS pour interpr&eacute;ter les fichiers de configuration, votre serveur
34     pourra pr&eacute;senter des probl&egrave;mes de fiabilit&eacute; (en d'autres termes,
35     il est possible qu'il refuse de d&eacute;marrer), ou d'attaques par d&eacute;ni ou
36     usurpation de service (y compris le d&eacute;tournement d'informations
37     utilisateurs).</p>
38   </summary>
39
40   <section id="example">
41     <title>Un exemple simple</title>
42
43     <example>
44       # Cet exemple de configuration est invalide, ne l'utilisez pas comme base <br />
45       # de configuration <br />
46       &lt;VirtualHost www.abc.dom&gt; <br />
47       ServerAdmin webgirl@abc.dom <br />
48       DocumentRoot /www/abc <br />
49       &lt;/VirtualHost&gt;
50     </example>
51
52     <p>Pour fonctionner correctement, Apache a absolument besoin de deux
53     informations &agrave; propos de chaque serveur virtuel : le nom du serveur
54     d&eacute;fini par la directive <directive
55     module="core">ServerName</directive>, et au moins une adresse IP &agrave;
56     laquelle le serveur va se rattacher et r&eacute;pondre. L'exemple ci-dessus
57     ne comporte pas d'adresse IP, si bien qu'Apache devra utiliser le
58     DNS pour trouver l'adresse IP de <code>www.abc.dom</code>. Si pour
59     une raison quelconque, le DNS n'est pas disponible au moment o&ugrave;
60     votre serveur interpr&egrave;te son fichier de configuration, ce serveur
61     virtuel <strong>ne sera pas pris en compte dans la
62     configuration</strong>. Il sera incapable de
63     r&eacute;pondre &agrave; toute requ&ecirc;te pour ce serveur virtuel (avec les versions
64     d'Apache ant&eacute;rieures &agrave; 1.2, le serveur ne d&eacute;marrera tout simplement
65     pas).</p>
66
67     <p>Supposons que l'adresse de <code>www.abc.dom</code> soit
68     192.0.2.1, et examinons cet extrait de configuration :</p>
69
70     <example>
71       # Cet exemple de configuration est invalide, ne l'utilisez pas comme base <br />
72       # de configuration <br />
73       &lt;VirtualHost 192.0.2.1&gt; <br />
74       ServerAdmin webgirl@abc.dom <br />
75       DocumentRoot /www/abc <br />
76       &lt;/VirtualHost&gt;
77     </example>
78
79     <p>Cette fois, Apache doit effectuer une recherche DNS inverse pour
80     trouver le nom <code>ServerName</code> de ce serveur virtuel. Si
81     cette recherche inverse &eacute;choue, le serveur virtuel sera
82     partiellement d&eacute;sactiv&eacute; (avec les versions d'Apache ant&eacute;rieures &agrave;
83     1.2, le serveur ne d&eacute;marrera tout simplement pas). Si le serveur
84     virtuel est &agrave; base de nom, il sera en fait totalement d&eacute;sactiv&eacute;,
85     mais s'il est &agrave; base d'adresse IP, il fonctionnera probablement.
86     Cependant, Apache &eacute;chouera s'il doit g&eacute;n&eacute;rer une URL compl&egrave;te pour
87     le serveur qui inclut ce nom de serveur.</p>
88
89     <p>Voici un extrait de configuration qui permet d'&eacute;viter ces deux
90     types de probl&egrave;mes :</p>
91
92     <example>
93       &lt;VirtualHost 192.0.2.1&gt; <br />
94       ServerName www.abc.dom <br />
95       ServerAdmin webgirl@abc.dom <br />
96       DocumentRoot /www/abc <br />
97       &lt;/VirtualHost&gt;
98     </example>
99   </section>
100
101   <section id="denial">
102     <title>D&eacute;ni de service</title>
103
104     <p>Il existe (au moins) deux formes possibles de d&eacute;ni de service. Si
105     vous utilisez une version d'Apache ant&eacute;rieure &agrave; 1.2, votre serveur
106     ne d&eacute;marrera pas si une des deux recherches DNS mentionn&eacute;es
107     ci-dessus &eacute;choue pour au moins un de vos serveurs virtuels. Dans
108     certains cas, cette recherche DNS ne sera m&ecirc;me pas sous votre
109     contr&ocirc;le ; par exemple, si <code>abc.dom</code> est un de vos
110     clients et s'il g&egrave;re son propre DNS, il peut emp&ecirc;cher votre
111     serveur (pre-1.2) de d&eacute;marrer, simplement en supprimant
112     l'enregistrement <code>www.abc.dom</code>.</p>
113
114     <p>La deuxi&egrave;me forme de d&eacute;ni de service est beaucoup plus subtile.
115     Examinons cet extrait de configuration :</p>
116
117     <example>
118       &lt;VirtualHost www.abc.dom&gt;<br />
119       <indent>
120         ServerAdmin webgirl@abc.dom<br />
121         DocumentRoot /www/abc<br />
122       </indent>
123       &lt;/VirtualHost&gt;<br />
124       <br />
125       &lt;VirtualHost www.def.dom&gt;<br />
126       <indent>
127         ServerAdmin webguy@def.dom<br />
128         DocumentRoot /www/def<br />
129       </indent>
130       &lt;/VirtualHost&gt;
131     </example>
132
133     <p>Supposons que vous avez assign&eacute; 192.0.2.1 &agrave;
134     <code>www.abc.dom</code> et 192.0.2.2 &agrave; <code>www.def.dom</code>. En
135     outre, supposons que <code>def.dom</code> g&egrave;re son propre DNS. Avec
136     cette configuration, <code>def.dom</code> sera en mesure de
137     d&eacute;tourner tout trafic destin&eacute; &agrave; <code>abc.dom</code>. Pour y
138     parvenir, tout ce qu'ils ont &agrave; faire consiste &agrave; assigner 192.0.2.1 &agrave;
139     <code>www.def.dom</code>. Comme ils g&egrave;rent leur propre DNS, vous ne
140     pouvez pas les emp&ecirc;cher de faire pointer l'enregistrement
141     <code>www.def.dom</code> vers l'adresse qu'ils veulent.</p>
142
143     <p>Les requ&ecirc;tes &agrave; destination de 192.0.2.1 (y compris toutes celles
144     o&ugrave; l'utilisateur &agrave; tap&eacute; une URL de la forme
145     <code>http://www.abc.dom/quelquepart</code>), seront toutes servies
146     par le serveur virtuel <code>def.dom</code>. Une meilleur
147     compr&eacute;hension de la raison pour laquelle ceci peut se produire
148     n&eacute;cessite une discussion plus approfondie &agrave; propos de la mani&egrave;re
149     dont Apache associe les requ&ecirc;tes entrantes aux diff&eacute;rents serveurs
150     virtuels qui vont les servir. Un document de base d&eacute;crivant ceci <a
151     href="vhosts/details.html">est disponible</a>.</p>
152   </section>
153
154   <section id="main">
155     <title>L'adresse du "serveur principal"</title>
156
157     <p>L'addition du <a href="vhosts/name-based.html">support des
158     serveurs virtuels &agrave; base de nom</a> dans la version 1.1 d'Apache
159     oblige ce dernier &agrave; conna&icirc;tre la/les adresse(s) IP de l'h&ocirc;te sur
160     lequel <program>httpd</program> s'ex&eacute;cute. Pour obtenir cette
161     adresse, soit il utilise la directive <directive
162     module="core">ServerName</directive> globale (si elle est pr&eacute;sente),
163     soit il fait appel &agrave; la fonction C <code>gethostname</code> (qui
164     doit renvoyer le m&ecirc;me nom que la commande shell "hostname"). Il
165     effectue ensuite une recherche DNS sur cette adresse. Pour le
166     moment, il n'existe aucun moyen d'&eacute;viter cette recherche DNS.</p>
167
168     <p>Si vous craignez que cette recherche DNS &eacute;choue parce que votre
169     serveur DNS est arr&ecirc;t&eacute;, vous pouvez ins&eacute;rer le nom d'h&ocirc;te dans le
170     fichier <code>/etc/hosts</code> (o&ugrave; il est probablement d&eacute;j&agrave;
171     enregistr&eacute; afin que la machine d&eacute;marre correctement). Assurez-vous
172     ensuite que la machine est configur&eacute;e pour utiliser
173     <code>/etc/hosts</code> dans le cas o&ugrave; la recherche DNS &eacute;choue.
174     Suivant le syst&egrave;me d'exploitation que vous utilisez, vous y
175     parviendrez en &eacute;ditant <code>/etc/resolv.conf</code>, ou
176     <code>/etc/nsswitch.conf</code>.</p>
177
178     <p>Si votre serveur n'a aucune autre raison d'effectuer des
179     recherches DNS, vous pouvez d&eacute;finir la variable d'environnement
180     <code>HOSTRESORDER</code> &agrave; "local", et vous serez alors en mesure
181     d'ex&eacute;cuter Apache. Tout d&eacute;pend du syst&egrave;me d'exploitation et des
182     biblioth&egrave;ques de r&eacute;solution de noms que vous utilisez. Elle affecte
183     aussi les programmes CGI, &agrave; moins que vous n'utilisiez
184     <module>mod_env</module> pour contr&ocirc;ler l'environnement. Il est
185     conseill&eacute; de consulter les pages de manuel ou les FAQs de votre
186     syst&egrave;me d'exploitation.</p>
187   </section>
188
189   <section id="tips">
190     <title>Conseils pour &eacute;viter ce genre de probl&egrave;me</title>
191
192     <ul>
193       <li>
194         utilisez des adresses IP au sein des <directive
195         module="core">VirtualHost</directive>
196       </li>
197
198       <li>
199         utilisez des adresses IP avec la directive <directive
200         module="mpm_common">Listen</directive>
201       </li>
202
203       <li>
204         v&eacute;rifiez que tous les serveurs virtuels poss&egrave;dent un nom
205         <directive module="core">ServerName</directive> explicite
206       </li>
207
208       <li>cr&eacute;ez un serveur virtuel <code>&lt;VirtualHost
209       _default_:*&gt;</code> qui n'a aucune page &agrave; servir</li>
210     </ul>
211   </section>
212
213   <section id="appendix">
214     <title>Appendice : orientations pour le futur</title>
215
216     <p>La situation concernant le DNS appara&icirc;t clairement comme non
217     souhaitable. Avec Apache 1.2, nous avons fait en sorte que le
218     serveur puisse au moins d&eacute;marrer en cas d'&eacute;chec de recherche DNS,
219     mais ce n'est pas ce que nous pouvons faire de mieux. En tout &eacute;tat
220     de cause, le fait de devoir sp&eacute;cifier des adresses IP explicites
221     dans les fichiers de configuration est fortement non souhaitable
222     avec l'Internet d'aujourd'hui o&ugrave; les changements de num&eacute;rotation
223     sont une n&eacute;cessit&eacute;.</p>
224
225     <p>Il est possible d'&eacute;viter les attaques par usurpation de service
226     d&eacute;crites ci-dessus en effectuant une recherche DNS inverse sur
227     l'adresse IP renvoy&eacute;e par la recherche DNS directe et en comparant
228     les deux noms -- en cas de non correspondance, le serveur virtuel
229     serait d&eacute;sactiv&eacute;. Ceci n&eacute;cessite cependant une configuration
230     correcte du DNS inverse (ce avec quoi les administrateurs sont
231     familiers &agrave; cause de l'utilisation courante des doubles recherches
232     DNS inverses par les serveurs FTP et les TCP wrappers).</p>
233
234     <p>En tout &eacute;tat de cause, il ne semble pas envisageable de d&eacute;marrer
235     de mani&egrave;re fiable un serveur web avec serveurs virtuels losqu'une
236     recherche DNS a &eacute;chou&eacute;, sauf si l'on utilise des adresses IP. Les
237     solutions partielles consistant &agrave; d&eacute;sactiver des portions de
238     configuration pourraient s'av&eacute;rer pires que ne pas d&eacute;marrer du tout
239     ; tout d&eacute;pend de ce que le serveur est suppos&eacute; faire.</p>
240
241     <p>Au fur et &agrave; mesure du d&eacute;ploiement de HTTP/1.1, et comme les
242     navigateurs et les mandataires commencent &agrave; g&eacute;n&eacute;rer l'en-t&ecirc;te
243     <code>Host</code>, il devient possible d'envisager de se passer
244     compl&egrave;tement des serveurs virtuels &agrave; base d'adresses IP. Dans ce
245     cas, un serveur web n'a besoin d'aucune recherche DNS pendant
246     l'interpr&eacute;tation de ses fichiers de configuration. Cependant, au
247     mois de mars 1997, ces fonctionnalit&eacute;s n'ont pas &eacute;t&eacute; assez largement
248     d&eacute;ploy&eacute;es pour &ecirc;tre utilis&eacute;es sur des serveurs web critiques.</p>
249   </section>
250 </manualpage>