VPN 基础知识
借助隧道,可以使用互联网等公共 TCP/IP 网络在远程用户与企业专用网络之间创建安全连接。每个安全连接都称为一个隧道。
基于 IPSec 的 VPN 技术通过互联网安全关联和密钥管理协议(ISAKMP 或 IKE)以及 IPSec 隧道标准来建立和管理隧道。ISAKMP 和 IPSec 将完成以下操作:
-
协商隧道参数。
-
建立隧道。
-
验证用户和数据。
-
管理安全密钥。
-
加密和解密数据。
-
管理隧道中的数据传输。
-
作为隧道终端或路由器管理入站和出站数据传输。
VPN 中的设备可用作双向隧道终端。它可以从专用网络接收明文数据包,将其封装,创建隧道,然后发送到隧道的另一端,随后解封并发送到最终目标。它也会从公用网络接收封装数据包,将其解封,然后发送给其在专用网络上的最终目标。
建立站点间 VPN 连接之后,本地网关后的主机可通过安全 VPN 隧道连接至远程网关后的主机。一个连接由以下部分组成:这两个网关的 IP 地址和主机名、这两个网关后的子网,以及这两个网关用来进行相互身份验证的方法。
互联网密钥交换 (IKE)
互联网密钥交换 (IKE) 是用于对 IPsec 对等体进行身份验证,协商和分发 IPsec 加密密钥以及自动建立 IPsec 安全关联 (SA) 的密钥管理协议。
IKE 协商包含两个阶段。第 1 阶段协商两个 IKE 对等体之间的安全关联,使对等体能够在第 2 阶段中安全通信。在第 2 阶段协商期间,IKE 为其他应用建立 SA,例如 IPsec。两个阶段在协商连接时均使用提议。
IKE 策略是一组算法,供两个对等体用于保护它们之间的 IKE 协商。在各对等体商定公共(共享)IKE 策略后,即开始 IKE 协商。此策略声明哪些安全参数保护后续 IKE 协商。对于 IKE 版本 1 (IKEv1),IKE 策略包含单个算法集和模数组。与 IKEv1 不同,在 IKEv2 策略中,您可以选择多个算法和模数组,对等体可以在第 1 阶段协商期间从中进行选择。可创建单个 IKE 策略,尽管您可能需要不同的策略来向最需要的选项赋予更高优先级。对于站点间 VPN,您可以创建单个 IKE 策略。
要定义 IKE 策略,请指定:
-
唯一优先级(1 至 65,543,其中 1 为最高优先级)。
-
一种 IKE 协商加密方法,用于保护数据并确保隐私。
-
散列消息身份验证代码 (HMAC) 方法(在 IKEv2 中称为完整性算法),用于确保发送人身份,以及确保消息在传输过程中未被修改。
-
对于 IKEv2,使用单独的伪随机函数 (PRF) 作为派生 IKEv2 隧道加密所要求的密钥内容和散列运算的算法。这些选项与用于散列算法的选项相同。
-
Diffie-Hellman 组,用于确定 encryption-key-determination 算法的强度。设备使用此算法派生加密密钥和散列密钥。
-
身份验证方法,用于确保对等体的身份。
-
在更换加密密钥前,设备可使用该加密密钥的时间限制。
当 IKE 协商开始时,发起协商的对等体将其启用的所有策略发送到远程对等体,然后远程对等体按优先级顺序搜索其自己的策略的匹配项。如果 IKE 策略具有相同的加密、散列(完整性和用于 IKEv2 的 PRF)、身份验证和 Diffie-Hellman 值,而且 SA 生命周期小于或等于发送的策略中的生命周期,则它们之间存在匹配。如果生命周期不同,则会应用较短的生命周期(来自远程对等体)。默认情况下,使用 DES 的简单 IKE 策略是唯一启用的策略。您可以启用更高优先级的其他 IKE 策略来协商更强的加密标准,但 DES 策略应确保成功协商。
VPN 连接应具有多高的安全性?
由于 VPN 隧道通常流经公共网络(最可能是互联网),因此您需要对连接进行加密以保护流量。可以使用 IKE 策略和 IPsec 提议定义要应用的加密和其他安全技术。
如果您的设备许可证允许应用较强的加密,则有大量的加密和散列算法以及 Diffie-Hellman 组供您选择。然而,通常情况下,应用于隧道的加密越强,系统性能越差。您要在安全性和性能之间实现平衡,在提供充分保护的同时不牺牲效率。
我们无法就选择哪些选项提供具体指导。如果您在大型公司或其他组织执行运营,可能已有需要满足的指定标准。如果没有,请花些时间研究各个选项。
下面的主题介绍了几个可用选项。
决定使用哪个加密算法
在决定用于 IKE 策略或 IPsec 提议的加密算法时,您的选择仅限于 VPN 中的设备所支持的算法。
对于 IKEv2,您可以配置多个加密算法。系统将按安全性从高到低的顺序对设置进行排序,并使用该顺序与对等体进行协商。对于 IKEv1,仅可以选择一个选项。
对于 IPsec 提议,该算法用于封装安全协议 (ESP),该协议提供身份验证、加密和防重放服务。ESP 为 IP 协议类型 50。在 IKEv1 IPsec 提议中,算法名称以 ESP- 为前缀。
如果设备许可证符合强加密要求,可以从以下加密算法中选择。如果不符合强加密要求,则只能选择 DES。
注 |
如果符合强加密要求,在从评估许可证升级到智能许可证之前,请检查并更新加密算法以实现更强的加密,从而使 VPN 配置正常工作。选择基于 AES 的算法。如果您使用支持强加密的账户注册,则不支持 DES。注册后,在删除对 DES 的所有使用之前,您无法部署更改。 |
-
AES-GCM - (仅 IKEv2。)Galois/Counter 模式中的高级加密标准是提供机密性和数据源身份验证的分组加密操作模式,并且提供比 AES 更高的安全性。AES-GCM 提供三种不同的密钥强度:128 位、192 位和 256 位密钥。密钥越长,其提供的安全性就越高,但性能会随之降低。GCM 是支持 NSA Suite B 所需的 AES 模式。NSA Suite B 是一套加密算法,设备必须支持这套算法才能满足密码强度的联邦标准。.
-
AES - 高级加密标准是一种对称密码算法,提供比 DES 更高的安全性,在计算上比 3DES 更高效。AES 提供三种不同的密钥强度:128 位、192 位和 256 位密钥。密钥越长,其提供的安全性就越高,但性能会随之降低。
-
DES - 数据加密标准,使用 56 位密钥进行加密,是一种对称密钥块算法。如果您的许可证账户不符合导出控制要求,这将是您唯一的选择。
-
Null、ESP-Null - 不使用加密。空加密算法提供不加密的身份验证。大多数平台都不支持这种加密算法。
决定使用哪些散列算法
在 IKE 策略中,散列算法创建消息摘要,用于确保消息的完整性。在 IKEv2 中,散列算法分成两个选项,一个用于完整性算法,一个用于伪随机函数 (PRF)。
在 IPsec 提议中,散列算法由封装安全协议 (ESP) 用于身份验证。在 IKEv2 IPsec 提议中,这称为完整性散列。在 IKEv1 IPsec 提议中,算法名称以 ESP- 为前缀,并且还有 -HMAC 后缀(代表“散列方法身份验证代码”)。
对于 IKEv2,您可以配置多个散列算法。系统将按安全性从高到低的顺序对设置进行排序,并使用该顺序与对等体进行协商。对于 IKEv1,仅可以选择一个选项。
您可以选择以下散列算法:
-
SHA (安全散列算法)- 生成 160 位摘要的标准 SHA (SHA1)。
以下 SHA-2 选项更加安全,可用于 IKEv2 配置。如果要实施 NSA Suite B 加密规范,请选择以下选项之一。
-
SHA256 - 指定具有 256 位摘要的安全散列算法 SHA 2。
-
SHA384 - 指定具有 384 位摘要的安全散列算法 SHA 2。
-
SHA512 - 指定具有 512 位摘要的安全散列算法 SHA 2。
-
-
空或无(NULL、ESP-NONE) -(仅限 IPsec 提议。)空散列算法;这通常仅用于测试目的。但是,如果选择 AES-GCM 选项之一作为加密算法,则应选择空完整性算法。即使选择非空选项,这些加密标准也会忽略完整性散列。
决定要使用的 Diffie-Hellman 模数组
您可以使用以下 Diffie-Hellman 密钥导出算法生成 IPsec 安全关联 (SA) 密钥。每组具有不同的长度模数。模数越大,安全性越高,但需要的处理时间更长。两个对等体上必须具有一个匹配的模数组。
如果选择 AES 加密,要支持 AES 所需的大型密钥长度,应使用 Diffie-Hellman (DH) 组 5 或更高组。IKEv1 策略不支持下面列出的所有组。
要实施 NSA Suite B 加密规范,请使用 IKEv2 并选择椭圆曲线 Diffie-Hellman (ECDH) 的一个选项:19、20 或 21。使用 2048 位模数的椭圆曲线选项和组较少遭受 Logjam 等攻击。
对于 IKEv2,您可以配置多个组。系统将按安全性从高到低的顺序对设置进行排序,并使用该顺序与对等体进行协商。对于 IKEv1,仅可以选择一个选项。
-
14 - Diffie-Hellman 组 14:2048 位模幂算法 (MODP) 组。被认为可以良好地保护 192 位密钥。
-
15 - Diffie-Hellman 组 15:3072 位 MODP 组。
-
16 - Diffie-hellman 组 16:4096 位 MODP 组。
-
19 - Diffie-Hellman 组 19:美国国家标准与技术研究所 (NIST) 256 位椭圆曲线取素数 (ECP) 组。
-
20 - Diffie-Hellman 组 20: NIST 384 位 ECP 组。
-
21 - Diffie-Hellman 组 21: NIST 521 位 ECP 组。
-
31 - Diffie-Hellman 组 31:椭圆曲线 25519 256 位 EC 组。
确定使用哪种身份验证方法
可以使用以下方法对站点间 VPN 连接中的对等体进行身份验证。
- 预共享密钥
-
预共享密钥是在连接中的每个对等体上配置的加密密钥字符串。这些密钥由 IKE 在身份验证阶段使用。对于 IKEv1,您必须在每个对等体上配置相同的预共享密钥。对于 IKEv2,您可以在每个对等体上配置唯一密钥。
与证书相比,预共享密钥的扩展性相对逊色。如果需要配置大量的站点间 VPN 连接,请使用证书而非预共享密钥。
- 证书
-
数字证书使用 RSA 密钥对为 IKE 密钥管理消息进行签名和加密。在配置站点间 VPN 连接的两端时,请选择本地设备的身份证书,以便远程对等体可以对本地对等体进行身份验证。
要使用证书方法,您需要执行以下操作:
-
使用证书颁发机构 (CA) 注册本地对等体并获取设备身份证书。将证书上传到设备。有关详细信息,请参阅上传内部证书和内部 CA 证书。
如果您也负责远程对等体,还需注册此对等体。虽然对这些对等体使用同一 CA 比较方便,但并非必须要这么做。
无法使用自签证书来建立 VPN 连接。必须使用证书颁发机构来注册设备。
如果使用 Windows 证书颁发机构 (CA) 创建用于站点间 VPN 终端的证书,则必须使用为应用策略扩展指定 IP 安全终端系统的证书。可以在证书“属性”对话框中的“扩展”选项卡上(在 Windows CA 服务器上)找到此内容。此扩展的默认值为“IP 安全 IKE 中间”,对于使用 设备管理器配置的站点间 VPN 不起作用。
-
上传用于签署本地对等体身份证书的受信任 CA 证书。如果使用了中间 CA,请上传完整的证书链,包括根证书和中间证书。有关详细信息,请参阅上传受信任的 CA 证书。
-
如果使用了不同的 CA 注册远程对等体,还需上传用于签署远程对等体身份证书的受信任 CA 证书。从控制远程对等体的组织获取证书。如果他们使用了中间 CA,请上传完整的证书链,包括根证书和中间证书。
-
在配置站点间 VPN 连接时,请选择证书方法,然后选择本地对等体的身份证书。连接的每一端会指定连接本地端的证书;您无需指定远程对等体的证书。
-
VPN 拓扑
只能使用 设备管理器来配置点对点 VPN 连接。虽然所有连接都是点对点的,但您可以通过定义设备参与的每个隧道,链接到更大的中心辐射型或网状 VPN。
下图显示了典型的点对点 VPN 拓扑。在点对点 VPN 拓扑中,两个终端彼此直接通信。将两个终端配置为对等体设备,任一台设备均可启动安全连接。
与动态寻址对等体建立站点间 VPN 连接
即使不知道对等体的 IP 地址,您也可以创建到此对等体的站点间 VPN 连接。此功能在以下情况下非常有用:
-
对等体使用 DHCP 获取它的地址时,您不能使用具有特定静态 IP 地址的远程终端。
-
设备在中心辐射型拓扑中充当控制中心,允许与其建立连接的远程对等体的数量不确定。
需要与动态寻址对等体 B 建立安全连接时,您需要确保连接端点 A 拥有静态 IP 地址。随后,在 A 上创建连接时,请指明对等体具有动态地址。但是,在对等体 B 上配置连接时,请确保输入 A 的 IP 地址作为远程对等地址。
当系统建立站点间 VPN 连接时,任何包含具有动态地址的对等体的连接都处于仅响应状态。换言之,必须由远程对等体发起连接。在远程对等体尝试建立连接时,设备会使用您在连接中定义的方法(预共享密钥或证书)验证连接。
由于只有在远程对等体发起连接之后才会建立 VPN 连接,因此在连接建立之前,系统会丢弃与允许流量通过 VPN 隧道的访问控制规则匹配的出站流量。这可确保数据不会在未采取适当加密和 VPN 保护措施的情况下离开您的网络。
虚拟隧道接口和基于路由的 VPN
传统上,您通过定义通过 VPN 隧道加密的特定本地和远程网络来配置站点间 VPN 连接。这些在 VPN 连接配置文件的加密映射中定义。这种类型的站点间 VPN 称为基于策略的 VPN。
或者,您还可以配置基于路由的站点间 VPN。在这种情况下,您可以创建虚拟隧道接口 (VTI),即与特定物理接口(通常是外部接口)关联的虚拟接口。然后,使用带有静态和动态路由的路由表将所需流量定向到 VTI。通过 VTI(出口)路由的所有流量都通过您为 VTI 配置的 VPN 隧道进行加密。
因此,使用基于路由的站点间 VPN,只需更改路由表即可管理给定 VPN 连接中的受保护网络,而完全无需更改 VPN 连接配置文件。您无需跟踪远程网络并更新 VPN 连接配置文件,以考虑这些更改。这简化了云运营商和大型企业的 VPN 管理。
此外,您可以为 VTI 创建访问控制规则,以调整隧道中允许的流量类型。例如,您可以应用入侵检测以及 URL 和应用过滤。
配置基于路由的 VPN 的过程概述
简言之,设置基于路由的站点间 VPN 的过程包括以下步骤:
过程
步骤 1 |
为本地终端创建 IKEv1/2 策略和 IPsec 提议。 |
步骤 2 |
创建与面向远程对等体的物理接口关联的虚拟隧道接口 (VTI)。 |
步骤 3 |
创建使用 VTI、IKE 策略和 IPsec 提议的站点间 VPN 连接配置文件。 |
步骤 4 |
在远程对等体、远程 VTI 和指定此本地 VTI 作为远程终端的站点间 VPN 连接配置文件上创建与远程终端相同的 IKE 和 IPsec 提议(从远程对等体的角度来看)。 |
步骤 5 |
在两个对等体上创建路由和访问控制规则,以通过隧道发送相应流量。 确保每个终端上的路由和访问控制相互镜像,以允许流量在两个方向上流动。 静态路由具有以下一般特征:
|
虚拟隧道接口和基于路由的 VPN 准则
IPv6 准则
虚拟隧道接口仅支持 IPv4 地址。无法在 VTI 上配置 IPv6 地址。
其他准则
-
最多可以创建 1024 个 VTI。
-
不能在 VTI 基于路由的 VPN 上配置静态或动态反向路由注入。(只能使用 威胁防御 API 配置反向路由注入。)
-
选择 VTI 作为本地接口时,无法配置动态对等体地址。
-
选择 VTI 作为本地接口时,无法配置远程备份对等体。
-
不能为分配给自定义虚拟路由器的源接口创建 VTI。使用虚拟路由器时,只能在全局虚拟路由器中的接口上配置 VTI。
-
无论隧道中的数据流量如何,IKE 和 IPsec 安全关联都将不断重新生成密钥。这可确保 VTI 隧道始终处于活动状态。
-
不能在基于路由的连接配置文件上同时配置 IKEv1 和 IKEv2:必须仅配置一个 IKE 版本。
-
只要加密映射中配置的对等体地址与 VTI 的隧道目的地不同,就可以在同一个物理接口上使用不同的 VTI 和基于策略的(加密映射)配置。
-
在 VTI 上仅支持 BGP 路由协议。
-
如果系统终接 IOS IKEv2 VTI 客户端,请禁用 IOS 上的配置交换请求,因为系统无法为由 IOS VTI 客户端发起的会话检索 mode-CFG 属性。
-
基于路由的站点间 VPN 配置为双向,这意味着 VPN 隧道的任一终端都可以发起连接。创建连接配置文件后,您可以将此终端更改为唯一发起方 (INITIATE_ONLY) 或唯一响应方 (RESPOND_ONLY)。确保将远程终端修改为使用补充连接类型。要进行此更改,您必须转到 API Explorer 并使用 GET /devices/default/s2sconnectionprofiles 查找连接配置文件。然后,您可以将正文内容复制/粘贴到 PUT /devices/default/s2sconnectionprofiles/{objId} 方法中,更新 connectionType 以指定所需类型,并运行该方法。
IPsec 流分流
您可以将支持的设备型号配置为使用 IPsec 数据流分流。初始设置 IPsec 站点间 VPN 或远程访问 VPN 安全关联 (SA) 后,IPsec 连接将被分流到设备中的现场可编程门阵列 (FPGA),这应该会提高设备性能。
分流操作特别涉及入口上的预解密和解密处理,以及出口上的预加密和加密处理。系统软件处理内部流以应用安全策略。
默认情况下启用 IPsec 数据流分流,并应用于以下设备类型:
-
Secure Firewall 3100
IPsec 流分流的限制
不分流以下 IPsec 流:
-
IKEv1 隧道。仅 IKEv2 隧道将被分流。IKEv2 支持更强的密码。
-
配置了基于卷的密钥更新的流。
-
已配置压缩的流。
-
传输模式流。仅会分流隧道模式流。
-
AH 格式。仅支持 ESP/NAT-T 格式。
-
已配置后分段的流。
-
防重放窗口大小不是 64 位且防重放的流不会被禁用。
-
已启用防火墙过滤器的流。
配置 IPsec 数据流分流
默认情况下,在支持该功能的硬件平台上启用 IPsec 数据流分流。要更改配置,请使用 FlexConfig 实施 flow-offload-ipsec 命令。有关命令的详细信息,请参阅 ASA 命令参考。