VPN指南

本篇指南将介绍如何使用OpenVPN和PPTP VPN远程拨入刻通云中的私有网络,以及如何使用IPSec VPN将自己的数据中心或者办公网络与刻通云中的私有网络连接在一起。目前刻通云已经支持 OpenVPN、 PPTP VPN 、IPSec VPN。

总览

我们在刻通云创建一个私有网络192.168.151.0/24。创建一个路由器,并将该私有网络连接到路由器上,然后给该路由器绑定一个公网IP,使其可以连接到了 Internet。假设您当前位于办公网络,本地网络地址是192.168.10.0/24,下面我们的任务是将刻通云中的两个网络与您的本地网络连接。

PPTP 隧道服务

启动 PPTP 服务

首先,登录刻通云WEB控制台,点击左边导航条中的“路由器” ,在右边区域显示的路由器列表下点击您的路由器,进入其详情页,切换至“VPN”页签,然后在PPTP下点击“启动该服务”。在弹出的对话框里,大部分情况下可以直接使用缺省配置,需要确保的是VPN的IP段不能跟您的本地网络存在冲突。

确认无误后,点击“提交”。服务开启后还需要点击PPTP下面的“添加账号”添加一个登陆用户名和密码。另外,如果路由器绑定了防火墙,还需要配置路由器对应防火墙规则,允许 PPTP 服务器运行端口通过,即 TCP 下行 1723 端口。

PPTP 客户端

Windows XP

对于第一次连接的用户,需要先创建一个网络连接,创建网络连接步骤如下:

  • 第一步:点击 “开始”菜单,选择 “控制面板”,点击“网络和Internet连接”
  • 第二步:点击 “创建一个到您的工作位置的网络连接”
  • 第三步:点击 “虚拟专用网络连接”,然后点击 “下一步”
  • 第四步:设置自定义的公司名称,然后点击 “下一步”
  • 第五步:设置服务器地址为刻通云路由器上绑定的公网地址,点击 “下一步”
  • 第六步:选择 “在我的桌面上添加一个到此连接的快捷方式”,然后点击 “完成”

如果已经创建了网络连接,只需要在桌面上点击该网络连接,在弹出的页面中选择并点击相应的网络连接,在弹出界面上输入VPN连接的用户名和密码,然后点击 “连接” 就可以了。

注解

在默认情况下,连接VPN之后本地默认网关会指向VPN服务器,此时所有流量都会通过 VPN 服务器。 如果你不希望如此,禁用方法如下:

  • 第一步:点击 VPN 连接中的 “属性”,选择 “网络”
  • 第二步:选择 “TCP/IP” 并点击 “属性”
  • 第三步:在常规项中点击 “高级”选项,将 “在远程网络上使用默认网关” 前面的勾选去掉,点击 “确定”
  • 第四步:断开并重新连接 VPN

禁用掉默认网关之后,您需要手动配置路由规则才能访问刻通云私有网络里的主机,具体操作如下:

  • 第一步:点击 “开始” 菜单,选择 “运行”,输入 “cmd”,并点击确定,进入命令行界面
  • 第二步:在命令行界面输入命令 “ipconfig”,查看当前 VPN 的地址,例如是192.168.1.2
  • 第三步:添加路由规则 “route add 192.168.151.0 mask 255.255.255.0 192.168.1.2”(这里假设您需要访问的刻通云私有网络地址是192.168.151.0/24)
  • 第四步:测试是否可以正常访问 “192.168.151.0/24” 的地址,例如: “ping 192.168.151.1”

Windows 7

对于第一次连接的用户,需要先创建一个网络连接,创建网络连接步骤如下:

  • 第一步:点击 “开始”菜单,选择 “控制面板”,然后点击 “网络和Internet”,接着点击 “网络和共享中心”,
  • 第二步:点击 “设置新的连接或网络”,选择 “连接到工作区”,然后点击 “下一步”
  • 第三步:点击 “使用我的 Internet 连接(VPN)”
  • 第四步:在 “Internet地址” 处输入路由器绑定的公网IP,”目标名称” 输入你自己想要的名称,然后点击 “下一步”
  • 第五步:在用户名和密码框中输入在刻通云VPN中所设置的用户名和密码,点击 “连接”即可完成。

在VPN网络连接已经创建好的情况下,只需要点击桌面右下角的网络连接处,在弹出的页面中选择并点击相应的网络连接,在弹出界面上输入VPN连接的用户名和密码,然后点击 “连接” 就可以了。

注解

