教程篇(5.4) NSE4 16. 高级IPsec VPN ❀ 飞塔 (Fortinet) 网络安全专家

来源:互联网 发布:java实现svm分类 编辑:程序博客网 时间:2024/06/14 10:15


在这节课中将展示如何设置IPsec VPN拓扑,比如部分网格和全网格,换句话说,就是复杂的点对多点VPN。

  尽管我们很快会对它进行回顾,在基础IPsec VPN课程中,你应该已经熟悉了站点到站点的VPN,这个课程也假设你很熟悉:

  • IPsec术语,比如SA和peer是什么

  • Diffie-hellman 交换

  • 快速模式选择

  • 基于策略和基于路由VPN

  • 配置日志设置

  • 如何使用VPN监视器


在完成这一课程之后,你将可以做到,你需要为你的需求部署正确的VPN拓扑,增加可用性,并对隧道进行故障排除。

  与一个简单的静态VPN不同,比如在两个办公室之间,多个动态对等点之间的VPN需要额外的考虑。


正如我们在基本的IPsec vpn中看到的那样,IPsec是一套协议,用于对两个对等点之间的通信进行身份验证和加密。该套协议中使用的三个最常用的协议是:

  • Internet密钥交换(IKE),它负责握手、隧道维护和断开

  • 封装安全有效负载(ESP),确保数据的完整性和加密

  • 身份验证头(AH),它只提供数据完整性,而不是加密

  FortiGate只使用ESP来传输数据包的有效负载。AH不是在FortiGate里使用的。


因为我们将首先在IKE中展开,让我们来回顾一下密钥交换,它使用了端口UDP 500(如果在NAT场景中启用了NAT-T,UDP端口4500)。

  IKE建立一个IPsec VPN隧道。FortiGate使用它与同伴进行协商并确定安全协会(SA)。SA定义了用于加密和解密对等包的身份验证、密钥和设置。它基于Internet安全协会和密钥管理协议(ISAKMP)。

  正如在基础IPsec VPN课程中所解释的那样,IKE定义了两个阶段。在阶段2中协商的每个IPsec都是特定于定向的。因此,在双向通信中,每个阶段2中有两个SA。

  对于第一阶段,有两种可能的协商模式:主模式和攻击模式。第二阶段只有快速模式。主模式和攻击模式对拨号VPN有不同的考虑。那么,让我们来看看主模式和攻击模式之间的区别。


这里显示的是主模式,共有六个数据包交换。

  首先,客户端提出,隧道将使用一个或多个安全策略。响应器选择它同意使用的安全策略,并回答。然后,发起者发送它的密钥。响应者用自己的密钥回答。最后,启动程序发送它的对等ID和散列有效负载,而响应方以相同的方式响应。

  在这种情况下,应答器只能通过第一个包的源IP地址来标识启动程序。什么都没有。这是因为第一个包不包含对等ID,这对于点-点的VPN很有效,因为响应方知道每个对等点的IP地址。因此,响应方知道为每个案例提出了哪些安全策略。对于只有一个拨号VPN的应答器也是可以的。在这种情况下,响应器不需要标识对等点。只有一组安全策略可以用于所有这些策略。

  然而,对于具有多个拨号VPN的响应器来说,这是一个问题。如果是这种情况,响应方需要用与源IP地址不同的方式识别发起者,因为对等IP地址是未知的,并且可以更改。如果没有这些信息,响应者不知道每个启动器属于哪个拨号连接,也不知道哪个安全策略应用。


相比之下,让我们来看一看野蛮模式协商。交换的只有3个包:

  首先,客户端通过提出一个安全策略,并提供其密钥和对等ID来进行初始化,响应者以相同的信息和一个散列进行应答。最后,启动程序发送它的散列有效负载。

  与主模式不同,第一个包包含发起者的对等ID。因此,应答器可以使用这个ID(而不仅仅是源IP地址)来标识对等点是谁,以及使用哪个安全策略。这是对具有多个拨号VPN的应答者的解决方案。但是,由于对等ID在初始的、无担保的交换中被公开,攻击者可以看到它并使用它来尝试欺诈连接。因此,将这种模式与扩展身份验证(xAuth)进行配对比较安全。


另一个高级阶段1选项是XAuth。

  阶段1支持两种身份验证:预共享密钥和数字证书。XAuth扩展到IPsec,迫使远程用户使用他们的凭证(用户名和密码)进行身份验证。因此,如果启用它,将交换额外的身份验证包。

  好处是什么?更强的身份验证。

  有两种方式配置授权连接到VPN的用户列表。一种是选择包含这些用户的特定用户组。有了这个方法,如果你想要应用不同的访问策略,你需要配置多个拨号VPN,这取决于用户组。正如我们之前看到的,这也意味着使用野蛮模式和对等ID。


