OpenVPN路由远程stream量取决于子网

我实现了build立一个OpenVPN的路由所有的stream量通过远程openvpn服务器。

OpenVPN服务器有两个接口:eth0 – > Internet访问eth1 – >私有networking:192.168.1.0/24

现在,所有的stream量都与Eth0共享。

为server.conf

# SERVER UDP/9494 mode server proto udp port 9494 dev tun tcp-queue-limit 128 tun-mtu 1500 mssfix 1300 tun-mtu-extra 32 txqueuelen 15000 # KEYS ca ca.crt cert server.crt key server.key dh dh2048.pem tls-auth ta.key 0 cipher AES-256-CBC # NETWORK server 192.168.2.0 255.255.255.0 push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 4.4.4.4" push "dhcp-option DNS 8.8.8.8" keepalive 10 120 # SECURITY user nobody group nogroup chroot /etc/openvpn/jail persist-key persist-tun comp-lzo # LOGS verb 3 mute 20 status openvpn-status.log ; log-append /var/log/openvpn.log 

iptables

 iptables -A INPUT -p udp --dport 9494 -d $SERVER_IP --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -I FORWARD -i tun0 -j ACCEPT iptables -I FORWARD -o tun0 -j ACCEPT iptables -I OUTPUT -o tun0 -j ACCEPT iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE 

除了192.168.1.0/24范围内的人,我想要做同样的事情

我怎样才能做到这一点与iptables?

感谢您的build议

我想你应该在POSTROUTING和FORWARD中添加专用networking的规则,但是应该在POSTROUTING规则的其余部分之前定义它们。

另外,如果我看到正确的第一个POSTROUTING规则没有任何源networking规范匹配所有的数据包,所以下一行永远不会匹配 – 删除这个。

所以我认为你的iptables规则应该是这样的:

 iptables -A INPUT -p udp --dport 9494 -d $SERVER_IP --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -I FORWARD -i tun0 -j ACCEPT iptables -I FORWARD -o tun0 -j ACCEPT iptables -I OUTPUT -o tun0 -j ACCEPT iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT iptables -A FORWARD -i tun0 -o eth1 -j ACCEPT iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -d 192.168.1.0/24 -o eth1 -j MASQUERADE iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE 

也许你应该做一些日志logging,看看你是否需要重新configuration或错过任何东西。

上述规则增加后:

 iptables -A FORWARD -j LOG --log-prefix 'iptables-forward: ' iptables -t nat -A POSTROUTING -j LOG --log-prefix 'iptables-postrouting: ' 

如果您只想添加路由,以便您的OpenVPN客户端可以与networking的其他部分进行通信,请执行以下操作:

推“路由192.168.1.0 255.255.255.0”

推“路由192.168.2.0 255.255.255.0”