软件指南针:专注于软件传播与分享

路由所有客户端流量(包括web流量)通过VPN (OpenVPN官方文档)

来源:原创 2617次浏览 0条评论
☞ 本文主要介绍软件OpenVPN的相关内容:路由所有客户端流量(包括web流量)通过VPN (OpenVPN官方文档)

   其下列版本/分支可以参考本文:

  • 全部版本/分支
英文原文:http://openvpn.net/index.php/open-source/documentation/howto.html#redirect

路由所有客户端流量(包括Web流量)通过VPN

概述

默认情况下,当一个OpenVPN客户端处于活动状态时,只有往返于OpenVPN服务器的网络流量才会通过VPN。一般的网页浏览操作,举个例子,将会绕过VPN、通过直接连接来完成

在某些情况下,这种行为可能并不令人称心如意 -- 你可能想让VPN客户端所有的网络流量均通过VPN,也包括一般的网络流量。虽然客户端的这种VPN配置将会耗费一些性能,但在客户端同时连接公共网络和VPN时,它却给予了VPN管理员在安全策略上更多的控制能力。

实施

在服务器配置文件中添加如下指令:

push "redirect-gateway def1"

如果你的VPN安装在无线网络上,并且OpenVPN服务器和客户端均处于同一个无线子网中,请添加local标记:

push "redirect-gateway local def1"
推送redirect-gateway选项命令到客户端,将会导致源自客户端计算机的所有IP网络流量通过OpenVPN服务器。服务器需要进行配置,从而以某种方式处理这些流量,例如:通过NAT转化流量到internet,或者路由通过服务器所在网络场所的HTTP代理。 在Linux系统中,你可以使用如下命令将VPN客户端的流量NAT转化到internet:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

该命令假定VPN子网网段为10.8.0.0/24(取自OpenVPN服务器配置的server指令),本地以太网接口为eth0

当启用了redirect-gateway指令,OpenVPN客户端将路由所有的DNS查询经过VPN,VPN服务器需要处理掉这些查询。在VPN活动期间,我们可以通过推送DNS服务器地址到正在连接的客户端上来完成该操作,从而代替常规的DNS服务器设置:

push "dhcp-option DNS 10.8.0.1"

这将配置Windows客户端(或带有额外的服务器端脚本的非Windows客户端)使用10.8.0.1作为它们的DNS服务器。任何客户端能够到达的地址都可能作为DNS服务器。

注意事项

重定向所有的网络流量通过VPN并不是一个完全没有问题的命题。这里有一些典型的陷阱需要注意:

  • 多数连接internet的OpenVPN客户端计算机会定期与DHCP服务器进行交互,并更新它们的IP地址租约。redirect-gateway选项命令可能会阻止客户端连接到本地DHCP服务器(因为DHCP信息会被路由通过VPN),从而导致丢失IP地址租约。
  • 关于推送DNS地址到Windows客户端存在一些问题
  • 客户端的Web浏览性能将会明显降低。

关于redirect-gateway指令的更多信息,请参考手册页面

作者:软件指南针(http://www.softown.cn),转载请保留出处!

用户评论

使用指南 故障排除 0 返回顶部