如何在 apache 配置中测试条件?

如何在 apache 配置中测试条件?

我想测试 apache 中的配置。我该如何“调试”配置文件?例如,假设我有:

<IfModule mod_geoip.c>
    GeoIPEnable On
    GeoIPDBFile PATH_TO_LIB\GeoIP.dat
    GeoIPEnableUTF8 On
    GeoIPOutput All
</IfModule>

我可以发送虚假 IP 吗本地到标题?(即)我可以本地伪造/spoff 除 127.0.0.1 之外的其他 IP?

答案1

使用该配置您不能(至少不容易)。我建议您在测试时添加此选项:

GeoIPScanProxyHeaders On

从文档(http://dev.maxmind.com/geoip/legacy/mod_geoip2/#Proxy-Related_Directives

设置此项后,模块将按以下顺序查看 IP 地址的其他几个来源:

HTTP_CLIENT_IP 环境变量(由 Apache 设置)。

HTTP_X_FORWARDED_FOR 环境变量(由 Apache 设置)。X-Forwarded-For 标头(由代理设置)。

HTTP_REMOTE_ADDR 环境变量(由 Apache 设置)。

设置该选项进行测试,完成后将其删除。然后,您可以使用 curl 将任意 IP 作为 HTTP 标头发送,例如:

curl --header "X-Forwarded-For: 1.2.3.4" "http://your.site/path"

相关内容