什么是AAA
AAA是网络访问控制的一种安全管理框架,它决定哪些的用户能够访问网络,以及用户能够访问哪些资源或者得到哪些服务。
第一个A:认证
认证用来识别访问网络的用户的身份,判断访问者是否为合法的用户。
AAA服务器将用户的身份验证凭据与存储在数据库中的用户凭据进行比较。如果凭据匹配,则身份认证成功,并且授予用户访问网络的权限。如果凭据不匹配,则身份认证失败,并且网络访问将被拒绝。用户的身份认证凭据通常使用:
- 密码
- 用户名和密码
- 数字证书
第二个A:授权
授权是指对不同用户赋予不同的权限,限制用户可以使用的服务。
用户身份认证成功之后,通过授权来确定:
- 用户能够使用的命令
- 用户能够访问的资源
- 用户能够获取的信息
授权的基本原则是最小特权原则,即仅授予用户执行其所需功能时必须的权限,以此来防范任何轻率的授权可能导致的意外或恶意的网络行为。
第三个A:计费
计费用来记录用户使用网络服务过程中的相关操作,简单说就是:什么人、什么时间、做了什么事。
记录的内容包括使用的服务类型、起始时间、数据流量等,用于收集和记录用户对网络资源的使用情况,并可以实现针对时间、流量的计费需求,也对网络起到监控作用。
AAA是如何工作的?
AAA采用C/S客户端/服务器结构,这种结构简单、扩展性好,且便于集中管理用户信息。
如上图所示,AAA的基本实现流程如下:
- 用户访问网络前,首先与AAA客户端建立连接。
- AAA客户端负责把用户验证凭据传递给AAA服务器。
- AAA服务器根据用户认证凭据进行认证和授权,并将认证和授权结果返回给AAA客户端。
- AAA客户端根据服务器的返回结果判断是否允许用户接入。
其中:
- AAA客户端运行在NAS设备(网络接入服务器)上,NAS设备可以是路由器、交换机等为用户提供入网服务的设备。
- AAA服务器是认证服务器、授权服务器和计费服务器的统称,负责集中管理用户信息。根据AAA使用的通信协议的不同,AAA服务器可以分为RADIUS服务器、TACACS服务器等。
AAA协议有哪些?
AAA可以通过多种协议实现认证、授权和计费。
RADIUS
远程身份验证拨号用户服务RADIUS(Remote Authentication Dial-In User Service)是标准协议,基本所有主流设备厂商都支持,所以在实际网络中应用最多。
RADIUS协议可分为认证协议和计费协议,分别通过IETF RFC 2865和RFC 2866定义。由于定义RADIUS协议的时间早于AAA框架模型,所以RADIUS协议并没有将认证和授权分开,而是将认证和授权在同一个流程中进行处理。因此,使用RADIUS协议实现AAA时,用户可能无法知道被拒绝访问的原因是由于密码错误还是因为没有权限。
TACACS、TACACS+和HWTACACS
终端访问控制器控制系统TACACS(Terminal Access Controller Access-Control System),是一种起源于二十世纪八十年代的AAA协议。在之后的发展中,各厂商在TACACS协议的基础上进行了扩展,例如思科公司开发的TACACS+和华为公司开发的HWTACACS。TACACS+和HWTACACS均为私有协议,在发展过程中逐步替代了原来的TACACS协议,并且不再兼容TACACS协议。
HWTACACS协议可以兼容TACACS+协议,HWTACACS协议与TACACS+协议定义的报文结构和报文类型一致,主要区别在于授权和计费报文中携带的属性含义或类型不完全相同。
与RADIUS协议相比,HWTACACS或TACACS+更加适用于登录用户(例如STelnet用户)的身份认证场景。这是由于它在数据传输、加密上安全性更高,同时能够提供命令行鉴权、事件记录等优势功能。
LDAP和AD
轻量级目录存取协议LDAP(Lightweight Directory Access Protocol)是一种基于TCP/IP的目录访问协议。LDAP可以理解为一个数据库,该数据库中可以存储有层次的、有结构、有关联的各种类型的数据,比如:电子邮件地址、人力资源数据、联系人列表等等。LDAP通过绑定和查询操作可以实现认证和授权功能,常用于单点登录场景,例如企业用户只需要在电脑上登录一次,就可以访问多个相互信任的应用系统。
AD(Active Directory)是LDAP的一个应用实例,是Windows操作系统上提供目录服务的组件,用来保存操作系统的用户信息。与LDAP相比,AD将Kerberos协议集成到LDAP认证过程中,利用Kerberos协议的对称密钥体制来提高密码传输的安全性,防止在LDAP认证过程中泄露用户的密码。
Diameter
Diameter是IETF定义的新一代AAA协议,由RADIUS协议演进而来。Diameter协议克服了RADIUS的许多缺点,例如Diameter协议支持移动IP、多接口和移动代理的认证、授权和计费等。随着Diameter协议及其应用的不断成熟和标准化,它对未来移动通信系统和宽带接入系统的发展将起到巨大的推动作用 。
AAA有哪些应用?
根据用户接入的方式不同,AAA在网络中可以划分为以下几种应用:
- 登录用户管理:登录用户指的是直接登录设备进行操作的用户,例如Console口登录、Stelnet登录等。此类用户对安全性的要求较高,通过AAA可以限制哪些用户可以登录到设备,登录到设备后能执行哪些命令或者记录用户执行的操作等。
- NAC用户接入控制:NAC用户指的是通过802.1X、MAC、Portal方式接入网络的用户。这些用户可以是有线用户、也可以是无线用户,可能是接入企业园区网络、教育网络、医疗网络或商超网络等等。此类用户存在类型复杂、变动频繁、权限级别要求不统一等问题。AAA结合NAC,可以有效保证接入用户的安全性。
什么是TACACS ?
终端访问控制器控制系统TACACS(Terminal Access Controller Access-Control System),用于与UNIX网络中的身份验证服务器进行通信、决定用户是否有权限访问网络。各厂商在TACACS协议的基础上进行了扩展,例如思科公司开发的TACACS+和华为公司开发的HWTACACS。TACACS+和HWTACACS均为私有协议,在发展过程中逐步替代了原来的TACACS协议,并且不再兼容TACACS协议。
TACACS的产生背景
TACACS是一种起源于二十世纪八十年代的AAA(认证、授权、计费)协议,用于与UNIX网络中的身份验证服务器进行通信、决定用户是否有权限访问网络。
1984年,美国军事研究机构为了在MILNET中实现身份验证自动化,设计了最早的TACACS协议(RFC 927),使已经在一台主机登录的用户无需在同一网络的其他主机上重新验证身份。后来,思科公司在其网络产品中支持TACACS,最终对TACACS进行扩展(RFC 1492),扩展后的TACACS协议被称为Extended TACACS(XTACACS)。与最初的TACACS相比,XTACACS还实现了认证、授权和计费流程的相互独立,并且认证和授权可以在不同的服务器上进行,这无疑有助于管理员对用户进行精细管理和控制。
随着网络的发展,管理员对TACACS在服务器上部署的灵活性,和控制用户命令权限的灵活性都提出了更高的要求。因此,在TACACS和XTACACS的基础上,各厂商再次进行扩展,例如,华为公司开发了HWTACACS,思科公司开发了TACACS+。
TACACS、TACACS+和HWTACACS的关系
与早期的TACACS相比,HWTACACS和TACACS+主要有如下两点改进:
- 认证、授权和计费过程都相互独立,认证和授权可以在不同的服务器上进行。这使得HWTACACS在服务器部署方面更加灵活。例如,可以用一台HWTACACS服务器A进行认证,另外一台HWTACACS服务器B进行授权。并且,授权时无需再重复进行认证的过程,仅需通知服务器B,用户已在服务器A上成功认证。
- 支持根据用户级别对执行的每一条命令行通过服务器进行授权,只有授权通过,命令行才允许执行。因此,更便于管理员进行设备管理。
由于TACACS和XTACACS使用UDP协议传输,而HWTACACS和TACACS+使用TCP协议传输,因此HWTACACS和TACACS+都无法与TACACS或XTACACS兼容。
而HWTACACS和TACACS+的认证流程与实现方式是一致的,因此设备使用HWTACACS协议时支持与TACACS+服务器对接。但HWTACACS属性和TACACS+属性在字段定义和解释上存在区别,因此属性之间不一定能够兼容。例如HWTACACS和TACACS+都支持属性tunnel-id,且都解释为建立隧道时的隧道本端用户名,HWTACACS设备就可以与TACACS+服务器对接。HWTACACS支持属性uppeak,但TACACS+不支持,那么TACACS+设备就不会解析该属性,无法对接属性信息。
HWTACACS/TACACS+与RADIUS的区别
RADIUS是最常用的AAA协议,HWTACACS与其相比有很多相似的地方。例如都采用Client/Server结构,都使用密钥机制对用户信息进行加密以及都具备扩展性。
HWTACACS和TACACS+在数据传输、加密方式、认证授权和事件记录等方面与RADIUS存在差异。如下图所示。
HWTACACS认证、授权、计费流程
下面以Telnet用户使用HWTACACS为例,说明用户进行认证、授权和计费的过程。基本消息交互流程如下图所示。
在整个过程中的基本消息交互流程如下:
- Telnet用户请求登录设备。
- HWTACACS客户端收到请求之后,向HWTACACS服务器发送认证开始报文。
- HWTACACS服务器发送认证回应报文,请求用户名。
- HWTACACS客户端收到回应报文后,向用户询问用户名。
- 用户输入用户名。
- HWTACACS客户端收到用户名后,向HWTACACS服务器发送认证持续报文,其中包括了用户名。
- HWTACACS服务器发送认证回应报文,请求密码。
- HWTACACS客户端收到认证回应报文,向用户询问密码。
- 用户输入密码。
- HWTACACS客户端收到密码后,向HWTACACS服务器发送认证持续报文,其中包括了密码信息。
- HWTACACS服务器发送认证回应报文,指示用户通过认证。
- HWTACACS客户端向HWTACACS服务器发送授权请求报文。
- HWTACACS服务器发送授权回应报文,指示用户通过授权。
- HWTACACS客户端收到授权回应报文,向用户输出设备的配置界面。
- HWTACACS客户端向HWTACACS服务器发送计费开始请求报文。
- HWTACACS服务器发送计费开始回应报文,指示计费开始请求报文已经收到。
- 用户请求断开连接。
- HWTACACS客户端向HWTACACS服务器发送计费结束请求报文。
- HWTACACS服务器发送计费结束回应报文,指示计费结束请求报文已经收到。
什么是网络接入控制(NAC)?
NAC网络安全解决方案通过对接入用户进行安全控制,实现“只有合法的用户、安全的终端才可以接入网络”,隔离非法、不安全的用户和终端,或者仅允许他们访问受限的资源,以此提升整个网络的安全防护能力。
为什么需要网络接入控制?
传统的企业网络安全基本上都围绕着如何抵御外部攻击来建设的,如部署防火墙等。但是,对于允许手机、电脑等终端远程访问企业网络、或者允许员工使用个人办公设备访问企业网络、或者对员工可访问资源划分等级的企业,也需要对企业网络的内部用户进行访问控制。因为,在企业网络中,任何一台终端的安全状态都将直接影响到整个网络的安全。像一些企业内部用户在浏览外部某些网站时,可能将恶意软件不知不觉地下载到电脑中,并在内网传播,造成安全隐患。另外,企业网络出现大量非法接入和非授权访问用户时,也会导致业务系统遭受破坏、关键信息资产泄漏的风险。
NAC方案能够有效的管理网络访问权限、及时的更新系统补丁、升级病毒库,让管理员更快捷的查找、隔离及修复不安全的终端,满足企业网络内部的安全需求。
网络接入控制NAC具备哪些能力?
NAC方案具备身份认证、访问控制、终端安全检查和控制以及系统修复和升级的能力。
身份认证
NAC方案对接入网络的用户身份进行合法性认证,只有合法用户才允许接入是企业网络安全的基本需求。企业网络中终端(例如PC等)用户的身份认证应满足如下需求:
- 符合安全要求的终端提供正确的用户名和密码后,可以正常接入网络。
- 不符合安全的终端,只能接入到网络隔离区,待终端安全修复后才能接入网络。
- 不合法的用户不允许接入网络。
访问控制
NAC方案将网络划分为几类区域,并且根据用户身份、接入时间、接入地点、终端类型、终端来源、接入方式(简称5W1H)精细匹配用户,控制用户在认证通过前和认证通过后能够访问的资源。5W1H即:
- Who-谁接入了网络(员工、访客);
- When-什么时间接入(上班、下班);
- Where-什么地点接入(研发区、非研发区、家里);
- What-什么设备(PC、手机);
- Whose-谁的设备(公司标配、BYOD设备);
- How-如何接入(有线、无线)。
终端安全检查和控制
NAC方案对用户终端的安全性进行检查,只有“健康的、安全的”用户终端才可以接入网络。安全性检查应满足如下需求:
- 对终端的安全性(杀毒软件安装、补丁更新、密码强度等)进行扫描,在接入网络前完成终端安全状态的检查。
- 对终端不安全状态能够与网络准入设备进行联动,当发现不安全终端接入网络的时候,能够对这些终端实现一定程度的阻断,防止这些终端对业务系统造成危害。
- 对于未能及时修复的不安全终端,能够对其进行权限限制,避免接入网络,引发网络安全问题。
系统修复和升级
如果系统存在安全隐患,NAC方案提供了系统自动和手动修复升级功能。可自动下载和升级系统补丁、触发病毒库的更新、自动杀死非法/违规进程等强制安全措施。
网络接入控制NAC将网络划分为几类区域?
NAC将网络划分为以下几类区域:
- 用户域:所有接入企业内网的终端设备,例如台式机、便携机以及通过Internet接入的出差员工、驻外机构、合作伙伴等。
- 网络域:进行流量转发的网络设备所组成的域,承载业务流量,实现各网络的互联。交换机、路由器等网络准入设备就部署在这个区域中。
- 认证前域:终端设备在完成认证之前可以访问的区域,主要为了满足用户基本的网络访问需求,譬如下载802.1X客户端、更新病毒库等。
- 认证后域:指的企业真正的核心资源所在的区域,终端设备必须进行认证和授权之后才能访问与自己的权限相对应的区域。
网络接入控制是如何实现的?
NAC方案包括三个关键组件:用户终端、网络准入设备、服务器系统。
- 用户终端:接入企业内网的终端设备,例如台式机、便携机、哑终端、无线终端等,归属在用户域。
- 网络准入设备:网络准入设备是网络中安全策略的实施点,负责按照客户网络制定的安全策略,实施相应的准入控制(允许、拒绝、隔离或限制),归属在网络域。华为NAC方案支持802.1X、MAC认证和Portal等多种认证方式。在各种认证方式下,网络准入设备辅助用户终端与准入服务器进行认证。网络准入设备可以是交换机、路由器、无线接入点或其它安全设备,通过这些网络准入设备,实现强制用户准入认证、拒绝非法用户的网络访问、隔离不健康终端、为“合法用户、健康终端”提供网络服务的目的。
- 服务器系统:服务器系统包括准入控制服务器、病毒/补丁/软件服务器和业务服务器。
- 准入控制服务器部署在认证前域,是NAC方案的核心,用户在身份认证和安全检查通过前就可以访问,主要负责对用户进行认证和安全审核,实施安全策略,并且与网络准入设备联动,下发用户权限。
- 用户通过身份认证前,一般会访问病毒/补丁/软件服务器,进行终端上病毒库的自动更新、操作系统和应用软件的补丁安装和更新等,以满足终端安全检查的要求。病毒/补丁/软件服务器部署在认证前域。
- 业务服务器部署在认证后域,用于企业业务管理,只有通过认证和授权后的用户才能访问。
网络接入控制的应用
NAC方案可以应用在很多网络场景中,例如企业网络场景、BYOD场景(即自带设备办公)、物联网场景、公共WIFI网络场景等。
企业网络
NAC方案在企业网络中通常会按照用户的角色,严格区分员工和非员工的网络访问权限。例如,NAC方案将网络中的用户分为员工、合作伙伴和访客,针对不同的用户角色,为其定制不同的网络接入和权限控制规则,提高企业的整体安全水平。
- 员工:主要指具有固定办公地点以及长期工作合同的用户。员工通常使用公司设备作为办公设备,认证通过后一般具有公司网络充分的访问权限。
- 合作伙伴:主要指流动性较大,企业约束力较低的合作伙伴等。这些人员会在一定时期内接入企业网络,并访问网络内的部分服务器,但是,由于此类人员安全性较低,权限应当严格受控。
- 访客:主要指一次性接入企业网络的访客人员。通常通过无线方式接入,权限仅限于借助企业网络访问Internet,与员工、合作伙伴之间要进行严格隔离,以防止企业信息资产泄露。
BYOD
为满足企业员工对于新科技和个性化的追求、提高员工的工作效率,许多企业开始考虑允许员工自带智能设备(例如手机、平板或笔记本电脑等移动设备)接入企业内部网络,这就是BYOD(Bring Your Own Device)。员工自带的设备通常没有安装安全终端,接入企业内部网络可能会带来安全隐患。NAC方案借助终端类型识别技术,自动识别企业员工接入内部网络的设备类型,实现基于用户、设备类型及设备环境的认证和授权。
物联网
大多数的物联网设备不支持传统的身份验证协议或安全证书。NAC方案通过物联网设备的电子规约信息(包括设备版本号、厂家信息、版本号、产品名称、终端类型等)自动识别物联网设备,之后,根据各自配置的安全策略,完成物联网设备的入网认证。
公共WIFI网络
公共WIFI网络非常普及,几乎所有的咖啡馆、商店、机场、酒店和其他公共场所都为他们的顾客和访客提供了公共WiFi接入。对于完全开放的公共WIFI网络安全性很低,这是由于任何人、无需任何身份验证都可以登录,用户连接网络时需要慎重考虑。NAC提供微信认证、短信认证方案,用户接入公共WIFI时,通过微信扫码或者在Web Portal页面上输入手机号实现用户实名入网。
AAA配置
NAS设备对用户的管理是基于域的,每个用户都属于一个域,一个域是由属于同一个域的用户构成的群体。简单地说,用户属于哪个域就使用哪个域下的AAA配置信息。
如图1所示,域统一管理AAA方案、服务器模板和授权等配置信息:
- AAA方案:分为认证方案、授权方案和计费方案,用来定义认证、授权和计费的方法及每种方法的生效顺序,AAA方案的详细介绍请参见AAA方案。
- 服务器模板:用来配置认证、授权或计费使用的服务器。配置服务器授权时,用户从服务器和域下获取授权信息,详见图2。如果使用本地认证或授权,需要配置本地用户的相关信息。
- 域下的授权信息:域下还可以配置授权信息,域下可以绑定业务方案、用户组等,业务方案、用户组内支持配置授权的ACL、VLAN等信息。
授权信息分为两类:服务器下发的授权信息和域下的授权信息。用户从何处获取授权与授权方案中配置的授权方法有关。如图2所示:
- 授权方法为本地授权时,用户从域下获取授权信息。
- 授权方法为服务器授权时,用户从服务器和域下获取授权信息。域下配置的授权信息比服务器下发的授权信息优先级低,如果两者的授权信息冲突,则服务器下发的授权优先生效;如果两者的授权信息不冲突,则两者的授权信息同时生效。这样处理可以通过域管理进行灵活授权,而不必受限于服务器提供的授权。
用户所属的域
如图3所示,用户所属的域是由用户登录到NAS设备时提供的用户名决定的,当用户名中没有携带域名或者携带的域名在NAS设备上未配置时,NAS设备无法确认用户所属的域,此时,NAS设备根据用户的类型将用户加入到默认域中。
如表1所示,为了提供更为精细且有差异化的认证、授权、计费服务,AAA将用户划分为管理员用户和接入用户两种类型。NAS设备存在两个全局默认域:全局默认管理域default_admin和全局默认普通域default,分别作为管理员用户和接入用户的全局默认域,两个全局默认域下的缺省配置也不同。
两个全局默认域缺省都绑定了名称为default的计费方案,修改该计费方案会同时影响这两个域的配置。
两个全局默认域均不能删除,只能修改。
用户也可以根据实际需求,灵活定义全局默认域。自定义的全局默认域可以同时被配置成全局默认普通域和全局默认管理域。
通过命令display aaa configuration,可以查看设备当前配置的全局默认普通域和全局默认管理域。显示如下:
<HUAWEI> display aaa configuration
Domain Name Delimiter : @
Domainname parse direction : Left to right
Domainname location : After-delimiter
Administrator user default domain: default_admin //全局默认管理域
Normal user default domain : default //全局默认普通域
对于某些接入方式,用户最终所属的域可由相应认证模块提供的命令行来指定,以满足一定的用户认证管理策略。例如:NAC接入用户,NAS设备支持基于认证模板配置默认域和强制域,并且可以指定用户类型(802.1X用户、MAC用户或者Portal用户),配置更加灵活。强制域、用户自带域和默认域在不同视图下的优先级从高到低如下所示:
认证模板下指定认证方式的强制域 > 认证模板下的强制域 > 用户自带域 > 认证模板下指定认证方式的默认域 > 认证模板下的默认域 > 全局默认域。比较特殊的是,对于MAC认证用户通过MAC地址段指定的强制域具有最高的优先级,高于认证模板下的配置。
NAS设备向RADIUS服务器发送的用户名格式
仅RADIUS认证支持修改用户输入的原始用户名。
支持基于RADIUS服务器模板修改用户输入的原始用户名。
NAS设备可以根据RADIUS服务器的要求,配置向RADIUS服务器发送的用户名是否包含域名。缺省情况下,NAS设备向RADIUS服务器发送的用户名为用户输入的原始用户名,不对其进行修改。
通过表2中的命令设置NAS设备向RADIUS服务器发送的用户名格式。
以下命令仅会修改发往服务器的RADIUS报文中的用户名格式,EAP报文中的用户名格式不会被修改。由于802.1X认证过程中,RADIUS服务器会检查EAP报文中携带的用户名与RADIUS服务器上的用户名是否一致,所以,802.1X认证时不能使用命令radius-server user-name domain-included和undo radius-server user-name domain-included修改用户的原始用户名,以免造成认证失败。
AAA方案
在AAA的具体实现过程中,通过AAA方案来定义一套AAA配置策略。AAA方案是设备上制定的一套认证、授权、计费方法,可根据用户的接入特征以及不同的安全需求组合使用。
- 认证方案
- 授权方案
- 计费方案
认证方案
认证方案用来定义用户认证时使用的认证方法以及每种认证方法生效的顺序。认证方案应用到域,与域下的授权方案、计费方案、服务器模板等配置结合,实现对用户进行认证、授权和计费。
设备支持的认证方法
- RADIUS认证:将用户信息配置在RADIUS服务器上,通过RADIUS服务器对用户进行认证。
- HWTACACS认证:将用户信息配置在HWTACACS服务器上,通过HWTACACS服务器对用户进行认证。
- 本地认证:设备作为认证服务器,将用户信息配置在设备上。本地认证的优点是速度快,可以为运营降低成本,缺点是存储信息量受设备硬件条件限制。
- 不认证:对用户非常信任,不对其进行合法性检查,一般情况下不采用这种方式。
认证方法的生效顺序
认证方案中可以指定一种或者多种认证方法:按照配置顺序,NAS设备首先选择第一种认证方法,当前面的认证方法无响应时,后面的认证方法才会被启用;直到某种认证方法有响应或者所有的认证方法遍历完成后均无响应(均无响应时用户认证失败)时,用户身份认证过程将被停止。
授权方案
授权方案用来定义用户授权时使用的授权方法以及每种授权方法生效的顺序。授权方案应用到域,与域下的认证方案、计费方案、服务器模板等配置结合,实现对用户进行认证、授权和计费。
设备支持的授权方法
- HWTACACS授权:由HWTACACS服务器对用户进行授权。
- 本地授权:设备作为授权服务器,根据设备上配置的用户信息进行授权。
- 不授权:不对用户进行授权。
- if-authenticated授权:用户认证通过,则授权通过,否则授权不通过。适用于用户必须认证且认证过程与授权过程可分离的场景。
除此之外,对于管理员用户(即Login用户),通常使用“认证+权限级别”的方法控制用户访问设备,提高对设备操作的安全性。其中,认证用来限制对网络设备的访问;权限级别定义用户登录到网络设备后可以执行的命令。该方法的详细介绍请参见《S300, S500, S2700, S5700, S6700 V200R024C00 配置指南(命令行)-基础配置》中的“通过CLI登录设备配置”。
授权方法的生效顺序
授权方案中可以指定一种或者多种授权方法。指定多种授权方法时,配置顺序决定了每种授权方法生效的顺序,配置在前的授权方法优先生效。当前面的授权方法无响应时,后面的授权方法才会启用。如果前面的授权方法回应授权失败,表示AAA服务器拒绝为用户提供服务。此时,授权结束,后面的授权方法不会被启用。
授权信息
授权信息分为两类:服务器下发的授权信息和域下的授权信息。用户从何处获取授权与授权方案中配置的授权方法有关。如图1-5所示:
- 授权方法为本地授权时,用户从域下获取授权信息。
- 授权方法为服务器授权时,用户从服务器和域下获取授权信息。域下配置的授权信息比服务器下发的授权信息优先级低,如果两者的授权信息冲突,则服务器下发的授权优先生效;如果两者的授权信息不冲突,则两者的授权信息同时生效。这样处理可以通过域管理进行灵活授权,而不必受限于服务器提供的授权。
服务器常用的授权信息请参见表3。域下支持配置的授权信息请参见表4。
计费方案
计费方案用来定义用户计费时使用的计费方法。计费方案应用到域,与域下的认证方案、授权方案、服务器模板等配置结合,实现对用户进行认证、授权和计费。
设备支持的计费方法
- RADIUS计费:由RADIUS服务器对用户进行计费。
- HWTACACS计费:由HWTACACS服务器对用户进行计费。
- 不计费:不对用户计费。
计费方法的生效顺序
计费方案中只能指定一种计费方法。
从RADIUS报文介绍中的RADIUS计费报文可以看出,计费报文分为计费请求报文(Accounting-Request)和计费响应报文(Accounting-Response)。设备每发送一个计费请求报文,如果收到服务器回应的计费响应报文则代表计费成功;如果没有收到服务器回应的计费响应报文则代表计费失败。
计费功能使能后,设备会将用户的活动通过计费请求报文(Accounting-Request)发送给AAA服务器,AAA服务器根据报文中的信息对用户进行计费和审计。以RADIUS计费为例,计费请求报文分为三类:
- 计费开始请求报文:用户认证成功开始访问网络资源时,设备向RADIUS服务器发送计费开始请求报文;
- 计费结束请求报文:用户断开连接时(连接也可以由接入服务器断开),设备向服务器发送计费结束请求报文;
- 实时计费请求报文:为减少计费误差、避免计费服务器无法收到计费停止请求报文而继续对该用户计费,可以在设备上配置实时计费功能,此后设备将周期性的向RADIUS服务器发送实时计费请求报文。
正常情况下,设备每发送一个计费请求报文(Accounting-Request),服务器都会回应一个计费响应报文(Accounting-Response)。由于网络故障等原因,设备没有收到对应的计费响应报文时,称之为计费失败。在计费失败时,设备根据计费请求报文的类型对用户能否在线做出相应的处理,具体如下:
- 开始计费失败:默认使用户下线。
- 实时计费失败:默认允许用户在线。
- 结束计费失败:重传计费结束请求报文。
本地认证和授权
- 本地AAA服务器
- 设备作为AAA服务器时被称为本地AAA服务器,本地AAA服务器支持对用户进行认证和授权,不支持对用户进行计费。
- 与远端AAA服务器相似,本地AAA服务器需要配置本地用户的用户名、密码、授权信息等。使用本地AAA服务器进行认证和授权比远端AAA服务器的速度快,可以降低运营成本,但是存储信息量受设备硬件条件限制。
- 本地用户的密码策略
- 密码长度和密码复杂度:管理员在创建本地用户时,设备命令行已经对本地用户密码的长度和复杂度做了控制。其中,复杂度检查建议密码至少包含小写字母、大写字母、数字、特殊字符这四种形式中的两种,同时密码长度不小于8个字符。
- 密码有效期:开启本地管理员密码策略后,本地管理员用户可以设置密码有效期,有效期默认为90天、支持修改。
- 如果密码已经过期,有用户继续通过此密码登录设备时,设备提示用户密码已过期、是否修改密码,并根据用户的选择进行不同的处理:
- 如果用户选择修改,则用户需要按照先后顺序输入旧密码、新密码、确认新密码。只有旧密码正确,新密码和确认新密码输入一致并符合要求(密码长度、复杂度等)时,密码才能修改成功。
- 如果用户选择不修改或者修改失败,则不允许用户登录。
- 同时,设备还支持密码过期前提醒功能。当用户登录设备时,设备会判断该用户的密码距离过期的时间是否在提醒时间范围内。如果在提醒时间范围内,设备会提示该密码还有多久过期,并询问用户是否修改密码:
- 如果用户选择修改,则记录新的密码以及修改密码的时间。
- 如果用户选择不修改或者修改失败,则在密码未过期的情况下仍可以正常登录。
- 密码修改策略:
- 修改密码时不建议使用以前使用过的密码,默认新密码不得与前5次使用过的密码重复。
- 本地管理员可以修改同级别或者低级别本地用户的密码。
RADIUS认证、授权和计费
RADIUS认证、授权和计费。内容太多跳转查看
HWTACACS认证、授权、计费
HWTACACS认证、授权、计费。内容太多跳转查看
HACA认证、授权、计费
HACA认证、授权、计费。内容太多跳转查看
AAA应用场景
1、通过AAA为上网用户提供认证、授权和计费
如图所示,Switch作为目的网络接入服务器(NAS)。用户需要通过服务器的远端认证才能通过建立连接,该网络中的用户需要访问Internet资源。为了保证网络的安全性,企业管理员希望控制用户对于Internet的访问。
通过在Switch上配置AAA,实现Switch与AAA服务器的对接,可以由AAA服务器对用户进行统一管理。用户在客户端上输入用户名和密码后,Switch可以接收到用户的用户名和密码等认证信息并将用户信息发送给AAA服务器,由AAA服务器对其进行认证。如果认证通过,则用户可以开始访问Internet。在用户访问过程中,AAA服务器还可以记录用户使用网络资源的情况。
为了提高可靠性,可以部署两台AAA服务器,并在Switch上进行相应配置实现AAA服务器的主备备份,主服务器发生故障时,备服务器可以接替主服务器工作,保证用户业务不会中断。
2、通过AAA对管理用户进行认证和授权
如图所示,管理用户(Administrator)与Switch建立连接,对Switch进行管理、配置和维护。
在Switch上配置AAA后,当管理用户登录Switch时,Switch将管理用户的用户名和密码等信息发送给AAA服务器,由AAA服务器来进行统一认证,同时记录这些用户的操作行为。
AAA缺省配置
AAA配置任务概览
理论上,设备支持多种方式的认证、授权、计费的组合,比如本地认证、本地授权和RADIUS计费。
实际应用中,常见的是每种方式的单独应用,如下表所示。此外,设备还支持一个方案中使用多种协议模式,比如本地认证还常用于RADIUS认证和HWTACACS认证的备份认证方案,本地授权作为HWTACACS授权的备份授权方案。
配置采用本地方式进行认证和授权
在本地方式进行认证和授权中,用户信息(包括本地用户的用户名、密码和各种属性)都配置在设备上。本地方式进行认证和授权的优点是速度快,可以降低运营成本,缺点是存储信息量受设备硬件条件限制。
配置流程:
配置本地用户
操作步骤
- 执行命令system-view,进入系统视图。
- 执行命令aaa,进入AAA视图。
创建本地用户:
(可选)配置用户级别、所属用户组、接入时间段、闲置切断功能及可建立的连接数目:
(可选)配置本地用户安全性:
设备空配置启动时,会自动进行如下配置并写入配置文件:
- 执行local-aaa-user password policy administrator命令使能本地管理员的密码策略功能。
- 执行password expire 0命令配置本地管理员的密码不过期。
- 执行password history record number 0命令配置设备不检查修改后的本地管理员的密码与历史记录是否相同。
本地用户权限相关配置
- 执行命令undo local-aaa-user change-password verify,在本地管理员用户修改自己的密码时,去使能校验老密码的功能。缺省情况下,本地管理员用户在AAA视图下通过命令local-user user-name privilege level level修改自己的密码时,需要输入老密码进行校验。
- 执行命令undo local-user password change-offline enable,在本地管理员用户修改密码时,去使能与用户进行交互确认的功能。缺省情况下,本地管理员用户在AAA视图下通过命令local-user user-name password修改密码时,已使能与用户进行交互确认的功能,设备会提示用户帐号将被注销,需要重新登录。
(可选)修改本地用户登录密码
local-user change-password
(可选)WEB网管用户首次登录时,浏览器跳转到创建用户界面的功能。
由于缺省情况下,设备没有本地用户,因此设备出厂配置文件中包含该命令,用户通过WEB网管首次登录设备时,浏览器会跳转到创建用户的界面。用户创建完成之后,再次通过WEB网管登录设备时,不会再跳转到创建用户的界面。
此外,用户通过Console口登录设备后,用户再通过WEB网管首次登录设备时,浏览器不会跳转到创建用户的界面,会进入用户登录界面。因此,如果需要通过WEB网管登录设备,需要在Console口登录设备时创建WEB登录的本地用户。
设备出厂配置文件中包含navigator first-login enable命令,无需用户手动配置。navigator first-login enable命令仅支持通过配置文件下发,不支持在设备上输入和执行,不记录buildrun。
配置授权规则
配置本地授权时,本地可配置的参数如下:
操作步骤
- 配置授权VLAN,在设备上配置VLAN及VLAN内的网络资源。
- 配置授权业务方案,具体配置请参见配置业务方案。
- 配置授权用户组。
配置授权UCL组
配置AAA方案
背景信息
如果需要采用本地方式进行认证和授权,需要在认证方案中配置认证模式为本地认证,在授权方案中配置授权模式为本地授权。
缺省情况下,设备对用户进行本地认证和授权。
操作步骤
- 配置认证方案
- 执行命令system-view,进入系统视图。
- 执行命令aaa,进入AAA视图。
- 执行命令authentication-scheme authentication-scheme-name,创建一个认证方案,并进入认证方案视图或直接进入一个已存在的认证方案视图。缺省情况下,设备中有两个认证方案,认证方案名称分别是default和radius,default和radius方案均不能删除,只能修改方案下的参数。
- 执行命令authentication-mode { local | local-case },配置认证模式为本地认证。缺省情况下,认证模式为本地认证,并且本地用户名不区分大小写。
- (可选)执行命令authentication-super [ hwtacacs | radius | super ] * none,在当前认证模板下,配置对用户提升级别进行认证时采用的认证模式。缺省情况下,用户提升级别时认证模式为super,即本地认证模式。
- 执行命令quit,返回AAA视图。
- (可选)执行命令domainname-parse-direction { left-to-right | right-to-left },配置域名解析的方向,从左向右或从右向左。缺省情况下,域名解析方向为从左向右。
- 执行命令quit,返回系统视图。
- (可选)执行命令aaa-authen-bypass enable time time-value,配置认证旁路时间。缺省情况下,未启用旁路认证功能。
- 配置授权方案
- 执行命令system-view,进入系统视图。
- 执行命令aaa,进入AAA视图。
- 执行命令authorization-scheme authorization-scheme-name,创建授权方案,并进入授权方案视图或直接进入一个已存在的授权方案视图。缺省情况下,设备有一个授权方案,授权方案配置名是default,不能删除,只能修改。
- 执行命令authorization-mode { local | local-case } [ none ],配置授权模式。缺省情况下,授权模式为本地授权模式,并且本地用户名不区分大小写。
- 执行命令quit,返回AAA视图。
- (可选)执行命令authorization-modify mode { modify | overlay },配置授权服务器下发的用户授权信息的生效模式。缺省情况下,授权服务器下发的用户授权信息的生效模式为overlay模式。
- 执行命令quit,返回系统视图。
- (可选)执行命令aaa-author-bypass enable time time-value,配置授权旁路时间。缺省情况下,未启用旁路授权功能。
配置业务方案
背景信息
用户需要获取授权信息才能上线,可以通过配置业务方案管理用户的授权信息。
操作步骤
- 执行命令system-view,进入系统视图。
- 执行命令aaa,进入AAA视图。
- 执行命令service-scheme service-scheme-name,创建一个业务方案并进入业务方案视图。缺省情况下,设备中没有创建业务方案。
- 执行命令admin-user privilege level level,配置用户可以作为管理员登录设备,同时指定登录时的管理员级别。level参数的取值范围是0~15。缺省情况下,未配置用户级别。
- 配置相关服务器信息。
- 执行命令redirect-acl [ ipv6 ] { acl-number | nameacl-name },在业务方案下配置重定向ACL。缺省情况下,业务方案中没有配置重定向ACL。
- 执行命令idle-cut idle-time flow-value [ inbound | outbound ],使能域用户的闲置切断功能并配置对应的闲置切断参数。缺省情况下,域用户的闲置切断功能处于未使能状态。
- 执行命令access-limit user-name max-numnumber,配置同一个用户名最多可以接入的用户数量。
AC间漫游场景下,本命令不生效。
- 执行命令priority priority-value,在业务方案下配置用户的优先级。缺省情况下,用户的优先级为0。
- 配置业务方案中控制用户网络访问策略的各种参数。
- 执行命令acl-id [ ipv6 ] acl-number ,在业务方案下绑定ACL。缺省情况下,业务方案下未绑定ACL。
执行该命令之前,需确保已使用命令acl或acl name创建了ACL;并使用命令rule配置相应的ACL规则。
各类访问策略优先级顺序为:
RADIUS服务器下发的ACL编号 > 本地配置的ACL编号 > RADIUS服务器通过编号26-82的属性HW-Data-Filter下发的ACL规则或DACL组 > RADIUS服务器下发的UCL组索引 > 本地配置的UCL组。
ACL授权优先级不区分IPv6 ACL授权还是IPv4 ACL授权。所以按照上面的优先级顺序,当服务器下发IPv4 ACL编号时,本地配置的IPv6 ACL编号不会生效。
- 执行命令ucl-group { group-index | name group-name },在业务方案下绑定UCL组。缺省情况下,业务方案下未绑定UCL组。执行该命令之前,需确保已创建并配置了标记用户类别的UCL组。
- 执行命令user-vlan vlan-id,在业务方案中配置用户VLAN。缺省情况下,在业务方案中未配置用户VLAN。执行该命令之前,需确保已使用命令vlan创建了VLAN。
- 执行命令voice-vlan在业务方案中使能Voice VLAN功能。缺省情况下,在业务方案中未使能Voice VLAN功能。为使本命令功能生效,需已使用命令voice-vlan enable配置指定VLAN为Voice VLAN,同时使能接口的Voice VLAN功能。
- 执行命令qos-profile profile-name,在业务方案中绑定QoS模板。缺省情况下,在业务方案中未绑定QoS模板。
- 执行该命令之前,需确保已配置了QoS模板。
- 配置QoS模板操作步骤(太多)。
- 仅S5731-H-K、S5731-H、S5731S-H、S5731-S、S5731S-S、S5732-H-K、S5732-H、S6730-H、S6730-H-K、S6730S-H、S6730-S、S6730S-S、S6735-S支持QoS模板。
- 执行命令sac-profileprofile-name,在业务方案中绑定SAC模板。
- 缺省情况下,在业务方案中未绑定SAC模板。
- 执行该命令之前,需确保已配置了SAC模板。配置SAC模板操作步骤如下:
- 执行命令sac-profile name profile-name,创建SAC模板并进入SAC模板视图,或进入已经存在的SAC模板视图。
- 执行命令acl { ucl-number | name acl-name } remark local-precedence local-precedence-value,配置基于用户ACL的重标记内部优先级。缺省情况下,SAC模板中没有配置基于用户ACL的重标记内部优先级。
- 执行命令quit,返回到AAA视图。
- 执行命令quit,返回到系统视图。
在域下应用AAA方案
创建的认证和授权方案,只有在域下应用后才能生效。采用本地方式进行认证和授权时,采用缺省的计费方案,即不计费。
操作步骤
- 执行命令system-view,进入系统视图。
- 执行命令aaa,进入AAA视图。
- 执行命令domain domain-name [ domain-index domain-index ],创建域并进入域视图或进入一个已存在的域视图。缺省情况下,设备存在两个域:“default”和“default_admin”。“default”用于普通接入用户的域,“default_admin”用于管理员的域。
- 用户认证时,如果输入不带域名的用户名,将到默认域认证,因此设备需通过domain domain-name [ admin ]命令设置domain-name为全局默认域。
- 用户认证时,如果输入带域名的用户名,需要带上正确的域名domain-name。
- 配置域的AAA方案。
- authentication-scheme authentication-scheme-name
- 缺省情况下,“default”域使用名为“radius”的认证方案,“default_admin”域使用名为“default”的认证方案,其他域使用名为“radius”的认证方案。
- 配置域的授权方案:authorization-scheme authorization-scheme-name
缺省情况下,域下没有绑定授权方案。
- (可选)配置本地授权规则。
- 配置域的状态和流量统计功能。
- (可选)配置流量统计功能。
- (可选)配置域名解析方案(如果在AAA视图和认证模板视图下都配置了域名解析,则优先使用认证模板上的配置。认证模板下的配置仅适用于无线用户)。
- (可选)配置无线用户的允许域(此步骤仅适用于无线用户)。
检查AAA的配置结果
- 执行命令display aaa configuration,查看AAA的概要信息。
- 执行命令display authentication-scheme [ authentication-scheme-name ],查看认证方案的配置信息。
- 执行命令display authorization-scheme [ authorization-scheme-name ],查看授权方案的配置信息。
- 查看在线接入用户的信息,可以执行以下命令:
- display access-user [ domain domain-name | interface interface-type interface-number [ vlan vlan-id [ qinq qinq-vlan-id ] ] | ip-address ip-address [ vpn-instance vpn-instance-name ] | ipv6-address ipv6-address | access-slot slot-id | wired | wireless ] [ detail ]
- display access-user username user-name [ detail ]
- display access-user ssid ssid-name(仅S5731-H、S5731-H-K、S5731S-H、S5732-H、S5732-H-K、S6730-H-K、S6730S-H和S6730-H支持本命令)
- display access-user [ mac-address mac-address | service-scheme service-scheme-name | user-id user-id | statistics ]
- display access-user access-type admin [ ftp | ssh | telnet | terminal | web ] [ username user-name ]
- 执行命令display domain [ name domain-name ],查看域的配置信息。
- 执行命令display local-user [ domain domain-name | state { active | block } | username username ] *,查看本地用户的属性信息。
- 执行命令display local-aaa-user password policy { access-user | administrator },查看本地用户的密码策略信息。
- 执行命令display local-user expire-time,查看本地用户的过期时间。
- 执行命令display aaa statistics access-type-authenreq,查看认证请求数。
- 执行命令display access-user user-name-table statistics { all | username username },查看根据用户名进行接入控制的用户统计信息。