<-
Apache > Serveur HTTP > Documentation > Version 2.4 > Modules

Module Apache mod_remoteip

Langues Disponibles:  en  |  fr 

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.
Statut:Base
Identificateur´┐Żde´┐ŻModule:remoteip_module
Fichier´┐ŻSource:mod_remoteip.c

Sommaire

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.

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 RemoteIPHeader.

Une fois remplac´┐Że comme indiqu´┐Ż, cette adresse IP apparente 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 directives %a et %h du module mod_log_config. Elle permet aussi d'identifier la machine en essayant de lui attribuer une identit´┐Ż inetd via le module mod_ident et en fonction de la configuration de la directive IdentityCheck.

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.

Directives

Sujets

Voir aussi

top

Traitement des adresses distantes

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.

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.

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.

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 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.

Adresses IPv4 converties au format IPv6

Avec httpd, d'une mani´┐Żre g´┐Żn´┐Żrale, toute adresse IPv4 convertie au format IPv6 est enregistr´┐Że sous sa forme IPv4.

Adresses internes (priv´┐Żes)

Tous les blocs d'adresses internes 10/8, 172.16/12, 192.168/16, 169.254/16 and 127/8 (ainsi que les adresses IPv6 en dehors du bloc public 2000::/3 block) ne sont ´┐Żvalu´┐Żes par mod_remoteip que lorsque des mandataires internes (intranet) RemoteIPInternalProxy sont enregistr´┐Żs.
top

RemoteIPHeader Directive

Description:D´┐Żfinit le champ d'en-t´┐Żte qui contiendra les adresses IP du client
Syntaxe:RemoteIPHeader en-t´┐Żte
Contexte:configuration du serveur, 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 valeur d'IP RemoteIPHeader comme h´┐Żte de confiance.

Exemple ´┐Ż usage interne (r´┐Żpartiteur de charge)

RemoteIPHeader X-Client-IP

Exemple dans le cas d'un mandataire

RemoteIPHeader X-Forwarded-For
top

RemoteIPInternalProxy Directive

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 du serveur, 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.

Exemple ´┐Ż usage interne (r´┐Żpartiteur de charge)

RemoteIPHeader X-Client-IP
RemoteIPInternalProxy 10.0.2.0/24
RemoteIPInternalProxy gateway.localdomain
top

RemoteIPInternalProxyList Directive

Description:D´┐Żclare les adresses IP intranet clients comme dignes de confiance pour pr´┐Żsenter la valeur RemoteIPHeader
Syntaxe:RemoteIPInternalProxyList nom-fichier
Contexte:configuration du serveur, 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.

Exemple ´┐Ż usage interne (r´┐Żpartiteur de charge)

RemoteIPHeader X-Client-IP
RemoteIPInternalProxyList conf/trusted-proxies.lst

contenu de conf/mandataires-de-confiance.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
top

RemoteIPProxiesHeader Directive

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 du serveur, 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 la v´┐Żritable adresse IP distante. Notez que les adresses interm´┐Żdiaires RemoteIPTrustedProxy sont enregistr´┐Żes dans cet en-t´┐Żte, alors que toute adresse interm´┐Żdiaire RemoteIPInternalProxy est omise.

Exemple

RemoteIPHeader X-Forwarded-For
RemoteIPProxiesHeader X-Forwarded-By
top

RemoteIPTrustedProxy Directive

Description:D´┐Żclare les adresses IP intranet clients comme dignes de confiance pour pr´┐Żsenter la valeur RemoteIPHeader
Syntaxe:RemoteIPTrustedProxy ip-mandataire|ip-mandataire/sous-r´┐Żseau|nom-h´┐Żte ...
Contexte:configuration du serveur, serveur virtuel
Statut:Base
Module:mod_remoteip

La directive RemoteIPTrustedProxy 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 RemoteIPInternalProxy, toutes les adresses IP intranet ou priv´┐Żes indiqu´┐Żes par de tels mandataires, y compris les blocs d'adresses 10/8, 172.16/12, 192.168/16, 169.254/16 et 127/8 (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 RemoteIPHeader.

Exemple d'adresse de confiance (r´┐Żpartiteur de charge

RemoteIPHeader X-Forwarded-For
RemoteIPTrustedProxy 10.0.2.16/28
RemoteIPTrustedProxy proxy.example.com
top

RemoteIPTrustedProxyList Directive

Description:D´┐Żclare les adresses IP intranet clients comme dignes de confiance pour pr´┐Żsenter la valeur RemoteIPHeader
Syntaxe:RemoteIPTrustedProxyList nom-fichier
Contexte:configuration du serveur, serveur virtuel
Statut:Base
Module:mod_remoteip

La directive RemoteIPTrustedProxyList 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 RemoteIPTrustedProxy.

Exemple d'adresse de confiance (r´┐Żpartiteur de charge

RemoteIPHeader X-Forwarded-For
RemoteIPTrustedProxyList conf/trusted-proxies.lst

conf/mandataires-de-confiance.lst contents

# Mandataires externes identifi´┐Żs
192.0.2.16/28 #groupe wap phone de mandataires
proxy.isp.example.com #un FAI bien connu

Langues Disponibles:  en  |  fr 

top

Commentaires

Notice:
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 mailing lists.