cee*_*yoz 3 amazon-elb mod-rpaf
我已经mod_rpaf安装好从X-Forwarded-ForPHP、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 次 |
| 最近记录: |