在默认情况下,连接VPN之后本地默认网关会指向VPN服务器,此时所有流量都会通过 VPN 服务器。 如果你不希望如此,禁用方法如下:

  • 第一步:右键点击对应的 VPN 连接,选择 “属性”
  • 第二步:选择 “网络” 中的 “TCP/IPv4”,然后点击 “属性”
  • 第三步:在常规项中点击 “高级”选项,将 “在远程网络上使用默认网关” 前面的勾选去掉,点击 “确定”
  • 第四步:断开并重新连接 VPN

禁用掉默认网关之后,您需要手动配置路由规则才能访问刻通云私有网络里的主机,具体操作如下:

  • 第一步:点击 “开始” 菜单,找到 “所有程序” -> “附件” -> “命令提示符”,点击右键然后选择 “以管理员身份运行”,进入命令行界面
  • 第二步:在命令行界面输入命令 “ipconfig”,查看当前 VPN 的地址,例如是192.168.1.2
  • 第三步:添加路由规则 “route add 192.168.151.0 mask 255.255.255.0 192.168.1.2”(这里假设您需要访问的刻通云私有网络地址是192.168.151.0/24)
  • 第四步:测试是否可以正常访问 “192.168.151.0/24” 的地址,例如:“ping 192.168.151.1”

Linux

我们将以 Ubuntu Linux 为例来举例说明,其他的Linux版本类似。

第一步,安装 PPTP 客户端:

$ sudo apt-get install pptp-linux

第二步,修改 /etc/ppp/chap-secrets 文件,配置用户名和密码,字符串之间以“Tab”键进行分隔

<user_name>   pptpd   <password>

注解

请将以上文件中的 <> 连同扩起来的部分替换成您的自己的配置。例如: “<user_name> pptpd <password> *” 替换为 “myusername pptpd mypassword *

第三步,新建 /etc/ppp/peers/<tunnel> 文件,<tunnel> 是您自定义的隧道名称,例如我们设置为vpn,则这个文件为 /etc/ppp/peers/vpn:

pty "pptp <vpn_server_ip> --nolaunchpppd --nobuffer --loglevel 0"
name <user_name>
remotename pptpd
require-mppe-128
file /etc/ppp/options.pptp
ipparam <tunnel>

注解

请将以上文件中的 <> 连同扩起来的部分替换成您的自己的配置。例如:

<vpn_server_ip> 替换为路由器绑定的公网IP, <user_name> 替换为用户名, <tunnel> 替换为您自定义的隧道名称,比如上面设置的名称vpn。

第四步,启动 VPN 客户端

$ sudo pon <tunnel> persist

注解

请将以上命令行中的 <> 连同扩起来的部分替换成您自定义的隧道名称,在本例中我们设置为 vpn

第五步,配置相应的路由规则,假设您需要访问的私有网络的网络地址为 192.168.151.0/24,相应的路由配置为

$ sudo ip route add 192.168.151.0/24 dev ppp0

注解

命令中的 ppp0 为客户端连接的设备名,如果您只有一个 VPN 客户端正在运行,那默认设备一般都是 ppp0,如果不是,您可以通过 ifconfig 命令来进行查看。

如果您希望在每次启动客户端之后能够自动配置这些路由规则,您可以写一个启动脚本,放在 /etc/ppp/ip-up.d/下面。 例如,可以创建脚本文件 /etc/ppp/ip-up.d/add-myroute,内容为

#!/bin/sh
ip route add 192.168.151.0/24 dev $1

第六步,关闭 VPN 客户端。如果您想断开 VPN 连接,可以执行一下命令

$ poff <tunnel>

注解

请将以上命令行中的 <> 连同扩起来的部分替换成您定义的隧道名称,在本例中是 vpn

Mac

我们以 Mac Mavericks 为例来举例说明,其他的 Mac 版本类似。

首先配置 PPTP 连接:

  • 第一步:进入 “系统偏好设置”,然后选择 “网络”
  • 第二步:通过左下角的 “+” 添加一个新服务,接口选择 “VPN”,类型选择 “PPTP”,自定义一个名称,然后点击确定
  • 第三步:在”服务器地址” 处填写路由器绑定的公网IP,”帐户名称” 填 PPTP 的用户名,”鉴定设置” 中填入密码,然后点击确定
  • 第四步:点击连接 VPN

此外,您还需要手动配置路由规则,具体做法为:

  • 第一步:进入 Mac 的 shell 环境
  • 第二步:输入命令 “ipconfig”,查看当前 VPN 的地址,例如是192.168.1.2
  • 第三步:添加路由规则 “sudo /sbin/route -n add -net 192.168.151.0 192.168.1.2”(假设您需要访问的刻通云私有网络地址是192.168.151.0/24)
  • 第四步:测试是否可以正常访问私有网络“192.168.151.0/24”,例如:“ping 192.168.151.1”.