配置授权VPN用户列表的另一种方式是选择从策略继承的选项。有了这个设置,FortiGate就授权所有属于任何被分配到允许VPN流量的防火墙策略的用户组的所有用户。在本例中,VPN流量有两个防火墙策略。一个允许来自用户组管理员的流量。另一个策略允许来自用户组培训的流量。在这种情况下,所有属于管理员或培训的用户都可以连接到VPN。

  这种方法的优点是,你可以为不同的用户组拥有不同的访问策略,并且在配置中只保留一个拨号VPN。


让我们讨论一下IPsec远程对等点和VPN拓扑的类型。


在配置阶段1时,我们必须指定远程对等点的类型。有三种类型:

  • 当对等的IP地址被知道并且不会改变时,将使用静态IP地址

  • 当对等点的IP地址是动态的时,动态DNS会被使用,但是FortiGate可以通过DNS查询来解决它。这使得它实际上是一个静态的对等点。例如,分支机构经常使用ISP的DHCP。IP地址改变了,但不是经常。因此,你可以使用动态DNS来获得解析到动态IP的静态DNS名称。然后,你将使用对等的DNS域名配置你的FortiGate,你的FortiGate将在需要连接的时候对其进行查询。

  • 当对等点的IP地址是动态的,并且没有动态DNS时,使用拨号。对于分支机构和移动VPN客户来说,这通常是正确的。与拨号VPN的对等点不知道其他对等网络的IP地址,它不能启动VPN连接请求。


让我们研究一下VPN网络的不同拓扑。有五种类型:

  • 点对点

  • 拨号

  • 集中星型

  • 全网状

  • 部分网状

  点对点VPN是最简单的。两个节点直接沟通。这个拓扑的配置方法,在基础IPsec VPN课程中已经有介绍。现在,让我们看一下其他四种拓扑。


首先,让我们看一下拨号VPN。当你不知道远程对等点将从何处连接时,就会使用它,例如使用笔记本电脑的出差员工。

  不同于站点到站点的VPN,你的FortiGate上的一个拨号VPN配置可以用于多个远程办公室或用户的多个IPsec隧道。因此,它的另一个名字,点对多点。

  请记住,在拨号中,客户端的IP是动态的,因此FortiGate无法预测它的位置。这意味着,FortiGate不能启动VPN,只有远程对等点才能启动。


一个点到多点拓扑变化称为集中星型。它的名字描述了所有的客户是如何通过一个中央枢纽连接起来的,类似于辐条连接到轮上的枢纽。

  在本例中,客户端辐条是每个分支办公室的FortiGate。任何一个分支机构都要到达另一个分支机构,它的流量必须经过中心。

  这种拓扑的优点是可以轻松地管理VPN配置和防火墙策略。对于分支机构来说,系统需求也是最小的,因为每个分支都只需要维护一个通道(两个SA)。在这个例子中,中心需要4个隧道(8个SA)。

  缺点是,特别是如果总部(HQ)在物理上很遥远,就像对跨国公司来说,分支机构通过总部之间的通信将比直接连接慢。如果你的总部在巴西,你在日本和德国都有办公室,那么延迟可能非常重要。例如,如果总部的FortiGate失败,VPN故障将会在全公司范围内。而且,总部的FortiGate必须要强大得多。它同时处理4个隧道(8个SA)。

  那么,如果某些分支机构可以绕过总部,直接连接到彼此,那么拓扑结构会是什么样子呢?


这些是带有网格拓扑的VPN。存在两种变体。

  全网连接每一个位置。就像之前的中心辐条一样,这里只有5个位置。但是要完全互联,每一个FortiGate都需要4个VPN隧道(8个SA)。每个辐条上的FortiGate有超过三条隧道。总共需要20个隧道。如果你扩展到6个位置,它需要30个VPN,7个位置需要42个,等等。

  这种拓扑造成的延迟较低,并且需要比中心和辐条更少的总部带宽。它的缺点?每一个辐条的FortiGate都必须更有力。

  部分网格试图折衷,最小化所需的资源,但也有延迟。如果不需要在每个位置之间进行通信,部分网格是合适的。然而,每一个FortiGate的配置仍然比集中星型更复杂。特别是可能需要大量的计划。

  因此,通常情况下,你所拥有的位置越多,集中星型的成本就会比一个网状拓扑结构更便宜(但也会更慢)。网格将减少对中心位置的压力,并使其具有更大的容错能力(但更昂贵)。


回顾一下,这里有一个快速的比较。你应该选择最适合你的情况的拓扑。


