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>mod_remoteip - 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" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
12 <script src="../style/scripts/prettify.js" type="text/javascript">
15 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
17 <div id="page-header">
18 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
19 <p class="apache">Serveur Apache HTTP Version 2.5</p>
20 <img alt="" src="../images/feather.gif" /></div>
21 <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
23 <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.5</a> > <a href="./">Modules</a></div>
24 <div id="page-content">
25 <div id="preamble"><h1>Module Apache mod_remoteip</h1>
27 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_remoteip.html" hreflang="en" rel="alternate" title="English"> en </a> |
28 <a href="../fr/mod/mod_remoteip.html" title="Français"> fr </a></p>
30 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Remplace l'adresse IP et le nom d'hôte apparents du client
31 pour la requête par l'adresse IP présentée par un mandataire ou un
32 répartiteur de charge via les en-têtes de la requête.
34 <tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Base</td></tr>
35 <tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>remoteip_module</td></tr>
36 <tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_remoteip.c</td></tr></table>
39 <p>Ce module permet de traiter l'hôte distant qui a initié la
40 requête en tant qu'hôte distant original du point de vue de httpd à
41 des fins d'autorisation et de connexion, même si cet hôte distant se
42 trouve derrière un répartiteur de charge, un serveur frontal, ou un
43 serveur mandataire.</p>
45 <p>Le module remplace les adresse IP et nom d'hôte apparents
46 distants (du client) pour la requête par l'adresse IP indiquée dans
47 l'en-tête de requête configuré via la directive
48 <code class="directive">RemoteIPHeader</code>.</p>
50 <p>Une fois remplacée comme indiqué, cette adresse IP apparente est
51 utilisée pour les fonctionnalités <code class="directive"><a href="../mod/mod_authz_host.html#require host"><Require host></a></code> et <code class="directive"><a href="../mod/mod_authz_host.html#require ip"><Require ip></a></code> de
52 <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> ; elle est aussi affichée par
53 <code class="module"><a href="../mod/mod_status.html">mod_status</a></code>, et enregistrée via les directives
54 <code>%a</code> et <code>%h</code> du module
55 <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code>. Elle permet aussi d'identifier la
56 machine en essayant de lui attribuer une identité inetd via le
57 module <code class="module"><a href="../mod/mod_ident.html">mod_ident</a></code> et en fonction de la configuration
58 de la directive <code class="directive"><a href="../mod/mod_ident.html#identitycheck">IdentityCheck</a></code>.</p>
60 <div class="warning">Il est essentiel de n'activer cette
61 fonctionnalité que pour les requêtes en provenance des serveurs
62 intermédiaires (mandataires, etc...) auxquels le serveur peut faire
63 confiance, car il est trivial pour le client distant d'usurper
64 l'identité d'un autre client.</div>
66 <div id="quickview"><h3 class="directives">Directives</h3>
68 <li><img alt="" src="../images/down.gif" /> <a href="#remoteipheader">RemoteIPHeader</a></li>
69 <li><img alt="" src="../images/down.gif" /> <a href="#remoteipinternalproxy">RemoteIPInternalProxy</a></li>
70 <li><img alt="" src="../images/down.gif" /> <a href="#remoteipinternalproxylist">RemoteIPInternalProxyList</a></li>
71 <li><img alt="" src="../images/down.gif" /> <a href="#remoteipproxiesheader">RemoteIPProxiesHeader</a></li>
72 <li><img alt="" src="../images/down.gif" /> <a href="#remoteiptrustedproxy">RemoteIPTrustedProxy</a></li>
73 <li><img alt="" src="../images/down.gif" /> <a href="#remoteiptrustedproxylist">RemoteIPTrustedProxyList</a></li>
77 <li><img alt="" src="../images/down.gif" /> <a href="#processing">Traitement des adresses distantes</a></li>
78 </ul><h3>Voir aussi</h3>
80 <li><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></li>
81 <li><code class="module"><a href="../mod/mod_status.html">mod_status</a></code></li>
82 <li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li>
83 <li><code class="module"><a href="../mod/mod_ident.html">mod_ident</a></code></li>
84 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
85 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
87 <h2><a name="processing" id="processing">Traitement des adresses distantes</a></h2>
89 <p>Apache identifie le client par la valeur remote_ip de la
90 connexion, et de cette valeur découlent les valeurs remote_host et
91 remote_logname de la connexion. Ces champs jouent un rôle
92 dans l'authentification, l'autorisation et la connexion, ainsi que
93 dans d'autres traitements effectués par d'autres modules
96 <p>mod_remoteip remplace la véritable remote_ip par la remote_ip
97 indiquée par exemple par un mandataire chaque fois que le serveur
98 effectue une évaluation du client, et réinitialise les valeurs de
99 remote_host et remote_logname afin de déclencher une nouvelle
100 requête dns ou ident sur l'adresse IP distante.</p>
102 <p>Lorsque la valeur de l'en-tête comporte plusieurs adresses IP
103 distantes séparées par des virgules, celles-ci sont traitées de la
104 droite vers la gauche. Le traitement s'arrête lorsque l'adresse IP
105 distante courante n'est pas digne de confiance pour présenter
106 l'adresse IP précédente. Le champ d'en-tête est alors mis à jour de
107 façon à ne contenir que cette liste d'adresses non confirmées, ou
108 bien, si toutes les adresses IP sont dignes de confiance, cet
109 en-tête est tout bonnement supprimé de la requête.</p>
111 <p>Lors du remplacement de l'adresse IP distante, le module stocke
112 la liste des hôtes intermédiaires dans un mémo
113 remoteip-proxy-ip-list, que l'on peut faire enregistrer par
114 <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code> en utilisant le symbole de format
115 <code>%{remoteip-proxy-ip-list}n</code>. Si l'administrateur doit
116 stocker ceci dans un en-tête additionnel, la même valeur peut aussi
117 être enregistrée sous la forme d'un en-tête en utilisant la
118 directive <code class="directive">RemoteIPProxiesHeader</code>.</p>
120 <div class="note"><h3>Adresses IPv4 converties au format IPv6</h3>
121 Avec httpd, d'une manière générale, toute adresse IPv4 convertie au
122 format IPv6 est enregistrée sous sa forme IPv4.</div>
124 <div class="note"><h3>Adresses internes (privées)</h3>
125 Tous les blocs d'adresses internes 10/8, 172.16/12, 192.168/16,
126 169.254/16 and 127/8 (ainsi que les adresses IPv6 en dehors du bloc
127 public 2000::/3 block) ne sont évaluées par mod_remoteip que lorsque
128 des mandataires internes (intranet)
129 <code class="directive">RemoteIPInternalProxy</code> sont enregistrés.</div>
132 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
133 <div class="directive-section"><h2><a name="RemoteIPHeader" id="RemoteIPHeader">RemoteIPHeader</a> <a name="remoteipheader" id="remoteipheader">Directive</a></h2>
134 <table class="directive">
135 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le champ d'en-tête qui contiendra les adresses IP
137 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RemoteIPHeader <var>en-tête</var></code></td></tr>
138 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
139 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
140 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_remoteip</td></tr>
142 <p>La directive <code class="directive">RemoteIPHeader</code> indique à
143 <code class="module"><a href="../mod/mod_remoteip.html">mod_remoteip</a></code> de traiter la valeur de
144 l'<var>en-tête</var> spécifié comme l'adresse IP du client, ou comme
145 une liste d'adresses IP clients intermédiaires, en fonction de la
146 configuration des directives
147 <code class="directive">RemoteIPInternalProxy</code> et
148 <code class="directive">RemoteIPTrustedProxy</code>. Si ces deux dernières
149 directives ne sont pas utilisées, <code class="module"><a href="../mod/mod_remoteip.html">mod_remoteip</a></code>
150 traitera tout hôte présentant une valeur d'IP
151 <code class="directive">RemoteIPHeader</code> comme hôte de confiance.</p>
153 <div class="example"><h3>Exemple à usage interne (répartiteur de
154 charge)</h3><pre class="prettyprint lang-config">
155 RemoteIPHeader X-Client-IP
159 <div class="example"><h3>Exemple dans le cas d'un mandataire</h3><pre class="prettyprint lang-config">
160 RemoteIPHeader X-Forwarded-For
165 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
166 <div class="directive-section"><h2><a name="RemoteIPInternalProxy" id="RemoteIPInternalProxy">RemoteIPInternalProxy</a> <a name="remoteipinternalproxy" id="remoteipinternalproxy">Directive</a></h2>
167 <table class="directive">
168 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Déclare les adresses IP intranet clients comme dignes de
169 confiance pour présenter la valeur RemoteIPHeader</td></tr>
170 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RemoteIPInternalProxy
171 <var>ip-mandataire</var>|<var>ip-mandataire/sous-réseau</var>|<var>nom-hôte</var> ...</code></td></tr>
172 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
173 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
174 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_remoteip</td></tr>
176 <p>La directive <code class="directive">RemoteIPInternalProxy</code> permet
177 d'ajouter une ou plusieurs adresses (ou blocs d'adresses) auxquelles
178 on peut faire confiance pour présenter une valeur RemoteIPHeader
179 valide de l'adresse IP du client. A la différence de la directive
180 <code class="directive">RemoteIPTrustedProxy</code>, toute adresse IP
181 présentée dans cet en-tête, y comprises les adresses intranet
182 privées, sont considérées comme dignes de confiance lorsqu'elles
183 sont indiquées par ces mandataires.</p>
185 <div class="example"><h3>Exemple à usage interne (répartiteur de
186 charge)</h3><pre class="prettyprint lang-config">
187 RemoteIPHeader X-Client-IP
188 RemoteIPInternalProxy 10.0.2.0/24
189 RemoteIPInternalProxy gateway.localdomain
194 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
195 <div class="directive-section"><h2><a name="RemoteIPInternalProxyList" id="RemoteIPInternalProxyList">RemoteIPInternalProxyList</a> <a name="remoteipinternalproxylist" id="remoteipinternalproxylist">Directive</a></h2>
196 <table class="directive">
197 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Déclare les adresses IP intranet clients comme dignes de
198 confiance pour présenter la valeur RemoteIPHeader</td></tr>
199 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RemoteIPInternalProxyList <var>nom-fichier</var></code></td></tr>
200 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
201 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
202 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_remoteip</td></tr>
204 <p>La directive <code class="directive">RemoteIPInternalProxyList</code>
205 permet de spécifier un fichier parcouru au démarrage du serveur pour
206 construire une liste d'adresses (ou blocs d'adresses), auxquelles
207 on peut faire confiance pour présenter une valeur RemoteIPHeader
208 valide de l'adresse IP du client.</p>
210 <p>Le caractère '<code>#</code>' indique une ligne de commentaires,
211 sinon, toutes les lignes séparées par un caractère <code>nouvelle
213 tous les éléments d'une ligne séparés par un espace sont traités de
214 la même façon qu'avec la directive
215 <code class="directive">RemoteIPInternalProxy</code>.</p>
217 <div class="example"><h3>Exemple à usage interne (répartiteur de
218 charge)</h3><pre class="prettyprint lang-config">
219 RemoteIPHeader X-Client-IP
220 RemoteIPInternalProxyList conf/trusted-proxies.lst
224 <div class="example"><h3>contenu de conf/mandataires-de-confiance.lst</h3><div class="example"><pre>
225 # Nos mandataires internes de confiance
226 10.0.2.0/24 # Tout le monde dans le groupe de test
227 passerelle.domaine-local # Le frontal répartiteur de charge
231 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
232 <div class="directive-section"><h2><a name="RemoteIPProxiesHeader" id="RemoteIPProxiesHeader">RemoteIPProxiesHeader</a> <a name="remoteipproxiesheader" id="remoteipproxiesheader">Directive</a></h2>
233 <table class="directive">
234 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Déclare le champ d'en-tête qui contiendra toutes les
235 adresses IP intermédiaires</td></tr>
236 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RemoteIPProxiesHeader <var>Nom_en-tête</var></code></td></tr>
237 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
238 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
239 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_remoteip</td></tr>
241 <p>La directive <code class="directive">RemoteIPProxiesHeader</code> permet
242 de spécifier l'en-tête dans lequel <code class="module"><a href="../mod/mod_remoteip.html">mod_remoteip</a></code> va
243 collecter une liste de toutes les adresses IP clients intermédiaires
244 auxquelles on pourra faire confiance pour résoudre la véritable
245 adresse IP distante. Notez que les adresses intermédiaires
246 <code class="directive">RemoteIPTrustedProxy</code> sont enregistrées dans
247 cet en-tête, alors que toute adresse intermédiaire
248 <code class="directive">RemoteIPInternalProxy</code> est omise.</p>
250 <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">
251 RemoteIPHeader X-Forwarded-For
252 RemoteIPProxiesHeader X-Forwarded-By
257 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
258 <div class="directive-section"><h2><a name="RemoteIPTrustedProxy" id="RemoteIPTrustedProxy">RemoteIPTrustedProxy</a> <a name="remoteiptrustedproxy" id="remoteiptrustedproxy">Directive</a></h2>
259 <table class="directive">
260 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Déclare les adresses IP intranet clients comme dignes de
261 confiance pour présenter la valeur RemoteIPHeader</td></tr>
262 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RemoteIPTrustedProxy
263 <var>ip-mandataire</var>|<var>ip-mandataire/sous-réseau</var>|<var>nom-hôte</var> ...</code></td></tr>
264 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
265 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
266 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_remoteip</td></tr>
268 <p>La directive <code class="directive">RemoteIPTrustedProxy</code> permet
269 d'ajouter une ou plusieurs adresses, ou blocs d'adresses, auxquelles
270 on peut faire confiance pour présenter une valeur RemoteIPHeader
271 valide de l'adresse IP du client. A la différence de la directive
272 <code class="directive">RemoteIPInternalProxy</code>, toutes les adresses IP
273 intranet ou privées indiquées par de tels mandataires, y compris les
274 blocs d'adresses 10/8, 172.16/12, 192.168/16, 169.254/16 et 127/8
275 (ou située en dehors du bloc IPv6 public 2000::/3), ne sont pas
276 dignes de confiance en tant qu'adresses IP distantes, et se situent
277 à gauche dans le contenu de l'en-tête
278 <code class="directive">RemoteIPHeader</code>.</p>
280 <div class="example"><h3>Exemple d'adresse de confiance (répartiteur de
281 charge</h3><pre class="prettyprint lang-config">
282 RemoteIPHeader X-Forwarded-For
283 RemoteIPTrustedProxy 10.0.2.16/28
284 RemoteIPTrustedProxy proxy.example.com
289 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
290 <div class="directive-section"><h2><a name="RemoteIPTrustedProxyList" id="RemoteIPTrustedProxyList">RemoteIPTrustedProxyList</a> <a name="remoteiptrustedproxylist" id="remoteiptrustedproxylist">Directive</a></h2>
291 <table class="directive">
292 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Déclare les adresses IP intranet clients comme dignes de
293 confiance pour présenter la valeur RemoteIPHeader</td></tr>
294 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RemoteIPTrustedProxyList <var>nom-fichier</var></code></td></tr>
295 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
296 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
297 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_remoteip</td></tr>
299 <p>La directive <code class="directive">RemoteIPTrustedProxyList</code>
300 permet de spécifier un fichier parcouru au démarrage du serveur pour
301 construire une liste d'adresses (ou blocs d'adresses), auxquelles
302 on peut faire confiance pour présenter une valeur RemoteIPHeader
303 valide de l'adresse IP du client.</p>
305 <p>Le caractère '<code>#</code>' indique une ligne de commentaires,
306 sinon, toutes les lignes séparées par un caractère nouvelle ligne ou
307 tous les éléments d'une ligne séparés par un espace sont traités de
308 la même façon qu'avec la directive
309 <code class="directive">RemoteIPTrustedProxy</code>.</p>
311 <div class="example"><h3>Exemple d'adresse de confiance (répartiteur de
312 charge</h3><pre class="prettyprint lang-config">
313 RemoteIPHeader X-Forwarded-For
314 RemoteIPTrustedProxyList conf/trusted-proxies.lst
318 <div class="example"><h3>conf/mandataires-de-confiance.lst contents</h3><p><code>
319 # Mandataires externes identifiés<br />
320 192.0.2.16/28 #groupe wap phone de mandataires<br />
321 proxy.isp.example.com #un FAI bien connu
326 <div class="bottomlang">
327 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_remoteip.html" hreflang="en" rel="alternate" title="English"> en </a> |
328 <a href="../fr/mod/mod_remoteip.html" title="Français"> fr </a></p>
329 </div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
330 <script type="text/javascript"><!--//--><![CDATA[//><!--
331 var comments_shortname = 'httpd';
332 var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_remoteip.html';
334 if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
335 d.write('<div id="comments_thread"><\/div>');
336 var s = d.createElement('script');
337 s.type = 'text/javascript';
339 s.src = 'https://c.apaste.info/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
340 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
343 d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
345 })(window, document);
346 //--><!]]></script></div><div id="footer">
347 <p class="apache">Copyright 2012 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
348 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
349 if (typeof(prettyPrint) !== 'undefined') {