如果您希望在每次启动客户端之后能够自动配置这些路由规则,您可以写一个启动脚本,放在 /etc/ppp/ip-up 文件中。 例如:创建脚本文件 /etc/ppp/ip-up,内容为

#!/bin/sh
sudo /sbin/route -n add -net 192.168.151.0/24 $4

保存并更改文件权限

$ sudo chmod a+x /etc/ppp/ip-up

如果您不想配置路由,还可以在VPN配置界面里,点击 “高级选项”,勾选 “通过VPN连接发送所有流量”,不过这种设置,会使本地的所有流量通过 VPN 连接来发送。

IPSec VPN服务

IPSec VPN对连拓扑

如下图所示,假设您在刻通云中的路由器使用的公网IP是88.88.88.88,您自己办公网络或数据中心的路由器使用的公网IP是99.99.99.99,这两个路由器背后各连接有两个私有网络,它们将通过IPSec VPN隧道连接在一起。

VPN对连拓扑

刻通云中设置IPSec VPN的操作步骤:

  • 登录 WEB 控制台,点击左边导航条中的“路由器” ,在右边区域显示的路由器列表下点击您的路由器,进入其详情页,切换至“VPN”页签,然后在IPSec服务下点击“添加链接”。在弹出的对话框里,进行如下设置:

    名称:为VPN隧道起个名称,比如test-ipsecvpn
    组网模式:目前只支持站点到站点模式
    对端子网:为对端私有网络192.168.10.0/24
    对端路由器IP:填写对端路由器IP99.99.99.99
    对端路由器ID:由对端的数据中心路由器配置决定。这里我们也输入99.99.99.99
    预共享密钥:一个两端预先商量好的密钥,比如123456

    在“高级配置”中,可以调整“IKE策略”,“IPSec策略”,“其他”参数。

  • IKE策略设置: 使用默认配置

    加密算法:aes-128
    IKE版本:v1
    DH交换组:group5
    IKE SA生存时间:3600
  • IPSec策略配置:使用默认配置

    加密算法:aes-128
    封装模式:tunnel,也就是隧道模式
    转换协议:esp
    DH交换组:group5
    IKE SA生存时间:3600
  • 其他设置:使用默认配置

    对端失效动作:hold,保持连接
    对端失效探测间隔:30秒
    对端失效超时时间:120秒
    发起人状态:bi-directional
    最大传输单元:1500

确认无误后,点击“提交”,另外,还需要去该路由器使用的防火墙规则中打开IPSec VPN服务运行所需要的UDP端口500和4500。

数据中心设备上的操作:

因为IPSec VPN隧道的对称性,还需要在您自己数据中心的路由器上进行相应的配置,具体配置方法取决于您使用的网络设备,请查询厂商的手册。这里给一个Huawei MSR930路由器的配置过程,供参考:

  • 网关信息:

    IPSec连接名称:填写一个名称
    接口:选择相应的接口,这里是GigabitEthernet0/0
    对端网关地址:填写对应的刻通云路由器绑定的浮动IP88.88.88.88
    预共享密钥:填写预先商量好的密钥,例如123456
    本地和远端网关ID:都选择IP地址
  • 筛选器设置:

    源地址通配符:192.168.10.0 0.0.0.255
    目的地址通配符:192.168.151.0 0.0.0.255
  • 高级设置:

    • 第一个阶段:需要与刻通云的IKE策略相关设置对应

      交换模式:选择主模式
      认证算法:选择SHA1
      加密算法:选择AES-128
      DH:选择group5
    • 第二阶段:需要与IPSec策略中的相关设置对应

      协议:选择ESP
      ESP认证算法:选择SHA1
      ESP加密算法:选择AES128
      封装模式:选择隧道模式
      PFS:选择group5
  • 路由设置:

    在导航栏中选择“高级配置 > 路由设置”,单击“创建”页签,进行如下配置:

    现在您就可以使用IPSec服务了。

OpenVPN 隧道服务

启动 OpenVPN 服务

首先,登录 WEB 控制台,点击左边导航条中的“路由器” ,然后在右边区域显示的路由器列表下点击您的路由器,进入其详情页,切换至“VPN”页签,在OpenVPN下点击“启动该服务”。

在弹出的对话框里,大部分情况下,可以直接使用缺省配置,需要确保的是VPN的IP段不能跟您的本地网络存在冲突。

确认无误后,点击“提交”,另外,如果路由器绑定了防火墙,还需要将防火墙规则中OpenVPN 服务器的运行端口打开,以上图为例,需要打开 UDP 下行 1194 端口。

OpenVPN 客户端

