教程篇(7.4) 10. SSL VPN & FortiGate管理员 ❀ Fortinet网络安全专家 NSE4

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

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

  通过展示理解FortiGate允许SSL VPN连接的不同方式的能力,你将能够更好地设计SSL VPN的配置和架构。你还将能够避免、识别和解决常见问题和错误配置。

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

  你应该选择哪一个?

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

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

  Web模式只需要Web浏览器,但支持数量有限的协议。在本课中,你将只学习SSL VPN隧道模式。

 隧道模式是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数据包,并将其转发到专用网络,就像流量来自网络内部一样。

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

 此设置在隧道模式下提供IP级连接,并允许你使用FortiGate设备配置星型拓扑,作为SSL VPN中心和分支。这有助于避免由中间设备引起的问题,例如:

  ● ESP数据包被阻止

  ● UDP端口500或4500被阻止

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  启用分割隧道时,只有目的地为远程FortiGate后面的专用网络的流量才会通过隧道路由。所有其他流量都通过通常的未加密路由发送。FortiGate没有进行流量检查。

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

 第一步是为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防火墙策略上配置的目的地匹配,其中基于可信目标启用允许与显式可信目的地不匹配的客户端流量。

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

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

  如果你启用Web模式,你可以自定义SSL VPN门户,并预配置书签,以显示所有登录SSL VPN门户的用户。此外,你可以单独配置每个门户并将其链接到特定的用户或用户组,以便他们只能访问所需的资源。

  配置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到出口接口创建额外的防火墙策略,以允许客户端访问互联网。

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

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

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

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

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

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

  SSL-VPN客户端设置包括名称、虚拟SSL VPN接口、SSL VPN服务器FortiGate IP地址和SSL端口号,以及本地用户名、密码和PKI(Peer)用户。上图显示的客户端证书是用于识别此客户端的本地证书,并假定已安装在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设置下添加了两个新的CLI命令来解决这个问题。第一个命令允许您设置登录超时,替换之前的硬超时值。第二个命令允许你为SSL VPN连接设置最大DTLS hello超时。 

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

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

  set preserve-session-route命令将会话保持在同一接口上,即使会话符合路由更改的条件。默认情况下,在接口上禁用路由保留。

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

  以下是使用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分配方法

  ● web-mode-test:启用或禁用代理URL中的随机会话ID进行测试

  命令diagnose debug application sslvpn显示SSL的整个调试消息列表

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

  答案:A

  答案:A

  上图显示了你在本课中涵盖的目标。

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值