cee*_*yoz 3 amazon-elb mod-rpaf
我已经mod_rpaf
安装好从X-Forwarded-For
PHP、Apache 日志等的标头中获取用户的 IP 地址。
不幸的是,看起来我必须通过设置明确设置哪些 IP 标头将受到尊重RPAFproxy_ips
。
鉴于 ELB 没有静态 IP,我怎么知道mod_rpaf
接受来自任何 IP 甚至任何 10.* IP 的标头?
你可以试试用mod_extract_forwarded
代替mod_rpaf
——它支持MEFaccept all
(如果你用的是RHEL/CentOS/other-clone,这个包已经在EPEL里了)。一个缺点mod_extract_forwarded
是X-Forwarded-For
和Forwarded-For
标头名称是硬编码的,不能像mod_rpaf
.
即使在 中也不支持 IP 范围mod_extract_forwarded
,但您可以配置防火墙以仅允许从某些 IP 范围直接访问 Apache,或检查规则中的MEF_RPROXY_ADDR
环境变量mod_rewrite
。
大约过一些这方面的更多的思考,我发现一个问题,这个mod_extract_forwarded
配置-虽然mod_rpaf
不支持多代理链,从只需在最后一个地址X-Forwarded-For
头,mod_extract_forwarded
企图以支持这一点,并使用其中不属于可信代理列表中的最后一个地址(这样如果请求通过了多个受信任的代理,将使用实际的客户端地址而不是倒数第二个代理地址)。不幸的是,使用MEFaccept all
该手段mod_extract_forwarded
将信任所有的代理,因此,如果ELB代理只是他们的数据附加到X-Forwarded-For
头部,并没有完全取代它,客户可以通过发送自己的要求通过任何伪造IPX-Forwarded-For
报头。
但是,我发现了另一个模块来解析X-Forwarded-For
标头。最近(不稳定)的 Apache 版本有mod_remoteip模块,它显然支持代理地址的子网掩码。有一个到 Apache 2.2的backport和一个Fedora的规范文件;不幸的是,在 Fedora 中包含软件包的请求被搁置了。
归档时间: |
|
查看次数: |
3425 次 |
最近记录: |