Apache, benutze X-Forwarded-For für allow

13

Wie kann ich X-Forwarded-For-Header (meine Proxy-IP 10.1.1.x) verwenden, um HTTP-Abfragen zuzulassen?

bindbn
quelle

Antworten:

23

Sie können SetEnvIf und Allow verwenden:

    <Location "/only_proxy/">
            SetEnvIf X-Forwarded-For ^10\.1\.1\. proxy_env
            Order allow,deny
            Satisfy Any
            Allow from env=proxy_env
    </Location>
ooshro
quelle
1
Denken Sie daran, dass es wirklich einfach ist, X-Forwarded-For-Header zu fälschen.
Olli
Es ist auch einigermaßen einfach, sich vor gefälschten X-Forwarded-For-Headern zu schützen (indem Sie diesen Header an Eintrittspunkten in Ihre Umgebung entfernen).
Larsks
1
Ich habe diesen Beitrag gefunden, als ich nach Informationen zum Schutz vor gefälschten x-weitergeleiteten Headern gesucht habe. Würde es Ihnen etwas ausmachen, auf ein relevantes Dokument zu verweisen?
Pete
2

Sie können mod_rpaf verwenden , damit Apache die X-Forwarded-For-IP als Client-IP behandelt.

ThatGraemeGuy
quelle
7
Für diejenigen, die sich hier bei Google zurechtfinden: Beachten Sie, dass mod_rpafIhre Protokolle nur nützlich sein können. Dies hat keinen Einfluss auf die Adresse, die für die Zugriffssteuerungsentscheidungen verwendet wird. Beachten Sie auch, dass in Apache 2.4 die mod_rpafFunktionalität nativ von mod_remoteip bereitgestellt wird .
Larsks
1
@ Larsks: Das ist nicht wahr. Ich habe es versucht und es hat bei mir funktioniert!
Confiq
2

Sie können eine Umschreiberegel schreiben, um zur Antwort 403 umzuleiten.

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