1.1  简介
1.1.1  AAA简介
AAA是 Authentication,Authorization and Accounting(认证、授权和计费)的简
称,它提供了一个对认证、授权和计费这三种安全功能进行配置的一致性框架,实
际上是对网络安全的一种管理。
这里的网络安全主要是指访问控制,包括:
z  哪些用户可以访问网络服务器。
z  具有访问权的用户可以得到哪些服务。
z  如何对正在使用网络资源的用户进行计费。
针对以上问题,AAA必须提供认证功能、授权功能和计费功能。
1. 认证功能
AAA支持以下认证方式:
z  不认证:对用户非常信任,不对其进行合法检查。一般情况下不采用这种方式。 
z  本地认证:将用户信息(包括本地用户的用户名、密码和各种属性)配置在设
备上。本地认证的优点是速度快,可以降低运营成本;缺点是存储信息量受设
备硬件条件限制。
z  远端认证:支持通过 RADIUS 协议或 HWTACACS 协议进行远端认证,设备
(如 Quidway系列交换机)作为客户端,与 RADIUS服务器或 TACACS服务
器通信。对于 RADIUS协议,可以采用标准或扩展的 RADIUS协议。
2. 授权功能
AAA支持以下授权方式:
z  直接授权:对用户非常信任,直接授权通过。
z  本地授权:根据设备上为本地用户帐号配置的相关属性进行授权。
z  RADIUS认证成功后授权:RADIUS协议的认证和授权是绑定在一起的,不能
单独使用 RADIUS进行授权。
z  HWTACACS授权:由 TACACS服务器对用户进行授权。  
1-2
3. 计费功能
AAA支持以下计费方式:
z  不计费:不对用户计费。
z  远端计费:支持通过 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服务包括三个组成部分:
z  协议:RFC 2865和 RFC 2866基于 UDP/IP层定义了 RADIUS帧格式及其消
息传输机制,并定义了 1812作为认证端口,1813作为计费端口。
z  服务器:RADIUS服务器运行在中心计算机或工作站上,包含了相关的用户认
证和网络服务访问信息。
z  客户端:位于拨号访问服务器设备侧,可以遍布整个网络。 
1-3
RADIUS基于客户端/服务器模型。交换机作为 RADIUS客户端,负责传输用户信息
到指定的 RADIUS服务器,然后根据从服务器返回的信息对用户进行相应处理(如
接入/挂断用户)。RADIUS服务器负责接收用户连接请求,认证用户,然后给交换
机返回所有需要的信息。
RADIUS服务器通常要维护三个数据库,如图 1-1所示。
z  第一个数据库“Users”用于存储用户信息(如用户名、口令以及使用的协议、
IP地址等配置)。
z  第二个数据库“Clients”用于存储 RADIUS客户端的信息(如共享密钥)。
z  第三个数据库“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) 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)三元组的形式提供。
z  类型(Type)域 1 个字节,取值为 1~255,用于指明属性的类型。表 1-2列
出了RADIUS授权、认证常用的属性。
z  长度(Length)域 1个字节,指明此属性的长度,单位为字节,包括类型字段、
长度字段和属性值字段。
z  属性值(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所示。
TACACS服务器
129.7.66.66
TACACS服务器
129.7.66.67
ISDN/PSTN
拨号用户 HWTACACS客户端
终端用户
 


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.安装jdk

 

 

2.安装acs服务器

 

 

3.导入H3C的用户级别的私有Radius属性到ACS

 

编写h3c.ini文件

[User Defined Vendor]

Name=Huawei

IETF Code=2011

VSA 29=hw_Exec_Privilege

[hw_Exec_Privilege]

Type=INTEGER

Profile=IN OUT

Enums=hw_Exec_Privilege-Values

[hw_Exec_Privilege-Values]

0=Access

1=Monitor

2=Manager

3=Administrator

在cmd中导入:

 

4.配置ACS

打开ACS,进入User Setup

进入Group Setup 配置

将6,15,64,64,81前面的勾打上

选Admin选项

设置Network Configuration

 

结果测试:

用户user2登录成功,权限级别“0”