Apache, utilisez X-Forwarded-For pour autoriser

13

Comment utiliser les en-têtes X-Forwarded-For (mon proxy ip 10.1.1.x) pour autoriser la requête HTTP?

bindbn
la source

Réponses:

23

Vous pouvez utiliser SetEnvIf et Allow:

    <Location "/only_proxy/">
            SetEnvIf X-Forwarded-For ^10\.1\.1\. proxy_env
            Order allow,deny
            Satisfy Any
            Allow from env=proxy_env
    </Location>
ooshro
la source
1
N'oubliez pas qu'il est très facile de forger l'en-tête X-Forwarded-For.
Olli
Il est également relativement facile de vous protéger contre les en-têtes X-Forwarded-For falsifiés (en supprimant cet en-tête aux points d'entrée dans votre environnement).
larsks
1
avez trouvé ce message en recherchant des informations sur la protection contre les en-têtes falsifiés transmis par x, cela vous dérangerait-il de pointer vers un document pertinent?
Pete
2

Vous pouvez utiliser mod_rpaf pour que Apache traite l'IP X-Forwarded-For comme l'IP client.

ThatGraemeGuy
la source
7
Pour ceux qui trouvent leur chemin ici à partir de Google: notez que cela mod_rpafne peut que rendre vos journaux utiles; il n'affecte pas réellement l'adresse utilisée dans les décisions de contrôle d'accès. Notez également que dans Apache 2.4, la mod_rpaffonctionnalité est fournie nativement par mod_remoteip .
larsks
1
@larsks: Ce n'est pas vrai. J'ai essayé et cela a fonctionné pour moi!
confiq
2

Vous pouvez écrire une règle de réécriture pour rediriger vers la réponse 403.

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-For} !(1.1.1.1|2.2.2.2)
RewriteRule .* - [F]
Vicky Sridhar
la source