如何配置OpenVPN客户端路由器


13

我正在尝试设置OpenVPN路由器,以便可以将平板电脑(无线)和蓝光(有线)连接到Ubuntu 12.10上另一个国家/地区的付费VPN服务。我已经使用DD-WRT(太慢)和PFSense的虚拟实例(太有限)成功完成了此操作。

我是Linux的新手,但是我90%完成了该项目。硬件是2个有线以太网端口,其中一个连接到传统的家用路由器,还有一个无线卡。

到目前为止,我有..

  1. 使用hostapd将我的无线设备设置为真正的主接入点
  2. 在无线局域网和本地局域网之间建立了一座桥梁(我认为)
  3. 设置一个成功为网桥分配地址的DHCP服务器-无线和有线都在获取它们。
  4. 设置OpenVPN,使其在启动时成功创建隧道连接。

当前行为将所有流量从我的Ubuntu计算机路由到VPN服务器。其他设备没有任何连接,这就是问题所在。

我的问题/目标:

如何配置路由,以便OpenVPN仅通过VPN隧道引导来自我的网桥(192.168.10.x以下设备)的流量,而不引导来自实际Ubuntu计算机的流量?

OpenVPN会自动设置一些路由,但似乎忽略了我设置的网桥。

我已经阅读了很多文档iptablesroute但是对我来说意义不大。尽管有许多教程,但我仍然不了解如何从route命令中读取结果。我还怀疑可以使用OpenVPN配置文件route-noexecroute-up在其中完成此操作,但是没有成功。

我对配置文件和设置的限制是有限的。以上任务使我至少花了30个小时的时间进行修补,因此请放心:)

谢谢!

编辑

我在下面发布了一个解决方案,该解决方案可指导网桥流量,但它不会阻止Ubuntu计算机上的流量通过VPN。

Answers:


1

我不确定这是否理想,但至少可以正常工作。在理想情况下,Ubuntu计算机上的流量不会通过VPN路由-仅连接到Ubuntu计算机的那些设备。无论如何,这是解决方案。

openvpn.conf文件中

script-security 2
up "/path/to/external/script.sh"

/path/to/external/script.sh文件中

iptables -A FORWARD -o tun0 -i br0 -s 192.168.10.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

在上面,tun0是由OpenVPN创建的隧道,br0是我的本地无线和本地局域网之间的桥梁,并且192.168.10.0/24是我的本地局域网的子网/ DHCP池。

我不知道该脚本的作用,但是我从Internet连接共享上的几个站点将其拼凑在一起。

如果有人想提供更好的答案或解释如何阻止Ubuntu计算机上的流量通过VPN,我将不作任何选择。


0

更容易配置路由器本身以连接到VPN服务器,以便网络上的所有设备都可以通过它。您可以从路由器的软件Web界面执行此操作。

为了允许连接到PC的设备访问Internet,必须从该PC与其他人进行Internet共享。


比较容易,是的。但是我已经做到了,而且太慢了。
jbrookover 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.