AAA 及RADIUS协议配置

 

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 服务器发送计费回应报文,指示计费结束报文已经收到。

 案例:思科认证服务器ACS在华为设备中的应用。

客户机telnet到交换机时,能够实现采用ACS服务器的验证,其身份是admin。

拓扑图如下:

 交换机的配置:

radius scheme xxx
primary authen 192.168.100.100
key authentication 123456
user-name -formatt without-domain
accounting option 
server-type standard
quit
domain tec
radius-scheme xxx
access-limit enable 10
accouting option
quit

vlan 1
#
interface Vlan-interface1                
ip address 192.168.100.25 255.255.255.0

AAA服务器

ACS的配置

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”