教程篇(6.4) 12. IPsec ❀ 企业防火墙 ❀ Fortinet 网络安全架构师 NSE7

 在本节课,你将学习IPsec。

 完成本课后,你应该能够实现这张幻灯片上显示的目标。

  通过演示IPsec的能力,你将能够使用FortiManager VPN manager配置IPsec,使用调试流解决IPsec问题,检查IPsec加密和解密行为,捕获IPsec流量,并监控IPsec VPN状态。

 在本节中,你将回顾NSE 4课程中的一些IPsec概念。

 IPsec是一套用于对两个对等体之间的流量进行身份验证和加密的协议。套件中最常用的两个协议是:

  ●  IKE,进行握手、隧道维护和断开连接等操作

  ●  ESP,用于保证数据的完整性和加密

 IKE协商私钥、认证和加密,FortiGate在创建IPsec隧道时使用这些私钥。安全关联(SA)是在IPsec中构建安全功能的基础。IKE使用两个不同的阶段:阶段1使用一个单一的双向SA;阶段2使用两个IPsec SA,每个方向一个。

 接下来,你将回顾野蛮模式和主模式之间的区别。这张幻灯片显示了主模式,其中六个数据包交换:

  1. 发起方通过提出安全策略发起。

  2. 应答方选择它同意使用的安全策略并作出响应。

  3. 发起方发送其Diffie Hellman公共值。

  4. 应答方使用自己的Diffie Hellman公共价值进行应答。

  5. 发起方发送其对等体ID和散列有效负载。

  6. 应答方使用其对等ID和散列有效负载进行响应。

 相比之下,这张幻灯片显示了野蛮模式协商,其中只有三个包被交换:

  1. 发起方通过建议安全策略发起,并提供其Diffie Hellman公共值和对等体ID。

  2. 应答方使用相同的信息进行响应,并加上一个散列。

  3. 发起方发送它的散列负载。

 扩展认证(XAuth)可以用作额外的身份验证级别。当使用XAuth时,为了成功进行身份验证,一方必须提供凭据(用户名和密码)。

  这就是为什么XAuth有时被称为阶段1.5。

  在任何XAuth通信中,总是有一个客户端和一个服务器。服务器发送一个CFG_REQUEST数据包,客户端必须用一个CFG_REPLY数据包来回应。CFG_REPLY数据包包括用户凭据。如果验证是正确的,服务器发送CFG_SET,客户端用CFG_ACK回应。

 FortiGate支持三种方式自动配置IPsec客户端的IP设置:IKE模式配置、DHCP over IPsec和L2TP over IPsec。

  本幻灯片展示了IKE模式的配置。

  在阶段1结束后,在阶段2之前,客户机发送一个CFG_REQUEST消息,列出所需的IP设置(或属性)。服务器用一个CFG_REPLY进行应答,其中包含为请求的每个属性分配的值。

 当第一阶段1的IPsec数据包到达时,作为应答方的FortiGate使用第一阶段1配置(按字母顺序排列),该配置匹配以下内容:

  ●  本地网关IP

  ●  模式(野蛮或主)

  ●  如果使用野蛮模式,则为Peer ID。如上所述,只有野蛮模式在第一个报文中包含对端ID。

  ●  认证方法(用于预共享密钥和证书)

  ●  数字证书信息,如果使用证书作为认证方式

  ●  建议

  ●  DH 组

  然而,在某些情况下,如果发现最初选择了错误的第1阶段,FortiOS可以切换到不同的第1阶段。这被称为网关重新验证,仅适用于以下情况:

  ●  IKEv1,证书认证

  ●  IKEv2,预共享密钥认证

  ●  IKEv2,证书认证

 如果一个FortiGate有多个使用预共享密钥的拨号VPN,并且共享同一个本地网关、建议和DH组,则必须使用野蛮模式,且对等ID不能相同。使用这种方法,FortiGate为每个传入的IPsec安全提议识别正确的VPN配置。

 在本节中,你将了解FortiGate如何路由IP流量。

 如果IPsec VPN配置为接口模式,每次拨号连接时都会自动为客户端添加静态路由。静态路由的目的子网是在阶段2快速模式选择器中接收到的子网。当使用IKE模式或DHCP over IPsec时,这些子网(掩码为/32)与为拨号用户分配的IP地址相匹配。

  如果在IPsec上运行动态路由协议,请禁用add-route。这将阻止FortiGate动态添加路由,因为这是不需要的,因为一旦隧道启动,动态路由协议就会更新路由表。

  缺省情况下,动态路由分配的距离为15,优先级为0。你可以在阶段1配置中更改这些值。

 当第一阶段设置net-device启用时,FortiGate为每个拨号客户端创建单独的虚拟接口。这些接口的名称由阶段1名称和索引号组成。

  使用此配置时,FortiGate会使用快速模式选择器的目的子网中的信息来了解每个远程IPsec客户端背后的网络。每个虚拟IPsec接口都关联一个客户端(或一个IKE SA)。

 如果禁用net-device,FortiGate会创建一个IPsec虚拟接口,由连接到同一个拨号VPN的所有IPsec客户端共享。

  在这种情况下,tunnel-search设置决定了FortiGate如何学习每个远程客户端的网络。如果tunnel-search被设置为selectors,FortiGate使用快速模式选择器的目标子网来填充关于远程网络的信息。

  但在此场景中,单个接口可能关联多个客户端(或IKE SA)。FortiGate需要更多的信息(特别是到每个远程网络的隧道索引)来正确地将流量路由到客户端。

 可以使用命令diagnose vpn tunnel list,显示额外的路由信息。

  该命令的输出显示了每个远程子网(通过快速模式选择器了解到的)和阶段1索引之间的映射,必须使用阶段1索引将流量正确路由到正确的目的地。

 如果net-device设置为disable, tunnel-search设置为nexthop,则FortiGate不会使用快速模式选择器来了解远程网络。FortiGate将在动态路由协议的帮助下学习这些路由,该协议必须配置为在IPsec隧道上运行。

 与将tunnel-search设置为nexthop一样,FortiGate创建一个单独的IPsec虚拟接口,由所有IPsec客户端共享。FortiGate需要更多关于如何路由IPsec流量通过正确的IKB SA的信息。通过此配置,FortiGate通过IKE消息学习每个客户端的远端IP。缺省情况下,对端IP属于客户端的IPsec虚拟接口。FortiGate将这些信息与通过路由协议学习到的路由信息结合起来,使IPsec流量得到正确的路由,选择正确的出IPsec虚接口和IKE SA。

  diagnose vpn tunnel list命令的输出信息显示了远端IP的列表和关联的隧道索引。

 如果两个远程站点有相同的子网,它们可能会在中央FortiGate中创建重叠的静态路由。第二阶段的route-overlap设置定义了当一个新的远程站点正在连接,并且已经有一个远程站点与重叠的子网连接时,FortiGate将采取什么行动。可能的行动包括:

  ●  use-new(默认值):断开已有的拨号VPN连接,接受新的VPN连接。

  ●  use-old:保留原有拨号VPN,拒绝新的拨号VPN。

  ●  allow:保留原有拨号VPN,接受新的拨号VPN。从中央FortiGate开始的会话的流量将在两个VPN之间负载均衡(ECMP)。

 两个站点之间可以组合两条或多条IPsec隧道,创建一条聚合隧道。类似于LACP端口聚合。创建一个聚合的IPsec接口,用于路由和防火墙监管。

  聚合IPsec隧道支持五种负载均衡方式:

  ●  round-robin:流量按每个包均衡

  ●  L3: 流量基于第三层头信息均衡。

  ●  L4: 流量基于第四层头信息均衡。

  ●  redundant: 所有的流量都通过先到达的隧道发送。其他隧道用于备份。

  ●  weighted-round-robin: 根据每条隧道的链路权重,按轮循方式进行负载均衡。

 前向纠错(FEC)是第一阶段的设置,当它启用时,会添加带有冗余数据的额外数据包。接收方可以使用这个冗余信息来重建任何丢失的数据包,或任何带错误到达的数据包。虽然这个特性增加了带宽的使用,但它提高了可靠性,可以克服不利的广域网条件,如损耗或噪声链路。FEC对于为语音和视频服务等关键业务应用程序提供更好的用户体验至关重要。

 在本节中,你将学习IPsec故障诊断的基础知识。

 在隔离IPsec问题时,理解IPsec连接可以描述为一个多步骤的过程是很有用的:

  1. 兴趣流触发VPN协商。当流量必须通过IPsec隧道(加密和封装)到达远程网络时,称为兴趣流。

  2. 阶段1上线。

  3. 如果需要扩展身份验证,则一方进行身份验证。

  4. 如果一方需要进行IP配置,另一方通过IKE模式配置将需要的配置发送给另一方。

  5. 一个或多个阶段2上线。每个阶段2协商两个IPsec SA。

  6. 流量穿过隧道。

  因此,如果你遇到了IPsec问题,你应该确定问题发生在这些步骤中的哪个步骤中。

 在FortiGate上,IKE守护进程处理所有IPsec连接。熟悉可用的过滤器选项是很重要的。使用这些选项过滤IKE实时调试的输出信息,只显示与你相关的信息。

  最常见的过滤选项是dst-addr4,你可以使用它来根据远程对等体的IP地址过滤输出。此外,还支持多个地址。当对端IP地址未知时,通过名称进行过滤是很有帮助的。

 设置过滤器后,使用本幻灯片中的命令打开IKE实时调试开关。

  这张幻灯片上显示的表格包括位掩码中每个位所启用的输出类型。位掩码最常见的值是-1(所有输出都启用)。它展示了DPD报文以及解决IPsec协商问题所需的所有信息。

 现在,你将查看主模式协商期间IKE实时调试的输出。如前所述,主模式需要交换六个数据包。实时调试显示第一个包(第一个主模式消息)到达时。然后,调试显示阶段1的协商设置。一旦FortiGate识别要使用的VPN配置(使用VPN的名称),就会生成一条消息。

 接下来,输出显示远程对等体信息。第二和第三个主模式消息到达。在身份验证成功并且预共享密钥匹配之后,将生成一条最终消息,表明阶段1已经启动。

 这张幻灯片显示了第一阶段野蛮模式的实时调试的输出。显示交换的3个野蛮模式报文以及建议。

 IKE实时调试显示阶段1之后XAuth报文的交换情况。在这张幻灯片上,你可以看到CFG_REQUEST。你还可以看到CFG_REPLY,其中显示了XAuth用户和组名。

  之后,IKE实时调试中会显示CFG_SET和CFG_ACK。

 扩展认证完成后,远端站点通过IKE模式配置来请求和接收IP配置。

  显示CFG_REQUEST报文和CFG_REPLY报文。

 这张幻灯片显示了第二阶段的协商。

  调试显示了来自本地网关的第2阶段建议,以及到达远程网关的第2阶段建议。在这种情况下,两个提议(本地和远程)都匹配。

 接下来,输出显示协商好的阶段2设置。最后的消息确认阶段2已经启动。

 如果VPN启动,但流量不能通过隧道,则应该使用调试流。这张幻灯片显示了穿越IPsec隧道的流量的调试流的示例输出。输出信息如下所示:

  ●  包到达

  ●  防火墙策略允许的数据包

  ●  报文进入隧道

  ●  正在加密和发送的数据包

  如果由于路由配置错误导致流量未通过隧道,则调试流的输出将显示此信息。调试流还显示流量是否下降以及原因(例如,当包不匹配快速模式选择器时)。

 如果需要捕获IPsec流量,请记住IP协议和UDP端口号依赖于NAT- t和NAT的使用。

  如果中间没有配置NAT的FortiGate,则IKE流量使用UDP端口500,ESP流量使用IP协议50。这张幻灯片显示了两个嗅探器过滤器,嗅探命令必须使用它们来捕获每一个通信协议。

  如果开启了NAT-T,并且中间有一个FortiGate正在运行NAT,那么sniffer命令必须使用不同的过滤器。此时,IKE流量使用UDP 500端口,但在隧道协商过程中会切换到UDP 4500端口。此外,ESP流量被封装在UDP-4500通道内。

 diagnose vpn tunnel list命令用来查看当前所有活跃隧道的IPsec SA信息。

  diagnose vpn tunnel list name <tunnel name>命令提供特定隧道的SA信息。

 get vpn ipsec tunnel detail提供活跃IPsec隧道的详细信息。

 diagnose vpn ike gateway list命令还提供了隧道的一些详细信息。

  diagnose vpn ike gateway clear命令用来关闭阶段1。使用此命令时要小心,因为它具有全局效果,这意味着不指定阶段1名称而运行它将导致清除所有VDOM的所有阶段1。

 get vpn ipsec stats tunnel命令提供了一些与当前活动的所有vpn相关的全局全局计数器。

  这张幻灯片上显示的另外两个命令提供了关于VPN的概要信息。

 在一些FortiGate型号上,可以将IPsec流量的加密和解密工作卸给硬件。所支持的算法取决于处理加密和解密的单元上的处理器的模型和类型。

  默认情况下,支持的算法的硬件卸载是启用的。这张幻灯片显示了你可以使用的命令,如果有必要,可以禁用每个隧道的硬件卸载。

 所有IPsec SA都有一个npu_flag字段,指示卸载状态。对于IPsec流量,FortiGate会话表也包含该字段。

  首先,当阶段2启动时,IPsec SA被创建并加载到内核。只要没有流量通过隧道,SA就不会拷贝到NPU上,npu_flag显示为00。该字段的值也是。当IPsec卸载被禁用时,仍然是00。

  第二,如果到达的第一个IPsec数据包是一个可以卸载的出站数据包,则将出站SA复制到NPU, npu_flag变为01。但是,如果第一个IPsec报文是入方向的,并且可以卸载,则入方向的SA被复制到NPU上,npu_flag变为02。

  两个SA都拷贝到NPU后,npu_flag变为03。

  npu_flag字段的值为20表示由于不支持的cipher或HMAC算法,硬件卸载不可用。

 这张幻灯片总结了最常见的IPsec问题和解决方案。

  如果隧道没有建立,使用IKE实时调试。在这种情况下,通常会出现一条错误消息。

  当隧道不稳定时,通常会出现DPD报文丢失的现象,这说明问题可能出在ISP方面。

  如果隧道打开了,但是流量没有通过它,那么使用调试流。其中一个对等体可能正在丢失、包或路由流量不正确。另一种可能是数据包与快速模式选择器不匹配,因此FortiGate丢弃数据包。

 这张幻灯片展示了你在这节课中所学到的目标。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值