在没有NAT的情况下保持IPstream量(Ubuntu 14.04)

我一直在设置OpenVPN,并且我一直遵循的所有标准指南都build议设置iptables以便VPN服务器在VPN客户端上执行NAT:

iptables -t nat -A POSTROUTING -s *vpn-ip-range* -o eth0 -j MASQUERADE

这很好。 但是,由于NAT在我们其他内部机器上的所有日志都报告来自VPN服务器IP而不是客户端IP的stream量。

我想删除NAT,并在整个networking中使用客户端IP(用于审计目的)。 我已经完成了以下工作:

  • 更新OpenVPNconfiguration为所有客户端提供内部IP地址(子网10.0.0.0/8
  • 添加一个静态路由到我们的主要网关将这个子网路由到VPN服务器的IP地址

最后一步是更新iptables 。 这是我似乎无法得到它的工作。

网卡是eth0 ,所有OpenVPNstream量都在tun0 。 我所要做的就是让VPN服务器在与10.0.0.0/8stream量相关的接口之间转发stream量。

任何人都可以build议我将如何做到这一点?

一个快速的周转方式可能是修改如何logging工作,使其logging$ http_x_forwarded_for值,然后将logging实际的客户端IP。

不知道天气你将能够修改你的日志logging正在发生,但我希望这有助于。

我设法解决了这个问题。 虽然我已经将net.ipv4.ip_forward=1添加到了/etc/sysctl.conf (大多数指南指出),但我还需要添加net.ipv4.conf.all.proxy_arp=1

然后, iptablesconfiguration只需要允许在两个接口上的所有stream量,它的工作原理!