在OpenVPN服务器上进行基于策略的路由

我正在尝试将OpenVPN服务器设置为移动/桌面设备的反向代理,可以根据特定策略中继stream量:

  • 只有白名单IP地址的请求才会被直接转发(MASQUERADE到eth)
  • 其他人将需要通过另一层代理服务器(因为服务器本身没有直接访问非白名单地址)

我目前(额外)的iptablesconfiguration是:

iptables -t nat -N POLICY iptables -t nat -A POLICY -d server_ip -j RETURN iptables -t nat -A POLICY -d 0.0.0.0/8 -j RETURN iptables -t nat -A POLICY -d 10.0.0.0/8 -j RETURN iptables -t nat -A POLICY -d 127.0.0.0/8 -j RETURN iptables -t nat -A POLICY -d 169.254.0.0/16 -j RETURN iptables -t nat -A POLICY -d 172.16.0.0/12 -j RETURN iptables -t nat -A POLICY -d 192.168.0.0/16 -j RETURN iptables -t nat -A POLICY -d 224.0.0.0/4 -j RETURN iptables -t nat -A POLICY -d 240.0.0.0/4 -j RETURN iptables -t nat -A POLICY -p tcp -j REDIRECT --to-port 13579 iptables -t nat -A PREROUTING -p tcp -j POLICY iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth1 -j MASQUERADE 

其中13579是代理端口, 10.8.0.0是DHCP池, eth1是具有外部Internet访问的networking设备。

现在OpenVPN服务器本身configuration正确,客户端可以build立连接,可以访问白名单上的IP地址。

但是iptables规则不是。 其他要求通过“客户端 – >服务器 – >代理 – >服务器 – >客户端”例程的请求并不像预期的那样,症状:

  • 代理正在运行(通过其他方式确认),但正在接收大量的请求。
  • OpenVPN客户端不能访问白名单以外的IP地址。

我想知道代理服务器返回的stream量在哪里? 我如何使OpenVPN服务器按预期工作? … 🙁