正如我们所看到的,每个VPN拓扑都有其优点和缺点。

  自动发现VPN(ADVPN)是一个FortiGate全网状拓扑结构的优点,它可以更容易配置和可伸缩性优点,也可以从集中星型和部分网格拓扑结构中获益。

  首先,你要添加到FortiGate的VPN配置中,用于构建一个集中星型或部分网格拓扑。在此之后,你可以在VPN上启用ADVPN。ADVPN将在辐条之间动态地协商隧道(没有预先配置)以获得全网格拓扑的好处。

  ADVPN需要使用在IPsec隧道中运行的动态路由协议,以便在动态VPN协商之后,辐条可以了解到其他辐条的路由。


这是ADVPN工作的一个例子。管理员在多个防御系统中配置IPsec VPN,以形成VPN部分网格拓扑。有两个中心。中心1有三个辐条。中心2有两个辐条。

  管理员还可以在所有的VPN中启用ADVPN。要做到这一点,你必须启用以下IPsec阶段1设置:

  • 在辐条的VPN中auto-discovery-receiver
  • 在中心VPN到每个回辐条中auto-discovery-sender和auto-discovery-psk

  • 在中心VPN到每个其它中心中auto-discovery-forwarded

  辐条之间的动态通道是根据需要创建的。假设波士顿的一个用户向伦敦发送了流量。最初,波士顿和伦敦之间的直接隧道还没有经过谈判。因此,从波士顿到伦敦的第一批数据包经过了中心1和2。当中心1接收到这些数据包时,它会注意到在所有的VPN中都启用了ADVPN。因此,中心1向波士顿发送了一个IKE消息,告知它可以尝试与伦敦进行直接连接。在收到这个IKE消息后,波士顿创建了一个特定FortiOS的IKE信息消息,其中包含公共IP地址、本地子网、想要的目的地子网(伦敦的子网)和自动生成的PSK用于保护直接隧道(也可以使用数字证书身份验证)。这个IKE消息通过中心1和2发送到伦敦。当伦敦收到来自波士顿的IKE信息时,它会存储PSK,并返回包含伦敦公共IP地址的另一个IKE消息信息。在回复到波士顿之后,这条动态隧道是在两个同行之间进行协商的。谈判将会成功,因为伦敦期待着波士顿公共IP地址的连接尝试。


我们讨论了如何在基本的IPsec VPN课程中配置点对点VPN。这节课介绍了拨号VPN配置。


在此之前我们说过,可以使用点对点(站点到站点)和点对多点的VPN来构建集中星型、全网格和部分网格。因此,让我们配置点对多点,在GUI上称为拨号VPN。

  注意,步骤是相同的。不同的是什么?设置,我们必须配置:

  • 一个阶段1

  • 至少一个阶段2

  • 防火墙策略

  • 如果需要,静态路由或动态路由协议

  请记住,在FortiGate上有两种不同的配置VPN的方式:基于策略和基于路由。

  • 对于基于策略的VPN,通常不需要额外的路由条目。同时,针对基于策略的VPN的防火墙策略也被应用。因此,一个策略足以允许在任何一端启动通信。

  • 对于基于路由器的VPN,需要路由条目,并且至少需要两种防火墙策略来允许双方的通信。


让我们首先在一个集中星型拓扑结构中为中心配置阶段1。

  远程网关设置必须设置为拨号用户。

  如果该中心包含多个拨号VPN,则需要使用野蛮模式和使用对等ID。

  为了加强身份验证,你可以启用XAuth。中心FortiGate将使用启用服务器设置。每一个FortiClient或辐条都将使用Enable作为客户端。

  另外,如果你的轮辐是移动拨号用户,那么NAT遍历应该是启用的,因为它们通常在机场终端、家庭路由器和酒店防火墙后面。


如果您的轮辐是移动用户,比如FortiClient用户,你可能会在hub的第一阶段启用和配置模式配置。这是一个IPsec扩展名为IKE模式配置。

  为什么?将静态IP分配给每个笔记本和移动电话通常是不现实的。IKE模式配置是另一种选择。

  与VPN的DHCP一样,模式配置自动配置客户端的网络设置。与DHCP一样,你为VPN虚拟IP和DNS设置定义了一个范围。


接下来,让我们看一下对话的第一阶段。

  首先,指定这个对话的中心是使用静态IP还是动态DNS。

  如果该中心有多个拨号VPN,则必须将该模式设置为野蛮模式。然后,在本地ID中,你必须输入该对话将使用的名称来标识自己到中心的名称。这个ID必须与在中心上配置的ID匹配。

  如果你在中心启用XAuth,你也必须在对话中启用XAuth,并配置用户名和密码。


