OpenVPN的路由问题

我正在尝试完成在我的Ubuntu 10.04.2服务器上设置OpenVPN服务器。 但我似乎遇到了一个障碍。

OpenVPN安装进行的很顺利,我可以为服务器和客户端创buildconfiguration文件,客户端可以通过互联网连接到服务器。 我遇到的问题是路由相关的。

服务器端(LAN)能够ping通OpenVPN网关(10.8.0.1)和testing主机(10.8.0.6)我相信这是可以做到的,因为我在我的m0n0wall中设置了一条静态路由所有的stream量通过网关10.0.0.6绑定到10.8.0.0/24,这是OpenVPN服务器的局域网地址。

这是问题发生的地方,当我坐在一个完全独立的互联网连接的客户端时,我无法ping除由VPN主pipe的局域网内的任何东西,除了10.8.0.1和10.0.0.6。 我尝试了几个其他的内部地址,什么也没有通过。 我错过了什么,我需要在OpenVPN服务器上的路线或什么? 根据几次Googlesearch,我在OpenVPN服务器上启用了IP转发function,这就是上面段落中的描述开始工作的时候了。 但就是这样,只有一半是有效的。

首先,下面是我刚刚写的openvpn的设置方法 。

其次,您是否在服务器上设置了防火墙规则以允许转发? 听起来好像你没有,这就是数据包被阻止的地方。 像这样的东西将允许从您的VPN到您的内部networking转发stream量。

/sbin/iptables -I FORWARD 1 -s 10.8.0/24 -j ACCEPT 

如果你在这里发布/sbin/iptables -nvL的输出,那也是很有用的。

你也是在你的客户端上手动设置路由,或者从服务器上推送它们? 如果你从服务器推送你想在服务器configuration文件中的这样的东西(假设你的服务器内部networking是192.168.10 / 24):

 # give clients access to the whole work network, not just the server. push "route 192.168.10.0 255.255.255.0" 

如果您从服务器推送它们,请validation客户端是否实际设置了路由。 例如,Windows 7和Vista会拒绝服务器推送的路由,除非通过right click->run as administrator openvpn客户端。 您可以通过检查客户端日志来确认这是在客户端上工作。

在服务器configuration中,您可以设置客户端应该使用的路由。 例如:

 push "route 10.8.0.0 255.255.255.0" 

池和服务器以及push route命令都必须在局域网的子网之外指定相同的子网。 一些路由和OpenVPN的更多信息可以在这里find: http : //www.secure-computing.net/wiki/index.php/OpenVPN/Routing

你可以发布iptables -l的输出吗?