在这节课中你将学习Fortinet单点登录(FSSO)。有了这个功能,你的用户就不需要在每次访问不同的网络资源时登录。
在完成这一课程之后,你应该具备配置Fortinet SSO功能的技能。这包括:
-
定义SSO
-
探索FSSO方法
-
使用FSSO在Windows Active Directory中检测用户登录事件
-
为NTLM身份验证配置web发起的FSSO
-
为FSSO配置FortiGate和收集器代理
-
基本FSSO故障排除
单点登录(SSO)允许用户在被识别后自动登录到每个应用程序,而不管平台、技术和域。
Fortinet单点登录(FSSO)软件代理可以让FortiGate识别网络用户的安全策略或VPN访问,而无需再次询问用户的用户名和密码。当用户登录到目录服务时,FSSO代理会将用户的IP地址和用户所属的用户组的名称发送给FortiGate。FortiGate使用此信息来维护域控制器用户组数据库的副本。因为域控制器对用户进行身份验证,所以FortiGate不执行身份验证。它通过IP地址识别组成员。
FSSO通常用于目录服务网络,例如Windows Active directory(AD)或Novell eDirectory。
如何部署和配置FSSO取决于提供目录服务的服务器。
用于Windows AD的FSSO使用了一个收集器代理。也可能需要域控制器(DC)代理,这取决于收集器代理的工作模式。在Windows有两种工作模式可以监视活动状态的用户签名:DC代理模式和轮询模式。
对于Citrix和终端服务环境,还有另一种类型的DC代理:TS代理。TS代理需要广告的收集器代理来收集并将日志事件发送到FortiGate。
eDirectory代理安装在Novell网络上,用于监视用户的签名,并将所需的信息发送到FortiGate。它的功能与Windows AD域控制器上的收集器代理非常相似。代理可以使用Novell API或LDAP从Novell eDirectory获取信息。
在本节中,我们将研究Windows Active Directory的可用模式:DC代理模式和轮询。在查看轮询模式时,我们将介绍基于代理的轮询模式和无代理的轮询模式。
让我们从DC代理模式开始,它被认为是FSSO的标准模式。
DC代理模式要求:
-
在每个Windows域控制器上安装了一个DC代理。如果你有多个DC,这意味着多个DC代理。DC代理监视和转发用户登录事件到收集器代理。
-
收集器代理,收集器代理是安装在Windows服务器上的另一个FSSO组件。它整合了来自DC代理的事件,然后将它们转发到FortiGate。收集器代理负责组验证、工作站检查和登录记录的更新。FSSO收集器代理将域本地安全组、组织单元(OUs)和全局安全组信息发送到FortiGate设备。它也可以为DNS查找定制。
这里我们展示了在DC代理、收集器代理和为FSSO身份验证配置的FortiGate之间的信息流。
-
当用户使用DC进行身份验证时,他们提供凭证。
-
DC代理将看到登录事件,并将其转发给收集器代理。
-
收集器代理聚合所有的登录事件,然后将这些信息转发到FortiGate。收集器代理发送的信息包含用户名、主机名、IP地址和用户组(s)。收集器代理通过TCP端口8000(默认)与FortiGate进行通信,并在UDP端口8002(默认)上监听来自DC代理的更新。端口是可定制的。
-
既然收集器代理已经转发了用户登录信息,那么FortiGate就知道用户是谁,他们的IP地址,也可以使用Active Directory组权限。当用户试图访问Internet时,FortiGate将源IP地址与活动的FSSO用户列表进行比较。因为本例中的用户已经登录,而FortiGate已经有了他们的信息,所以FortiGate将不会要求用户再次进行身份验证。
现在让我们看一下轮询模式。轮询模式可以是基于收集器的,也可以是无代理的。
首先,让我们看一下收集器基于代理的轮询模式。与DC代理模式类似,基于收集器的模式要求在Windows服务器上安装收集器代理,但不需要在每个DC中安装代理。在收集器基于代理的轮询模式中,收集器代理在DC代理模式下必须比收集器代理更强大,并且在没有登录事件时也会产生不必要的通信量。
在这种模式下,收集器代理定期联系windows DC以获取其信息。
让我们来看一个使用基于收集器的基于代理的轮询模式的FSSO示例。这一次我们有一个DC、一个收集器代理和FortiGate。但是DC没有安装代理。
-
用户通过DC进行身份验证,提供他们的凭证。
-
收集器代理定期(每隔几秒)对每个DC的TCP端口445进行轮询,以询问是否有人登录过。
-
收集器代理通过TCP端口8000将登录信息发送到FortiGate。这是在DC代理模式中发送的相同信息。
-
当用户通信到达FortiGate事时,它已经知道谁是哪个IP地址,并且不需要重复的身份验证。
基于代理的收集器的轮询模式有三个方法(或选项)收集登录信息:
-
NetAPI:当用户登录或注销并在Windows上调用NetSessionEnum函数时,在DC上创建临时会话。它比WinSec和WMI方法快。但是,如果DC在重系统负载下,它可能会错过一些登录事件。这是因为会话可以从RAM中快速创建和清除,在代理有机会进行轮询和通知FortiGate之前。
-
WinSecLog:从DC中对所有的安全事件日志进行投票。它不会错过任何登录事件,因为事件通常不会从日志中删除。如果网络很大,那么在接收事件时可能会有一些延迟,因为写入日志的速度比较慢。
-
WMI:一个从Windows服务器获取系统信息的Windows API。DC返回所有请求的登录事件。收集器代理是一个WMI客户端,并向DC发送WMI查询请求,在这里,它是一个WMI服务器。收集器代理不需要为用户登录事件在DC上搜索安全事件日志,相反,DC返回所有请求的登录事件。这减少了收集器代理和DC之间的网络负载。
你以在不安装代理的情况下部署FSSO。FortiGate直接轮询DC,而不是直接从收集器间接接收登录信息。
因为FortiGate收集所有的数据本身,无代理的轮询模式需要更大的系统资源,而且它不容易扩展。
无代理的轮询模式使用WinSecLog。因为没有收集器代理,所以FortiGate使用SMB协议从DC中读取事件查看器日志。
另外,由于防御工事完成了所有的轮询,你将不会有所有额外的功能,例如工作站检查,这些功能都是由外部收集器代理提供的。
现在让我们看看没有代理的通信是如何流动的(没有收集器代理或DC代理)。
-
在DC的TCP端口455中进行了投票,以获得用户登录事件。
-
在用户对DC进行身份验证之后,FortiGate将在下一次轮询时注册登录事件,获取以下信息:用户名、主机名、IP地址和用户组。
-
当用户发送流量时,FortiGate已经知道是谁的流量了。因此,用户不需要进行身份验证
此表总结了DC代理模式与轮询模式之间的主要差异。
DC代理模式更为复杂。它不仅需要一个收集器代理,还需要每个DC的DC代理。但是,它也更具有可伸缩性,因为捕获登录的工作是由直接将其信息传递给收集器的DC代理完成的。
在轮询模式中,收集器需要每隔几秒查询每个域控制器,因此,在添加的每个DC中,查询的数量就会增加。如果你想在轮询模式中添加第二个收集器代理,那么两个收集器都需要单独查询每个DC。
在DC代理模式下,DC代理只需要获取一次日志,并将必要信息的副本发送给所有收集器代理。相比之下,如果使用轮询模式,可能会错过或延迟一些登录事件,这取决于使用的轮询选项。
不管你选择的登录收集器方法是什么,你的active directory网络的一些FSSO需求是相同的:
-
Microsoft Windows登录事件有工作站名和用户名,但不是工作站IP地址。当收集器代理获得一个登录事件时,它将查询一个DNS服务器来解析工作站的IP地址。因此,FSSO需要你拥有自己的DNS服务器。如果工作站IP地址发生变化,DNS记录必须立即更新。
-
收集器必须与所有工作站连接。因为一个事件日志不是在下线上生成的,所以收集器代理(依赖于FSSO模式)必须使用不同的方法来验证用户是否仍然登录。因此,每个用户工作站都被轮询,以查看用户是否还在那里。
在active directory(AD)环境中,FSSO还可以与NT LAN Manager(NTLM)一起工作,这是一套Microsoft安全协议,为用户提供身份验证、完整性和机密性。让我们看一下NTLM是如何工作的,并与FSSO进行交互。
NTLM身份验证不需要DC代理,但对用户来说并不是完全不可见的:他们必须在NTLM协商期间输入他们的凭证。NTLM身份验证是一种微软专用的解决方案,因此只能在Windows网络中实现。
当用户登录到DCs时,NTLM非常有用,因为某种原因,它不能由收集器代理监视,或者在收集器代理和DC代理之间存在通信问题时。换句话说,NTLM身份验证最好用作对FSSO的备份。
这个例子展示了在一个简单的域配置中,在NTLM身份验证过程中消息是如何流动的。
-
当启用FSSO和NTLM时,NTLM将备份FSSO。当FortiGate从活跃的FSSO用户列表中不存在的IP地址接收流量时,将触发NTLM。
-
在请求证书的情况下,FortiGate使用NTLM答复质疑。
-
用户的浏览器发送所请求的凭证。
-
FortiGate接收用户凭证,然后在TCP端口8000上与收集器代理进行身份验证。该FortiGate也接收用户所属的组的名称。
-
如果凭证是正确的,那么就可以对用户进行访问。当浏览器关闭或会话超时时,将启动新的NTLM请求。
与完整的FSSO不同,NTLM身份验证对用户来说不是透明的。在大多数浏览器中,在Internet Explorer中默认情况下,用户必须在浏览器收到NTLM身份验证质疑时输入他们的凭证。
但是,Internet Explorer可以配置为在每次收到NTLM挑战时自动发送用户的凭证。要做到这一点,在Internet Options对话框中,单击定制级别。然后,在设置对话框中,滚动到用户身份验证登录,并选择使用当前用户名和密码的自动登录。
在NTLM的多个域环境中,在域之间有一个信任关系是很重要的。当在AD森林中存在多个域时,会自动创建信任关系,因此在一个域控制器中只需要一个DC代理。但是,当多个域不在一个广告森林中,你有两个选择:
-
通过广告设置,在域之间建立信任关系
-
在每个域上安装一个DC代理,然后使用安全策略配置服务器访问。
如果你决定在每个域上安装一个DC代理,那么DC代理会向收集器代理发送登录信息。让我们看看这个流程是如何工作的。
-
用户登录到他们的本地DC。
-
DC代理将用户登录事件信息发送到收集器代理。
-
用户试图访问互联网。
-
通过与收集器代理进行登录信息的身份验证,验证了用户的身份验证。
-
如果用户经过了正确的身份验证,那么就可以访问Internet。
现在,让我们看一下如何在FortiGate上配置FSSO,以及如何安装Fortinet收集器代理。
FortiGate FSSO配置非常简单。
如果FortiGate是作为无代理的轮询模式的收集器,那么你必须选择Poll Active Directory Server,并为每个DC配置IP地址和AD管理员凭证。
如果你有外部收集器代理,或者使用DC代理模式或收集器基于代理的轮询模式,你必须选择Fortinet单点登录代理,并为每个收集器配置IP地址和密码。
FSSO代理可以在Fortinet支持网站上找到。在那里你会发现:
-
DC代理
-
微软服务器的收集器代理:fssosetup
-
Novell目录的收集器代理:fssosetupedirectory
-
Citrix服务器的控制器代理:tsagentsetup
另外,对于每个代理,有两个版本可供下载:可执行文件(.exe)或Microsoft安装程序(.msi)。
下载了收集器代理之后,以管理员权限运行安装,然后在安装向导中执行以下步骤:
-
阅读并接受许可协议。
-
可选地,更改安装位置。默认的文件夹命名为FSAE。
-
输入用户名。默认情况下,代理使用当前运行帐户的名称。但是,你可以使用格式:DomainName\用户名来更改它。
-
另外,定制你的收集器代理,用于监视、NTLM身份验证和目录访问。这些选项在安装之后也可以定制。
-
如果你想使用DC代理模式,请确保选中了启动DC代理安装向导。这将自动启动DC代理安装。
这是安装的收集器代理。通过FSSO代理配置应用程序,你可以配置如下设置:
-
与DC代理通信的监听端口
-
与FortiGate的通信端口
-
NTLM认证支持
-
在收集器代理和FortiGate之间的密码身份验证
FSSO收集器代理计时器也非常重要,以确保正确的操作。让我们来看看每一个和它们是如何工作的。
-
工作站检查间隔。这个设置控制当收集器连接到各个工作站时,以验证用户是否仍然登录到相同的站点。它在显示登录用户的情况下更改了用户的状态,当无法连接到工作站时,就无法进行验证。如果它确实连接,它将验证用户和状态是否仍然正常。
-
死条目超时间隔。此设置仅适用于未验证状态的条目。当一个条目没有被验证时,收集器将启动这个计时器。它是用来把这个条目变老的。当计时器过期时,将从收集器中删除登录。从FortiGate的角度来看,没有被验证的条目和条目没有区别。都被认为是有效的。
-
IP地址更改验证间隔。此设置检查登录用户的IP地址,并在用户的IP地址更改时更新FortiGate。这个计时器在DHCP或动态环境中尤其重要,以防止用户在更改IP地址时被锁定。
-
缓存用户组查找结果。该设置缓存用户组成员关系,并在一段时间内进行。即使用户更改了广告中的组成员关系,它也不会更新。
另一个重要的FSSO设置是AD访问模式。你可以通过单击设置目录访问信息设置AD访问模式。它指定了收集器代理如何访问和收集用户和用户组信息。有两种模式可用于访问AD用户信息:标准和高级。
两种模式的主要区别包括使用的命名约定:
-
标准模式使用Windows约定NetBios:域\用户名
-
高级模式使用LDAP约定:CN=User、OU=Name、DC=Domain。
另外,高级模式支持嵌套或继承的组。也就是说,用户可以是属于受监控的父组的子组的成员。此外,在高级模式下,FortiGate可以对个人用户、用户组和组织单位(OU)应用保护配置文件。
相比之下,在标准模式下,保护配置文件只能应用于用户组,而不是单独的用户。
在高级模式中,你可以将FortiGate配置为LDAP客户端,并在FortiGate上配置组过滤器。你还可以在收集器代理上配置组过滤器。
如果收集器代理上的LDAP失败了,那么在FortiGate上的LDAP是不重要的,那么FSSO就不起作用了。如果FortiGate的LDAP失败了,但是收集器代理上的LDAP仍然在运行,那么这个FortiGate可能无法收集日志,但是收集器代理仍然会收集日志。
Fortinet强烈鼓励用户从收集器代理中创建过滤器。
在AD设置中,并不是所有的组类型都被支持。它只支持过滤组:
-
安全组
-
通用组
-
组织单元内的组(OU)
-
本地或通用的组,它们包含来自子域的通用组(只有全局目录)。
所有的FortiGate配置包括一个名为sso_guest_user的用户组。当仅使用被动身份验证时,不属于任何FSSO组的所有用户都将自动包含在这个guest组中。
这允许管理员为不属于Windows AD域的客户用户配置有限的网络访问权限。
但是,如果启用了被动和主动身份验证,则行为是不同的。不属于任何FSSO组的用户将被提示输入他们的凭证。
根据你的网络,你可能需要在FSSO收集器代理中配置高级设置。
Citrix服务器支持FSSO。TS代理模式允许服务器实时监视用户登录。TS代理就像一个DC代理,但是它需要收集器代理来收集并将登录事件发送到FortiGate。然后,它使用相同的端口将登录报告返回到收集器代理。
必须将Citrix服务器配置为VIP,以允许收集器代理收集用户登录事件。TS代理不能直接将日志转发到FortiGate,它们首先必须由收集器收集。这与来自FortiGate的投票不一样。
一个RADIUS服务器配置为一个基于RADIUS的帐户系统,它可以通过向收集器代理发送帐户消息来在你的网络中进行交互。
FSSO收集器代理还支持监视Microsoft Exchange服务器,这在用户使用他们的域帐户访问他们的电子邮件时非常有用。
最后,让我们来看看一些可以用来诊断FSSO问题的诊断命令。
要显示当前登录的FSSO用户列表,请使用CLI命令〖diagnose debug authd fsso list〗。
对于每个用户,用户名、用户组、IP地址和他们登录的工作站的名称都显示出来。
Memberof部分显示在你将AD组映射到的防火墙上创建的组。同样的组应该在GUI的用户组屏幕中显示。
使用〖exec fsso refresh〗从使用收集器代理的任何目录服务服务器上手动刷新用户组信息。
为了显示FortiGate和每个收集器代理之间的通信状态,你可以使用CLI命令〖diagnose debug authd fsso server-status〗。
但是,在使用该命令之前,必须首先运行命令〖diagnose debug enable〗。
还可以在〖diagnose debug auth fsso〗命令中清除FortiGate的缓存,过滤用户登录列表的显示,并刷新登录和用户组信息。
命令〖diagnose debug fsso-polling detail〗显示FortiGate在每个DC上状态信息和相关的一些统计数据。
命令〖diagnose debug fsso-polling refresh-user〗显示使用所有活动FSSO用户的信息。
在无代理的轮询模式中,FortiGate频繁地轮询事件查看器来获取登录事件。你可以在端口445上嗅探到这个流量。
另外,还有一个特定的FortiGate处理轮询模式的守护进程。它是fssod守护进程。要启用无代理的轮询模式实时调试,请使用〖diagnose debug application fssod -1〗命令。
在本课程中,你了解了使用FSSO收集用户登录信息的方法,NTLM认证和AD访问模式,如何为FSSO配置FortiGate和收集器代器,最后,如何对FSSO进行故障诊断和监视。
飞塔技术 - 老梅子 QQ:57389522