在阶段2中快速模式选择配置如何?

  通常,中心的本地(源)快速模式选择被设置为0.0.0.0/0或到中心的子网。位于中心的远程(目的地)快速模式选择通常设置为0.0.0.0/0,以匹配所有的辐条子网。

  在对话中快速模式选择的情况下,本地地址必须是辐条的子网。对于基于路由器的VPN,该中心将在建立VPN之后,动态地向该子网添加一条静态路由。(这种方式,你不需要手动配置每个辐条的所有静态路由。)

  在对话中,远程快速模式选择通常是中心的子网。在这种情况下,当通道出现时,不会动态地添加到该中心子网的静态路由。此路由必须添加到配置中。

  注意,与点到点的VPN不同,点对多点的快速模式选择不需要相互镜像。


如果你的客户是FortiClient,那么有一个更简单的方法可以配置中心。那就是使用VPN向导。它将使用基于路由、启用IKE模式配置、XAuth和其他适当的设置。


你可以在两个站点之间创建多个VPN,用于流量共享或冗余。让我们来看看如何做到这点。


我们简要地提到,集中星型本质上是不容错的:如果某件事失败了,那么所有VPN隧道都可能会被关闭。你怎么能让你的中心或点对点的VPN更有弹性呢?

  向你的中心提供第二个ISP连接,并配置两个基于路由器的VPN。如果主VPN失败,则可以使用另一个通道。

  有两种冗余的VPN存在:

  • 部分冗余:在一个对等点上(通常是中心,如果主ISP关闭了,一个备份ISP可用),每个VPN在不同的物理端口上终止。这样一来,FortiGate就可以使用另一个VPN了。但是在另一个对等点上,两个VPN都在同一个物理端口上终止,因此这个对话并不是容错的。

  • 完全冗余:两个对等点都在不同的物理端口上终止它们的VPN。所以它们都是容错的。


那么如何配置部分或完全冗余的VPN呢?

  首先,为每个路径创建一个基于路由器的阶段1,为主VPN创建一个阶段1,并为备份创建一个阶段1。启用死点检测(DPD)。DPD是一种用于IPsec网关的方法,用于检测到它的对等点的VPN隧道何时关闭。

  其次,创建阶段2。

  然后,因为这些是基于路由器的VPN,所以你必须为每个VPN添加至少一条静态路由。与备份相比,主VPN的路由必须有更小的距离(或更小的优先级)。这就导致了在可用的时候使用主VPN。如果主VPN失败,那么FortiGate将自动使用备份路由。或者,我们可以使用动态路由协议,如OSPF或BGP。

  最后,配置防火墙策略,允许通过主服务器和备份VPN进行通信。


如果,在建造了一个隧道之后,你会怎么做?让我们来看看这个部分。


如你所见,IPsec VPN配置可能很复杂。解决问题的最好方法是什么?

  当对不进行协商的隧道进行故障排除时,首先要寻找不匹配的情况。大多数连接失败是由于配置不当造成的。

  如果你没有看到任何配置不匹配,请运行IKE实时调试。它的输出是广泛的,因为它显示了第1阶段和第2阶段的谈判。如果协商失败,那么IKE实时调试显示可以引导你解决问题。

  要启用IKE实时调试,首先要创建一个带有命令〖diagnose vpn ike log- filter dst-addr4〗 和IPsec对等点公共IP地址的过滤器。

  然后,可以使用命令〖diagnose debug application ike -1〗和〖diagnose debug enable〗。

  在调试运行时尝试引入隧道,并捕获所有输出。

  在此之后,请记住停止调试,并使用命令〖diagnose debug reset〗和〖diagnose debug disable〗 。不建议在一个长时间的FortiGate的背景下进行实时调试。


这显示了使用主模式进行成功的第一阶段协商的输出。

  第一行显示来自IP地址172.20.187.114的IPsec数据包的到达。第三行表示对等点在使用主模式。

  稍后,调试显示,FortiGate接受来自远程对等点的SA提议。它显示与提案相匹配的第1阶段的名称。在本例中,它是远程名称。

  FortiGate对第一个主模式包的应答。然后,第二个主模式包到达。

  再次应答,第三个主模式包被接收。

  在完成了协商之后,输出显示了表明密钥交换成功的消息,并且已经建立了IKE SA。


让我们看看在第2阶段的谈判中显示了什么。再一次,输出比这个长得多。这里只显示了该输出的一些部分的样本。

  第一行显示了第一个快速模式包的到达。

  第二行显示远程对等点提出的快速模式选择。在本例中,对于源和目标都是0.0.0.0/0。

  下面的一些行,调试显示了在两个对等点之间成功协商的快速模式选择器。

  最后两行最后显示了隧道的启动和IPsec sa的建立。

  如果在第1阶段或第2阶段的协商中存在任何问题,输出将显示一条错误消息。


复习一下讨论过的内容。

  我们解释了主模式与野蛮模式之间的区别。我们还介绍了扩展的身份验证、VPN拓扑、ADVPN、拨号VPN和冗余VPN。最后,我们提供了一些故障排除技巧。


飞塔技术 - 老梅子   QQ:57389522


阅读全文
0 0