在这篇文章中,我将对VPN,特别是IPSec做一个高层次的解释。 这将是VPN系列文章中的第一篇,重点介绍在CCIE安全实验室或工作中可能见到的各种类型的VPN。 我认为有这样的概述很重要,因为当你配置极度加速器或排除故障时,它将帮助你了解该配置下发生了什么。
注:我计划就各类 VPN 发表 10 篇左右的博文,这只是第一篇。 欢迎来到我过去两个月生活的兔子洞。 希望我能用一种让你更容易掌握的方式向你解释其中的一些概念。
极度加速器
#@#Let's talk about Virtual Private Networks (VPNs) for a moment before we jump into 极度加速器s. One thing to get out of the way is that saying something is 极度加速器 doesn't necessarily mean that it's encrypting traffic or "private." It just means there is some sort of separation. There are many many different types layer 极度加速器s out there such as MPLS, VPLS, VLANs, etc as well as many types of layer 极度加速器S such as VRFs, SSL, GRE, PPTP, etc. We could probably go down a deep rabbit hole on any of these types 极度加速器s but I merely wanted to illustrate that while we can say something is 极度加速器, it doesn't mean that it's providing any additional security except some basic separation. #@#
极度加速器
虽然上述某些协议可以在站点之间跨接并提供一些分隔,但它们并不一定能保护数据本身。 使用 IPSec 的原因就是为了增加额外的安全性。 IPSec 的一些优势包括
- 保密性 - 加密技术保证数据的私密性
- 完整性 - 内置机制可检测并丢弃任何可能在传输过程中被篡改的数据
- 真实性 - 核实发送数据的人或物
none
极度加速器
IPSec 有两种可选项:使用较少的验证头(AH)和更常用的封装安全有效载荷(Encapsulating Security Payload)。 让我来简单介绍一下两者的区别:
验证头(AH)
- 为您提供防重放保护、数据完整性,并验证数据的来源。不保密
- 无法与 NAT 配合使用
- IP 协议 51
封装安全有效载荷(ESP)
- 为您提供防重放保护、数据完整性、数据来源验证、并提供加密
- none与 NAT 协同工作
- IP 协议 50
- 包括六个部分:
- 安全参数索引 (SPI) - 告诉接收设备发送方使用的安全协议组。 这包括算法、密钥和密钥的有效时间
- 序列号 - 使用相同 SPI 发送的每个数据包都递增 1。 防止重放攻击。
- 有效载荷数据 - 数据包中携带的数据
- none
- 填充长度 - 有效载荷的填充长度
- 下一个标头 - 携带的数据类型和
从上面加粗的不同之处可以看出,AH 不被使用确实是有原因的。 您可以从 ESP 中获得同样的好处,而不会受到限制,而且还有加密功能。 我不会深入探讨 AH 与 ESP 的区别,但我想向你解释一下,以防有读者想知道我为什么不在博文中介绍 AH 的配置。
让我们来了解一下 IPSec 是如何设置的。 这一点很重要,因为今后你在排除各种类型的 极度加速器 故障时,很多故障都会从第 1 阶段和第 2 阶段开始,所以了解它们很重要。
极度加速器
IKE 提供了一种管理密钥交换、验证对等方身份和安全商定策略的方法。 IKE 使用名为 ISAKMP 的协议在两个对等方之间协商 IPSec 参数。 ISAKMP 通过 UDP 端口 500 进行通信。 数据包的源端口和目的端口都固定为 UDP/500。 在初始设置期间,两个 VPN 对等方会建立一个双向隧道,称为 ISAKMP 安全协会(SA)通信。 然后,再建立两条称为 IPSec 安全协会(SA)的单向隧道,用于数据通信。 重要的是要记住,ISAKMP SA 是单一的双向安全通信通道,但实际加密的 LAN 到 LAN 数据不会通过它发送。 它只是用于设置 IPSec SA,并在其中加密和发送数据。 让我们进一步分解。
极度加速器
此时,ISAKMP 会建立一个安全通信通道,以便以安全的方式协商下一阶段。 互联网安全协会密钥管理协议(ISAKMP)用于在两个对等方之间协商 IPSec 参数。 这一阶段可以两种模式之一完成:
- 主模式 - 需要 6 条信息。 奇数报文总是来自发起者,而偶数报文则来自响应者。 被认为比进取模式更安全。 就像每次通信一样,总会有人发起通信。 我们称之为发起者。 响应的设备称为响应者。 我将分解每个数据包,以便您了解通信的各个部分。
- MM #1 - 这是启动程序发送给应答程序的第一条信息。 它包括所谓的 SA 建议,其中应包括加密算法、验证方法类型、Diffie-Hellman 组和散列算法。 这可能是一个提案,也可能是多个提案。 重要的是,应答方可以决定是否采用与之匹配的算法。 SA 的有效期也包含在此信息中。 如果没有明确配置,默认值为 24 小时。
none
- MM #2 - 该信息由响应方发送给发起方,并附有其选择的 SA 建议。
- MM #3 - 在此报文中,发起方开始进行 Diffie-Hellman 交换。 这是基于提议中发送的 Diffie-Hellman 组。 这是密钥交换的开始。
- MM #4 - 这将是对 MM #3 的回应。 响应者将向启动者发送自己的密钥。 此时,应为 ISAKMP SA 通道建立加密
- MM #5 - 此时应已加密并共享了加密密钥。 发起方将发送此信息以验证会话。 该信息通常包含路由器的 IP 地址,有时也会包含区分名称或主机名。
- MM #6 - 应答方将发回一个类似的数据包并验证会话。 至此,ISAKMP SA 通道已经建立。
- MM #1 - 这是启动程序发送给应答程序的第一条信息。 它包括所谓的 SA 建议,其中应包括加密算法、验证方法类型、Diffie-Hellman 组和散列算法。 这可能是一个提案,也可能是多个提案。 重要的是,应答方可以决定是否采用与之匹配的算法。 SA 的有效期也包含在此信息中。 如果没有明确配置,默认值为 24 小时。
- 进取模式 - 只需要 3 条信息,这将使您的连接速度更快,但本质上安全性较低,因为应答者不再需要在任何交换中首先验证自己的身份,而且有可能强行获取预共享密钥。 我将进一步分解 "进取模式",但你不太可能经常看到这种模式。
- AM #1 - 在此信息中,发起方将发送 MM #1-3 中包含的所有信息和 MM #5 中的一些信息,主要是策略、密钥生成信息和身份信息。
- none
- AM #3 - 包含 MM #5 中的认证和身份信息
- AM #1 - 在此信息中,发起方将发送 MM #1-3 中包含的所有信息和 MM #5 中的一些信息,主要是策略、密钥生成信息和身份信息。
极度加速器
在这一阶段,由于已经建立了 ISAKMP SA,两个对等端之间的协商得到了保护,这一阶段的最终目标是在对等端之间建立两个单向通道,以便在不安全的网络上以安全的方式传递流量。 该阶段使用一种称为快速模式的方法来建立这些 IPSec SA。 让我们深入研究一下交换的信息:
- QM #1 - 此时,对等方将发送 IPSec 建议,其中包括商定的加密算法、完整性以及需要保护或加密的流量(代理 ID)。 要加密的流量通常会定义为 ACL 的一部分。 配置 IPSec 提议与配置 ISAKMP 策略完全不同,这里使用的算法可能与第 1 阶段完全不同。
注:我在此指出 ACL,并从使用加密映射的 极度加速器 这一非常简单的视角切入。 在以后的文章中,我将深入探讨不需要 ACL 的隧道和其他类型的 VPN。
- none
- QM #3 - 这是最后的确认。 在此之后,从一个对等端到另一个对等端应该有两个单向安全通道。
需要注意的一点是,加密密钥更改后的 IPSec SA 有一个超时时间。 默认值为 1 小时。 IPSec 可以启用的另一个功能是完美前向保密(PFS),它有助于频繁更改加密密钥,如果启用,可以帮助更有规律地循环使用密钥,但启用后,不同供应商之间可能会出现更多问题。 如果在 IPSec 配置中配置了 PFS 组,则两边的 PFS 组都应该匹配,并且不应该与 Diffie-Hellman 组相同。
极度加速器
有两种 IPSec 模式需要考虑,有些 VPN 类型只支持其中一种模式。
极度加速器
这种模式被认为比传输模式更安全,因为它会对有效载荷和原始报头进行加密。 由于 ESP 将对整个数据包进行封装,因此会在数据包上添加一个新的 IP 标头。 这样做的缺点是,由于需要创建一个新的 IP 标头,这将增加原始数据包的开销。 这种模式被称为 NAT-T(NAT 穿越),是思科路由器的默认模式。
来源:来源:思科新闻 CiscoPress
极度加速器
在这种模式下,它只对每个数据包的有效载荷进行加密,而保留原始数据包头。 ESP 仍是传输方式,但整个原始数据包不会被加密。 这种模式本身通常并不安全,因为原始 IP 包头是明文的,可以从中获取一些信息,但这种模式也有实际应用,我们将在以后的文章中详细介绍。 这种模式通常与隧道接口一起使用,我们将在以后的文章中介绍。 传输模式的优点是不需要另一个 IP 报头,从而减少了数据包的额外开销,但缺点是不支持 NAT-T,因为它无法通过校验和验证。
参考资料 思科新闻
极度加速器
正如我在前面几段所述,出于多种原因,我更喜欢用路由器来实现 VPN。 路由器有更多的选择和灵活性,但在路由器上配置 VPN 时,你可能会发现自己或对等设备位于 NAT 或 PAT 设备之后。 ESP 对数据包内的所有内容进行加密,包括内部 TCP/UDP 数据。 虽然 ESP 是一种 IP 协议,但它没有任何端口信息,就像 ISAKMP 使用 UDP 端口 500 进行传输一样。 PAT 在尝试处理 ESP 流量或将其添加到绑定数据库时,无法使用唯一端口。 如果让 IPSec 独自运行,这将导致 IPSec 无法形成,但值得庆幸的是,IPSec 有一种称为 NAT-T 的机制可以提供帮助。 该机制可检测对等方路径上是否有任何 NAT 设备,以及两个对等方是否都支持 NAT-T。 NAT-T 发现是在 MM#3 和 #4 中完成的,两个对等方会在这些信息中发送一个哈希值,如果它们发送的哈希值不匹配,就意味着路径上有一个 NAT 设备。
此时,NAT-T 将把 MM#5 和 MM#6 的 ISAKMP 传输从 UDP 端口 500 改为 UDP 端口 4500,然后再创建 IPSec SA。 第二阶段也将在 UDP 端口 4500 内完成。 这将为 PAT 数据库提供一个可与会话绑定的端口,而 IPSec 将能形成 IPSec SA。
NAT-T 之前
NAT-T 之后 - 现在可以进行 PAT 编辑的快乐数据包
就这样,我要结束这篇博文了。 期待我今后发表更多的 VPN 博文。