CCIE安全性:IPSec 虚拟专用网概述(IKEv1)

在这篇文章中,我将深入介绍VPN,特别是IPSec。这将是一系列VPN文章中的第一篇,重点关注CCIE安全实验室或工作中可能看到的各种类型的VPN。我认为拥有此概述很重要,因为在配置IPSec 虚拟专用网或对其进行故障排除时,它将帮助您了解该配置的内容。 

注意:我计划在各种VPN上做大约10篇博客文章,因此这只是第一篇。欢迎来到过去两个月以来一直深深的兔子洞。希望我能以一种易于理解的方式向您解释其中一些概念。

 

什么是VPN?

在进入IPSec 虚拟专用网之前,让我们先讨论一下虚拟专用网(VPN)。 要避免的一件事是,说某物是VPN并不一定意味着它正在加密流量或“私有”。这只是意味着存在某种分离。目前有许多不同类型的第2层VPN,例如MPLS,VPLS,VLAN等,以及许多类型的第3层VPNS,例如VRF,SSL,GRE,PPTP等。我们可能会陷入困境这些类型的VPN中的任何一种,但我仅想说明,尽管我们可以说某物是VPN,但这并不意味着它提供了除基本分隔之外的任何其他安全性。 

 

为什么选择IPSec?

尽管上述某些协议可以跨越站点并提供一些细分,但它们不一定保护数据本身。 IPSec的原因是增加了额外的安全性。 IPSec的一些好处包括:

  • 机密性-加密使您的数据保密
  • 完整性-内置机制可检测和丢弃传输中可能已更改的任何数据
  • 真实性-验证谁或什么发送数据 

IPSec在传输层下运行,因此对应用程序和最终用户完全透明。 IPSec可以在防火墙和路由器中实现。我个人比较喜欢路由器,并且在以后的博客文章中进一步探讨VPN时,您会看到路由器中不存在防火墙VPN实施的一些限制。

 

身份验证标头(AH)与封装安全有效载荷(ESP)

IPSec有两个可以使用的选项:较少使用的身份验证标头(AH)和更流行的封装安全有效载荷。让我真正快速地研究差异:

认证头(AH)

  • 为您提供防重放保护,数据完整性并验证数据的来源- 不保密
  • 不适用于NAT
  • IP协议51

封装安全有效载荷(ESP)

  • 为您提供防重放保护,数据完整性,验证数据来源, 并提供加密
  • 使用称为NAT-T(NAT穿越)的东西 使用NAT
  • IP协议50
  • 包含六个部分: 
    • 安全参数索引(SPI)-告诉接收方发送方正在使用的安全协议组。这包括算法,密钥和密钥的有效时间
    • 序列号-使用相同的SPI发送的每个数据包加1。防止重放攻击。 
    • 有效载荷数据-数据包中携带的数据 
    • 填充-用于某些类型的加密算法,以维护一定数量的字节
    • 填充长度-填充了多少有效负载
    • 下一个标题-携带的数据类型和 

从上面的粗体差异可以看出,AH确实没有充分的理由被使用。您可以不受限制地进行加密,并从ESP中获得相同的收益。 我不会比这更深入地研究AH与ESP,但想向您解释一下,如果有任何读者想知道为什么我不打算在我的博客文章中讨论AH的配置,请向您解释。 

让我们深入研究如何设置IPSec的机制。了解这一点很重要,因为将来您将要对各种类型的IPSec 虚拟专用网进行大量故障排除,因此许多故障排除将从第一阶段和第二阶段开始,因此了解它们的实质很重要。 

互联网密钥交换(IKE) 

IKE提供了一种管理密钥交换,对等体进行身份验证并安全地同意策略的方法。 IKE使用称为ISAKMP的协议在两个对等方之间协商IPSec参数。 ISAKMP在UDP端口500上进行通信。此传输已在数据包的源端口和目标端口上针对UDP / 500进行了固定。 在初始设置期间,两个VPN对等方建立了称为ISAKMP安全关联(SA)通信的双向隧道。此后,建立了两个称为IPSec安全关联(SA)的单向隧道以进行数据通信。重要的是要记住,ISAKMP SA是单个双向安全通信通道,但是实际的加密的LAN到LAN数据不是通过它发送的。它仅用于设置IPSec SA,并在其中加密和发送数据。让我们进一步分解。 

阶段1

