虚拟专用网实验

目标

了解什么是虚拟专用网(VPN),知道 VPN 的原理和应用。通过实验理解 IPSec 和 VPN 的关系和必要性。

本篇文章为实验记录,仅供交流学习使用,切勿违法应用,所有文中提到的工具不提供下载。

原理

虚拟专用网 (VPN)[^1]

虚拟专用网(Virtual Private Network,VPN)是利用 Internet 等公共网络的基础设施,通过隧道技术,为用户提供的与专用网络具有相同通信功能的安全数据通道。“虚拟” 是指用户无需建立各自专用的物理线路,而利用 Internet 等公共网络资源和设备建立一条逻辑上的专用数据通道,并实现与专用数据通道相同的通信功能。“专用网络” 是指虚拟出来的网络并非任何连接在公共网络上的用户都能使用,只有经过授权的用户才可使用。

该通道内传输数据经过加密和认证,可保证传输内容的完整性和机密性。

IPSec

互联网安全协议(英语:Internet Protocol Security,缩写为 IPsec),是一个协议包,通过对 IP 协议的分组进行加密和认证来保护 IP 协议的网络传输协议族(一些相互关联的协议的集合)。由认证头(AH)、封装安全载荷(ESP)、安全关联(SA)组成。

IPSec 被设计用来提供入口之间和端到端之间的通信安全,无论哪一种模式都可以用来构建虚拟专用网(VPN)。

步骤和关键技术

IPSec 协议配置

Windows XP 端的 IP 为 192.168.235.136,Windows 2000 端的 IP 为 192.168.235.141

  1. 在 WindowsXP 下打开 “控制面板→管理工具→本地安全策略”,找到 “IP 安全策略,在本地计算机”。双击进入。然后右击 “安全服务器”,点击指派规则。

  2. 双击 “安全服务器” 进入其设置,双击 “所有 ICMP 通讯量” 进入规则设置。

  3. 在 “筛选器操作” 选项卡中,选择 “需要安全”。

  4. 在 “身份验证方法” 选项卡中,添加一个共享密钥。记住此密钥,在另一端要做同样的设置。

  5. 只在一端配置时,ping 端会直接显示 Request timed out。双端配置时,会显示 Negotiating IP Security。正确配置时,会先显示 Negotiating IP Security,然后才会显示 ping 的 reply,代表双端成功建立了连接。可以在 win2000 端的 IP 安全监视器中看到连过来的 xp 设备。

    当然,也可以配置专用的 IPSec 安全策略,不使用系统默认值。过程类似,不再赘述。

OpenVPN 配置

本部分实验使用 WindowsXP 和 Windows2000 共同完成,WindowsXP 充当服务端,Windows2000 充当客户端。

事先下载安装好 openssl 库,否则会报 “命令不存在” 的错误。

  1. 首先安装 OpenVPN。安装过程一路下一步即可。

  2. 将安装目录 easy-rsa 下 vars.bat.sample 文件换成自己的信息,然后更名为 vars.bat

    vars.bat
    1
    2
    ...
    set <KEY>=<VALUE>
  3. openssl.cnf.sample 更名为 openssl.cnf

  4. 在 easy-rsa 文件夹下,先后运行 varsclean-all.bat 命令,以进行初始化。

  5. 生成 CA 根证书。

  6. 生成密钥交换协议算法参数。

  7. 生成服务端和客户端证书并签发十年有效期。

    build-server-key.bat server

    build-key.bat client

  8. 生成 ta key