mod_remoteip.xml.fr revision d28e54f867ab1292ce75324d90680396c1d5f47d
<?xml version="1.0"?>
<!-- English Revision: 1561283 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<modulesynopsis metafile="mod_remoteip.xml.meta">
<name>mod_remoteip</name>
<description>Remplace l'adresse IP et le nom d'hôte apparents du client
pour la requête par l'adresse IP présentée par un mandataire ou un
répartiteur de charge via les en-têtes de la requête.
</description>
<status>Base</status>
<identifier>remoteip_module</identifier>
<summary>
<p>Ce module permet de traiter l'hôte distant qui a initié la
requête en tant qu'hôte distant original du point de vue de httpd à
des fins d'autorisation et de connexion, même si cet hôte distant se
trouve derrière un répartiteur de charge, un serveur frontal, ou un
serveur mandataire.</p>
<p>Le module remplace les adresse IP et nom d'hôte apparents
distants (du client) pour la requête par l'adresse IP indiquée dans
l'en-tête de requête configuré via la directive
<directive>RemoteIPHeader</directive>.</p>
<p>Une fois remplacée comme indiqué, cette adresse IP apparente est
utilisée pour les fonctionnalités <directive module="mod_authz_host"
type="section">Require host</directive> et <directive
module="mod_authz_host" type="section">Require ip</directive> de
<module>mod_authz_host</module> ; elle est aussi affichée par
<module>mod_status</module>, et enregistrée via les directives
<code>%a</code> et <code>%h</code> du module
<module>mod_log_config</module>. Elle permet aussi d'identifier la
machine en essayant de lui attribuer une identité inetd via le
module <module>mod_ident</module> et en fonction de la configuration
de la directive <directive
module="mod_ident">IdentityCheck</directive>.</p>
<note type="warning">Il est essentiel de n'activer cette
fonctionnalité que pour les requêtes en provenance des serveurs
intermédiaires (mandataires, etc...) auxquels le serveur peut faire
confiance, car il est trivial pour le client distant d'usurper
l'identité d'un autre client.</note>
</summary>
<seealso><module>mod_authz_host</module></seealso>
<seealso><module>mod_status</module></seealso>
<seealso><module>mod_log_config</module></seealso>
<seealso><module>mod_ident</module></seealso>
<section id="processing"><title>Traitement des adresses distantes</title>
<p>Apache identifie le client par la valeur remote_ip de la
connexion, et de cette valeur découlent les valeurs remote_host et
remote_logname de la connexion. Ces champs jouent un rôle
dans l'authentification, l'autorisation et la connexion, ainsi que
dans d'autres traitements effectués par d'autres modules
chargeables.</p>
<p>mod_remoteip remplace la véritable remote_ip par la remote_ip
indiquée par exemple par un mandataire chaque fois que le serveur
effectue une évaluation du client, et réinitialise les valeurs de
remote_host et remote_logname afin de déclencher une nouvelle
requête dns ou ident sur l'adresse IP distante.</p>
<p>Lorsque la valeur de l'en-tête comporte plusieurs adresses IP
distantes séparées par des virgules, celles-ci sont traitées de la
droite vers la gauche. Le traitement s'arrête lorsque l'adresse IP
distante courante n'est pas digne de confiance pour présenter
l'adresse IP précédente. Le champ d'en-tête est alors mis à jour de
façon à ne contenir que cette liste d'adresses non confirmées, ou
bien, si toutes les adresses IP sont dignes de confiance, cet
en-tête est tout bonnement supprimé de la requête.</p>
<p>Lors du remplacement de l'adresse IP distante, le module stocke
la liste des hôtes intermédiaires dans un mémo
remoteip-proxy-ip-list, que l'on peut faire enregistrer par
<module>mod_log_config</module> en utilisant le symbole de format
<code>%{remoteip-proxy-ip-list}n</code>. Si l'administrateur doit
stocker ceci dans un en-tête additionnel, la même valeur peut aussi
être enregistrée sous la forme d'un en-tête en utilisant la
directive <directive>RemoteIPProxiesHeader</directive>.</p>
<note><title>Adresses IPv4 converties au format IPv6</title>
Avec httpd, d'une manière générale, toute adresse IPv4 convertie au
format IPv6 est enregistrée sous sa forme IPv4.</note>
<note><title>Adresses internes (privées)</title>
public 2000::/3 block) ne sont évaluées par mod_remoteip que lorsque
des mandataires internes (intranet)
<directive>RemoteIPInternalProxy</directive> sont enregistrés.</note>
</section>
<directivesynopsis>
<name>RemoteIPHeader</name>
<description>Définit le champ d'en-tête qui contiendra les adresses IP
du client</description>
<syntax>RemoteIPHeader <var>en-tête</var></syntax>
<contextlist><context>server config</context><context>virtual host</context></contextlist>
<usage>
<p>La directive <directive>RemoteIPHeader</directive> indique à
<module>mod_remoteip</module> de traiter la valeur de
l'<var>en-tête</var> spécifié comme l'adresse IP du client, ou comme
une liste d'adresses IP clients intermédiaires, en fonction de la
configuration des directives
<directive>RemoteIPInternalProxy</directive> et
<directive>RemoteIPTrustedProxy</directive>. Si ces deux dernières
directives ne sont pas utilisées, <module>mod_remoteip</module>
traitera tout hôte présentant une valeur d'IP
<directive>RemoteIPHeader</directive> comme hôte de confiance.</p>
<example><title>Exemple à usage interne (répartiteur de
charge)</title>
<highlight language="config">
RemoteIPHeader X-Client-IP
</highlight>
</example>
<example><title>Exemple dans le cas d'un mandataire</title>
<highlight language="config">
RemoteIPHeader X-Forwarded-For
</highlight>
</example>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>RemoteIPInternalProxy</name>
<description>Déclare les adresses IP intranet clients comme dignes de
confiance pour présenter la valeur RemoteIPHeader</description>
<syntax>RemoteIPInternalProxy
<var>ip-mandataire</var>|<var>ip-mandataire/sous-réseau</var>|<var>nom-hôte</var> ...</syntax>
<contextlist><context>server config</context><context>virtual host</context></contextlist>
<usage>
<p>La directive <directive>RemoteIPInternalProxy</directive> permet
d'ajouter une ou plusieurs adresses (ou blocs d'adresses) auxquelles
on peut faire confiance pour présenter une valeur RemoteIPHeader
valide de l'adresse IP du client. A la différence de la directive
<directive>RemoteIPTrustedProxy</directive>, toute adresse IP
présentée dans cet en-tête, y comprises les adresses intranet
privées, sont considérées comme dignes de confiance lorsqu'elles
sont indiquées par ces mandataires.</p>
<example><title>Exemple à usage interne (répartiteur de
charge)</title>
<highlight language="config">
RemoteIPHeader X-Client-IP
RemoteIPInternalProxy gateway.localdomain
</highlight>
</example>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>RemoteIPInternalProxyList</name>
<description>Déclare les adresses IP intranet clients comme dignes de
confiance pour présenter la valeur RemoteIPHeader</description>
<syntax>RemoteIPInternalProxyList <var>nom-fichier</var></syntax>
<contextlist><context>server config</context><context>virtual host</context></contextlist>
<usage>
<p>La directive <directive>RemoteIPInternalProxyList</directive>
permet de spécifier un fichier parcouru au démarrage du serveur pour
construire une liste d'adresses (ou blocs d'adresses), auxquelles
on peut faire confiance pour présenter une valeur RemoteIPHeader
valide de l'adresse IP du client.</p>
<p>Le caractère '<code>#</code>' indique une ligne de commentaires,
sinon, toutes les lignes séparées par un caractère <code>nouvelle
ligne</code> ou
tous les éléments d'une ligne séparés par un espace sont traités de
la même façon qu'avec la directive
<directive>RemoteIPInternalProxy</directive>.</p>
<example><title>Exemple à usage interne (répartiteur de
charge)</title>
<highlight language="config">
RemoteIPHeader X-Client-IP
RemoteIPInternalProxyList conf/trusted-proxies.lst
</highlight>
</example>
<pre>
# Nos mandataires internes de confiance
passerelle.domaine-local # Le frontal répartiteur de charge
</pre>
</example>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>RemoteIPProxiesHeader</name>
<description>Déclare le champ d'en-tête qui contiendra toutes les
adresses IP intermédiaires</description>
<syntax>RemoteIPProxiesHeader <var>Nom_en-tête</var></syntax>
<contextlist><context>server config</context><context>virtual host</context></contextlist>
<usage>
<p>La directive <directive>RemoteIPProxiesHeader</directive> permet
de spécifier l'en-tête dans lequel <module>mod_remoteip</module> va
collecter une liste de toutes les adresses IP clients intermédiaires
auxquelles on pourra faire confiance pour résoudre la véritable
adresse IP distante. Notez que les adresses intermédiaires
<directive>RemoteIPTrustedProxy</directive> sont enregistrées dans
cet en-tête, alors que toute adresse intermédiaire
<directive>RemoteIPInternalProxy</directive> est omise.</p>
<example><title>Exemple</title>
<highlight language="config">
RemoteIPHeader X-Forwarded-For
RemoteIPProxiesHeader X-Forwarded-By
</highlight>
</example>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>RemoteIPTrustedProxy</name>
<description>Déclare les adresses IP intranet clients comme dignes de
confiance pour présenter la valeur RemoteIPHeader</description>
<syntax>RemoteIPTrustedProxy
<var>ip-mandataire</var>|<var>ip-mandataire/sous-réseau</var>|<var>nom-hôte</var> ...</syntax>
<contextlist><context>server config</context><context>virtual host</context></contextlist>
<usage>
<p>La directive <directive>RemoteIPTrustedProxy</directive> permet
d'ajouter une ou plusieurs adresses, ou blocs d'adresses, auxquelles
on peut faire confiance pour présenter une valeur RemoteIPHeader
valide de l'adresse IP du client. A la différence de la directive
<directive>RemoteIPInternalProxy</directive>, toutes les adresses IP
intranet ou privées indiquées par de tels mandataires, y compris les
(ou située en dehors du bloc IPv6 public 2000::/3), ne sont pas
dignes de confiance en tant qu'adresses IP distantes, et se situent
à gauche dans le contenu de l'en-tête
<directive>RemoteIPHeader</directive>.</p>
<example><title>Exemple d'adresse de confiance (répartiteur de
charge</title>
<highlight language="config">
RemoteIPHeader X-Forwarded-For
RemoteIPTrustedProxy proxy.example.com
</highlight>
</example>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>RemoteIPTrustedProxyList</name>
<description>Déclare les adresses IP intranet clients comme dignes de
confiance pour présenter la valeur RemoteIPHeader</description>
<syntax>RemoteIPTrustedProxyList <var>nom-fichier</var></syntax>
<contextlist><context>server config</context><context>virtual host</context></contextlist>
<usage>
<p>La directive <directive>RemoteIPTrustedProxyList</directive>
permet de spécifier un fichier parcouru au démarrage du serveur pour
construire une liste d'adresses (ou blocs d'adresses), auxquelles
on peut faire confiance pour présenter une valeur RemoteIPHeader
valide de l'adresse IP du client.</p>
<p>Le caractère '<code>#</code>' indique une ligne de commentaires,
sinon, toutes les lignes séparées par un caractère nouvelle ligne ou
tous les éléments d'une ligne séparés par un espace sont traités de
la même façon qu'avec la directive
<directive>RemoteIPTrustedProxy</directive>.</p>
<example><title>Exemple d'adresse de confiance (répartiteur de
charge</title>
<highlight language="config">
RemoteIPHeader X-Forwarded-For
RemoteIPTrustedProxyList conf/trusted-proxies.lst
</highlight>
</example>
# Mandataires externes identifiés<br/>
proxy.isp.example.com #un FAI bien connu
</example>
</usage>
</directivesynopsis>
</modulesynopsis>