在本课中,你将学习如何配置和使用SSL VPN。SSL VPN是让远程用户访问你的专用网络的简单方法。

  在这节课中,你将学习上图显示的主题。 

 完成本部分后,你应该能够实现上图显示的目标。

  通过展示对FortiGate允许SSL VPN连接的方式的熟练理解,你将能够更好地设计SSL VPN的架构。

 有两种模式可用于访问SSL VPN。两者都可以构建SSL VPN连接,但它们不支持相同的功能。

  你应该选择哪一个?

  这取决于你需要通过VPN发送哪些应用程序,用户的技术知识,以及你是否在他们的计算机上拥有管理权限。

  隧道模式支持大多数协议,但需要安装VPN客户端,或者更具体地说,需要安装虚拟网络适配器。要使用虚拟适配器隧道流量,你必须使用FortiClient远程访问功能或FortiClient VPN-only客户端。

  Web模式只需要一个网络浏览器,但支持数量有限的协议。在本课中,你将只了解SSL VPN隧道模式。

  在具有2 GB RAM或更少的FortiGate型号上,SSL VPN网络和隧道模式功能会从GUI和CLI中删除。之前的设置不会升级。要确认你的FortiGate型号是否有2 GB RAM,请在CLl中输入diagnose hardware sysinfo conserve,检查总RAM值是否低于2000 MB(1000 MB = 1 GB)。

 隧道模式是FortiGate提供的第二个选项,用于访问SSL VPN中的资源。

  隧道模式要求FortiClient连接到FortiGate。FortiClient将一个被标识为fortissl的虚拟网络适配器添加到用户的PC上。每次FortiGate建立新的VPN连接时,这个虚拟适配器都会动态地从FortiGate接收IP地址。在隧道内,所有流量都封装了SSL/TLS。

  隧道模式的主要优点是,VPN建立后,在客户端上运行的任何IP网络应用程序都可以通过隧道发送流量。隧道模式需要安装VPN软件客户端,这需要管理权限。

 隧道模式是如何运作的?

  1. 用户通过FortiClient连接到FortiGate。

  2. 用户提供凭据以成功身份验证。

  3. FortiGate建立隧道,并将IP地址分配给客户端的虚拟网络适配器(fortissl)。这是连接期间客户端的源IP地址。

  4. 然后,用户可以通过加密隧道访问服务和网络资源。

  FortiClient对来自远程计算机的所有流量进行加密,并通过SSL VPN隧道发送。FortiGate接收加密流量,取消封装IP数据包,并将其转发到专用网络,就好像流量来自网络内部一样。

 隧道模式也支持分割隧道。

  当禁用分割隧道时,客户端计算机生成的所有IP流量(包括互联网流量)都会通过SSL VPN隧道路由到FortiGate。这将FortiGate设置为主机的默认网关。你可以使用此方法将安全功能应用于这些远程客户端的流量,或监控或限制互联网访问。这增加了更多的延迟,并增加了带宽的使用。

  在FortiGate(客户端)到FortiGate(服务器)的设置中,默认路由在FortiGate SSL VPN客户端上有效动态创建,新的默认路由以ECMP的形式添加到现有默认路由中。以下选项可用于配置路由:

  ● 要使所有流量默认为SSL VPN服务器,并且仍然有通往服务器监听接口的路由,在SSL VPN客户端上,为从服务器学习的默认路由设置较低的距离。

  ● 要在路由表中包含两个默认路由,从SSL VPN服务器学习的路由优先,在SSL VPN客户端上,为从服务器学习的路由设置较低的距离。如果距离已经为零,则增加默认路由的优先级。

  当启用拆分隧道时,只有指向远程FortiGate后面的专用网络的流量才会通过隧道路由。所有其他流量都通过通常的未加密路线发送。FortiGate没有流量检查。

  分割隧道有助于节省带宽并缓解瓶颈。

  非常好!你已经了解了FortiGate支持的SSL VPN隧道模式。接下来你将了解如何配置SSL VPN。 

 完成本部分后,你应该能够实现上图显示的目标。

  通过展示在FortiGate上配置SSL VPN设置的能力,你将能够更好地设计SSL VPN的配置。

  第一步是为SSL VPN客户端创建帐户和用户组。

  你可以使用所有FortiGate身份验证方法,除了使用Fortinet单点登录(FSSO)协议的远程密码身份验证外,用于SSL VPN身份验证。这包括本地密码身份验证和远程密码身份验证(使用LDAP、RADIUS和TACACS+协议)。

  上图显示了管理员配置 SSL VPN 必须采取的步骤。你可以按照与上图显示的顺序不同的顺序配置一些步骤。

  下一步是配置SSL VPN门户。SSL VPN门户包含用于用户访问的工具和资源链接。

  在隧道模式下,当你启用分割隧道时,你需要选择基于策略目标启用基于可信目标启用设置,该设置通常指定FortiGate后面的网络,供SSL VPN用户访问。基于策略目标启用允许目的地与SSL VPN防火墙策略上配置的目的地匹配的客户端流量,而基于可信目标启用允许与显式可信目的地不匹配的客户端流量。

  隧道分离地址允许你定义通过隧道路由的目标网络(通常是公司网络)。如果你不选择隧道分离地址,则相应防火墙策略中的目标地址将定义目标网络。

  此外,对于隧道模式,你需要选择一个IP池,以便用户在连接时获取IP地址。如果你不创建自己的地址对象中有一个默认池可用。

  配置 SSL VPN 门户后,下一步是配置 SSL VPN 设置。

  让我们从连接设置部分开始。在这里,你需要将FortiGate接口映射到SSL VPN门户。SSL VPN门户的默认端口是443。这意味着用户需要使用端口443 HTTPS连接到映射到SSL VPN门户的FortiGate接口的IP地址。如果你启用重定向HTTP到SSL VPN,使用HTTP(TCP端口80)连接的用户将被重定向到HTTPS。

  端口443是管理HTTPS协议的标准默认端口。这很方便,因为用户不需要在浏览器中指定端口。例如,https://www.example.com/在任何浏览器中自动使用端口443。这被认为是FortiGate上的有效设置,因为你通常不会通过每个接口访问SSL VPN登录。同样,你通常不会在FortiGate的每个界面上启用管理访问权限。因此,即使端口可能重叠,但每个端口用于访问的接口可能不会重叠。但是,如果SSL VPN登录门户和HTTPS管理员访问都使用相同的端口,并且都在同一界面上启用,则只会出现SSL VPN登录门户。要访问同一界面上的两个门户,你需要更改其中一个服务的端口号。如果你更改管理员访问端口,这将影响所有接口上该服务的端口号。

  此外,不活跃的SSL VPN在闲置300秒(5分钟)后断开连接。你可以使用GUI上的空闲登出设置来更改此超时。

  最后,与其他HTTPS网站一样,当用户连接时,SSL VPN门户会出现数字证书。默认情况下,门户网站使用自签名证书,该证书会触发浏览器显示证书警告。为了避免警告,你应该使用由公开认证机构(CA)签署的数字证书。你还可以为接口生成证书。或者,你可以将FortiGate自签名数字证书作为受信任的机构加载到浏览器中。

   定义隧道模式客户端设置和将用户映射到相应门户的身份验证规则。

  当用户连接时,隧道被分配一个IP地址。你可以选择使用默认范围或创建自己的范围。IP范围决定了可以同时连接的用户数量。

  只有当DNS流量通过VPN隧道发送时,DNS服务器解析才有效。通常,只有当分割隧道模式被禁用并且所有流量从用户的计算机通过隧道发送时,才会发生这种情况。

  最后,你可以允许不同的用户组访问不同的门户。在上图显示的示例中,教师只能访问 Teacher_Portal。会计师可以连接到tunnel-access门户。

  第四步也是最后一个强制性步骤涉及创建用于登录的防火墙策略。

  FortiGate上的SSL VPN流量使用名为ssl.<vdom_name>的虚拟接口。每个虚拟域(VDOM)都包含基于其名称的不同虚拟接口。默认情况下,如果未启用VDOM,则设备使用一个名为root的VDOM运行。

  要激活并成功登录SSL VPN,必须有一个防火墙策略,从SSL VPN接口到你希望允许SSL VPN用户访问的接口,包括所有可以作为源登录的用户和组。如果没有这样的策略,就不会向用户提供登录门户。

  如果用户需要访问的其他接口背后有资源,那么你需要创建额外的策略,允许来自ssl.root的流量退出这些接口。

 来SSL VPN用户的任何流量都会从ssl.<vdom_name>接口流出。

  上图显示了防火墙策略的示例,该策略配置为允许访问用户在通过 SSL VPN 连接时需要访问的其他接口后面的资源。

  可选,如果禁用分割隧道,你需要从ssl.root到流出接口创建额外的防火墙策略,以允许客户端访问互联网。

  你还可以将安全配置文件应用于此防火墙策略,以限制用户访问互联网。

  你可以使用SSL-VPN隧道/接口类型将FortiGate配置为SSL VPN客户端。当建立SSL VPN客户端连接时,客户端会动态地将路由添加到SSL VPN服务器返回的子网中。你可以定义策略,允许客户端后面的用户通过SSL VPN隧道到SSL VPN服务器上的目的地。

   此设置在隧道模式下提供IP级连接,并允许你使用FortiGate设备配置为星型拓扑结构。这对于避免由中间设备引起的问题很有用,例如:

  ● ESP数据包被阻断

  ● UDP端口500或4500被阻断

  ●  片段被丢弃,如果对等不支持IKE碎片,导致使用大证书的IKE协商失败

  如果客户端指定的目的地是全部,则在SSL VPN客户端上有效动态创建默认路由,并以ECMP的形式将新的默认路由添加到现有默认路由中。你可以根据你的要求修改路线距离或优先级。为了防止在SSL VPN客户端上学习默认路由,请在SSL VPN服务器上定义一个特定的目的地。使用分割隧道,以便仅将服务器防火墙策略中定义的目标地址路由到服务器,而所有其他流量直接连接到互联网。

  此配置要求你安装正确的CA证书,因为FortiGate SSL VPN客户端/用户使用PSK和PKI客户端证书进行身份验证。你必须在FortiGate设备上安装正确的CA证书,以验证证书链到签署证书的根CA。

  当FortiGate配置为客户端时,隧道模式如何工作?

  1. FortiGate客户端使用SSL/TLS连接到FortiGate服务器。

  2. FortiGate客户端提供成功身份验证的凭据。它包括PSK(本地或远程用户帐户)和PKI(证书)帐户。

  3. FortiGate服务器建立隧道,并为客户端的虚拟网络适配器分配一个IP地址。这是连接期间客户端的源IP地址。

  4. 用户可以通过客户端FortiGate后面的加密隧道访问服务和网络资源。

  FortiGate SSL VPN客户端设备对来自远程计算机的所有流量进行加密,并通过SSL VPN隧道发送。FortiGate SSL VPN服务器接收加密流量,取消封装IP数据包,并将其转发到专用网络,就好像流量来自网络内部一样。

  上图展示了将FortiGate配置为SSL VPN客户端必须采取的步骤。

  如果在FortiGate SSL VPN服务器证书上配置了CN,PKI用户必须拥有相同的CN。你还必须选择允许FortiGate完成证书链并验证服务器证书的CA证书。接下来,使用ssl.<vdom>接口创建SSL VPN隧道接口。

  SSL-VPN客户端设置包括名称、虚拟SSL VPN接口、FortiGate SSL VPN服务器IP地址和SSL端口号,以及本地用户名、密码和PKI(对等)用户。上图显示的客户端证书是用于识别此客户端的本地证书,并假定已安装在FortiGate上。SSL VPN服务器需要它进行身份验证。

  最后,你必须创建一个防火墙策略,以允许从内部接口到SSL VPN接口的流量。

  要将FortiGate配置为SSL VPN服务器,你必须执行上图显示的步骤。

  这包括本地或远程用户帐户或群组以及PKI用户。只有在使用CLI创建PKI用户后,PKI菜单才能在GUI上可用。你只能在CLI上配置CN。如果你没有指定CN,那么由CA签署的任何证书都被视为有效且匹配。客户端身份验证需要客户端证书以及用户名和密码。

  其他步骤与远程用户的SSL VPN设置相同。你可以按照与上图显示的顺序不同的顺序配置一些步骤。

   非常好!你已经了解了如何为SSL VPN连接配置FortiGate。接下来你将了解如何监视SSL VPN会话。 

  完成本部分后,你应该能够实现上图显示的目标。

  通过展示SSL VPN监控和故障排除的能力,你还将能够避免、识别和解决常见问题和配置错误。

  你可以在SSL VPN小部件上监控连接的SSL VPN用户。这显示了当前连接到FortiGate的所有SSL VPN用户的姓名、他们的IP地址(隧道内和隧道外)以及连接时间。

  当用户使用隧道模式进行连接时,活动连接列会显示FortiGate分配给客户端计算机上的fortissl虚拟适配器的IP地址。否则,用户只能连接到门户网站页面。

   你还可以查看SSL VPN日志。

  在日志和报告>系统事件

  ● 选择VPN事件小部件以显示新的连接请求,以及SSL VPN隧道是否已建立或关闭。

  ● 选择用户事件小部件以查看与SSL VPN用户相关的身份验证操作。

  当SSL VPN断开连接时,无论是由用户还是通过SSL VPN闲置设置,FortiGate会话表中的所有相关会话都会被删除。这可以防止在初始用户终止隧道后重复使用经过身份验证的SSL VPN会话(尚未过期)。

  SSL VPN用户闲置设置与防火墙身份验证超时设置无关。这是一个单独的闲置选项,专门针对SSL VPN用户。当FortiGate在配置的超时期内没有看到用户的任何数据包或活动时,远程用户被视为闲置。

  当通过高延迟连接连接到SSL VPN时,FortiGate可以在客户端完成协商过程(例如DNS查找和输入令牌的时间)之前使客户端超时。在config vpn ssl settings下添加了两个新的CLI命令来解决这个问题。第一个命令允许你设置登录超时,取代之前的硬超时值。第二个命令允许你设置SSL VPN连接的最大DTLS hello超时时间。

  此外,计时器可以帮助你缓解Slowloris和R-U-Dead-Yet等漏洞,这些漏洞允许远程攻击者通过部分HTTP请求导致拒绝服务。

  在典型的企业网络中,可以有多个WAN链路。在FortiGate中,默认情况下,任何禁用源NAT的会话在路由表更改时都会通过路由查找。在更改路由表并重新评估后,会话被标记为脏。由于多WAN设置中的这些路由更改,请求有可能来自一个接口,而响应则通过其他接口导致断开连接。

  set preserve-session-route命令可以使会话保持在同一个接口上,即使会话符合路由变化的条件。默认情况下,没有启用接口的路由保持功能。

  上图的示例显示,port1保留用于SSL VPN连接,port2用于其他服务。即使port2因路由更改而成为主要连接,FortiGate也会将现有的SSL VPN会话保留在port1接口上。

 以下是使用SSL VPN时需要记住的一些最佳做法。这些最佳做法在许多SSL VPN故障诊断情况下也很有用:

  ● 使用与你的FortiOS固件兼容的FortiClient版本

  ● 为SSL VPN连接启用分割隧道或创建流出防火墙策略,以便允许外部资源访问

  ● 连接到正确的端口号

  ● 将SSL VPN组、SSL VPN用户和目标地址添加到防火墙策略中

  ● 为高延迟网络连接设置DTLS超时

  ● 通过超时重新整理非活动会话

  diagnose vpn ssl下有几个有用的故障排除命令。它们包括:

  ● List:列出已登录的用户

  ● info:显示SSL VPN的基本信息

  ● statistics:显示FortiGate上内存使用的统计信息

  ● tunnel-test:启用或禁用SSL VPN旧隧道模式IP分配方式

  命令diagnose debug application sslvpn显示SSL VPN连接的调试消息的完整列表。

  请记住,要使用上面列出的命令,你必须首先运行diagnose debug enable命令。此外,在FortiClient上检查SSL VPN调试日志。

  答案:A

  答案:A

  恭喜你!你已经完成了这节课。

  现在,你将回顾本课所涉及的目标。

  上图展示了你在本课中所涉及的目标。

  通过掌握通过掌握本课涵盖的目标,你学习了如何配置和使用SSL VPN,让远程用户访问你的专用网络。


更多推荐