使用iptables将所有内部数据从eth0路由到tun0

寻找一些答案;)

我在网关上运行Zentyal。 网关也是一个OpenVPN客户端,对于我用完了另一个国家的服务器。 接口是这样的:

外部:eth1(来自调制解调器192.168.1.2的dhcp)内部:eth0(静态10.1.1.1)OpenVPN:tun0(来自OpenVPN服务器10.7.0.6)

我连接了VPN,它的function。 我可以ping通服务器

# ping 10.7.0.1 

从网关机器。

这些是我在服务器上的规则,到目前为止他们工作得很好

 iptables -t nat -A POSTROUTING -i tun0 -o eth0 -j SNAT --to-source # Generated by iptables-save v1.4.8 on Sat Mar 23 04:41:56 2013 *mangle :PREROUTING ACCEPT [2036011512:705237252333] :INPUT ACCEPT [332186284:78285843071] :FORWARD ACCEPT [1703824348:626951360931] :OUTPUT ACCEPT [405392399:436227187419] :POSTROUTING ACCEPT [2109216747:1063178548350] COMMIT # Completed on Sat Mar 23 04:41:56 2013 # Generated by iptables-save v1.4.8 on Sat Mar 23 04:41:56 2013 *filter :INPUT ACCEPT [332186284:78285843071] :FORWARD ACCEPT [1019886723:183138161264] :OUTPUT ACCEPT [405392397:436227186606] -A FORWARD -i tun0 -o eth0 -j ACCEPT -A FORWARD -i eth0 -o tun0 -j ACCEPT COMMIT # Completed on Sat Mar 23 04:41:56 2013 # Generated by iptables-save v1.4.8 on Sat Mar 23 04:41:56 2013 *nat :PREROUTING ACCEPT [12528325:854813836] :POSTROUTING ACCEPT [2920518:161107345] :OUTPUT ACCEPT [882245:53661537] -A POSTROUTING -o eth0 -j MASQUERADE COMMIT # Completed on Sat Mar 23 04:41:56 2013 

我不相信这个问题是在服务器上,因为我有过去的工作,有相同的规则。 此外,如果我直接连接一台机器,它似乎在NetworkManager上运行良好

这是我的客户OpenVPNconfiguration:

 client dev tun proto udp remote <server IP> 1194 resolv-retry infinite redirect-gateway def1 nobind user nobody group nogroup persist-key persist-tun ca /etc/openvpn/ca.crt cert /etc/openvpn/client_home.crt key /etc/openvpn/client_home.key script-security 3 ns-cert-type server comp-lzo verb 3 mute 20 cipher AES-256-CBC keysize 256 

所以现在,我想要做的是通过tun0(openvpn 10.7.0.6)pipe道整个LAN(closureseth0 10.1.1.1/32)。 我不能让tun0在Zenyal中显示,所以我不能将它设置为默认网关等。

有人可以帮我写网关机器的一套iptables规则来强制通过OpenVPN连接的所有数据?

谢谢,我希望我能得到这个sorting。 你知道,整个隐私的事情开始让我们大失所望了)