iptables NAT 端口转发和 Apache 日志 IP

iptables NAT 端口转发和 Apache 日志 IP

感谢 quanta,我现在可以使用 iptables 通过单个 IP 和多个端口将 SSH 端口转发到防火墙后面的服务器 -原始问题在这里

但是,如果我使用此技术将 http 流量转发到防火墙 LAN 之外的 Apache 服务器,则 Apache 日志中标记的 IP 是防火墙的 IP,而不是发出原始请求的 PC 的 IP。

有什么可以改变这一点吗,或者我是否需要 Apache 日志中的另一个字段来捕获此信息?

答案1

如果您需要有关发出请求的原始主机的信息,则需要第 4 层设备(例如 squid、代理模式下的 apache 或专用负载均衡器,例如 F5 或 Netscaler)。如果您进行直接 NAT 转换,则所有请求都会(正确地)显示为来自连接到服务器的具有公共 IP 地址的主机。

第 4 层设备或服务器可以将Via:X-Forwarded-For:或其他任意标头添加到发往服务器的 HTTP 请求中。然后,服务器可以(如果需要)使用有关原始客户端的该信息。例如,Netscaler(Citrix)发布了一个 Apache 插件,允许您使用所述任意 HTTP 标头的值重写 Apache 请求。

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html有关 Via: 标题以及附加的实际信息的更多信息。

相关内容