反向代理和客户端IP后面的mod_security

client -> haproxy -> mod_security boxes -> backends 

问题:在“RPAFproxy_ips”中,mod_security框在haproxy的ip中使用mod_rpaf。 Apache日志logging显示客户端真实IP,但mod_security仍然报告haproxys IP,如下所示。

客户端ip在mod_sec框的apache日志中find

 x.93.129.90 - - [14/Oct/2015:08:35:56 +0200] "GET /MYTEST HTTP/1.1" 301 524 "-" "curl/7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5" 

Mod_security报告代理ip(客户端x.21.107.165)

  ==> /var/log/apache2/site.se_error.log <== [Wed Oct 14 08:36:12.584500 2015] [:error] [pid 10264:tid 139895758558976] [client x.21.107.165] ModSecurity: Access denied with code 403 (phase 2). Pattern match "\\\\balert\\\\b[^a-zA-Z0-9_]{0,}?\\\\(" at ARGS_NAMES: <script>alert(1)</script>. [file "/usr/share/cwaf/rules/07_XSS_XSS.conf"] <etc>.. 

networking上的人似乎用mod_sec运行rpaf,我做错了什么?

任何人都知道另一个好办法 我见过一些mod_sec规则,如果存在,基本上使用头中的值,否则后备到remote_addr,但我没有得到这些工作。

mod_rpaf仅适用于apache <2.4,mod_remoteip适用于2.4,mod_security现在报告客户端ip,而不是负载均衡器/代理

在Ubuntu 14.04上

 a2enmod remoteip echo "RemoteIPHeader X-Client-Ip" > /etc/apache2/mods-enabled/remoteip.conf service apache2 restart