在这节课中,你将了解IPsec VPN的架构组件,以及如何设置拨号IPsec VPN。
在本次课程中,你将探讨以下主题:
在完成这节课程之后,你应该能够:
通过展示IPsec基础知识的能力,你将能够理解IPsec的概念和好处。
IPsec是什么?你应该什么时候使用?
IPsec是一组与供应商无关的标准协议集,用于连接两个物理上不同的局域网。局域网被连接起来,就好像它 们是一个单一的逻辑网络一样,尽管被互联网分隔开了。
理论上,IPsec确实支持零加密——也就是说,您可以创建不加密流量的VPN。IPsec还支持零数据完整性。但 这是否比单纯的流量更有优势呢?不。没有人能相信可能有攻击者注入攻击的流量。人们很少想要一个不知名 的人发送的数据。大多数人还希望私人网络数据,比如信用卡交易和医疗记录,保持私有。
所以,在现实中,不管供应商是什么,IPsec VPN几乎总是有三个重要的好处:
如果您正在通过防火墙传递您的VPN,那么它有助于了解允许哪些协议。
IPsec是一套单独的协议。它包括:
因此,如果你需要通过防火墙传递IPsec流量,请记住:只允许一个协议或端口号通常是不够的。
请注意,IPsec RFC提到了AH;然而,AH不提供加密,这是一个重要的好处。所以,AH没有被FortiGate使用。 因此,您不需要允许IP协议51。
要创建VPN,必须在两端配置匹配设置——VPN是在两个FortiGate设备之间、一个FortiGate和FortiClient,还 是一个第三方设备和一个FortiGate。如果设置不匹配,隧道设置将会失败。
IPsec在IP(网络)层提供服务。在隧道的建立过程中,双方都在协商加密和认证算法的使用。
在隧道被协商并升级之后,数据被加密并封装到ESP数据包中。
封装是什么?这取决于模式。IPsec可以在两种模式下运行:传输模式和隧道模式。
注意,在删除了VPN相关的头文件之后,传输模式数据包不能再传输了;它里面没有第二个IP报头,所以它是不 可路由的。出于这个原因,这种模式通常只用于端到端(或客户端到客户端)VPN。
为了创建IPsec隧道,这两种设备都必须建立它们的安全联盟(SA)和密钥,这些密钥是由Internet密钥交换 (IKE)协议促成的。
IPsec架构使用SA作为将安全功能构建到IPsec的基础。SA仅仅是用于加密和验证通过隧道传输的数据的算法 和参数的集合。在正常的双向通信中,这个交换是由一对SA来保护的,一个用于每个流量方向。从本质上说, 隧道的两边必须就安全规则达成一致。如果双方不能就发送数据和验证彼此身份的规则达成一致,那么隧道将 无法建立。
IKE使用两个不同的阶段:阶段1和阶段2。
小测验。
你现在已经了解了IPsec的介绍了。接下来,你将了解到IKE阶段1和阶段2。
在完成这一节之后,您将能够识别并理解IKEv1的阶段。通过展示识别IKE不同组件的能力,您将能够成功地确定用于VPN部署的适当组件选择。
IKE使用端口UDP 500。(如果NAT-T在NAT场景中启用,IKE使用UDP端口4500)。
IKE建立了一个IPsec VPN隧道。FortiGate使用IKE与同伴协商并确定安全联盟(SA)。SA定义了用于加密和 解密对等数据包的身份验证、密钥和设置。它基于互联网安全联盟和关键管理协议(ISAKMP)。
IKE定义了两个阶段。在阶段2中,每一个IPsec SA都是特定的方向。因此,在双向通信中,每个阶段2有两个 SA。
对于阶段1,有两种可能的协商模式:主模式和野蛮模式
阶段2只有一种模式:快速模式。
阶段1是在隧道的每个端点——发起者和响应者——连接并开始建立VPN时发生的。
当端点第一次连接时,通道是不安全的。中间的攻击者可以拦截未加密的密钥。这两个端点都不能保证对方的 身份,那么他们如何交换敏感的私钥呢?他们不能。首先,两个端点都必须创建一个安全的隧道。他们将使用 这个安全通道来保护强大的身份验证,并在以后协商隧道的真正钥匙。
现在您将研究阶段1是如何工作的。
在阶段1,对等体说hello并创建一个SA来定义一个安全通道。SA被称为IKE SA,是双向的。
在IKEv1中,有两种可能的模式可以进行SA协商。
设置必须一致;否则,阶段1将会失败。(每一方都无法解密或验证来自另一方的流量)。
在阶段1结束时,协商的IKE SA被用来协商在阶段2中使用的“Diffie-Hellman”(DH)密钥。
这张幻灯片显示了主模式的操作,其中交换了6个数据包。
首先,客户端提出,隧道将使用一个或多个安全策略。响应者选择它同意使用的安全策略,并回答。然后,发 起者发送它的钥匙。响应者用自己的钥匙回答。最后,发起者发送对等体ID和散列有效负载,响应者以同样的 方式应答。
在主模式下,响应者不能通过它的对等ID来识别发起者,这是因为第一个包不包含对等ID,所以源IP地址被用 作识别对等体的标准之一。这种方法适用于站到站的VPN(点对点VPN),因为响应者知道每个对等体的IP地 址。因此,响应者知道为每个案例提出的安全策略。
这种模式对于只有一个拨号VPN的响应者来说也很有效。在这种情况下,响应者不需要识别对等体。对于所有 的安全策略,只有一套安全策略。
然而,对于具有多个拨号VPN的响应者来说,这种方法可能无法很好地工作。在这种情况下,响应者可能需要 用除源IP地址以外的其他东西来标识发起者,因为对等IP地址是未知的,并且可以更改。如果没有这些信息, 响应者可能不知道每个发起者属于哪个拨号VPN,也不知道哪些安全策略适用。
现在您将检查野蛮模式协商。在野蛮模式下,只交换三包。
首先,客户端通过提出一个安全策略来发起,并提供它的密钥和对等ID。响应者以相同的信息应答,加上一个 散列。最后,发起者发送它的散列有效负载。
第一个包包含发起者的对等ID。因此,响应者可以使用这个ID(不仅仅是源IP地址)来确定对等体是谁,以及 使用哪种安全策略。对于有多个拨号VPN的响应者来说,这是最好的解决方案。
Diffie-Hellman使用公钥(两端都知道)加上一个称为nonce的数学因素,以生成一个普通的私钥。
这是至关重要的。有了Diffie-Hellman,即使攻击者可以监听包含公共密钥的信息,他们也无法确定密钥。
新的私钥用于计算对称加密和身份验证的附加钥匙。
ESP协议通常在执行NAT的设备上遇到问题,其中一个原因是ESP没有像TCP和UDP那样的端口号来区分来自 一个隧道或另一个隧道的流量。
为了解决这个问题,NAT穿越(NAT-T)被添加到IPsec规范中。当NAT-T在两端都启用时,对等体可以在路径 上检测任何NAT设备。如果发现了NAT,那么接下来会发生以下情况:
所以,如果你有两个在后面的FortiGate设备,例如,一个有NAT的ISP调制解调器,你可能需要启用这个设置。
当NAT穿越设置被设置为强制时,总是使用UDP端口4500,即使在路径上没有NAT设备的情况下也是如此。
在阶段1建立了一个安全的通道和私钥之后,阶段2开始了。
阶段2为两个IPsec SA协商安全参数——不要与IKE SA混淆。它们是阶段2SA——而不是阶段1SA——ESP用 于在LAN之间传输数据。
当ESP开始时,IKE阶段2不会结束。阶段2定期重新协商密码以维护安全。另外,如果你设置了Perfect Forward Secrecy ,每个阶段2都将到期,FortiGate将会使用“Diffie-Hellman”来重新计算新的密钥。通过这 种方式,新钥匙不是从旧的钥匙中派生出来的,这使得攻击者更难破解隧道。
每个阶段1可以有多个阶段2。这是什么时候发生的?
例如,您可能想要为通过隧道每个子网的流量都使用不同的加密密钥。FortiGate如何选择阶段2的使用?通过 检查哪个快速模式选择器,流量匹配。
在阶段2中,您必须配置一对名为quick mode selectors的设置。他们识别并引导流量到适当的阶段2。换句话 说,它们允许粒度SA。
选择器的行为类似于防火墙策略。VPN流量必须在阶段2的SA中匹配选择器。如果没有,流量就会被丢弃。
在配置选择器时,指定将匹配每个阶段2的源和目标IP子网。您还可以为允许的流量指定协议号、源和目的端 口。在点对点的VPN中,比如将一个分支机构的FortiGate连接到一个总部的FortiGate,两边的配置必须相互映 射。
小测验。
你现在了解了IKE阶段1和阶段2。接下来,您将了解到拨号IPsec VPN。
在完成本节之后,你应该能够:
通过演示拨号IPsec VPN配置的能力,你将更好地理解在FortiGate和FortiClient之间部署一个拨号VPN。
当对等体的IP地址是动态的,并且没有动态DNS时,就会使用拨号VPN。这通常是分支机构和移动VPN客户端 的情况。因为一个带有拨号VPN的对等体不知道其他对等体的IP地址,所以它不能启动VPN连接请求。
当您不知道远程对等体将在哪里连接时,就会使用拨号VPN,例如在笔记本上有FortiClient的旅行员工,或者 是一个用于远程办公室的FortiGate设备当做拨号客户端。
在您的FortiGate设备上的一个拨号VPN配置可以用于许多远程办公室或用户的IPsec隧道。这是另一个名字, 来自点对多点。
请记住,在拨号中,客户端的IP是动态的,所以FortiGate无法预测它的位置。这意味着FortiGate不能启动VPN, 只有远程对等体才能启动。
现在您将配置点对多点(在GUI上称为拨号VPN)。
您必须配置的设置如下:
你将从配置拨号服务器的阶段1开始。
Remote Gateway 必须设置为Dialup User。
如果拨号服务器包含多个拨号VPN,则选择Aggressive。需要使用对等ID。
接下来,您将看到拨号客户端的阶段1。
首先,指定这个拨号客户机的拨号服务器是否使用Static IP或Dynamic DNS。
如果拨号服务器有多个拨号VPN,则必须将Mode设置为Aggressive。然后,在Local ID中,您必须输入这个 拨号客户机将用来标识自己到拨号服务器的名称。这个ID必须与拨号服务器上配置的ID相匹配。
通常,拨号服务器中的本地(源)快速模式选择器被设置为拨号服务器的子网。拨号服务器中的远程(目标) 快速模式选择器通常设置为0.0.0.0/0,以匹配所有拨号客户端子网。
客户端中快速模式选择器的情况下,本地地址必须是拨号客户端的子网。
拨号客户机中的远程快速模式选择器通常是拨号服务器的子网。
点对多点的快速模式选择器不需要相互镜像。
在每个FortiGate上通常有两个策略来允许和检查来自和进入IPsec虚拟接口的流量。
拨号VPN服务器的两个防火墙策略
拨号VPN客户端的两个防火墙策略
接口不匹配WAN接口;它与虚拟接口相匹配,在本例中,它被命名为ToRemote。
拨号服务器将在VPN建立后立即向该子网添加一条静态路由。(这样,您就不需要手动配置FortiGate拨号服务 器,并为每个FortiGate拨号客户端提供了了所有的静态路由。)
当隧道出现时,拨号服务器的子网的静态路由不会被动态添加到拨号服务器中。这条路由必须添加到配置中。
现在,您将配置IPsec拨号客户端到FortiGate。
您必须配置的设置如下:
您将从配置拨号服务器的阶段1开始。FortClient的拨号服务器配置或多或少与您早先对作为客户端的拨号服务 器的FortiGate类似,并添加了一些附加选项。
Remote Gateway 必须设置为Dialup User。
如果拨号服务器包含多个拨号VPN,则选择Aggressive。需要使用对等ID。
为了加强认证,您可以启用XAuth。拨号服务器FortiGate将使用Enable as Server。(每一个FortiClient或拨号 客户端都将使用Enable as Client。)如果您在拨号服务器上启用XAuth,您还必须在拨号客户机上启用XAuth, 并配置用户名和密码。
此外,如果您的拨号客户机是移动拨号用户,您应该启用NAT穿越(NAT Traversal ),因为它们通常在机场 终端、家庭路由器和酒店防火墙NAT后面。
果拨号客户机是移动用户,比如FortiClient用户,您可能会在拨号服务器的阶段1启用和配置Mode Config。 这是用于IPsec的扩展名为IKE模式配置。
为什么?将静态IP分配给每个笔记本和移动电话通常是不现实的。IKE模式配置是另一种选择。
与DHCP一样,Mode Config会自动配置客户端的网络设置。与DHCP一样,您为VPN虚拟IP和DNS设置定义 了一个范围。
另一个阶段1选项是XAuth。
阶段1支持两种类型的认证:预共享密钥和数字证书。对IPsec的XAuth扩展迫使远程用户使用他们的凭证(用 户名和密码)进行身份验证。因此,如果启用的话,还会交换额外的认证包。
有什么好处?更强的身份验证。
有两种方法可以配置被授权连接到VPN的用户列表。一种方法是选择一个包含这些用户的特定用户组。当您使 用这种方法时,您需要配置多个拨号VPN,如果您想要应用不同的访问策略,这取决于用户组。这也意味着使 用野蛮模式和对等ID。
配置授权VPN用户列表的另一种方法是选择Inherit from policy。有了这个设置,就可以授权所有属于任何用 户组的用户,这些用户组被分配到任何允许VPN传输的防火墙策略中。在这个例子中,VPN流量有两个防火墙 策略。其中一个允许来自用户组Administrator的流量。另一个策略允许来自用户组training)的流量。在这种 情况下,所有属于管理员或培训的用户都可以连接到VPN。
这种方法的优点是,您可以为不同的用户组提供不同的访问策略,并且在配置中只保留一个拨号VPN。
如果您的客户只是FortiClient,那么配置拨号服务器还有一个更简单的选择:使用VPN向导。它将使用基于路 由的VPN,并启用IKE Mode Config、XAuth和其他适当的设置。
小测验。
你现在了解了拨号IPsec VPN。接下来,您将学习一些最佳实践,并分析IPsec VPN日志。
在完成本节之后,你应该能够:
通过展示最佳实践和日志的能力,您将能够应用最佳实践,并使用基本技术来分析和监控VPN日志。
在存在多个远程拨号VPN隧道的情况下,每个隧道必须有一个对等的ID集。
确保FortiClient版本与Fortigate OS版本兼容。
如果你的FortiGate在NAT设备的后面,比如路由器,为UDP端口500和4500配置端口转发。
确保开启硬件加速为IPsec提供最好的性能。
检查IPsec VPN最大传输单元(MTU)大小。1500字节MTU将超过支持ESP头的开销,包括额外的IP头,等等。
在1436的3DES / SHA1和1412的AES128 / SHA1的MTU中,该FortiGate设置了IPsec隧道最大传输单元 (MTU)1436。您可以使用CLI命令诊断VPN隧道列表来验证这一点。这表明,FortiGate将为AES128 / SHA1的 3DES / SHA1和88字节分配64字节的架空,如果您将MTU从一个典型的以太网MTU中减去1500字节,这就是区别。
您可以配置FortiGate来记录VPN事件。对于IPsec VPN,阶段1和阶段2的认证和加密事件被记录。有关如何解 释日志消息的信息,请参阅https://docs.fortinet.com。
要查看IPsec VPN事件日志,请单击 Log & Report > VPN Events.
样本日志表示阶段2的协商失败。
这个示例日志是用于拨号的IPsec VPN用户。这个移动用户使用FortiClient连接。
日志消息表明用户已成功地进行了身份验证,并建立了隧道。
这张幻灯片展示了另一个拨号IPsec VPN日志的例子,其中用户身份验证失败,因此隧道没有建立。用户输入了错误的密码。
你可以监控在IPsec Monitor中有哪些拨号IPsec VPN用户连接。这显示了所有拨号的IPsec VPN用户的名字,这些用户目前连接到FortiGate,以及他们的IP地址。
你已经完成了这一课。现在,您将回顾本课程所涵盖的目标。
这一课涵盖了以下目标: