寻找一些答案;)
我在网关上运行 Zentyal。网关也是一个 OpenVPN 客户端,连接到我在其他国家/地区运行的服务器。接口如下:
外部:eth1(来自调制解调器 192.168.1.2 的 dhcp) 内部:eth0(静态 10.1.1.1) OpenVPN:tun0(来自 OpenVPN 服务器 10.7.0.6)
我已经连接了 VPN,它运行正常。我可以通过以下方式 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 正常工作
这是我的客户端 OpenVPN 配置:
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
所以现在,我想要做的是将整个 LAN(eth0 10.1.1.1/32 之外)通过 tun0(openvpn 10.7.0.6)进行管道传输。我无法让 tun0 显示在 Zenyal 中,因此我无法将其设置为默认网关等。
有人可以帮我为网关机器编写一组 iptables 规则以强制所有数据通过 OpenVPN 连接吗?
谢谢,希望我能解决这个问题。你知道,隐私问题开始让我们所有人都有点害怕了 ;)