在本课中,你将学习如何配置和使用SSL VPN。SSL VPN是让远程用户访问你的私有网络的一种简单方法。
这节课,你将学习上图显示的主题。
通过展示理解FortiGate允许SSL VPN连接的不同方式的能力,你将能够更好地设计SSL VPN的配置。
可以通过两种方式访问SSL VPN。两者都可以构建SSL VPN连接,但它们不支持相同的功能。
你应该选择哪一个呢?
这取决于你需要通过VPN发送哪些应用程序、用户的技术知识以及你是否对他们的计算机具有管理权限。
隧道模式支持大多数协议,但需要安装VPN客户端,或者更具体地说,需要安装虚拟网络适配器。使用虚拟适配器隧道流量,必须使用FortiClient远程访问功能或FortiClient VPN-only客户端。
Web模式只需要一个Web浏览器,但支持协议的数量有限。
Web模式是最简单的SSL VPN模式。
与使用任何其他HTTPS网站一样,你只需在FortiGate上登录SSL VPN门户网站页面。它的作用类似于服务器端反向代理或简单的安全HTTP/HTTPS网关,它将你与专用网络上的应用程序连接起来。
SSL VPN门户页面上的书签部分包含指向所有或部分可供用户访问的资源的链接。快速连接小部件允许用户输入他们想要访问的服务器的URL或IP地址。web SSL VPN用户使用这两个小部件访问内部网络。web模式的主要优点是它通常不需要你安装额外的软件。
Web模式有两个主要缺点:
● 与内部网络的所有交互都必须专门使用浏览器(通过web门户)完成。在用户PC上运行的外部网络应用程序不能通过VPN发送数据。
● 这是一种安全的HTTP/HTTPS网关机制,它不能访问所有协议,但只能访问少数流行的协议,如HTTP、FTP和Windows共享。
web模式是如何工作的?
1. 远程用户使用HTTPS在Web浏览器中的SSL安全性和FortiGate SSL VPN门户之间建立安全连接。
2. 连接后,用户提供凭据以通过身份验证检查。
3. 然后,FortiGate将显示SSL VPN门户,其中包含用户可以访问的业务和网络资源。
不同的用户可以拥有不同的门户,拥有不同的资源和访问权限。还要注意,远程资源看到的源IP是FortiGate的内部IP地址,而不是用户的IP地址。
隧道模式是FortiGate用于访问SSL VPN中的资源的第二个选项。
隧道模式需要FortiClient连接到FortiGate。FortiClient将标识为fortissl的虚拟网络适配器添加到用户的 PC。每次FortiGate建立新的VPN连接时,此虚拟适配器都会从FortiGate动态接收IP地址。在隧道内,所有流量都是SSL/TLS封装的。
隧道模式相对于web模式的主要优点是:VPN建立后,客户端上运行的任何IP网络应用程序都可以通过隧道发送流量。其主要缺点是:隧道模式需要安装VPN软件客户端,该客户端需要管理权限。
隧道模式是如何工作的?
1. 用户通过FortiClient连接到FortiGate。
2. 用户提供凭据以成功进行身份验证。
3. FortiGate建立隧道,并为客户端的虚拟网络适配器(fortissl)分配IP地址。这是连接期间客户端的源IP地址。
4. 然后,用户可以通过加密隧道访问业务和网络资源。
FortiClient加密来自远程计算机的所有流量,并通过SSL VPN隧道发送。FortiGate接收加密后的流量,对IP数据包进行解封装,并将其转发到专用网络,就像流量来自网络内部一样。
FortiGate可以使用SSL-VPN隧道接口类型配置为SSL VPN客户端。建立SSL VPN客户端连接时,客户端会动态地向SSL VPN服务器返回的子网添加路由。可以定义策略,允许客户端后面的用户通过SSL VPN隧道到SSL VPN服务器上的目的地。
此设置在隧道模式下提供IP级连接,并允许将星状拓扑配置为FortiGates作为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服务器学习到的路由设置较短的距离。如果距离已经为0,则在默认路由上增加优先级。
当启用分割隧道时,只有指向远程FortiGate后面的专用网络的流量才会通过隧道路由。所有其他流量都通过通常的未加密路由发送。FortiGate没有流量检查。
分割隧道可以节省带宽,缓解瓶颈。
答案:B
答案:A
答案:A
干得漂亮!你已经了解了FortiGate支持的SSL VPN操作模式。现在,你将了解如何配置SSL VPN。
通过展示在FortiGate上配置SSL VPN设置的能力,你将能够更好地设计SSL VPN隧道的体系结构。
在配置SSL VPN之前,需要完成以下步骤:
1. 配置用户帐号和用户组。
2. 配置SSL VPN门户。
3. 配置SSL VPN设置。
4. 创建防火墙策略,接收和解密报文。此策略也用于提供对内部网络的访问。
5. 也可以配置防火墙策略,允许SSL VPN客户端访问外网,并应用安全配置文件。用户流量将通过FortiGate进入互联网,在那里你可以监控或限制客户端对互联网的访问。
首先创建SSL VPN客户端的帐号和用户组。
除了使用Fortinet单点登录(FSSO)协议的远程密码身份验证外,所有FortiGate身份验证方法都可用于SSL VPN身份验证。这包括本地密码身份验证和远程密码身份验证(使用LDAP、RADIUS和TACACS+协议)。
有些步骤的配置顺序可以与上图显示的顺序不同。
下一步是配置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分钟)后断开连接。你可以使用GUl上的空闲登出设置更改此超时。
最后,与其他HTTPS网站一样,SSL VPN门户在用户连接时会显示数字证书。默认情况下,门户使用自签名证书,这会触发浏览器显示证书警告。为了避免警告,你应该使用由公开的证书颁发机构(CA)签署的数字证书。你还可以为接口生成证书。或者,你可以将FortiGate自签名数字证书作为受信任的权威机构加载到浏览器中。
定义隧道模式客户端设置和将用户映射到适当门户的身份验证规则。
当用户连接时,隧道被分配一个IP地址。你可以选择使用默认范围或创建自己的范围。IP范围决定了有多少用户可以同时连接。有两种IP分配方法,仅在CLI中可用,如上图所示:
● 第一个可用(默认设置)
● 轮循
请注意,当使用循环时,忽略门户网站中定义的地址池,并且必须在ssl vpn设置下设置tunnel-ip-pools或tunnel-ipv6-pools池。只允许一组IP池地址。
只有当DNS流量通过VPN隧道发送时,DNS服务器解析才有效。通常,只有当分割隧道模式被禁用,并且所有流量都从用户的计算机穿过隧道时,才会出现这种情况。
最后,你可以允许不同的用户组访问不同的门户。在上图显示的示例中,教师只能访问门户网站。会计师可以使用FortiClient在隧道模式下连接。
第四步,也是最后一步,必须创建用于登录的防火墙策略。
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创建一个额外的防火墙策略到出接口,允许客户端访问互联网。
还可以将安全配置文件应用于此防火墙策略,以限制用户对internet的访问。
在配置SSL VPN之前,需要完成以下步骤:
SSL VPN服务器FortiGate:
1. 为远程SSL VPN用户设置用户帐号和组。
● 创建两个帐户:本地/远程和PKI。PKI菜单仅在使用CLI创建PKI用户后在GUl中可用,并且只能在CLI中配置CN。如果没有指定CN,那么由CA签名的任何证书都将有效并匹配。
● 要求客户端使用他们的证书以及用户名和密码进行身份验证。
2. 配置SSL VPN门户。
3. 配置SSL VPN设置。
● 身份验证规则包括使用CLI的两个帐户。
4. 创建进出SSL VPN接口的防火墙策略。
5. 创建防火墙策略,允许SSL VPN流量到internet(可选)。
在配置SSL VPN之前,需要完成以下步骤:
SSL VPN客户端FortiGate:
1. 创建PKI用户:
● 如果FortiGate服务器上的PKI用户已经配置了CN,请通过CLI配置相同的CN。
● 选择允许FortiGate完成证书链并验证服务器证书的CA证书。
2. 使用ssl.<vdom>接口创建SSL VPN隧道接口。
3. 在VPN> SSL-VPN客户端中创建并配置SSL VPN客户端,包括:
● 客户端名称
● 虚拟SSL VPN接口
● SSL VPN服务器FortiGateIP地址和SSL端口号
● 本地用户名和密码以及PKI(同行)用户。客户端证书是用于识别此客户端的本地证书,并假定已安装在FortiGate上。SSL VPN服务器需要它进行身份验证。
● 当分割隧道被禁用时,会添加新的默认路由,优先级和距离起着重要作用。
4. 创建防火墙策略,允许内部接口流量通过SSL VPN接口。
当用户通过SSL-VPN连接到你的网络时,会在你的网络和用户的PC之间建立一个门户。VPN会话以两种方式进行原生保护:连接是加密的,用户必须使用他们的凭据登录,例如用户名和密码。但是,你可以配置额外的检查来提高连接的安全性。
提高安全性的一种方法是使用客户端完整性检查。客户端完整性通过检查特定安全软件(如反病毒或防火墙软件)是否已安装和运行,确保连接计算机的安全。此功能仅支持Microsoft Windows客户端,因为它访问Windows安全中心以执行其检查。或者,你可以自定义此功能,以使用其GUID检查其他应用程序的状态。GUID是Windows配置注册表中的唯一ID,用于标识每个Windows应用程序。客户端完整性还可以检查防病毒和防火墙应用程序的当前软件和签名版本。
客户端完整性检查仅适用于隧道模式。
在用户身份验证完成后,在VPN仍在建立时,FortiGate执行客户端完整性检查。如果所需的软件没有在用户的PC上运行,即使有有效的用户凭据,FortiGate也会拒绝VPN连接尝试。你为每个门户网站启用客户端完整性,并使用CLI命令或FortiGate GUI进行配置。
认可的软件列表以及相关的注册表项值仅在CLI上可用。软件分为三类:反病毒(av)、防火墙(fw)和自定义。定制用于组织可能需要的定制或专有软件。管理员可以在GUl或CLI上配置av、fw或两个设置,但自定义设置仅在CLI上可用。
管理员还可以配置操作系统版本和补丁设置,以允许或拒绝来自特定操作系统版本的VPN连接。
启用客户端完整性检查的缺点是,由于以下因素,它会导致大量的管理开销:
● 所有用户必须安装最新的安全软件才能成功建立连接。
● 软件更新可能导致注册表项值的更改,这也可能会阻止用户成功连接。
因此,管理员必须对Windows操作系统及其后续系统有深入的了解注册表行为,以便正确地扩展使用和维护这一特性。
答案:A
答案:A
干得漂亮!你已经了解如何为SSL VPN连接配置FortiGate。现在,你将了解如何监视SSL VPN会话、查看日志、配置SSL VPN计时器和排除故障。
通过展示SSL VPN监控和故障排除的能力,你将能够避免、识别和解决常见问题和错误配置。
你可以在SSL VPN小部件上监视连接的SSL VPN用户。这显示了当前连接到FortiGate的所有SSL VPN用户的名称、他们的IP地址(隧道内和隧道外)和连接时间。
当用户使用隧道模型连接时,活动连接列显示FortiGate分配给客户端计算机上的fortissl虚拟适配器的IP地址。否则,用户将只连接到web门户页面。
你还可以查看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请求导致拒绝服务。
以下是使用SSL VPN时要记住的一些最佳实践。这些最佳实践在许多SSL VPN故障排除情况下也很有帮助:
● 在你的网页浏览器中启用cookies
● 在你的网络浏览器中设置互联网隐私选项为高
● 使用与你的FortiOS固件兼容的FortiClient版本
● 为SSL VPN连接开启分割隧道或创建出口防火墙策略,允许外部资源访问
● 连接到正确的端口号
● 在防火墙策略中添加SSL VPN组、SSL VPN用户和目的地址
● 按超时清除非活动会话
在diagnose vpn ssl下有几个有用的故障排除命令。它们包括:
● list:列出已登录的用户
● info:显示SSL VPN的基本信息
● statistics:显示FortiGate上内存使用的统计信息
● hw-acceleration-status:显示SSL硬件加速开关状态
● tunnel-test:启用或禁用SSL VPN旧隧道模式IP分配方式
● web-mode-test:启用或禁用代理URL中的随机会话ID进行测试
命令diagnose debug application sslvpn显示SSL VPN连接的整个调试消息列表。
请记住,要使用上面列出的命令,必须首先运行diagnostic debug enable命令。另外,请在FortiClient上查看SSL VPN调试日志。
具有CP8或CP9内容处理器的FortiGate设备可以加速许多常见的资源密集型、与安全相关的进程,可以将SSL VPN流量卸载到高性能VPN批量数据引擎。
这个专用的IPsec和SSL/TLS协议处理器处理大多数最新的知名加密算法。
缺省情况下,已经设置了卸载进程。如果出于测试目的,你想要禁用它,则只能在防火墙策略配置级别使用CLI执行此操作。
你也可以通过命令行查看SSL VPN加速的开启状态。
答案:B
答案:A
恭喜你!你已经完成了这一课。现在,你将复习这节课所涉及的目标。
通过掌握本课所涵盖的目标,你了解了如何配置和使用SSL VPN来允许远程用户访问你的专用网络。