2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
4 <!-- English Revision: 784558:1214015 (outdated) -->
5 <!-- French translation : Lucien GENTIS -->
6 <!-- Reviewed by : Vincent Deffontaines -->
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
16 http://www.apache.org/licenses/LICENSE-2.0
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.
25 <modulesynopsis metafile="mod_remoteip.xml.meta">
27 <name>mod_remoteip</name>
28 <description>Remplace l'adresse IP et le nom d'hôte apparents du client
29 pour la requête par l'adresse IP présentée par un mandataire ou un
30 répartiteur de charge via les en-têtes de la requête.
34 <sourcefile>mod_remoteip.c</sourcefile>
35 <identifier>remoteip_module</identifier>
38 <p>Ce module permet de traiter l'hôte distant qui a initié la
39 requête en tant qu'hôte distant original du point de vue de httpd à
40 des fins d'autorisation et de connexion, même si cet hôte distant se
41 trouve derrière un répartiteur de charge, un serveur frontal, ou un
42 serveur mandataire.</p>
44 <p>Le module remplace les adresse IP et nom d'hôte apparents
45 distants (du client) pour la requête par l'adresse IP indiquée dans
46 l'en-tête de requête configuré via la directive
47 <directive>RemoteIPHeader</directive>.</p>
49 <p>Une fois remplacée comme indiqué, cette adresse IP apparente est
50 utilisée pour les fonctionnalités <directive module="mod_authz_host"
51 type="section">Require host</directive> et <directive
52 module="mod_authz_host" type="section">Require ip</directive> de
53 <module>mod_authz_host</module> ; elle est aussi affichée par
54 <module>mod_status</module>, et enregistrée via les directives
55 <code>%a</code> et <code>%h</code> du module
56 <module>mod_log_config</module>. Elle permet aussi d'identifier la
57 machine en essayant de lui attribuer une identité inetd via le
58 module <module>mod_ident</module> et en fonction de la configuration
59 de la directive <directive
60 module="mod_ident">IdentityCheck</directive>.</p>
62 <note type="warning">Il est essentiel de n'activer cette
63 fonctionnalité que pour les requêtes en provenance des serveurs
64 intermédiaires (mandataires, etc...) auxquels le serveur peut faire
65 confiance, car il est trivial pour le client distant d'usurper
66 l'identité d'un autre client.</note>
69 <seealso><module>mod_authz_host</module></seealso>
70 <seealso><module>mod_status</module></seealso>
71 <seealso><module>mod_log_config</module></seealso>
72 <seealso><module>mod_ident</module></seealso>
74 <section id="processing"><title>Traitement des adresses distantes</title>
76 <p>Apache identifie le client par la valeur remote_ip de la
77 connexion, et de cette valeur découlent les valeurs remote_host et
78 remote_logname de la connexion. Ces champs jouent un rôle
79 dans l'authentification, l'autorisation et la connexion, ainsi que
80 dans d'autres traitements effectués par d'autres modules
83 <p>mod_remoteip remplace la véritable remote_ip par la remote_ip
84 indiquée par exemple par un mandataire chaque fois que le serveur
85 effectue une évaluation du client, et réinitialise les valeurs de
86 remote_host et remote_logname afin de déclencher une nouvelle
87 requête dns ou ident sur l'adresse IP distante.</p>
89 <p>Lorsque la valeur de l'en-tête comporte plusieurs adresses IP
90 distantes séparées par des virgules, celles-ci sont traitées de la
91 droite vers la gauche. Le traitement s'arrête lorsque l'adresse IP
92 distante courante n'est pas digne de confiance pour présenter
93 l'adresse IP précédente. Le champ d'en-tête est alors mis à jour de
94 façon à ne contenir que cette liste d'adresses non confirmées, ou
95 bien, si toutes les adresses IP sont dignes de confiance, cet
96 en-tête est tout bonnement supprimé de la requête.</p>
98 <p>Lors du remplacement de l'adresse IP distante, le module stocke
99 la liste des hôtes intermédiaires dans un mémo
100 remoteip-proxy-ip-list, que l'on peut faire enregistrer par
101 <module>mod_log_config</module> en utilisant le symbole de format
102 <code>%{remoteip-proxy-ip-list}n</code>. Si l'administrateur doit
103 stocker ceci dans un en-tête additionnel, la même valeur peut aussi
104 être enregistrée sous la forme d'un en-tête en utilisant la
105 directive <directive>RemoteIPProxiesHeader</directive>.</p>
107 <note><title>Adresses IPv4 converties au format IPv6</title>
108 Avec httpd, d'une manière générale, toute adresse IPv4 convertie au
109 format IPv6 est enregistrée sous sa forme IPv4.</note>
111 <note><title>Adresses internes (privées)</title>
112 Tous les blocs d'adresses internes 10/8, 172.16/12, 192.168/16,
113 169.254/16 and 127/8 (ainsi que les adresses IPv6 en dehors du bloc
114 public 2000::/3 block) ne sont évaluées par mod_remoteip que lorsque
115 des mandataires internes (intranet)
116 <directive>RemoteIPInternalProxy</directive> sont enregistrés.</note>
121 <name>RemoteIPHeader</name>
122 <description>Définit le champ d'en-tête qui contiendra les adresses IP
123 du client</description>
124 <syntax>RemoteIPHeader <var>en-tête</var></syntax>
125 <contextlist><context>server config</context><context>virtual host</context></contextlist>
128 <p>La directive <directive>RemoteIPHeader</directive> indique à
129 <module>mod_remoteip</module> de traiter la valeur de
130 l'<var>en-tête</var> spécifié comme l'adresse IP du client, ou comme
131 une liste d'adresses IP clients intermédiaires, en fonction de la
132 configuration des directives
133 <directive>RemoteIPInternalProxy</directive> et
134 <directive>RemoteIPTrustedProxy</directive>. Si ces deux dernières
135 directives ne sont pas utilisées, <module>mod_remoteip</module>
136 traitera tout hôte présentant une valeur d'IP
137 <directive>RemoteIPHeader</directive> comme hôte de confiance.</p>
139 <example><title>Exemple à usage interne (répartiteur de
141 RemoteIPHeader X-Client-IP
144 <example><title>Exemple dans le cas d'un mandataire</title>
145 RemoteIPHeader X-Forwarded-For
151 <name>RemoteIPInternalProxy</name>
152 <description>Déclare les adresses IP intranet clients comme dignes de
153 confiance pour présenter la valeur RemoteIPHeader</description>
154 <syntax>RemoteIPInternalProxy
155 <var>ip-mandataire</var>|<var>ip-mandataire/sous-réseau</var>|<var>nom-hôte</var> ...</syntax>
156 <contextlist><context>server config</context><context>virtual host</context></contextlist>
159 <p>La directive <directive>RemoteIPInternalProxy</directive> permet
160 d'ajouter une ou plusieurs adresses (ou blocs d'adresses) auxquelles
161 on peut faire confiance pour présenter une valeur RemoteIPHeader
162 valide de l'adresse IP du client. A la différence de la directive
163 <directive>RemoteIPTrustedProxy</directive>, toute adresse IP
164 présentée dans cet en-tête, y comprises les adresses intranet
165 privées, sont considérées comme dignes de confiance lorsqu'elles
166 sont indiquées par ces mandataires.</p>
168 <example><title>Exemple à usage interne (répartiteur de
170 RemoteIPHeader X-Client-IP<br/>
171 RemoteIPTrustedProxy 10.0.2.0/24<br/>
172 RemoteIPTrustedProxy passerelle.domaine-local
178 <name>RemoteIPInternalProxyList</name>
179 <description>Déclare les adresses IP intranet clients comme dignes de
180 confiance pour présenter la valeur RemoteIPHeader</description>
181 <syntax>RemoteIPInternalProxyList <var>nom-fichier</var></syntax>
182 <contextlist><context>server config</context><context>virtual host</context></contextlist>
185 <p>La directive <directive>RemoteIPInternalProxyList</directive>
186 permet de spécifier un fichier parcouru au démarrage du serveur pour
187 construire une liste d'adresses (ou blocs d'adresses), auxquelles
188 on peut faire confiance pour présenter une valeur RemoteIPHeader
189 valide de l'adresse IP du client.</p>
191 <p>Le caractère '<code>#</code>' indique une ligne de commentaires,
192 sinon, toutes les lignes séparées par un caractère <code>nouvelle
194 tous les éléments d'une ligne séparés par un espace sont traités de
195 la même façon qu'avec la directive
196 <directive>RemoteIPInternalProxy</directive>.</p>
198 <example><title>Exemple à usage interne (répartiteur de
200 RemoteIPHeader X-Client-IP<br/>
201 RemoteIPTrustedProxyList conf/mandataires-de-confiance.lst
204 <example><title>contenu de conf/mandataires-de-confiance.lst</title>
205 # Nos mandataires internes de confiance<br/>
206 10.0.2.0/24 # Tout le monde dans le groupe de test<br/>
207 passerelle.domaine-local # Le frontal répartiteur de charge
213 <name>RemoteIPProxiesHeader</name>
214 <description>Déclare le champ d'en-tête qui contiendra toutes les
215 adresses IP intermédiaires</description>
216 <syntax>RemoteIPProxiesHeader <var>Nom_en-tête</var></syntax>
217 <contextlist><context>server config</context><context>virtual host</context></contextlist>
220 <p>La directive <directive>RemoteIPProxiesHeader</directive> permet
221 de spécifier l'en-tête dans lequel <module>mod_remoteip</module> va
222 collecter une liste de toutes les adresses IP clients intermédiaires
223 auxquelles on pourra faire confiance pour résoudre la véritable
224 adresse IP distante. Notez que les adresses intermédiaires
225 <directive>RemoteIPTrustedProxy</directive> sont enregistrées dans
226 cet en-tête, alors que toute adresse intermédiaire
227 <directive>RemoteIPInternalProxy</directive> est omise.</p>
229 <example><title>Exemple</title>
230 RemoteIPHeader X-Forwarded-For<br/>
231 RemoteIPProxiesHeader X-Forwarded-By
237 <name>RemoteIPTrustedProxy</name>
238 <description>Déclare les adresses IP intranet clients comme dignes de
239 confiance pour présenter la valeur RemoteIPHeader</description>
240 <syntax>RemoteIPTrustedProxy
241 <var>ip-mandataire</var>|<var>ip-mandataire/sous-réseau</var>|<var>nom-hôte</var> ...</syntax>
242 <contextlist><context>server config</context><context>virtual host</context></contextlist>
245 <p>La directive <directive>RemoteIPTrustedProxy</directive> permet
246 d'ajouter une ou plusieurs adresses, ou blocs d'adresses, auxquelles
247 on peut faire confiance pour présenter une valeur RemoteIPHeader
248 valide de l'adresse IP du client. A la différence de la directive
249 <directive>RemoteIPInternalProxy</directive>, toutes les adresses IP
250 intranet ou privées indiquées par de tels mandataires, y compris les
251 blocs d'adresses 10/8, 172.16/12, 192.168/16, 169.254/16 et 127/8
252 (ou située en dehors du bloc IPv6 public 2000::/3), ne sont pas
253 dignes de confiance en tant qu'adresses IP distantes, et se situent
254 à gauche dans le contenu de l'en-tête
255 <directive>RemoteIPHeader</directive>.</p>
257 <example><title>Exemple d'adresse de confiance (répartiteur de
259 RemoteIPHeader X-Forwarded-For<br/>
260 RemoteIPTrustedProxy 10.0.2.16/28<br/>
261 RemoteIPTrustedProxy proxy.example.com
267 <name>RemoteIPTrustedProxyList</name>
268 <description>Déclare les adresses IP intranet clients comme dignes de
269 confiance pour présenter la valeur RemoteIPHeader</description>
270 <syntax>RemoteIPTrustedProxyList <var>nom-fichier</var></syntax>
271 <contextlist><context>server config</context><context>virtual host</context></contextlist>
274 <p>La directive <directive>RemoteIPTrustedProxyList</directive>
275 permet de spécifier un fichier parcouru au démarrage du serveur pour
276 construire une liste d'adresses (ou blocs d'adresses), auxquelles
277 on peut faire confiance pour présenter une valeur RemoteIPHeader
278 valide de l'adresse IP du client.</p>
280 <p>Le caractère '<code>#</code>' indique une ligne de commentaires,
281 sinon, toutes les lignes séparées par un caractère nouvelle ligne ou
282 tous les éléments d'une ligne séparés par un espace sont traités de
283 la même façon qu'avec la directive
284 <directive>RemoteIPTrustedProxy</directive>.</p>
286 <example><title>Exemple d'adresse de confiance (répartiteur de
288 RemoteIPHeader X-Forwarded-For<br/>
289 RemoteIPTrustedProxyList conf/mandataires-de-confiance.lst
292 <example><title>conf/mandataires-de-confiance.lst contents</title>
293 # Mandataires externes identifiés<br/>
294 192.0.2.16/28 #groupe wap phone de mandataires<br/>
295 proxy.isp.example.com #un FAI bien connu