OpenVPN服务器configuration路由互联网stream量

我有一个configurationOpenVPN的问题。

当我连接时会发生这种情况:我可以从客户端192.168.42.6 ping服务器192.168.42.1,反之亦然。 我可以访问192.168.42.1(http和dns)服务器上的监听守护进程。 我可以通过互联网IP访问服务器,但连接不在VPN中路由(我做了一个traceroute,它通过我的家庭路由器)。 我无法访问任何其他互联网IP(在nmap traceroute上,我只看到一行192.168.42.1!)。

这里是我的OpenVPN服务器configuration:

port 443 proto tcp dev tun ca ca.crt cert server.crt key server.key dh dh2048.pem server 192.168.42.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "dhcp-option DNS 192.168.42.1" duplicate-cn keepalive 10 120 tls-auth ta.key 0 comp-lzo user openvpn group openvpn persist-key persist-tun status openvpn-status.log verb 4 script-security 2 push "redirect-gateway def1" auth-user-pass-verify /home/openvpn/chroot/login.php via-file port-share 127.0.0.1 4433 max-clients 10 daemon 

这是我的iptablesconfiguration的一部分:

 # current configuration (i removed some lines concerning other ports) iptables -t filter -P INPUT DROP iptables -t filter -P FORWARD DROP iptables -t filter -P OUTPUT DROP iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -t filter -A INPUT -i lo -j ACCEPT iptables -t filter -A OUTPUT -o lo -j ACCEPT iptables -t filter -A INPUT -p icmp -j ACCEPT iptables -t filter -A OUTPUT -p icmp -j ACCEPT iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT # lines added for OpenVPN iptables -A FORWARD -i tun0 -o em1 -s 192.168.42.0/24 -m conntrack --ctstate NEW -j ACCEPT iptables -t nat -A POSTROUTING -s 192.168.42.0/24 -o em1 -j MASQUERADE 

我能做什么? 感谢您的帮助。

我从你的问题和configuration中假设你打算允许通过服务器访问客户端。

在这种情况下,在我看来你的openvpnconfiguration是正确的。

但是,您的筛选不完整。 实际上,你把它设置为从tun0转发新的数据包到em0(我假设它是服务器上的以太网连接),但是没有任何后续数据包或任何从em0到tun0的数据包。 大约所有的互联网协议都需要双向通信。

因此,我会在您的configuration中添加行:

 iptables -A FORWARD -i tun0 -o em1 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i em1 -o tun0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT 

你也应该让/ proc / sys / net / ipv4 / ip_forward包含1,如果没有,执行

 sudo echo "1" > /proc/sys/net/ipv4/ip_forward 

根据你的发行版本,应该有一种方法使最后的设置成为永久性的(命令只能使它持续到下一次重新启动)。