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所示。
image

 

第一个数据库“Users”用于存储用户信息(如用户名、口令以及使用的协议、
IP 地址等配置)。
第二个数据库“Clients”用于存储 RADIUS 客户端的信息(如共享密钥)。
第三个数据库“Dictionary”存储的信息用于解释 RADIUS 协议中的属性和属
性值的含义。
RADIUS Server
Users
Clients
Dictionary
图1-1 RADIUS 服务器的组成
另外,RADIUS 服务器还能够作为其他 AAA 服务器的客户端进行代理认证或计费。
2. RADIUS 的基本消息交互流程
RADIUS客户端(交换机)和RADIUS服务器之间通过共享密钥来认证交互的消息,
增强了安全性。RADIUS协议合并了认证和授权过程,即响应报文中携带了授权信
息。用户、交换机、RADIUS服务器之间的交互流程如图 1-2所示。

image 

基本交互步骤如下:
(1)
(2)
用户输入用户名和口令。
RADIUS 客户端根据获取的用户名和口令,向 RADIUS 服务器发送认证请求
包(Access-Request)。
(3)
RADIUS 服务器将该用户信息与 Users 数据库信息进行对比分析,如果认证成
功,则将用户的权限信息以认证响应包(Access-Accept)发送给 RADIUS 客
户端;如果认证失败,则返回 Access-Reject 响应包。
(4)
RADIUS 客户端根据接收到的认证结果接入/拒绝用户。如果可以接入用户,
则 RADIUS 客 户 端 向 RADIUS 服 务 器 发 送 计 费 开 始 请 求 包
(Accounting-Request),Status-Type 取值为 start。
(5)
(6)
(7)
RADIUS 服务器返回计费开始响应包(Accounting-Response)。
用户开始访问资源。
RADIUS 客 户 端 向
RADIUS 服 务 器 发 送 计 费 停 止 请 求 包
(Accounting-Request),Status-Type 取值为 stop。
(8)
(9)
RADIUS 服务器返回计费结束响应包(Accounting-Response)。
用户访问资源结束。
3. RADIUS 协议的报文结构
RADIUS协议采用UDP报文来承载数据,通过定时器管理机制、重传机制、备用服
务器机制,确保RADIUS服务器和客户端之间交互消息正确收发。RADIUS报文结构
如图 1-3所示。

image

图1-3 RADIUS 报文结构

(1) Code 域(1 字节)决定RADIUS 报文的类型,如表1-1所示。

表1-1 Code域主要取值的说明

image 

(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 字节。

image

image

RADIUS 协议具有良好的可扩展性,协议中定义的 26 号属性(Vendor-Specific)用
于设备厂商对 RADIUS 进行扩展,以实现标准 RADIUS 没有定义的功能。
如图 1-4所示的报文结构,Vendor-ID域占 4 字节,表示厂商代号,最高字节为 0,
其余 3 字节的编码见RFC1700。厂商可以封装多个自己定义的“(Type、Length、
Value)”子属性,从而在应用中得以扩展。

image

          案例:关于利用radius 实现对用户telnet的控制: 认证服务器是思科的ACS。 拓扑图:

image

配置交换机:

 

radius schme xxx

primary authentication 192.168.100.1

key authentication 123456

user-name-format without-domain

accounting optional

server-type standard

 

 

 

domain tec

radius-scheme xxx

access-limit enable 10

accounting optional

 

 

 

interface vlan 1

ip address 192.168.100.2  255.255.255.0

 

 

 

 

acs server:

应先安装java环境 ,然后安装acs

 

安装完成后:导入h3c的私有radius 属性:

1. 新建文件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

2. 进入dos,在安装目录下导入

cd c:\Program Files\CiscoSecure ACS v4.0\bin

CSVtil –add UDV 0  d:\h3c.ini    并选择Y

image

(3) 查看是否成功

image

 

创建用户

image

只是简单实验,输入用户名密码即可

image

image

接口配置:

image

image

 

组设置:

image

 

 image

image

image

网络设置:

client:

image

image

server:

 

 

用户user2 登陆成功:

clip_image009

用户asd登陆成功;

clip_image011