Serveur HTTP Apache Version 2.4

| Description: | Remplace l'adresse IP 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. |
|---|---|
| Statut: | Base |
| Identificateur de Module: | remoteip_module |
| Fichier Source: | mod_remoteip.c |
Ce module permet de traiter le client qui a initié la requête en tant que client original du point de vue de httpd à des fins d'autorisation et de connexion, même si ce client se trouve derrière un répartiteur de charge, un serveur frontal, ou un serveur mandataire.
Le module remplace l'adresse IP du client
pour la connexion par l'adresse IP indiquée dans
l'en-tête de requête configuré via la directive
RemoteIPHeader.
Ce module implémente aussi la partie serveur du protocole PROXY
de HAProxy via la directive RemoteIPProxyProtocol.
Une fois sa valeur modifiée comme indiqué, cette adresse IP client est
utilisée pour la fonctionnalité Require ip de mod_authz_host ;
elle est aussi affichée par mod_status, et enregistrée via
les chaînes de formatage %a des modules
mod_log_config et core. L'adresse IP
client sous-jacente de la connexion est enregistrée via la chaîne de
formatage %{c}a.

RemoteIPHeader
RemoteIPInternalProxy
RemoteIPInternalProxyList
RemoteIPProxiesHeader
RemoteIPProxyProtocol
RemoteIPProxyProtocolExceptions
RemoteIPTrustedProxy
RemoteIPTrustedProxyListPar défaut, Apache identifie le client via la valeur client_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 journalisation, ainsi que dans d'autres traitements effectués par d'autres modules chargeables.
mod_remoteip remplace l'adresse IP client de la connexion par l'adresse IP client indiquée par exemple par un mandataire ou un répartiteur de charge pour toute la durée de la requête. Un répartiteur de charge pourra ainsi établir une connexion keepalive de longue durée avec le serveur, chaque requête conservant alors l'adresse IP client correcte bien que l'adresse IP client sous-jacente du répartiteur de charge reste inchangée.
Lorsque la valeur de l'en-tête comporte plusieurs adresses IP client 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 client 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.
Lors du remplacement de l'adresse IP client, 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
mod_log_config en utilisant le symbole de format
%{remoteip-proxy-ip-list}n. 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 RemoteIPProxiesHeader.
RemoteIPInternalProxy sont enregistrés.| Description: | Définit le champ d'en-tête qui contiendra les adresses IP du client |
|---|---|
| Syntaxe: | RemoteIPHeader en-tête |
| Défaut: | none |
| Contexte: | configuration globale, serveur virtuel |
| Statut: | Base |
| Module: | mod_remoteip |
La directive RemoteIPHeader indique à
mod_remoteip de traiter la valeur de
l'en-tête 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
RemoteIPInternalProxy et
RemoteIPTrustedProxy. Si ces
deux dernières directives ne sont pas utilisées,
mod_remoteip traitera tout hôte présentant une adresse non
interne dans l'en-tête RemoteIPHeader comme hôte de confiance.
mod_remoteip
traitera tout hôte présentant une adresse non interne
dans l'en-tête RemoteIPHeader comme hôte de
confiance.RemoteIPHeader X-Client-IP
RemoteIPHeader X-Forwarded-For
| Description: | Déclare les adresses IP intranet clients comme dignes de confiance pour présenter la valeur RemoteIPHeader |
|---|---|
| Syntaxe: | RemoteIPInternalProxy
ip-mandataire|ip-mandataire/sous-réseau|nom-hôte ... |
| Contexte: | configuration globale, serveur virtuel |
| Statut: | Base |
| Module: | mod_remoteip |
La directive RemoteIPInternalProxy 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
RemoteIPTrustedProxy, 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.
RemoteIPHeader X-Client-IP RemoteIPInternalProxy 10.0.2.0/24 RemoteIPInternalProxy gateway.localdomain
| Description: | Déclare les adresses IP intranet clients comme dignes de confiance pour présenter la valeur RemoteIPHeader |
|---|---|
| Syntaxe: | RemoteIPInternalProxyList nom-fichier |
| Contexte: | configuration globale, serveur virtuel |
| Statut: | Base |
| Module: | mod_remoteip |
La directive RemoteIPInternalProxyList
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.
Le caractère '#' 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
RemoteIPInternalProxy.
RemoteIPHeader X-Client-IP RemoteIPInternalProxyList conf/trusted-proxies.lst
# Nos mandataires internes de confiance
10.0.2.0/24 # Tout le monde dans le groupe de test
passerelle.domaine-local # Le frontal répartiteur de charge| Description: | Déclare le champ d'en-tête qui contiendra toutes les adresses IP intermédiaires |
|---|---|
| Syntaxe: | RemoteIPProxiesHeader Nom_en-tête |
| Contexte: | configuration globale, serveur virtuel |
| Statut: | Base |
| Module: | mod_remoteip |
La directive RemoteIPProxiesHeader permet
de spécifier l'en-tête dans lequel mod_remoteip va
collecter une liste de toutes les adresses IP clients intermédiaires
auxquelles on pourra faire confiance pour résoudre l'adresse IP
client de la requête. Notez que les adresses intermédiaires
RemoteIPTrustedProxy sont enregistrées dans
cet en-tête, alors que toute adresse intermédiaire