1.1 简介
1.1.1 AAA简介
AAA是Authentication,Authorization and Accounting(认证、授权和计费)的简称,它提供了一个对认证、授权和计费这三种安全功能进行配置的一致性框架,实际上是对网络安全的一种管理。
这里的网络安全主要是指访问控制,包括:
哪些用户可以访问网络服务器。
具有访问权的用户可以得到哪些服务。
如何对正在使用网络资源的用户进行计费。
针对以上问题,AAA必须提供认证功能、授权功能和计费功能。
1. 认证功能
AAA支持以下认证方式:
不认证:对用户非常信任,不对其进行合法检查。一般情况下不采用这种方式。
本地认证:将用户信息(包括本地用户的用户名、密码和各种属性)配置在设备上。本地认证的优点是速度快,可以降低运营成本;缺点是存储信息量受设备硬件条件限制。
远端认证:支持通过RADIUS协议或HWTACACS协议进行远端认证,设备(如Quidway系列交换机)作为客户端,与RADIUS服务器或TACACS服务器通信。对于RADIUS协议,可以采用标准或扩展的RADIUS协议。
2. 授权功能
AAA支持以下授权方式:
直接授权:对用户非常信任,直接授权通过。
本地授权:根据设备上为本地用户帐号配置的相关属性进行授权。
RADIUS认证成功后授权:RADIUS协议的认证和授权是绑定在一起的,不能单独使用RADIUS进行授权。
HWTACACS授权:由TACACS服务器对用户进行授权。
3. 计费功能
AAA支持以下计费方式:
不计费:不对用户计费。
远端计费:支持通过RADIUS服务器或TACACS服务器进行远端计费。
AAA一般采用客户端/服务器结构:客户端运行于被管理的资源侧,服务器上集中存放用户信息。因此,AAA框架具有良好的可扩展性,并且容易实现用户信息的集中管理。
1.1.2 ISP域简介
ISP域即ISP用户群,一个ISP域是由属于同一个ISP的用户构成的用户群。
在“userid@isp-name”形式的用户名中,“@”后的“isp-name”即为ISP域的域名。接入设备将“userid”作为用于身份认证的用户名,将“isp-name”作为域名。
在多ISP的应用环境中,同一个接入设备接入的有可能是不同ISP的用户。由于各ISP用户的用户属性(例如用户名及密码构成、服务类型/权限等)有可能各不相同,因此有必要通过设置ISP域的方法把它们区别开。
在ISP域视图下,可以为每个ISP域配置包括使用的AAA策略(使用的RADIUS方案等)在内的一整套单独的ISP域属性。
1.1.3 RADIUS协议简介
AAA是一种管理框架,因此,它可以用多种协议来实现。在实践中,人们最常使用RADIUS协议来实现AAA。
1. 什么是RADIUS
RADIUS(Remote Authentication Dial-In User Service,远程认证拨号用户服务)是一种分布式的、客户端/服务器结构的信息交互协议,能保护网络不受未授权访问的干扰,常被应用在既要求较高安全性,又要求维持远程用户访问的各种网络环境中。
RADIUS服务包括三个组成部分:
协议:RFC 2865和RFC 2866基于UDP/IP层定义了RADIUS帧格式及其消息传输机制,并定义了1812作为认证端口,1813作为计费端口。
服务器:RADIUS服务器运行在中心计算机或工作站上,包含了相关的用户认证和网络服务访问信息。
客户端:位于拨号访问服务器设备侧,可以遍布整个网络。
RADIUS基于客户端/服务器模型。交换机作为RADIUS客户端,负责传输用户信息到指定的RADIUS服务器,然后根据从服务器返回的信息对用户进行相应处理(如接入/挂断用户)。RADIUS服务器负责接收用户连接请求,认证用户,然后给交换机返回所有需要的信息。
RADIUS服务器通常要维护三个数据库,如图1-1所示。
第一个数据库“Users”用于存储用户信息(如用户名、口令以及使用的协议、IP地址等配置)。
第二个数据库“Clients”用于存储RADIUS客户端的信息(如共享密钥)。
第三个数据库“Dictionary”存储的信息用于解释RADIUS协议中的属性和属性值的含义。
另外,RADIUS服务器还能够作为其他AAA服务器的客户端进行代理认证或计费。
2. RADIUS的基本消息交互流程
RADIUS客户端(交换机)和RADIUS服务器之间通过共享密钥来认证交互的消息,增强了安全性。RADIUS协议合并了认证和授权过程,即响应报文中携带了授权信息。用户、交换机、RADIUS服务器之间的交互流程如图1-2所示。
基本交互步骤如下:
(1) 用户输入用户名和口令。
(2) RADIUS客户端根据获取的用户名和口令,向RADIUS服务器发送认证请求包(Access-Request)。
(3) RADIUS服务器将该用户信息与Users数据库信息进行对比分析,如果认证成功,则将用户的权限信息以认证响应包(Access-Accept)发送给RADIUS客户端;如果认证失败,则返回Access-Reject响应包。
(4) RADIUS客户端根据接收到的认证结果接入/拒绝用户。如果可以接入用户,则RADIUS客户端向RADIUS服务器发送计费开始请求包(Accounting-Request),Status-Type取值为start。
(5) RADIUS服务器返回计费开始响应包(Accounting-Response)。
(6) 用户开始访问资源。
(7) RADIUS客户端向RADIUS服务器发送计费停止请求包(Accounting-Request),Status-Type取值为stop。
(8) RADIUS服务器返回计费结束响应包(Accounting-Response)。
(9) 用户访问资源结束。
3. RADIUS协议的报文结构
RADIUS协议采用UDP报文来承载数据,通过定时器管理机制、重传机制、备用服务器机制,确保RADIUS服务器和客户端之间交互消息正确收发。RADIUS报文结构如图1-3所示。
(1) Code域(1字节)决定RADIUS报文的类型,如表1-1所示。
(2) Identifier域(1字节)用于匹配请求包和响应包,随着Attribute域改变、接收到有效响应包而不断变化,而在重传时保持不变化。
(3) Length域(2字节)指明整个包的长度,内容包括Code,Identifier,Length,Authenticator和Attribute。超过长度域的字节被视为填充,在接收时应被忽略;如果包比长度域所指示的短时,则应被丢弃。
(4) Authenticator域(16字节)用于验证RADIUS服务器传输回来的报文,并且还用于密码隐藏算法中,分为Request Authenticator和Response Authenticator。
(5) Attribute域携带专门的认证、授权和计费信息,提供请求和响应报文的配置细节,该域采用(Type、Length、Value)三元组的形式提供。
类型(Type)域1个字节,取值为1~255,用于指明属性的类型。表1-2列出了RADIUS授权、认证常用的属性。
长度(Length)域1个字节,指明此属性的长度,单位为字节,包括类型字段、长度字段和属性值字段。
属性值(Value)域包括该属性的信息,其格式和内容由类型域和长度域决定,最大长度为253字节
RADIUS协议具有良好的可扩展性,协议中定义的26号属性(Vendor-Specific)用于设备厂商对RADIUS进行扩展,以实现标准RADIUS没有定义的功能。
如图1-4所示的报文结构,Vendor-ID域占4字节,表示厂商代号,最高字节为0,其余3字节的编码见RFC1700。厂商可以封装多个自己定义的“(Type、Length、Value)”子属性,从而在应用中得以扩展。
1.1.4 HWTACACS协议简介
1. HWTACACS特性
HWTACACS(HUAWEI Terminal Access Controller Access Control System)是在TACACS(RFC 1492)基础上进行了功能增强的安全协议。该协议与RADIUS协议类似,主要是通过Client-Server模式与TACACS服务器通信来实现多种用户的AAA功能,可用于PPP和VPDN接入用户及终端用户的认证、授权和计费。
与RADIUS相比,HWTACACS具有更加可靠的传输和加密特性,更加适合于安全控制。HWTACACS协议与RADIUS协议的主要区别如表1-3所示。
HWTACACS的典型应用是拨号用户或终端用户需要登录到设备上进行操作。交换机作为HWTACACS的客户端,将用户名和密码发给TACACS服务器进行验证,验证通过并得到授权之后可以登录到交换机上进行操作。如图1-5所示。
2. HWTACACS的基本消息交互流程
以Telnet用户为例,说明使用HWTACACS对用户进行认证、授权和计费。基本消息交互流程图如图1-6所示。
在整个过程中的基本消息交互流程如下:
(1) 用户请求登录交换机,TACACS客户端收到请求之后,向TACACS服务器发送认证开始报文。
(2) TACACS服务器发送认证回应报文,请求用户名;TACACS客户端收到回应报文后,向用户询问用户名。
(3) TACACS客户端收到用户名后,向TACACS服务器发送认证持续报文,其中包括了用户名。
(4) TACACS服务器发送认证回应报文,请求登录密码;TACACS客户端收到回应报文,向用户询问登录密码。
(5) TACACS客户端收到登录密码后,向TACACS服务器发送认证持续报文,其中包括了登录密码。
(6) TACACS服务器发送认证回应报文,指示用户通过认证。
(7) TACACS客户端向TACACS服务器发送授权请求报文。
(8) TACACS服务器发送授权回应报文,指示用户通过授权。
(9) TACACS客户端收到授权回应成功报文,向用户输出交换机的配置界面。
(10) TACACS客户端向TACACS服务器发送计费开始报文。
(11) TACACS服务器发送计费回应报文,指示计费开始报文已经收到。
(12) 用户退出,TACACS客户端向TACACS服务器发送计费结束报文。
(13) TACACS服务器发送计费回应报文,指示计费结束报文已经收到。
1.2 配置任务简介
1.3 配置AAA
需要为合法用户提供网络接入服务,同时对网络设备进行保护,防止非授权访问和抵赖行为,需要配置AAA。当需要通过ISP域来对接入用户进行AAA等管理时,需要配置ISP域。
1.3.1 配置准备
如果采用远端认证、授权或计费方案时,需要已经创建RADIUS或HWTACACS方案。
RADIUS方案(radius-scheme):可以通过引用配置好的RADIUS方案来实现认证、授权、计费。有关RADIUS方案的配置请参见“1.4 配置RADIUS协议。”
HWTACACS方案(hwtacacs-scheme):可以通过引用配置好的HWTACACS方案来实现认证、授权、计费。有关HWTACACS方案的配置请参见“1.5 配置HWTACACS协议。”
1.3.2 创建ISP域
1.3.3 配置ISP域的属性
注意:
对于交换机,每个接入用户都属于一个ISP域。如果某个用户在登录时没有携带ISP域名,则交换机将它归于缺省的ISP域。
在对用户实施计费时,当发现没有可用的计费服务器或与计费服务器通信失败时,只要用户配置了accounting optional命令,即使无法实施计费,也不会挂断用户。
自助服务器定位功能需要与支持自助服务的RADIUS服务器配合使用,如CAMS。自助服务即用户可以对自己的帐号或卡号进行管理和控制。安装自助服务软件的服务器即自助服务器。
说明:
CAMS服务器是华为公司提供的业务管理系统,支持与交换机等网络产品共同组网,完成终端用户的认证、授权、计费和权限管理等功能,实现网络的可管理、可运营,保证网络和用户信息的安全。
1.3.4 配置ISP域的AAA方案
用户可以通过两种方式配置认证、授权、计费方案:
1. 认证、授权、计费捆绑方式
采用这种方式时,用户通过scheme命令指定具体的AAA方案。若采用RADIUS或HWTACACS方案,认证、授权、计费统一由RADIUS或HWTACACS方案中指定的RADIUS或TACACS服务器来完成,即认证、授权、计费不能分别指定不同的方案。
注意:
用户可以通过引用配置好的radius-scheme-name来实现认证、授权、计费,而采用本地认证方案时只能进行认证、授权,无法实现计费。
如果scheme命令配置了radius-scheme radius-scheme-name local参数,则local为RADIUS服务器没有正常响应后的备选认证方案,即当RADIUS服务器有效时,不使用本地认证;当RADIUS服务器无效时,使用本地认证。
如果local或者none作为第一方案,那么只能采用本地认证或者不进行认证,不能再同时采用RADIUS方案。
如果scheme命令配置了hwtacacs-scheme hwtacacs-scheme-name local参数,则local为TACACS服务器没有正常响应后的备选认证方案,即当TACACS服务器有效时,不使用本地认证;当TACACS服务器无效时,使用本地认证。
如果配置的认证方式为scheme none,则用户登录到系统后所能访问的命令级别为0。
2. 认证、授权、计费分离方式
采用这种方式时,用户可以通过authentication、authorization、accounting这三条命令分别指定认证、授权、计费方案。认证、授权、计费分离方式中对于AAA支撑的各种业务的具体实现如下:
对于终端用户
认证采用:RADIUS,local,RADIUS-local或者none。
授权采用:none。
计费采用:RADIUS或者none。
用户可以参照上面的实现任意组合配置认证、授权和计费的方案。
对于FTP用户
对于FTP用户仅支持认证。
认证采用:RADIUS,local,RADIUS-local。
请在ISP域视图下进行下列配置。
表1-8 配置ISP域的AAA
说明:
如果在配置了认证、授权、计费分离方案的同时还配置了认证、授权、计费捆绑方案,优先使用认证、授权、计费分离方案。
由于RADIUS方案与local方案不支持认证和授权的分离,在配置认证、授权时应注意:当域中配置了scheme radius-scheme命令或者scheme local命令,且没有同时配置authentication命令时,此时如果配置了authorization none,RADIUS方案和local方案返回的授权信息仍然有效。
1.3.5 配置动态VLAN下发特性
动态VLAN下发是指以太网交换机根据RADIUS服务器下发的属性值,将已经通过身份认证的用户所在的端口动态地加入到不同的VLAN中,从而对用户所能访问的网络资源进行控制。
目前交换机支持RADIUS认证服务器下发整型和字符串型的VLAN ID:
整型:交换机根据RADIUS认证服务器下发的整型ID将端口加入相应VLAN中,如果该VLAN不存在,则首先创建VLAN,而后将端口加入到新创建的VLAN中。
字符串型:交换机根据RADIUS认证服务器下发的字符串型ID,与交换机上已存在VLAN的名称进行比对,如果找到匹配项,则将该端口加入相应VLAN中,否则VLAN下发失败,用户无法通过认证。
交换机支持两种模式的动态VLAN下发的是为了适应认证服务器而设置的。不同的认证服务器下发方式不同,建议用户根据所使用的服务器动态VLAN下发的格式来对设备进行配置。
这里列出几种常用的服务器的下发模式:
在实际应用中,为了与Guest VLAN配合使用,一般将端口控制方式设置为基于端口的方式;如果将端口控制方式设置为基于MAC地址的方式,则每个端口下面只能连接一个用户。
注意:
对于字符串型VLAN下发模式,交换机在处理过程中遵循整型优先的原则:如果RADIUS服务器下发的VLAN名称是全数字的字符串,如字符串“1024”,并且转换成整型的数值在合法的VLAN范围之内,则交换机会将全数字型的字符串转换为整型处理,将认证端口加入转换后的整型数值VLAN中,即该端口会被加入到VLAN 1024中。
同时启用了MSTP多实例和802.1x的端口,如果需要实现动态VLAN下发功能,则要将MSTP端口设置为边缘端口。
802.1x认证应用动态VLAN下发特性时,如果要下发的VLAN在设备上已经存在并且是动态VLAN,则无法下发成功,用户认证失败。
1.3.6 配置本地用户的属性
当AAA方案选择了本地认证方案(local)时,应在交换机上创建本地用户并配置相关属性。
所谓本地用户,是指在交换机上设置的一组用户的集合。该集合以用户名为用户的唯一标识。为使某个请求网络服务的用户可以通过本地认证,需要在交换机上的本地用户数据库中添加相应的表项。
注意:
当采用local-user password-display-mode cipher-force命令后,即使用户通过password命令指定密码显示方式为明文显示(即simple方式)后,密码也会显示为密文。
如果配置的认证方式需要用户名和口令(包括本地认证和RADIUS认证),则用户登录系统后所能访问的命令级别由用户的优先级确定。对于SSH用户,使用RSA公钥认证时,其所能使用的命令以用户界面上设置的级别为准。
如果配置的认证方式为不认证或采用password认证,则用户登录到系统后所能访问的命令级别由用户界面的优先级确定。
1.3.7 配置强制切断用户连接
说明:
对于Telnet、FTP类型登录用户,可以通过display connection命令查看到连接,但是不能通过cut connection命令切断连接。