ISAKMP在此处建立安全的通信通道,以便能够以安全的方式协商下一阶段。 Internet安全协会密钥管理协议(ISAKMP)用于在两个对等方之间协商IPSec参数。此阶段可以通过以下两种模式之一完成:

  • 主模式-需要6条消息。奇数消息始终来自发起方,甚至来自响应方。被认为比积极模式更安全。与每次通信一样,总会有人发起通信。我们称其为发起者。做出响应的设备称为响应者。我将分解每个数据包,以便您了解通信的功能。 
     
    • MM#1-这是发起方发送给响应方的第一条消息。它包括一个称为SA提案的内容,其中应包括加密算法,身份验证方法的类型,Diffie-Hellman组和哈希算法。这可能是一个提案,也可能是多个提案。重要的是,响应者可以决定要匹配的对象。该消息中还包括SA的生存期。如果未明确配置,则默认设置为24小时。  

      注意:在配置ISAKMP策略时,您可以为多个策略配置优先级。当两个同伴都在决定一项策略时,他们会从上到下进行研究。就像评估访问列表时,对等方将选择第一个匹配项并进行匹配。最佳做法是,为安全策略提供最少的数量,以确保在安全性较低的策略之前选择它们。 
       
    • MM#2-该消息通过其选择的SA提议从响应者发送到发起者。
       
    • MM#3-在此消息中,发起方启动Diffie-Hellman交换。这基于提案中发送的Diffie-Hellman组。这是密钥交换的开始。 
       
    • MM#4-这是对MM#3的响应。响应者会将其自己的密钥发送给发起者。此时,应为ISAKMP SA通道建立加密
       
    • MM#5-在这一点上,应该有加密,并且加密密钥已经共享。启动器将发送此消息以验证会话。该消息通常包含路由器的IP地址,有时还包含专有名称或主机名。
       
    • MM#6-响应者将发回类似的数据包并验证会话。至此,ISAKMP SA通道已建立。  
       
  • 进取模式-仅需要3条消息,这将为您提供更快的连接,但本质上安全性较低,因为响应者不再需要在任何交换中首先进行身份验证,并且可以潜在地暴力破解预共享密钥。我将进一步细分“积极模式”,但您不太可能经常看到这种情况。
     
    • AM#1-在此消息中,发起方将发送MM#1-3中包含的所有信息以及MM#5中的某些信息,因此本质上是策略,密钥生成信息和身份信息。
       
    • AM#2-这将发送MM#2、4和6中包含的所有相同信息,其中包括密钥生成信息,身份信息和身份验证信息。 
       
    • AM#3-它包含MM#5中包含的身份验证和身份信息
       

阶段2

在此阶段,由于已经建立了ISAKMP SA,因此两个对等方之间的协商得到了保护,并且此阶段的最终目标是在对等方之间建立两个单向通道,以通过不安全的网络以安全方式传递流量。此阶段使用一种称为“快速模式”的方法来建立这些IPSec SA。让我们深入探讨交换的消息:
 

  • QM#1-对等方这次将发送IPSec安全提议,其中包括针对加密,完整性以及要保护或加密的流量(代理ID)达成一致的算法。通常将要保护的流量定义为ACL的一部分。配置IPSec安全提议与配置ISAKMP策略完全不同。您在此处使用的算法可能与第一阶段完全不同。 

    注意:我在这里指出ACL,并从带有加密映射的L2L 虚拟专用网的非常简单的视图中进行处理。在以后的文章中,我将更深入地介绍不需要ACL的隧道和其他类型的VPN。 
     
  • QM#2-这是从响应者到发起者的答复,其中将包括选定的建议和代理ID。代理ID可能与发送的第一个代理ID相反。
     
  • QM#3-这是最终确认。此后,应该有两个从一个对等点到另一对等点的单向安全通道。 

需要注意的一件事是,更改加密密钥的IPSec SA超时。默认值为1小时。可以使用IPSec启用的另一项功能是完善前向保密(PFS),它可以帮助频繁更改加密密钥,如果启用了它,可以帮助更定期地循环出密钥,但是启用此功能时,您可能会发现不同供应商之间存在更多问题。如果在IPSec配置中配置了PFS组,则它应该在两端都匹配,并且不能与Diffie-Hellman组相同。

 

加密方式

有两种IPSec模式需要考虑,某些VPN类型仅支持其中一种模式。 

隧道模式

该模式被认为比传输模式更安全,因为它将同时加密有效负载和原始标头。由于ESP将封装整个内容,因此将在数据包上放置一个新的IP标头。这样做的缺点是,由于将需要创建新的IP标头,因此会增加原始数据包的开销。所谓的NAT-T(NAT穿越)支持此模式,它是Cisco路由器的默认模式。

资料来源:CiscoPress

 

运输方式

在这种模式下,它只加密每个数据包的有效负载,同时保留原始数据包头。 ESP仍然是传输设备,但是整个原始数据包将不会被加密。通常,这本身并不被认为是安全的,因为原始IP标头是明文形式的,可以从中看到一些信息,但是对此有一些实际的应用,我们将在以后的文章中介绍。这种模式通常用于隧道接口,我们将在以后的文章中介绍。传输模式的优点是,它消除了对另一个IP报头的需求,该报头消除了数据包上增加的开销,但缺点是它本身不支持NAT-T,因为它将使校验和验证失败。 

参考:CiscoPress

 

NAT穿越(NAT-T)

正如我在后面几段所述,出于多种原因,我更喜欢VPN路由器。还有很多选择和灵活性,但是在通过路由器配置VPN时,您可能会发现自己或您的对等设备位于NAT或PAT设备之后。 ESP加密包内部的所有内容,包括内部TCP / UDP数据。尽管ESP是IP协议,但它没有任何端口信息,就像ISAKMP使用UDP端口500进行传输一样。 PAT尝试处理ESP流量或将其添加到绑定数据库时,将无法使用唯一端口。如果不依靠它,这将导致IPSec永远不会形成,但值得庆幸的是,IPSec具有一种称为NAT-T的帮助机制。此机制检测对等方的路径中是否有任何NAT设备,以及两个对等方是否都支持NAT-T。 NAT-T发现是在MM#3和#4中完成的,其中两个对等方均在这些消息中发送哈希,如果它们发送的哈希不匹配,则表示路径中有NAT设备。 

发生这种情况时,在创建IPSec SA之前,NAT-T会将MM#5和#6处的ISAKMP传输从UDP端口500更改为UDP端口4500。第2阶段还将在UDP端口4500内完成。这提供了PAT数据库可以绑定到会话的端口,并且IPSec将能够形成IPSec SA。 

在NAT-T之前

在NAT-T之后-现在可以进行PAT-ed的快乐数据包 

 

 

这样,我将结束这篇博客文章。希望将来有更多关于我的VPN帖子。