在本课中,你将了解IPsec VPN的架构组件以及如何配置它们。
在这节课中,你将学习上图显示的主题。
完成本部分后,你应该能够实现上图显示的目标。
通过展示IPsec基础知识的能力,你将能够理解IPsec的概念和好处。
IPsec是什么?你应该什么时候使用它?
IPsec是一组供应商中立的标准协议,用于连接两个物理上不同的局域网。尽管被互联网隔开,但局域网还是像单个逻辑网络一样连接在一起。
从理论上讲,IPsec确实支持空加密——也就是说,你可以制作不加密流量的VPN。IPsec还支持空数据完整性。但与普通流量相比,这有什么优势吗?不。没有人可以相信可能被攻击者注入攻击的流量。人们很少希望数据由未知来源发送。大多数人还希望私人网络数据,如信用卡交易和医疗记录,保持私密。
无论供应商如何,IPsec VPN几乎总是有允许它们提供三个重要优势的设置:
● 认证:验证双方的身份
● 数据完整性(或HMAC):证明封装数据在穿越潜在敌对网络时没有被篡改
● 保密性(或加密):确保只有预期收件人才能读取消息
如果你通过防火墙传递VPN,了解允许哪些协议是有帮助的。
IPsec是一套独立的协议,包括:
● 互联网密钥交换(IKE):用于对等进行身份验证、交换密钥以及协商所使用的加密和校验和,本质上,它是控制通道
● AH:包含身份验证标头,验证数据完整性的校验和
● 封装安全有效负载(ESP):封装安全有效负载,加密有效负载,本质上是数据通道
因此,如果你必须通过防火墙传递IPsec流量,请记住,通常只允许一个协议或端口号是不够的。
请注意,IPsec RFC提到了AH,但是,AH不提供加密,这是一个重要的好处。因此,FortiGate不使用AH。因此,你不需要允许AH IP协议(51)。
要设置VPN,你必须在VPN的两端配置匹配的设置,无论VPN是在两个FortiGate设备、FortiGate和FortiClient之间,还是第三方设备和FortiGate之间。如果设置不匹配,隧道设置将失败。
标准IKE流量和IKE NAT-T流量的默认端口分别为UDP 500和UDP 4500。你可以使用上图显示的CLI命令为IKE和IKE NAT-T配置自定义端口。自定义端口用于启动和响应隧道请求。如果检测到NAT,那么自定义端口可用于IKE和UDP封装的ESP流量。请注意,无论自定义端口设置如何,FortiGate总是监听UDP 4500端口。这使得FortiGate能够在自定义和标准端口上协商NAT-T隧道。
IPsec在IP(网络)层提供服务。在隧道建立期间,两端协商要使用的加密和身份验证算法。
在隧道协商并启动后,数据被加密并封装到ESP数据包中。
封装了什么?这取决于IPsec使用的封装模式。IPsec可以以两种模式运行:传输模式和隧道模式。
● 传输模式直接封装并保护第四层(传输)及以上。它不保护原始IP标头,也不添加额外的IP标头。
● 隧道模式是一个真正的隧道。它封装了整个IP数据包,并在开头添加了一个新的IP标头。在IPsec数据包到达远程局域网并解包后,原始数据包可以继续其旅程。
请注意,删除VPN相关标头后,传输模式数据包无法进一步传输;它内部没有第二个IP标头,因此无法路由。出于这个原因,此模式通常仅用于端到端(或客户端到客户端)VPN。
IKE使用UDP端口500。如果在 NAT 场景中启用了 NAT-T,IKE 会使用 UDP 端口 4500。
IKE建立了一个IPsec VPN隧道。FortiGate使用IKE与对等进行协商,并确定IPsec安全关联(SA)。IPsec SA定义了FortiGate用于加密和解密该对等数据包的身份验证、密钥和设置。它基于互联网安全协会和密钥管理协议(ISAKMP)。
IKE定义了两个阶段:第1阶段和第2阶段。
IKE有两个版本:IKEv1和IKEv2。尽管IKEv2是较新版本,并且具有更简单的协议操作,但本课只关注IKEv1,因为它的采用范围更广。
上图显示了一个表格,比较了FortiOS支持的一些IKEv1和IKEv2功能。IKEv2提供了更简单的操作,这是使用单一交换模式的结果,并且需要更少的消息来建立隧道。
在身份验证方面,两个版本都支持PSK和证书签名。虽然只有IKEv1支持XAuth,但IKEv2支持EAP,这相当于XAuth。然而,FortiOS IKEv2 EAP实现仅通过。也就是说,FortiOS不支持EAP作为客户端,这意味着除你您使用证书签名,否则你无法撤销使用IKEv2对同行的访问权限。使用IKEv1,你可以使用XAuth拒绝访问VPN对等,而无需使用证书签名。IKEv2还支持非对称身份验证,这使你能够将每个对等配置为使用不同的身份验证方法。
两个IKE版本都支持NAT-T。然而,IKEv2原生支持NAT-T,而IKEv1支持NAT-T作为扩展。此外,IKEv2是一个比IKEv1更可靠的协议,因为像TCP一样,对等必须确认他们之间交换的消息。IKEv1不支持这种机制。
当你配置多个拨号IPsec VPN时,IKEv2可以更轻松地通过对等ID匹配预期的网关。使用IKEv2,你可以使用标准对等ID属性或Fortinet专有网络ID属性来指示拨号服务器上匹配的第1阶段网关,无论使用的身份验证模式如何。然而,使用IKEv1,你只能使用对等ID,然后将其与野蛮模式和预共享密钥身份验证相结合,或与主模式和证书签名身份验证相结合。
最后,IKEv2允许响应者选择发起者建议的流量的子集。这被称为流量选择器缩小,使你能够拥有更灵活的第2阶段选择器配置。流量选择器缩小使对等器能够自动缩小其流量选择器地址,因此它与远程对等器建议的流量选择器一致。
为了创建IPsec隧道,两个设备都必须建立其SA和密钥,这些密钥由IKE协议提供便利。
IPsec架构使用SA作为将安全功能构建到IPsec的基础。SA是用于加密和验证通过隧道传输的数据的算法和参数包。在正常的双向流量中,这种交换由一对SA保护,每个流量方向一个。从本质上讲,隧道的两边都必须就安全规则达成一致。如果双方无法就发送数据和验证彼此身份的规则达成一致,那么隧道就不会建立。SA到期,在达到生命周期后需要由同行重新谈判。
IKE使用两个不同的阶段:第1阶段和第2阶段。每个阶段协商不同的SA类型。第1阶段协商的SA称为IKE SA,第2阶段协商的SA称为IPsec SA。FortiGate使用IKE SA设置安全通道来协商IPsec SA。FortiGate使用IPsec SA分别加密和解密通过隧道发送和接收的数据。
当远程互联网用户需要安全地连接到办公室以访问公司资源时,请使用远程访问VPN。远程用户连接到位于公司场所的VPN服务器,如FortiGate,以建立一个安全的隧道。用户经过身份验证后,FortiGate会根据授予该用户的权限提供对网络资源的访问。
在远程访问VPN中,FortiGate通常被配置为拨号服务器。在本课中,你将了解有关拨号VPN的更多信息。远程互联网用户的IP地址通常是动态的。由于FortiGate不知道远程用户的IP地址,因此只有远程用户才能发起VPN连接请求。
远程用户端需要一个VPN客户端,例如FortiClient。你必须配置FortiClient以匹配VPN服务器设置。FortiClient负责建立隧道,并通过隧道路由到达远程站点的流量。
此外,你可以在FortiGate设备上为许多远程用户使用一个远程访问VPN配置。FortiGate为他们每个人建立了一个单独的隧道。
站点到站点VPN也被称为局域网到局域网VPN。一个简单的站点到站点部署涉及两个同行直接通信,以连接位于不同办公室的两个网络。
当你需要连接两个以上的位置时,你可以使用星型拓扑结构。在星型拓扑中,所有客户端都通过中央集线器连接。在上图显示的示例中,客户(辐条)是分支机构的FortiGate设备。任何分支机构要到达另一个分支机构,其交通必须通过枢纽。这种拓扑结构的一个优点是所需的配置易于管理。另一个优点是,只有总部的FortiGate必须非常强大,因为它可以同时处理所有隧道,而分支机构的FortiGate设备需要更少的资源,因为它们只维护一个隧道。一个缺点是,通过总部的分支机构之间的沟通比直接连接慢,特别是如果你的总部离得很远。此外,如果总部的FortiGate设备出现故障,VPN故障将全公司发生。
在网格拓扑中,你可以直接连接FortiGate设备,从而绕过HQ。网格拓扑有两种变体:全网格和部分网格。全网格将每个位置连接到所有其他位置。FortiGate设备的数量越多,每个FortiGate设备上要配置的隧道数量就越多。例如,在具有五个FortiGate设备的拓扑中,你需要在每个设备上配置四个隧道,总共有20个隧道。与星型拓扑相比,这种拓扑结构导致的延迟更小,所需的HQ带宽要少得多,但需要每个FortiGate设备都更强大。部分网格试图妥协,最大限度地减少所需的资源以及延迟。如果不需要每个位置之间进行通信,则部分网格可能是合适的。然而,每个FortiGate设备的配置都比星型拓扑更复杂。尤其是路由,可能需要广泛的规划。
一般来说,你的位置越多,星型拓扑会比网状拓扑更便宜,但速度慢。网格对中心位置的压力较小。它更容错,但也更昂贵。
回顾一下,上图展示了VPN拓扑结构的高级比较。你应该选择最适合你情况的拓扑结构。
非常好!你已经了解了IPsec的基础知识。接下来你将了解IPsec配置。
完成本部分后,你应该能够实现上图显示的目标。
通过展示IPsec配置的能力,你还将能够成功确定IPsec VPN部署所需的设置。
当你在GUI上创建IPsec隧道时,FortiGate会将你重定向到IPsec向导。向导通过引导你完成四到五步的过程,简化了新VPN的创建。第一步是选择模板类型。如果你想手动配置VPN,你可以选择自定义为模板类型,FortiGate将你直接带到新VPN的第1阶段和第2阶段设置。
如果你希望向导为你配置VPN,请选择与你的VPN最匹配的模板类型(站到站、星型或远程拨号)。之后,向导会询问你提供关键信息,例如远程网关信息、身份验证方法、涉及的接口和子网。根据你提供的输入,向导应用预配置的IPsec隧道模板之一,包括IPsec第1阶段和第2阶段设置以及新隧道工作所需的其他相关防火墙地址对象、路由设置和防火墙策略。
此外,向导还会显示一个网络图,该图会根据你提供的输入而变化。该图表的目的是让管理员直观地了解向导根据收到的输入配置的IPsec VPN部署。
在向导结束时,向导提供了系统中所做的配置更改的摘要,管理员可以在需要时查看。
如果你是FortiGate的新手,或者对IPsec VPN没有太多经验,建议使用IPsec向导。你可以稍后调整向导应用的配置,以满足你的特定需求。
请注意,在本课中,你将只学习IKEv1配置。
IPsec向导的常见用途是为FortiClient用户配置远程访问VPN。该向导为FortiClient用户启用IKE模式配置、XAuth和其他适当的设置。在本课中,你将学习更多关于IKE模式配置和XAuth的信息。
上图的图像显示了IPsec向导用于协助管理员配置FortiClient VPN的四步流程。
第1阶段发生在隧道的每个对等(发起者和响应者)连接并开始设置VPN时。发起者是启动第1阶段协商的对等,而响应者是响应发起者请求的对等。
当对等端首次连接时,通道不安全。中间的攻击者可以拦截未加密的密钥。两个对等都没有对另一个对等的身份的强烈保证,那么他们如何交换敏感的私钥呢?他们不能。首先,两个对等都创建一个安全的隧道。然后,他们使用这个安全隧道来协商隧道的真实密钥。
现在你将检查第1阶段是如何运作的。
第1阶段的目的是对等进行身份验证,并建立一个安全通道,用于协商第2阶段SA(或IPsec SA),这些SA后来用于加密和解密对等之间的流量。为了建立这个安全渠道,对等协商第1阶段SA。这个SA被称为IKE SA,是双向的,因为它在入站和出站都使用相同的会话密钥。
为了相互身份验证,对等使用两种方法:预共享密钥或数字签名。你还可以启用额外的身份验证方法XAuth,以增强身份验证。
在IKEv1中,有两种可能的模式可以进行IKE SA协商:主模式和野蛮模式。两端的设置必须一致;否则,第1阶段协商失败,两个IPsec对等都无法建立安全通道。
在第1阶段结束时,协商的IKE SA用于协商第2阶段使用的DH密钥。DH使用公钥(两端都知道)加上一个称为nonce的数学因子,以生成一个共同的私钥。使用DH,即使攻击者可以监听包含公钥的消息,他们也无法确定密钥。
第1阶段配置在GUl上分为四个部分:网络、身份验证、第1阶段提案和XAUTH。你将了解每个部分的可用设置。你将在单独的图片中更详细地了解其中一些设置。
上图显示的部分对应于网络设置。本节包括与IPsec隧道连接相关的设置:
● IP版本:选择用于IPsec隧道的IP版本。请注意,这仅定义了隧道外层的IP版本(封装后)。被封装的数据包(受保护的流量)可以是IPv4或IPv6,其IP版本在第2阶段选择器中定义。
● 远程网关:定义远程网关的类型。有三种类型:静态IP地址、拨号用户和动态DNS。在本课程的后面,你将更多地了解这些类型。
● IP地址:远程网关的IP地址。仅当你选择静态IP地址作为远程网关时,此字段才会显示。
● 接口:指IPsec隧道在本地FortiGate上终止的接口。通常,这是连接到互联网或广域网的接口。你需要确保通过此接口有通往远程网关的主动路由,否则隧道将无法出现。
● 本地网关:当隧道终止的接口分配了多个地址,并且你想要指定用于隧道的地址时,启用此设置。启用此设置后,你将看到三个选项:主IP、附加的IP和指定。如果你想使用与主IP地址或附加的IP地址不同的IP地址,请选择指定。
● 模式配置:通过IKE启用自动配置。当你启用模式配置并将远程网关设置为静态IP地址或动态DNS时,FortiGate充当IKE模式配置客户端。如果你将远程网关设置为拨号用户,FortiGate将充当IKE模式配置服务器,GUI上会出现更多配置选项。在本课中,你将学习有关模式配置的更多信息。
以下是网络部分GUl上可用的其他选项:
● NAT traversal:该选项控制 NAT 穿越的行为。在本课的后面,你将学习更多关于NAT穿越的信息。
● Keepalive frequency:当您启用NAT穿越时,FortiGate会以配置的频率发送keepalive探针。
● Dead peer detection:使用死对等检测(DPD)来检测死隧道。有三种DPD模式。按需是默认模式。你将在本课的后面部分学习有关 DPD 的更多信息。
● Forward error correction:正向纠错(FEC)是一种技术,你可以用它来减少在嘈杂链路上建立的IPsec隧道中的重新传输次数,但代价是使用更多的带宽。你可以在出口和入口时启用FEC,并且仅在禁用IPsec硬件卸载时才支持FEC。在本课的后面,你将学习有关IPsec硬件卸载的更多信息。
● Advanced network settings
● 添加路由:如果你通过IPsec使用动态路由协议,并且不希望FortiGate自动添加静态路由,请禁用此设置。
● 自动发现发件者:如果你希望集线器促进辐条的ADVPN快捷方式协商,请在集线器上启用此设置。启用后,集线器会向辐条发送快捷方式报价,以表明它可以建立远程辐条的快捷方式。
● 自动发现接收者:如果你希望辐条协商ADVPN快捷方式,请在辐条上启用此设置。
● Exchange接口IP:启用此设置以允许交换IPsec接口IP地址。这允许集线器和辐条之间的点对多点连接。
● 设备创建:启用此设置,以指导FortiOS为每个拨号客户端创建界面。要提高性能,请在具有许多拨号客户端的拨号服务器中禁用此设置。
● 隧道聚合成员:FortiGate允许你将多个IPsec隧道聚合到单个接口中。如果你希望隧道成为聚合成员,请启用此选项。
在配置VPN的远程网关类型时,你有三个选项:拨号用户、静态IP地址和动态DNS。
当远程对等IP地址未知时,使用拨号用户。IP地址未知的远程对等作为拨号客户端,对于使用动态IP地址且没有动态DNS的分支机构和移动VPN客户端通常如此。拨号客户端必须知道作为拨号服务器的远程网关的IP地址或FQDN。由于拨号服务器不知道远程对等地址,因此只有拨号客户端可以启动VPN隧道。
通常,拨号客户端是远程和移动员工,他们的计算机或手持设备上有FortiClient。你还可以让FortiGate设备充当远程办公室的拨号客户端。你可以在FortiGate上使用一个拨号服务器配置,用于来自许多远程办公室或用户的多个IPsec隧道。
当你知道远程对等地址时,请使用静态IP地址或动态DNS。如果你选择静态IP地址,那么你必须提供IP地址。如果你选择动态DNS,那么你必须提供完全限定域名(FQDN),并确保FortiGate可以解析该FQDN。当两个对等端知道远程对等地址时,即两个对等端的远程网关都设置为静态IP地址或动态DNS,那么任何对等端都可以启动VPN隧道。
请注意,在拨号设置中,拨号客户端只是一个VPN对等,远程网关设置为静态IP地址或动态DNS。在设置VPN时,你可以结合不同类型的远程网关。出于显而易见的原因,两个对等端的远程网关都设置为拨号用户的隧道将不起作用。
IKE模式配置类似于DHCP,因为服务器将IP地址、网掩码和DNS服务器等网络设置分配给客户端。此任务通过IKE消息进行。
当你在充当拨号服务器的FortiGate设备上启用模式配置时,它会将网络设置推送到拨号客户端。拨号客户端通常是FortiClient对等,但它们也可以是FortiGate对等。
要使IKE模式配置正常工作,你必须在两个对等端上启用该功能。在FortiClient上,模式配置默认启用,但在FortiGate上,你必须手动启用它。
请注意,只有当你将远程网关设置为拨号用户时,IKE模式配置设置才会显示在GUl上。在充当拨号客户端的FortiGate设备上,你可以在GUI上选择模式配置,但不会显示其他设置。
ESP协议通常存在跨越执行NAT的设备的问题。其中一个原因是ESP不像TCP和UDP那样使用端口号来区分一个隧道和另一个隧道。
为了解决这个问题,NAT穿越(NAT-T)被添加到IPsec规范中。当NAT-T在两端都启用时,对等端可以检测路径上的任何NAT设备。如果找到 NAT,则两个对等端都会出现以下情况:
● IKE协商切换到使用UDP端口4500。
● ESP数据包封装在UDP端口4500中。
因此,如果你有两台FortiGate设备在后面,例如,执行NAT的ISP调制解调器,你可能需要启用此设置。
当你将NAT穿越设置设置为强制时,即使路径上没有NAT设备,UDP端口4500也会始终使用。
当你启用NAT-T时,Keepalive频率选项会显示FortiGate发送keepalive探针的间隔(以秒为单位)。当路径上有一个或多个执行NAT的路由器时,你需要NAT-T。keepalive探针的目的是在路径上的这些路由器上保持IPsec连接活跃。
在对等端协商隧道的IPsec SA后,因此,隧道被认为是上线的,对等通常不会协商另一个IPsec SA,直到它过期。在大多数情况下,IPsec SA每隔几个小时就会过期一次。这意味着,如果在IPsec SA到期之前,隧道路径出现网络中断,即使站点之间的通信中断,对等端将继续通过隧道发送流量。
当你启用DPD时,DPD探针会被发送来检测失败(或死)的隧道,并在其IPsec SA到期之前将其降低。当你有指向同一目的地的冗余路径,并且当主连接无法保持站点之间的连接时,你希望故障转移至备份连接时,此故障检测机制非常有用。
FortiGate支持三种DPD模式:
● 按需:如果只有通过隧道的出站流量,但没有入站流量,FortiGate会发送DPD探头。由于网络应用程序通常是双向的,因此仅观察出站方向的流量可能表明网络故障。
● 空闲:当隧道中没有观察到流量时,FortiGate会发送DPD探头。空闲的隧道并不一定意味着隧道是死的。如果你有很多隧道,请避免使用此模式,因为DPD引入的开销可能非常耗费资源。
● 禁用:FortiGate 仅回复收到的 DPD 探询。FortiGate从不向远程对等端发送DPD探针,因此无法检测死隧道。
默认的DPD模式是按需模式。在可扩展性方面,按需是比空闲更好的选择。
现在,你将了解第1阶段配置中的认证部分:
● 方法:FortiGate支持两种身份验证方法:预共享密钥和签名。当你选择预共享密钥时,你必须使用相同的预共享密钥配置两个对等。当你选择签名时,第1阶段认证基于数字证书签名。在这种方法下,一个对等的数字签名通过另一个对等上安装的CA证书的存在来验证。也就是说,在本地对等上,你需要同时安装本地对等证书和签发远程对等证书的CA证书。
● 版本:允许你选择要使用的IKE版本。选择版本2时,野蛮模式和主模式会消失,因为它们不适用于IKEv2。
IKE支持两种不同的协商模式:主模式和野蛮模式。你应该用哪一个?
为了回答这个问题,我们可以分析三个类别:安全性、性能和部署。
就安全性而言,主模式被认为更安全,因为预共享密钥哈希是加密交换的,而在野蛮模式下,哈希是未经加密交换的。尽管攻击者仍然必须猜测明文预共享密钥才能成功进行攻击,但预共享密钥哈希已在主模式下加密的事实大大降低了攻击成功的机会。
在性能方面,野蛮模式可能是更好的选择。这是因为协商在只交换了三个数据包后就完成了,而在主模式下,交换了六个数据包。出于这个原因,当大量隧道在同一FortiGate设备上终止时,你可能希望使用主动模式,并且性能是一个问题。
野蛮模式的另一个用例是,当有多个拨号隧道在同一个FortiGate IP地址上终止时,远程对等体使用对等体ID进行身份验证,因为它的IP地址是动态的。由于对等体ID信息是以野蛮模式协商的方式在第一个报文中发送的,因此FortiGate可以为远端对等体匹配正确的拨号隧道。后者在主模式下是不可能的,因为对端ID信息是在最后一个数据包中发送的,并且是在隧道被识别之后。
当两个对等知道对方的IP地址或FQDN时,你可能需要使用主模式来利用其更安全的协商。在这种情况下,FortiGate可以通过其IP地址来识别远程对等,并因此将其与正确的IPsec隧道相关联。
现在,你将了解第 1 阶段配置的第 1 阶段提案部分。本节允许你启用FortiGate在谈判IKE SA(或第1阶段SA)时支持的不同提案。你可以结合不同的参数来满足你的安全需求。
你必须至少配置一种加密和身份验证算法的组合,或几种。
● 加密:选择用于加密和解密数据的算法。
● 认证:选择用于验证数据的完整性和真实性的认证算法。
● Diffie-Hellman组:在IKE SA协商期间使用Diffie-Hellman(DH)算法。第1阶段使用DH是强制性的,不能禁用。你必须至少选择一个DH组。DH组数越高,第一阶段谈判就越安全。然而,更高的DH组数也会导致更长的计算时间。
● 密钥生命周期:定义IKE SA的寿命。在生命周期结束时,谈判了一个新的IKE SA。
● 本地ID:如果对等接受特定的对等ID,请在此字段中键入相同的对等ID。
第1阶段支持两种类型的身份验证:预共享密钥和数字签名。XAuth扩展,有时称为阶段1.5,迫使远程用户使用他们的凭据(用户名和密码)进行额外的身份验证。因此,如果你启用它,则会交换额外的身份验证数据包。好处是什么?更强的认证。
当你将远程网关设置为拨号用户时,FortiGate将充当身份验证服务器。XAUTH部分显示身份验证服务器类型选项:PAP服务器、CHAP服务器和自动服务器。在上图显示的示例中,选择了自动服务器,这意味着FortiGate会自动检测客户端使用的身份验证协议。
选择身份验证服务器类型后,你可以配置用户组匹配的执行方式。有两个选项:从策略继承和指定。后者用于上图的示例,并允许你选择FortiGate上可用的用户组之一。请注意,当您选择指定时,你必须为每个需要不同网络访问策略的用户组配置单独的拨号 VPN。
使用XAuth对VPN用户进行身份验证的另一种方法是选择从策略继承。当你选择此选项时,FortiGate会根据用户匹配的IPsec策略对用户进行身份验证,因此,控制网络访问的配置更简单。也就是说,你可以通过为不同的用户组配置多个策略来控制网络访问,而不是为不同的用户组配置多个隧道。从策略继承选项遵循了你在 SSL VPN 课程中学到的用于 SSL VPN 远程用户的类似身份验证方法。
当远程网关设置为静态IP地址或动态DNS时,FortiGate充当客户端,XAUTH部分将客户端选项显示为类型。然后,你可以设置FortiGate用于通过XAuth对远程对等进行身份验证的凭据。
第1阶段建立了交换数据的安全渠道后,第2阶段开始。
第2阶段通过第1阶段建立的安全通道协商两个IPsec SA的安全参数。ESP使用IPsec SA对站点之间交换的流量进行加密和解密,有一个出站SA和一个入站SA。此外,身份验证标头(AH)使用两个完整性密钥来对数据包的源进行身份验证并验证数据完整性。AH不提供加密。
第 2 阶段不会在 ESP 开始时结束。第2阶段定期重新谈判IPsec SA,以维护安全性。如果你启用完美正向保密,每次第2阶段到期时,FortiGate都会使用DH重新计算新的密钥。通过这种方式,新密钥不是来自旧密钥,这使得攻击者更难破解隧道。
每个阶段1可以有多个阶段2。这什么时候会发生?例如,你可能希望为流量穿越隧道的每个子网使用不同的加密密钥。FortiGate如何选择使用哪个阶段2?通过检查哪个第2阶段选择器(或快速模式选择器)与流量相匹配。
在第2阶段,你必须定义IPsec隧道的加密域(或兴趣流)。加密域是指你希望使用IPsec保护的流量,它由你的第2阶段选择器配置决定。
你可以配置多个选择器,以便对流量进行更精细的控制。配置第 2 阶段选择器时,可以通过指示以下网络参数来指定加密域:
● 本地地址和远程地址:如上图显示的示例所示,你可以使用不同的地址范围定义IPv4或IPv6地址。在选择命名地址或命名IPv6地址时,FortiGate允许你分别选择系统中配置的IPv4或IPv6防火墙地址对象。
● 协议:在高级部分,默认设置为全部。
● 本地端口和远程端口:也显示在高级部分,默认设置为全部。这仅适用于基于端口的流量,如TCP或UDP。你将在本课程的后面部分中详细了解高级部分。
请注意,在防火墙策略接受流量后,如果流量与配置的任何第2阶段选择器不匹配,则在进入IPsec隧道之前丢弃流量。出于这个原因,通常使用防火墙策略过滤流量会更直观。因此,如果你不想使用第2阶段选择器过滤,你可以创建一个第2阶段选择器,将本地和远程地址都设置为任何子网,如上图显示的示例所示,然后使用防火墙策略来控制在IPsec隧道上接受哪些流量。
此外,如果隧道是点对点的,即远程网关未设置为拨号用户,则两个对等的第2阶段选择器网络参数必须匹配。
对于每个第2阶段选择器,你需要配置一个或多个第2阶段提案。第2阶段提案定义了对等支持的加密和解密隧道数据的算法。在协商IPsec SA时,你可以配置多个提案,为远程对等提供更多选项。
与第1阶段一样,你需要选择加密和身份验证算法的组合。一些算法被认为比其他算法更安全,因此请确保选择符合你安全策略的算法。然而,请注意,算法的选择对FortiGate IPsec性能有直接影响。例如,众所周知,3DES是一种比DES和AES更耗费资源的加密算法,这意味着如果你选择3DES作为加密算法,你的IPsec吞吐量可能会受到负面影响。另外,请注意,如果你选择NULL作为加密算法,流量将不会被加密。
此外,一些加密算法,如CHACHA20POLY1305,不支持硬件卸载。也就是说,如果你有包含网络处理器(NP)单元的FortiGate设备,如果你选择NP单元模型(如AES或DES)支持IPsec卸载的算法,则可以实现更高的IPsec性能。有关IPsec硬件卸载支持的加密算法列表,请参阅https://docs.fortinet.com。
在配置第2阶段提案时,你可以选择启用重播检测,以检测对ESP数据包的反重播攻击。请注意,这是一个本地设置,因此,它没有作为同行在第二阶段谈判中提出的提案的一部分。
此外,如果你启用完美正向保密,FortiGate将使用DH来增强IPsec SA协商期间的安全性。
IPsec SA会定期重新协商以提高安全性,但什么时候会发生呢?这取决于第2阶段提案中配置的关键生命周期设置。
IPsec SA的到期由配置的生命周期类型和阈值决定。默认情况下,Key lifetime设置为秒(基于时间)。这意味着,当SA持续时间达到设置为秒数的秒数时,SA将被视为过期。你还可以将Key lifetime设置为千字节(基于容量),在使用该SA加密和解密的流量达到阈值设置后,SA就会过期。或者,你可以选择两者都作为关键生命周期类型,FortiGate可以跟踪SA的持续时间和流量。然后,当达到两个阈值中的任何一时,SA将被视为过期。请注意,关键生命周期阈值不必匹配,隧道才能出现。当阈值不同时,对等同意使用两者之间提供的最低阈值。
当IPsec SA到期时,FortiGate需要协商新的SA,以继续通过IPsec隧道发送和接收流量。从技术上讲,FortiGate会从各自的第2阶段选择器中删除过期的SA,并安装新的SA。如果IPsec SA重新协商需要太多时间,那么FortiGate可能会因为没有活动SA而放弃兴趣流。为了防止这种情况,你可以启用自动协商。当你这样做时,FortiGate不仅在当前SA到期前协商新的SA,而且还会立即开始使用新的SA。后者防止IPsec SA重新协商造成的流量中断。
启用自动协商的另一个好处是,即使没有兴趣流,隧道也会自动在线并保持在线。当你启用Autokey Keep Alive并禁用Auto-negotiate时,除非有兴趣流,否则隧道不会自动在线。然而,隧道启动后,它保持这种状态,因为FortiGate定期通过隧道发送保持活力的数据包。请注意,当你启用自动协商时,自动密钥保持活跃会隐含地启用。
在某些FortiGate型号上,你可以将IPsec流量的加密和解密卸载到硬件上。支持的算法取决于FortiGate上存在的NP单元型号。有关IPsec硬件卸载支持的加密算法列表,请参阅https://docs. fortinet.com。
默认情况下,为支持的算法启用硬件卸载,上图显示了在必要时可用于禁用每个隧道的硬件卸载的命令。
非常好!你已经了解了IPsec配置。接下来你将了解IPsec流量的路由和防火墙策略。
完成本部分后,你应该能够实现上图显示的目标。
通过展示IPsec VPN的路由和防火墙策略的能力,你将能够在FortiGate上设置适当的路由和防火墙策略,并为你的IPsec VPN部署添加冗余。
FortiGate支持两种类型的IPsec VPN:基于路由的和基于策略。基于策略是传统的IPsec VPN,仅出于向后兼容性的原因而支持,不建议将其用于新的部署。除非另有说明,否则本课中的所有IPsec VPN引用都适用于基于路由的IPsec VPN。
在基于路由的IPsec VPN中,FortiGate会自动添加带有VPN名称的虚拟接口。这意味着你不仅可以以与非IPsec流量相同的方式为IPsec流量配置路由和防火墙策略,还可以利用同一目的地的多个连接来实现冗余。
基于路由的IPsec VPN的另一个好处是,你可以部署IPsec VPN的变体,如L2TPover-IPsec和GRE-over-IPsec。此外,你还可以启用动态路由协议,以实现可扩展性和最佳路径选择。
虽然你可以为IPsec VPN使用动态路由协议,但本课仅涵盖静态路由的使用。
IPsec VPN所需的路由配置取决于配置的远程网关类型。当你将远程网关设置为拨号用户并启用添加路由时,FortiGate会自动为远程对等在第2阶段协商期间呈现的本地网络添加静态路由。此外,只有在第2阶段结束后,路由才会添加到路由表中。如果第2阶段下线,静态路由将从路由表中删除。
当你将远程网关设置为拨号用户并禁用添加路由时,FortiGate不会自动添加静态路由。在这种情况下,远程对等之间使用动态路由协议来交换路由信息。
当远程网关设置为静态IP地址或动态DNS时,你必须配置静态路由。配置静态路由时,选择IPsec隧道的虚拟接口作为出站接口。
你必须配置至少一个防火墙策略来接受IPsec隧道上的流量。否则,隧道就不会出现。
当你为非IPsec流量配置防火墙策略时,该策略将决定启动会话的流量方向。这同样适用于IPsec流量。出于这个原因,你通常希望为你的IPsec VPN配置至少两个防火墙策略:一个传入策略和一个传出策略。传入策略允许从远程站点启动流量,而传出策略允许从本地网络启动流量。
请注意,策略使用虚拟隧道接口(或第1阶段名称)作为传入或传出接口进行配置。
你如何使你的IPsec VPN部署更具弹性?为你的网站提供第二个ISP连接,并配置两个IPsec VPN。如果主IPsec VPN失败,可以使用另一个隧道代替。
冗余VPN有两种类型:
● 部分冗余:在一个对等端(通常是集线器,如果主ISP停机,则可以使用备份ISP),每个VPN在不同的物理端口上终止。这样,FortiGate可以使用替代VPN。在另一个对等端上,每个VPN在同一物理端口上终止,因此辐条不是容错的。
● 完全冗余:两个对等端在不同的物理端口上终止其VPN,因此它们都是容错的。
那么,如何配置部分或完全冗余的VPN呢?
首先,为每个路径创建一个阶段1,一个阶段用于主VPN,一个阶段用于备份VPN。你还应该在两端启用DPD。
第二,为每个阶段1至少创建一个阶段2定义。
第三,你必须为每个VPN添加至少一个静态路由。主VPN的路由必须具有比备份更低的距离(或更低的优先级)。这导致FortiGate在可用时使用主VPN。如果主VPN失败,那么FortiGate会自动使用备份路由。或者,你可以使用动态路由协议,如OSPF或BGP。
最后,配置防火墙策略,允许流量通过主VPN和备份VPN。
非常好!你已经了解了IPsec流量的路由和防火墙策略。接下来你将了解如何监控IPsec VPN并查看其日志。
完成本部分后,你应该能够实现上图显示的目标。
通过展示监视和日志的能力,你将能够监视IPsec VPN并调查常见问题。
在GUI仪表板上,你可以使用IPsec小部件来监控IPsec VPN的状态。小部件显示IPsec VPN的第1阶段和第2阶段状态。
你还可以启动或启动单个VPN,并获取更多详细信息。当你使用IPsec小部件启动IPsec VPN时,你可以在启动特定的第2阶段选择器或该VPN中的所有第2阶段选择器之间进行选择。因为启动第2阶段选择器需要先启动其第1阶段,然后启动第2阶段选择器会导致第1阶段也启动。
要删除VPN,你可以在删除特定的第2阶段选择器、所有选择器或整个隧道之间进行选择。当你下线整个隧道时,你下线了所有第2阶段的选择器以及第1阶段。
名称列表示 VPN 状态。当至少有一个第2阶段选择器启动时,VPN就会启动。如果所有第2阶段选择器都处于停机状态,则VPN状态也处于停机状态。第1阶段和第2阶段选择器列分别表示第1阶段和第2阶段选择器的状态。
IPsec小部件还显示通过隧道发送和接收的数据量。当你右键单击任何列时,将打开一个菜单,其中包含所有可用列的列表。你可以启用其他列来获取有关IPsec隧道的更多详细信息。
在上图显示的示例中,ToRemote VPN 已启动,因为其第 2 阶段选择器(ToRemote)中至少有一个已启动。
如果你将远程网关设置为静态IP地址或动态DNS,则在第1阶段出现后,这些隧道的静态路由在路由表中变得活跃。第1阶段协商会自动启动,因为默认情况下第1阶段启用了自动协商。这种行为允许FortiGate将兴趣流与正确的隧道相匹配。此外,如果第2阶段没有启动,与静态路由匹配的流量会触发第2阶段协商,最终导致隧道(或第2阶段)出现。
当你将远程网关设置为拨号用户时,默认情况下,在第2阶段出现后会添加目标网络的静态路由。静态路线的距离设置为15。如果第2阶段下线,路由将从路由表中删除。
FortiGate默认记录IPsec VPN事件。要查看IPsec VPN事件日志,请单击日志&报告>系统事件>VPN事件。
日志跟踪第1阶段和第2阶段谈判的进度,并报告隧道上下事件和DPD故障等事件。有关IPsec日志的更多信息,请访问https://docs.fortinet.com。
命令diagnose vpn tunnel提供了列出、关闭、激活或刷新VPN隧道的选项。
命令diagnose vpn tunnel list显示所有活动隧道的当前IPsec SA信息。
命令diagnose vpn tunnel list name <tunnel name>用来提供指定隧道的安全SA信息。
命令get vpn ipsec tunnel details为活动IPsec隧道提供信息。
输出显示流量计数器、协商快速模式选择器以及协商加密、身份验证和密钥。
命令diagnose vpn ike gateway list还提供了有关隧道的一些详细信息。
命令diagnose vpn ike gateway clear关闭第1阶段。使用此命令时要小心,因为它具有全局效应。这意味着在不指定第1阶段名称的情况下运行它,会导致所有VDOM的所有第1阶段都被清除。
上图显示了最常见的IPsec问题和解决方案的摘要。
如果隧道没有起来,请使用IKE实时调试。在这种情况下,通常会出现错误信息。
当隧道不稳定时,你通常会看到DPD数据包正在丢失,这表明问题可能出在ISP方面。
如果隧道启动了,但流量没有通过隧道,请使用调试流程。其中一个对等端可能会丢弃数据包或错误地路由流量。另一种可能性是数据包与快速模式选择器不匹配,因此FortiGate会丢弃数据包。
答案:A
答案:A
答案:A
恭喜你!你已经完成了这节课。
现在,你将回顾本课所涉及的目标。
上图展示了你在本课中所涉及的目标。
通过掌握本课涵盖的目标,你学习了IPsec协议的工作原理,以及如何在FortiGate上配置和监控IPsec VPN。