一.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 协议中的属性和属性值的含义。
图1-1 RADIUS 服务器的组成
另外,RADIUS 服务器还能够作为其他AAA 服务器的客户端进行代理认证或计费。
2. RADIUS 的基本消息交互流程
RADIUS 客户端(交换机)和RADIUS 服务器之间通过共享密钥来认证交互的消息,
增强了安全性。RADIUS 协议合并了认证和授权过程,即响应报文中携带了授权信息。用户、交换机、RADIUS 服务器之间的交互流程如图1-2所示。
图1-2 RADIUS 的基本消息交互流程
基本交互步骤如下:
(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) 用户访问资源结束。
RADIUS 协议采用UDP报文来承载数据,通过定时器管理机制、重传机制、备用服务器机制,确保RADIUS 服务器和客户端之间交互消息正确收发。
RADIUS 协议具有良好的可扩展性,协议中定义的 26号属性(Vendor-Specific)用于设备厂商对RADIUS 进行扩展,以实现标准RADIUS 没有定义的功能。
3.配置RADIUS 协议
RADIUS 协议配置是以RADIUS 方案为单位进行的,一个RADIUS 方案在实际组网环境中既可以运用于一台独立的RADIUS 服务器,也可以运用于两台配置相同、但IP 地址不同的主、从 RADIUS 服务器。当创建一个新的 RADIUS 方案之后,需要对属于此方案的RADIUS 服务器的IP 地址和UDP端口号进行设置,这些服务器包括认证/ 授权和计费服务器,而每种服务器又有主服务器和从服务器的区别。每个RADIUS 方案的属性包括:主服务器的IP 地址、从服务器的IP 地址、共享密钥以及RADIUS 服务器类型等。 在实际组网环境中,上述参数的设置需要根据具体需求来决定。但是必须至少设置一个认证/ 授权服务器和一个计费服务器(如果不配置计费服务器,则必须配accounting optional 命令)。同时,保证交换机上的RADIUS 服务端口设置与RADIUS 服务器上的端口设置保持一致。
二.实例分析: 拓扑图
下面是使用ACS来实现的一个实例。
1.准备安装所需的应用程序等。
JAVA虚拟机,Cisco Secure ACS(在这里使用4.2版本的来实现安装),一台装有windows server 2003的电脑(或虚拟机);
2.安装JAVA虚拟机。
3.安装Cisco Secure ACS 4.2
进入ACS安装文件夹,双击“Setup.exe”来进行安装。过程如下:
接受协议并开始安装
单击“下一步”
这里要全部选中,单击“下一步”
这里最好就选择默认路径,单击“下一步”
直接“下一步”
显示进程
注意,这里可以什么都不选,“下一步”
单击“下一步”
这里要求输入密码,不能小于8个字符,
单击“下一步”,进行安装
开始启动服务,完成。
安装ACS就已经完成,在桌面上我们会发现一个“ACS Admin”的网页快捷图标,双击打开却出现白板,这是什么原因呢?下面我们一起来解决。
进入“Internet选项”,如图,将127.0.0.1添加到可信任的站点。
重新打开“ACS Admin”,我们看见可以运行了。
在服务器上面进入ACS,点击“Administrator Control”然后来添加一个新的管理员。
添加一个管理员为cms,密码123456,在下面选择“Grant All”如下
将h3c.ini导入ciscosecure -ACS-4.20.124服务器,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
在网络中进行设置
进入Interface Configration,可以看到如下内容。
进入group setup编辑如下内容。
在group中增加相应的用户test1
4.配置华为的交换机,配置米命令如下。
<SW12>dis cu
#
sysname aaa
#
radius scheme system
server-type huawei
primary authentication 127.0.0.1 1645
primary accounting 127.0.0.1 1646
user-name-format without-domain
radius scheme abc
server-type huawei
primary authentication 192.168.100.156 1812
accounting optional
key authentication 123456
user-name-format without-domain
domain system
radius-scheme system
access-limit disable
state active
vlan-assignment-mode integer
idle-cut disable
self-service-url disable
messenger time disable
domain zzu
radius-scheme abc
access-limit enable 10
state active
vlan-assignment-mode integer
idle-cut disable
self-service-url disable
messenger time disable
domain default enable system
#
local-server nas-ip 127.0.0.1 key huawei
local-user user1
password simple 123
service-type telnet level 3
#
vlan 1
#
interface Vlan-interface1
ip address 192.168.100.32 255.255.255.0
#
interface Aux0/0
#
interface Ethernet0/1
#
interface Ethernet0/2
#
interface Ethernet0/3
#
interface Ethernet0/4
#
interface Ethernet0/5
#
interface Ethernet0/6
user-interface aux 0
user-interface vty 0 4
authentication-mode scheme
#
return
<SW12>
在客户机上进行验证,如下。
小结:安装ACS一定要安装java,注意修改安全级别。