在这节课中,你将学习如何配置和使用SSL-VPN。SSL-VPN是一种简单的方法,可以让远程用户访问你的私有网络。
在本次课程中,你将探讨以下主题:
在完成这节课程之后,你应该能够:
通过展示理解VPN概念的能力,你将能够更有效地理解FortiGate如何管理SSL-VPN方法。
虚拟专用网(VPN)创建了一个隧道,它可以让用户或远程LAN安全地访问你的私有网络,就好像它们连接到你的局域网一样。
当局域网被一个不受信任的公共网络分隔开时,通常会使用VPN,比如Internet。除了为远行用户提供安全访问私人网络的同时,VPN还可以连接互联网上的分支办公室网络,甚至可以连接到世界的另一端。
VPN隧道内的用户数据是为了隐私而加密的。它不能被读取,即使它被未经授权的用户拦截。VPN也使用安全方法来确保只有经过授权的用户才能建立VPN并访问私有网络的资源。他们通常还提供防篡改。
大多数VPN都是SSL或IPsec VPN。FortiOS全部支持又支持不常见的、较弱的VPN,如PPTP。在这节课中,我们将重点讨论SSL-VPN。
SSL-VPN与IPsec VPN有何不同?
协议是不同的。SSL和TLS通常用于在Internet(HTTP)上封装和保护电子商务和在线银行业务。SSL-VPN使用类似的技术,但通常使用非HTTP协议封装。SSL在网络栈上比IP更高,因此,对于SSL-VPN头来说,它通常需要更多的比特——更多的带宽。相比之下,IPsec使用了一些特殊的协议。主要协议是ESP,它封装和加密了UDP、RDP、HTTP或其他在IPsec隧道内的协议。
另外,IPsec VPN是一个标准。它可以与多个供应商进行互操作,并支持那些设备和网关的对等点——而不仅 仅是带有FortiGate的用户客户端,比如SSL-VPN。
客户端软件也是不同的。在SSL-VPN中,您的web浏览器可能是你所需要的唯一客户机软件。你可以进入FortiGate的SSL-VPN门户(一个HTTPS web页面),然后登录。或者,你可以安装插件或FortiClient。这增加了可以通过VPN隧道发送的协议数量。
相比之下,为了使用IPsec VPN,你通常需要安装特殊的客户端软件,或者有一个本地网关,比如桌面型FortiGate,以便连接到远程网关。你可能还需要在VPN对等点之间配置防火墙,以允许IPsec协议。然而,IPsec是大多数供应商支持的标准协议,因此VPN会话不仅可以在两个FortiGate设备之间建立,也可以在不同 厂商的设备之间,以及网关和客户端之间建立。它具有高度可扩展性和可配置性。相比之下,SSL-VPN只能在 计算机和特定于供应商的网关之间建立,比如FortiGate。
登录后,SSL-VPN将您的计算机连接到你的私有网络。不需要用户配置的设置,并且防火墙通常配置为允许传出HTTP,因此技术支持调用的可能性更小。简单性使得SSL-VPN对于非技术用户或从公共计算机中连接的用户来说是理想的,例如在公共图书馆和网络咖啡馆中找到的用户。
一般来说,当隧道必须连续不断地向上并与许多类型的设备进行互操作时,IPsec VPN就更受欢迎,而当人们旅行并需要连接到办公室时,SSL-VPN就更受欢迎。
小测验。
现在你经了解了关于SSL-VPN的基本概念,以及SSL-VPN与IPsec的不同之处。
接下来,你将了解到由FortiGate支持的SSL-VPN部署模式。
在完成本节之后,你应该能够描述SSL-VPN模式之间的区别。通过展示你对FortiGate允许SSL-VPN连接的不同方式的理解能力,你将能够更好地设计你的SSL-VPN的配置。
你可以使用两种模式来访问SSL-VPN。两者都可以构建SSL-VPN连接,但它们不支持相同的特性。
你应该选择哪一个?
这取决于您需要通过VPN发送哪些应用程序、你的用户的技术知识,以及你是否在他们的计算机上有管理权限。
隧道模式支持大多数协议,但需要安装VPN客户端,或者更具体地说,是一个虚拟网络适配器。要使用虚拟适 配器来隧道通信,你必须使用FortiClient或它的独立的FortiSSL-VPN客户端组件。
Web模式只需要一个Web浏览器,但是支持有限数量的协议。
Web access是最简单的SSL-VPN模式。
就像你在任何其他HTTPS网站上一样,你只需登录到位于FortiGate的SSL-VPN门户web页面即可。它就像一个服务器端反向代理,或者一个简单的安全的HTTP/HTTPS网关,它将您连接到私有网络上的应用程序。
SSL-VPN Portal 上的Bookmarks部分包含指向用户可访问的全部或部分可用资源的链接。Quick Connection小部件允许用户输入他们想要到达的服务器的URL或IP地址。一个web SSL-VPN用户使用这两个 小部件来访问内部网络。web模式的主要优点是它通常不需要你安装额外的软件。
Web模式有两个主要缺点:
web模式是如何工作的?
不同的用户可以有不同的门户,具有不同的资源和访问权限。还要注意,远程资源所看到的源IP是FortiGate的内部IP地址,而不是用户的IP地址。
隧道模式是FortiGate提供了在SSL-VPN中访问资源的第二个选项。
隧道模式需要Fortinet的独立SSL-VPN客户端,FortiClient,连接到FortiGate。FortiClient将一个虚拟网络适配器添加到用户的PC上。这个虚拟适配器每次都动态地从FortiGate中接收一个IP地址,而FortiGate则建立一个新的VPN连接。在隧道内,所有的流量都是SSL/TLS封装。
隧道模式优于web模式的主要优点是,在VPN建立之后,在客户机上运行的任何IP网络应用程序都可以通过隧道发送流量。主要的缺点是隧道模式需要安装VPN软件客户端,这需要管理权限。
隧道模式是如何工作的?
FortiClient将所有来自远程计算机的流量加密,并将其发送到SSL-VPN隧道。FortiGate接收加密的流量,将IP数据包的数据包封装起来,并将其转发到私有网络,就好像流量来自于网络内部一样。
隧道模式也支持隧道分割。
当分割隧道被禁用时,由客户端计算机生成的所有IP流量——包括Internet流量——都被路由到SSL-VPN隧道 到FortiGate。这就设置了作为主机默认网关的FortiGate。您可以使用这种方法来将安全特性应用到远程客户端 的流量,或者监视或限制Internet接入。这增加了更多的延迟,增加了带宽的使用。
当分离隧道启用时,只有在远端FortiGate后面的私有网络的流量才会通过隧道进行路由。所有其他的流量都是通过正常的未加密路由发送的。
拆分隧道有助于节省带宽并缓解瓶颈。
小测验。
现在你已经了解了由FortiGate支持的SSL-VPN操作模式。接下来,你将了解如何配置SSL-VPN。
在完成本节之后,你应该能够:
通过展示在FortiGate上配置SSL-VPN设置的能力,你将能够更好地设计你的SSL-VPN隧道的架构。
要配置SSL-VPN,你必须采取以下步骤:
有些步骤可以按照不同的顺序配置,而不是在这张幻灯片上显示的。
第一步是为SSL-VPN客户端创建账户和用户组。
除了使用Fortinet单点登录(FSSO)协议之外的远程密码认证之外,所有的FortiGate认证方法都可以用于SSL-VPN认证。这包括本地密码认证和远程口令认证(使用LDAP、RADIUS和TACACS+协议)。
你还可以配置带有FortiToken的双因子认证,以获得更好的安全性。
第二步是配置SSL-VPN门户。SSL-VPN门户包含供用户访问的工具和资源链接。
在隧道模式下,当你启用分割隧道时,你需要选择Routing Address 设置,它通常指定了FortiGate的后台网络,以便让SSL-VPN用户访问。
另外,对于隧道模式,你需要为用户选择一个IP池,以便在连接时获得IP地址。如果你不创建自己的地址对象,那么在address对象中有一个默认池。
如果启用了web模式,你可以定制SSL-VPN门户和预配置书签,以便所有登录到SSL-VPN门户的用户都能看到。 另外,你可以单独配置并将每个门户链接到特定的用户或用户组,这样他们就仅可以访问所需的资源。
这张幻灯片展示了用户登录后的SSL-VPN web模式门户页面的示例。它允许你从Download FortiClient下拉列表中下载一个独立的客户端。这个独立的客户端用于在隧道模式中连接到SSL-VPN。
还要注意,SSL-VPN书签提供了网络资源的链接。web模式的设置允许用户: 在Bookmarks部分使用管理员定义的书签。用户不能修改管理员添加的书签。 在Your Bookmarks 中使用小部件来添加个人书签。 直接使用Quick Connection小部件访问网络资源。
让我们通过Bookmarks或Quick Connection 小部件探索SSL-VPN门户(web模式)上的协议和服务器应用程序。
根据web门户的配置,可以使用以下的一个或多个:
在隧道模式不实用的情况下,端口转发是最合适的解决方案,而其他web模式的书签不够灵活。
隧道模式提供了一个第三层连接,用户可以在上面运行任何应用程序。然而,它并不总是可行的选项,因为它需要安装虚拟网络适配器(FortiClient),而且用户并不总是具有实现这一点所需的管理级别访问权限。
Web模式不能为应用程序支持提供足够的灵活性,因为它连接到有限数量的协议。
SSL-VPN用户可以登录到SSL-VPN门户,并选择一个端口转发书签,该书签定义了特定的服务器应用程序地 址和端口,以及在用户的计算机上侦听哪个端口。
因此,在用户的一边,而不是创建一个与本地IP(隧道模式)分离的IP隧道,端口转发需要安装一个端口转发 模块,这是一个Java applet,它监听用户计算机上的本地端口。
当用户的应用程序通过连接到loopback地址(127.0.0.1)指向Java applet时,applet代理就会在用户的计算机 上接收应用程序数据,对其进行加密,并将其发送到FortiGate。然后将流量转发到私有网络中的应用程序服务器。
注意,端口转发只支持使用静态TCP端口的应用程序。它不支持动态端口或UDP的流量。
只有两种类型的书签可以用于端口转发:citrix和portforward。
在配置SSL-VPN门户之后,下一步是配置SSL-VPN设置。
让我们从Connection Settings 部分开始。在这里,你需要将一个FortiGate的接口映射到SSL-VPN门户。 SSL-VPN门户的缺省端口是443。这意味着用户需要使用端口443-HTTPS连接到SSL-VPN门户的FortiGate接 口的IP地址。如果你允许Redirect HTTP to 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上的Idle Logout设 置来更改这个超时。
最后,与其他HTTPS网站一样,当用户连接时,SSL-VPN门户会显示数字证书。默认情况下,门户使用自签 名证书,该证书触发浏览器显示证书警告。为了避免警告,您应该使用由一个公开的证书颁发机构(CA)签署 的数字证书。或者,您也可以将FortiGate自签名的数字证书加载到浏览器中作为受信任的权限。
定义隧道模式客户端设置和将用户映射到适当门户的认证规则。
当用户连接时,隧道被分配一个IP地址。您可以选择使用默认范围或创建您自己的范围。IP范围决定了多少用 户可以同时连接。
DNS服务器解析只有在通过VPN隧道发送DNS流量时才有效。一般情况下,只有当隧道分割模式被禁用,所有 的流量都从用户的计算机通过隧道传输时,才会出现这种情况。
此外,您还可以允许有条件的端点在隧道模式的SSL-VPN上自注册。在用户进行身份验证之后,FortiGate发送 给FortiClient IP地址和端口以供注册使用。如果用户接受了注册邀请,注册就会继续,而FortiClient配置文件会 被下载到客户端。通过浏览器连接到SSL-VPN的用户将被重定向到一个捕获的门户,以下载和安装FortiClient 软件。
最后,您可以允许不同的用户组访问不同的门户。在这张幻灯片上的例子中,教师只能访问web门户。会计人员可以使用FortiClient在隧道模式中进行连接。
第四个,也是最后一个强制步骤,包括创建用于登录的防火墙策略。
在FortiGate上的SSL-VPN通信使用一个名为ssl.
要激活并成功登录到SSL-VPN,必须有一个从SSL-VPN接口到您想要访问SSL-VPN用户的接口的防火墙策略, 包括所有可以作为源登录的用户和组。如果没有这样的策略,就不会向用户提供登录门户。
如果在其他用户需要访问的接口背后有资源,那么你需要创建额外的策略,允许来自ssl.root的流量退出这些接 口。
任何来自SSL-VPN用户的流量,无论是在web门户还是隧道模式下,都从ssl.
这张幻灯片展示了一个防火墙策略的例子,它被配置为允许访问其他接口背后的资源,用户在通过SSL-VPN连接时需要访问这些接口。
如果分割隧道是禁用的,你需要从SSL创建一个额外的防火墙策略。从ssl.root到出口接口,允许客户端访问 Internet。
你还可以将安全配置文件应用到这个防火墙策略中,以限制用户对Internet的访问。
小测验。
现在你已经了解了如何配置SSL-VPN连接的FortiGate。
接下来,你将学习如何为不同的用户组创建多个SSL-VPN登录站点,并管理用户添加的书签。
在完成本节之后,你应该能够:
通过展示理解这些主题的能力,你将能够为不同的用户组创建多个SSL-VPN登录站点,并管理特定于用户的书签。
默认情况下,所有SSL-VPN用户都会看到相同的书签,由管理员配置,以及相同的主题。
默认情况下,定制SSL-VPN域和SSL-VPN书签的功能在FortiGate GUI上是隐藏的。
为了给你的SSL-VPN部署增加灵活性,你可以考虑配置SSL-VPN域。
域是自定义登录页面。它们通常用于用户组,比如你的会计团队和您的销售团队,但也适用于个人用户。有了域,用户和用户组可以根据他们输入的URL访问不同的门户。
通过不同的门户,你可以分别定制每个登录页面,并单独限制并发用户登录。
在FortiGate上的一个域例子:
https://192.168.1.1
https://192.168.1.1/Accounting
https://192.168.1.1/TechnicalSupport
https://192.168.1.1/Sales
在建立了域之后,你必须将它们应用到SSL-VPN Settings 窗口中。
配置认证规则,以便将用户映射到适当的域。这些设置允许不同的用户组通过不同的域访问已定义的门户。
在这张幻灯片上的例子中,教师只能访问他们自己的域。如果他们需要访问根域来查看全局门户,您需要为他 们添加一个额外的认证规则。
当用户登录到他们的个人门户时,有一个选项允许他们创建自己的书签。管理员必须在SSL-VPN Portal 页面上启用User Bookmarks ,以允许这样做。
管理员可以在SSL-VPN Personal Bookmarks 页面上查看和删除用户添加的书签。这允许管理员监视和删除与公司策略不匹配的不需要的书签。
在FortiGate CLI上,您可以为每个用户创建书签。即使在门户中禁用了用户书签选项,这些书签也会出现,因为该选项只会影响用户创建和修改他们自己的书签的能力——而不是管理员定义的书签。
根据您想要创建的书签类型,您可能需要配置应用程序需要的附加信息,比如用于网站的URL和FTP站点的文件夹。
小测验。
现在你已经了解了如何配置SSL-VPN域并查看用户添加的书签。接下来,你将学习如何加强SSL-VPN访问。
在完成本节之后,您应该能够:
通过演示如何加强SSL-VPN访问的安全性,你将能够限制用户,确保你的内部网络是安全的,并限制攻击和病毒从外部来源进入网络的可能性。
当用户通过SSL-VPN连接到你的网络时,你的网络和用户PC之间建立了一个门户。VPN会话以两种方式保护: 连接被加密,用户必须使用他们的凭证登录,比如用户名和密码。但是,您可以配置额外的安全检查以增加连 接的安全性。
提高安全性的一种方法是通过客户端完整性检查。客户端完整性通过检查是否安装和运行特定的安全软件,如 杀毒软件或防火墙软件,确保连接计算机的安全。这个特性只支持Microsoft Windows客户端,因为它访问 Windows安全中心来执行它的检查。或者,您可以定制这个特性,以使用其全局唯一标识符(GUID)来检查 其他应用程序的状态。GUID是在Windows配置注册表中唯一标识每个Windows应用程序的ID。客户端完整性 还可以检查反病毒和防火墙应用程序的当前软件和签名版本。
客户端完整性检查适用于web模式和隧道模式。
客户端完整性检查是在VPN仍在建立的时候执行的,只是在用户身份验证完成之后。如果所需的软件不在客户 机的PC上运行,那么VPN连接尝试就会被拒绝,即使是使用有效的用户凭证。客户端完整性是每个web门户启 用的,并且可以使用CLI命令进行配置。
在CLI上可以找到被识别软件的列表,以及相关的注册表键值。软件分为三类:反病毒(av)、防火墙(fw) 和自定义。自定义用于组织可能需要的定制或专有软件。管理员只能在CLI上配置这些设置。
启用客户机完整性检查的缺点是,由于以下因素,它可能导致大量的管理开销:
因此,管理员必须对Windows操作系统和随后的注册表行为有深入的了解,以便适当地扩展和维护该特性。
你还可以通过安全证书(x.509),应用双重身份验证,从而加强您的SSL-VPN连接。
你可以通过限制主机连接地址来获得SSL-VPN访问。在考虑适当的安全配置时,设置IP限制规则可能非常有用。 并不是所有的IP都需要访问登录页面。这种方法允许你设置规则来限制对特定IP的访问。一个简单的规则是允 许或不允许基于地理IP地址的流量。
默认的配置被设置为Limit access to specific hosts ,但是Hosts是空的。您必须在主机字段中指定IP地址或 网络。这将只允许那些用户访问登录页面。Allow access from any host 允许所有IP连接。
在CLI上,你可以配置VPN SSL设置以禁止特定IP。
当远程用户试图登录到SSL-VPN门户时,你还可以配置FortiGate来检查客户机的MAC地址。这确保只有特定的计算机或设备连接到SSL-VPN隧道。
这个设置提供了更好的安全性,因为密码可能会被破坏。MAC地址可以绑定到特定的门户,可以是整个MAC 地址或地址的子集。
小测验。
你现在了解了如何加强SSL-VPN接入的安全性。接下来,你将学习如何监控SSL-VPN会话、检查日志、配置SSL-VPN计时器以及解决常见问题。
在完成本节之后,您应该能够:
通过展示在SSL-VPN监控和故障排查方面的能力,你将能够避免、识别和解决常见问题和错误配置。
你可以监视在SSL-VPN Monitor页面上连接的SSL-VPN用户。这显示了当前连接到FortiGate的所有SSL-VPN 用户的名字,他们的IP地址(在隧道内和外部),以及连接时间。
当用户通过隧道模型连接时,Active Connections 显示由FortiGate分配到客户端计算机上的fortissl虚拟 适配器的IP地址。否则,用户只连接到web门户页面。
你还可以查看SSL-VPN日志:
当一个SSL-VPN断开连接时,无论是通过用户还是通过SSL-VPN空闲设置,都将删除FortiGate会话表中的所 有相关会话。这可以防止在初始用户终止隧道后重新使用经过身份验证的SSL-VPN会话(尚未过期)。
SSL-VPN用户空闲设置与防火墙认证超时设置无关。它是专门针对SSL-VPN用户的一个单独的空闲选项。当 FortiGate在配置的超时期间没有看到任何来自用户的数据包或活动时,远程用户就被认为是空闲的。
在长时间的网络延迟期间,在客户端完成谈判过程之前,FortiGate可以超时,比如DNS查找和输入令牌的时间。 在配置VPN SSL设置下增加了两个新的CLI命令来解决这个问题。第一个命令允许您设置登录超时,替换以前 的硬超时值。第二个命令允许您为SSL-VPN连接设置最大DTLS hello超时。
此外,计时器还可以帮助您减轻诸如慢速和R-U-Dead-Yet之类的漏洞,这使得远程攻击者可以通过部分HTTP 请求导致拒绝服务。
下面是在使用SSL-VPN时要记住的一些最佳实践。这些最佳实践在许多SSL-VPN故障排查情况下也会有所帮助:
在诊断VPN SSL中有几个有用的故障诊断命令。它们包括:
命令诊断调试应用程序ssl显示了SSL-VPN连接的整个调试消息列表。
请记住,要使用上面列出的命令,你必须首先运行诊断调试enable命令。
具有CP8或CP9内容处理器的FortiGate设备,可以加速许多常见的资源密集型、安全相关的进程,可以将SSL- VPN传输转移到高性能VPN批量数据引擎上。
这种专门的IPsec和SSL/TLS协议处理器处理大多数最新的加密算法。
默认情况下,卸载过程是建立的。如果出于测试目的,您想禁用它,您可以只在防火墙策略配置级别使用CLI。
你还可以使用CLI查看SSL-VPN加速的状态。
小测验。
你已经完成了这一课。现在,你将回顾你在课程中所涵盖的目标。
这一课涵盖了以下目标: