本节首先介绍用户管理基础知识,然后介绍用户组织结构及用户认证体系等。从广义上说,防火墙中的用户包括设备管理员和访问网络资源的用户,而访问网络资源的用户又分为从企业内网发起访问的上网用户和通过VPN(Virtual Private Network,虚拟专用网络)方式远程接入的用户(接入用户)。本章重点介绍上网用户,不详细介绍接入用户,仅介绍接入用户与上网用户的关系。
由于移动办公的普及,用户IP地址经常发生变化,传统的以IP地址作为资源访问控制对象的方式已经无法满足精细化管控的需求,根据用户账号进行管控才是“王道”。
防火墙上的用户是访问网络资源的人员在网络世界的身份映射,例如张三的用户账号是zhangsan。防火墙的用户管理功能就是将业务访问流量的源IP地址识别为用户,从而控制用户资源访问权限,用户管理基本流程如图1-1所示。
图1-1 用户管理基本流程
从图1-1可以看出用户管理的两个关键因素。
① 在防火墙上部署认证功能。用户认证通过后,防火墙将IP地址和用户账号的关系记录到在线用户表。当IP地址发生变化时,防火墙需要重新认证用户,更新IP地址和用户账号的对应关系。
② 在安全策略中引用用户账号作为匹配条件,实现基于用户的访问控制。
同时,用户认证通过后,用户后续的资源访问日志中将记录账号信息,便于企业审计。
需要注意一点,防火墙基于IP地址来识别用户,一个IP地址只能对应一个在线用户,不支持多个用户使用同一IP地址上线。当用户与防火墙之间存在NAT(Network Address Translation,网络地址转换)设备、代理服务器等设备时,不同用户的源IP地址被转换为同一个IP地址后才到达防火墙。在这种场景下,防火墙无法区分不同的用户。
在第1.1.1节中我们了解了用户管理的基本流程,基于用户的管控需要在安全策略中引用用户账号作为匹配条件。实际上,企业通常都会按照部门层级划分组织结构。因此,在防火墙上也需要一套相应的用户组织结构,方便企业管理员分级、分层对用户权限进行管理。
防火墙上的用户组织结构就是企业真实组织结构的映射。根据需求,用户组织结构包括按部门进行组织的树形维度、按跨部门群组进行组织的横向维度,如图1-2所示。
图1-2 用户组织结构
树形组织结构的树根就是大家已经很熟悉的AAA(Authentication,Authorization and Accounting,身份认证、授权和记账协议)中的认证域(domain)。防火墙默认设置一个名为default的认证域,你可以根据需求新建认证域。
每个认证域都拥有独立的树形组织结构,类似于微软AD(Active Directory,活动目录)协议、LDAP(Lightweight Directory Access Protocol,轻量目录访问协议)等认证服务器上的域结构。各认证域中的用户账号独立,允许不同认证域中的账号重名。登录用户属于哪个认证域由用户账号中“@”后携带的字符串来决定。如果使用新创建的认证域,用户登录时需要输入“用户名@认证域名”;如果使用默认的default认证域,则用户登录时只需要输入用户名。
另外,认证域也是决定内置Portal认证中用户认证方式的关键一环,决定了对用户进行本地认证还是服务器认证,后文介绍内置Portal认证时将详述其原理。
认证域的下级就是分层组织中的各级用户组和用户,可以理解为企业的各级部门和员工。这里的“用户”,与大家熟悉的其他数据通信产品中AAA的本地用户是不同的。本地用户是扁平结构,防火墙的用户组织结构是树形的,方便分级控制,而且用户的属性更丰富。如图1-3所示,“所属用户组”指示用户在树形组织结构中的位置。
图1-3 防火墙中的用户组/用户
树形组织结构的约定如下。
● 防火墙最多支持20层用户结构,包括认证域和用户,即认证域和用户之间最多允许存在18层用户组。
● 每个用户组可以包括多个用户和子用户组,但每个用户组只能属于一个父用户组。
● 一个用户只能属于一个父用户组。
● 用户组可以重名,但用户组在组织结构中的全路径必须具有唯一性。例如,/default/department1/research和/default/department2/research是两个不同的用户组。防火墙中的用户组都使用从认证域开始的全路径表示。
用户组/用户是“纵向”的组织结构,体现了用户所属的组织关系;安全组则是“横向”的组织结构,可以把不同部门的用户划分到同一个安全组,从新的管理维度来对用户进行管理。管理员基于安全组配置安全策略后,安全组中的所有成员用户都会继承该策略,这就使得对用户的管理更加灵活和便捷。
安全组一般是平铺的,当然也支持嵌套,具体约定如下。
● 一个用户最多属于40个安全组。
● 安全组最多支持3层嵌套,即父安全组、安全组和子安全组。
● 一个安全组可以不属于任何父安全组,也可以最多属于40个父安全组。
● 安全组支持环形嵌套,例如,安全组A属于安全组B,安全组B属于安全组C,安全组C属于安全组A。
另外,安全组还分为静态安全组与动态安全组,如图1-4所示。静态安全组的成员用户是静态配置的。动态安全组的成员用户不固定,而是基于一定条件动态筛选的。
图1-4 防火墙中的安全组类型
防火墙基于用户组/用户、安全组两个维度的组织结构进行管理,也与第三方认证服务器相呼应。例如,AD服务器、Sun ONE LDAP服务器上除树形组织结构之外,也存在横向的组织结构。当企业使用第三方认证服务器存储用户组织结构时,防火墙可以与认证服务器无缝对接,实现对用户的管控。
如图1-5所示,AD服务器中的组织单位对应防火墙的用户组/用户,安全组对应防火墙的静态安全组,通信组一般用于发邮件等,与访问控制无关。如图1-6所示,Sun ONE LDAP服务器中的组织单位(Organization Unit)对应防火墙的用户组/用户,静态组(Static Group)对应防火墙的静态安全组,动态组(Dynamic Group)对应防火墙的动态安全组。
图1-5 AD服务器的组织结构
图1-6 Sun ONE LDAP服务器的组织结构
在防火墙上建立用户组织结构的方式包括如下3种。
● 手动创建: 管理员根据企业组织结构手动创建用户组/用户、安全组,并配置用户属性。
● 从CSV文件导入: 管理员将用户组/用户信息、安全组信息按照指定格式写入CSV(Comma-Separated Values,逗号分隔值)文件中,再将CSV文件导入防火墙,批量创建。
● 从认证服务器导入: 如果企业已经部署身份验证机制,并且用户信息都存放在第三方认证服务器上,则可以执行服务器导入策略,将第三方认证服务器上用户组/用户、安全组的信息导入防火墙。如果认证服务器不支持向防火墙批量导入用户信息,则需要管理员使用前两种方式创建。
看到这里你可能会问,企业一般按照部门或群组控制员工权限,有必要在防火墙上创建海量的用户信息吗?要回答这个问题,就不得不考虑企业规划的认证方式和权限管控方式。
● 如果企业希望通过防火墙存储用户信息和认证用户身份,则必须在防火墙上创建用户信息。
● 如果企业使用第三方认证服务器认证用户,而且不需要在防火墙上基于具体用户控制权限,则只需要在防火墙上创建与认证服务器相同的用户组织结构(用户组/用户或安全组)。然后在安全策略中引用用户组/用户或安全组即可。用户认证通过后,用户在防火墙上对应的用户组/用户或安全组中上线,获得该用户组/用户或安全组的权限。
用户管理的总体目标就是通过用户认证功能获取用户账号和IP地址的对应关系,从而动态控制用户权限。防火墙的认证方式主要分为Portal认证和单点登录两大类。
当用户访问网络资源时,需要在防火墙提供的Portal认证页面中输入用户账号(用户名)、密码,如图1-7所示,认证通过后用户在防火墙上线。
图1-7 Portal认证页面
如果企业已经部署认证机制,例如Windows的AD域认证,防火墙直接获取用户认证的结果,将用户在防火墙上同步上线。这种认证方式称为单点登录。单点登录使得用户可一处认证多处使用,简化用户登录流程。图1-8所示为单点登录示意图,防火墙获取不同认证系统用户认证结果的方式不同,具体将在第1.3节介绍。
图1-8 单点登录示意图
了解以上知识后,我们再具体看一下防火墙支持的认证类型,如表1-1所示。
表1-1 防火墙支持的认证类型
前文介绍了防火墙支持的各种认证方式,那么,防火墙采用哪种认证方式来认证用户呢?这就要引出认证策略这个概念。
认证策略用于决定防火墙需要对哪些流量进行认证,以及采取何种认证方式。匹配认证策略的流量必须经过防火墙的身份认证才能通过防火墙。例如,图1-9所示的认证策略限制10.1.1.0/24网段的用户必须经过Portal认证才能访问业务。
图1-9 认证策略
防火墙默认存在一条名为default的认证策略,认证动作为不认证。当需要进行身份认证时,请按需配置认证策略。认证策略是基于用户的策略管控的入口条件,只有当用户流量匹配认证策略,并且用户认证通过防火墙上线时,防火墙上基于用户配置的策略才生效。
看到这里你可能会疑惑,认证策略中的认证动作与第1.1.3节中介绍的认证方式并不完全对等,认证动作没有“单点登录”。表1-2列出了认证策略中的认证动作,看完你就明白了。
认证策略配置的正确与否直接影响业务处理。一旦配置认证策略,匹配认证策略的流量必须经过认证。
表1-2 认证策略中的认证动作
说明: 为了避免用户误配置认证策略,防火墙还贴心地直接放行一些不用受认证策略控制的流量。以下流量即使匹配了认证策略也不会被要求进行认证。
● 访问防火墙的流量和防火墙发起的流量。
● DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)、BGP(Border Gateway Protocol,边界网关协议)、OSPF(Open Shortest Path First,开放最短路径优先)协议、LDP(Label Distribution Protocol,标签分发协议)的报文。
● 用户上网时,触发认证的第一条HTTP业务数据流对应的DNS(Domain Name Service,域名服务)报文不受认证策略控制,用户认证通过、上线后的DNS报文受认证策略控制。
认证策略的匹配规则与安全策略的类似,都是按照策略列表的顺序由上向下匹配的,只要匹配一条认证策略就不再继续匹配。如果所有认证策略都未匹配,则按默认认证策略的动作处理。
当发现流量无法按预期通过防火墙时,要注意排查是否是由认证策略导致的。举个例子,如图1-10所示,PC无法访问服务器,但是安全策略配置没有问题。
图1-10 排查认证策略示例
查看流量统计,发现UM_FIRST_PROCCESS_FAIL模块存在丢包。UM模块就是用户管理模块,据此可以判定流量被认证策略丢包。
[sysname-diagnose] display firewall statistic acl source-ip 192.168.0.2 Current Show sessions count:1 Protocol(ICMP) SourceIp(192.168.0.2) DestinationIp(10.1.0.1) SourcePort(1) DestinationPort(2048) VpnIndex(public) RcvnFrag RcvFrag Forward DisnFrag DisFrag Obverse(pkts) :4 0 0 4 0 Reverse(pkts) :0 0 0 0 0 Discard detail information: UM_FIRST_PROCCESS_FAIL : 4
查看认证策略的配置,发现源IP地址是192.168.0.2的流量匹配了图1-11所示的认证策略。如果确认该流量不需要认证,调整认证策略配置即可。
图1-11 认证策略匹配结果
非HTTP/HTTPS流量更容易出现上述例子中的问题。用户访问非HTTP/HTTPS业务时,防火墙不会向用户推送Portal认证页面,管理员往往很难意识到是认证策略的问题。还是那句话,一旦配置认证策略,匹配认证策略的流量必须通过身份认证。