[英]Apache Access Control to IPs (X-Forwarded-For) or valid-user
我曾經使用 valid-user 或 ip 指令阻止訪問我的 Apache 服務器的某些文件夾,如下所示:
<Directory "/home/domain/public_html/secure">
Require ip x.x.x.x
Require ip y.y.y.y
AuthType Basic
AuthUserFile "/home/domain/secure/pass"
AuthName "Authentication Required"
Require valid-user
Satisfy Any
</Directory>
現在,我已將我的服務器置於 F5-BIGIP 設備后面,該設備不會讓我完全連接 DNAT 客戶端。 該設備還位於 Linux 服務器后面,該服務器用作網關,DNAT/SNAT 規則相應地工作。 不過,我可以通過 X-Forwarded_For 記錄客戶端的 IP。 但是我的 Apache 指令不再起作用。
所以我的問題是,有什么方法可以使用Require X-Forwarded-For xxxx
嗎?
我的 Apache 版本是:
[root@webserver1 ~]# apachectl -version
Server version: Apache/2.4.6 (CentOS)
Server built: May 12 2016 1
0:27:23
提前致謝。
您應該能夠執行以下操作:
SetEnvIf X-Forwarded-For x.x.x.x$ foo
SetEnvIf X-Forwarded-For y.y.y.y$ bar
...
Require env foo
Require env bar
您不能直接訪問作為 require 指令一部分的標頭,因此請設置一個匹配的環境變量,並將其用作測試:
SetEnvIf X-Forwarded-For "^123\.456\.78\.9" MyAllowedIPAddress
Require env MyAllowedIPAddress
筆記:
<if "%{HTTP:X-Forwarded-For} == '123.456.78.9'">
Require all granted
</if>
<else>
Require all denied
</else>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.