在上一节中我们启用OpenVPN 隧道服务后,您会看到一个名为“下载证书”的按钮,点击该按钮,即可下载一个文件名为 kt-xxxxxxxx.zip 的包,该压缩包存有配置 OpenVPN 客户端的必备证书,密钥文件以及客户端配置文件样例:

kt-xxxxxxxx.crt:
 SSL 客户端证书
kt-xxxxxxxx.key:
 SSL 客户端私钥
kt-xxxxxxxx.takey:
 OpenVPN TLS Auth 密钥
kt-xxxxxxxx-ca.crt:
 刻通云 CA 根证书

注解

上面四个文件是必需的配置文件,此外我们还在 zip 包中准备了几个不同操作系统下的配置文件样例,可作为参考。

kt-xxxxxxxx-linux-sample.conf:
 Linux 系统客户端的配置样例
kt-xxxxxxxx-windows-sample.ovpn:
 Windows 系统客户端的配置样例

Windows

第一步,下载 OpenVPN Windows 安装包并安装。缺省情况下,OpenVPN 将被安装到 C:Program FilesOpenVPN 目录中。

第二步,将前面下载的zip包中的配置文件放入 C:Program FilesOpenVPNconfig 目录中。

第三步,将以下内容保存到 C:Program FilesOpenVPNconfig 目录中扩展名为 .ovpn的文件中,比如可以叫做 kt-xxxxxxxx.ovpn

client
dev tun
proto udp
remote <your-router-ip> 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca kt-xxxxxxxx-ca.crt
cert <kt-xxxxxxxx.crt>
key <kt-xxxxxxxx.key>
tls-auth <kt-xxxxxxxx.takey> 1
cipher AES-256-CBC
comp-lzo

注解

<your-router-ip>``是路由器绑定的公网IP,请将以上文件中的 ``<> 连同扩起来的部分替换成您自有的配置。如:

remote <your-router-ip> 1194 替换为 remote 88.88.88.88 1194

可以参考下载的zip包里带的 windows sample 配置样例。

第四步,您可以连接了。

Linux

我们以 Ubuntu Linux 为例说明,其他的 Linux 系统做法类似。

第一步,安装openvpn

$ sudo apt-get install openvpn

第二步,将前面下载的zip包中的配置文件解压后放入 /etc/openvpn 目录中。

第三步,将以下配置保存到 /etc/openvpn 目录中扩展名为 .conf的文件中 ,比如叫做 kt-xxxxxxxx.conf

client
dev tun
proto <udp>
remote <your-router-ip> 1194
resolv-retry infinite
nobind
user <nobody>
group <nogroup>
persist-key
persist-tun
ca kt-xxxxxxxx-ca.crt
cert <kt-xxxxxxxx.crt>
key <kt-xxxxxxxx.key>
tls-auth <kt-xxxxxxxx.takey> 1
cipher AES-256-CBC
comp-lzo

注解

请将以上文件中的 <> 连同扩起来的部分替换成您的配置。如:

remote <your-router-ip> 1194 替换为 remote 88.88.88.88 1194

可以参考 zip 包里带的 linux sample 配置样例。

其中 user / group可以使用linux sample中的nobody/nogroup,或者使用您本地 Linux 系统的其他用户/组账号名。

第四步,您可以连接了

$ sudo service openvpn start

Mac

我们以Tunnelblick客户端为例说明。首先下载安装 Tunnelblick,然后将zip 包中的配置文件放入同一目录中,并将 kt-xxxxxxxx.takey 文件重命名为 kt-xxxxxxxx.takey.key。

将以下内容保存到同一目录扩展名为 .conf 的文件中,比如叫做 kt-xxxxxxxx.conf

client
dev tun
proto <udp>
remote <your-router-ip> 1194
resolv-retry infinite
nobind
user <nobody>
group <nogroup>
persist-key
persist-tun
ca kt-xxxxxxxx-ca.crt
cert <kt-xxxxxxxx.crt>
key <kt-xxxxxxxx.key>
tls-auth <kt-xxxxxxxx.takey.key> 1
cipher AES-256-CBC
comp-lzo

其中 user / group 请分别查询您本地系统的 /etc/password 和 /etc/group 文件。

注解

请将以上文件中的 <> 连同扩起来的部分替换成您的配置。如:

remote <your-router-ip> 1194 替换为 remote 88.88.88.88 1194

您可以参考下载的zip包里 linux sample 配置样例,将 .takey 改为重命名后的 .takey.key 。

保存文件后,将整个文件夹重命名为 xxx.tblk,之后双击这个.tblk 便可将配置添加到 Tunnelblick,然后就可以连接了。