AAA 简介
AAA是Authentication,Authorization and Accounting(认证、授权和计费)的简 称,它提供了一个对认证、授权和计费这三种安全功能进行配置的一致性框架,实 际上是对网络安全的一种管理。 这里的网络安全主要是指访问控制,包括: 1 哪些用户可以访问网络服务器。 2 具有访问权的用户可以得到哪些服务。 3 如何对正在使用网络资源的用户进行计费。 针对以上问题,AAA必须提供认证功能、授权功能和计费功能。
认证功能
AAA支持以下认证方式: z 不认证:对用户非常信任,不对其进行合法检查。一般情况下不采用这种方式。 z 本地认证:将用户信息(包括本地用户的用户名、密码和各种属性)配置在设 备上。本地认证的优点是速度快,可以降低运营成本;缺点是存储信息量受设 备硬件条件限制。 z 远端认证:支持通过RADIUS 协议或HWTACACS 协议进行远端认证,设备 (如Quidway 系列交换机)作为客户端,与RADIUS 服务器或TACACS服务 器通信。对于RADIUS 协议,可以采用标准或扩展的RADIUS 协议。
授权功能
AAA支持以下授权方式: z 直接授权:对用户非常信任,直接授权通过。 z 本地授权:根据设备上为本地用户帐号配置的相关属性进行授权。 z RADIUS 认证成功后授权:RADIUS 协议的认证和授权是绑定在一起的,不能 单独使用RADIUS 进行授权。 z HWTACACS 授权:由TACACS服务器对用户进行授权。
计费功能
AAA支持以下计费方式: z 不计费:不对用户计费。 z 远端计费:支持通过RADIUS 服务器或TACACS服务器进行远端计费。 AAA一般采用客户端/ 服务器结构:客户端运行于被管理的资源侧,服务器上集中存 放用户信息。因此,AAA框架具有良好的可扩展性,并且容易实现用户信息的集中 管理。
ISP 域简介
ISP 域即 ISP 用户群,一个 ISP 域是由属于同一个 ISP 的用户构成的用户群。 在“userid@isp-name ”形式的用户名中,“@”后的“isp-name”即为ISP 域的 域名。接入设备将“userid ”作为用于身份认证的用户名,将“isp-name”作为域 名。 在多ISP 的应用环境中,同一个接入设备接入的有可能是不同 ISP 的用户。由于各 ISP 用户的用户属性(例如用户名及密码构成、服务类型/ 权限等)有可能各不相同, 因此有必要通过设置ISP 域的方法把它们区别开。 在ISP 域视图下,可以为每个 ISP 域配置包括使用的AAA策略(使用的RADIUS 方案等)在内的一整套单独的ISP 域属性。
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所示。 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) 用户访问资源结束。
AAA&RADIUS 协议典型配置举例
Telnet/SSH 用户通过RADIUS 服务器认证的应用配置
说明: SSH用户和Telnet 用户通过RADIUS 服务器进行认证的配置方法类似,下面的描 述以Telnet 用户的远端认证为例。 1. 组网需求 在图1-7所示的环境中,需要通过配置交换机实现RADIUS 服务器对登录交换机的 Telnet 用户进行认证。 一台RADIUS 服务器(担当认证 RADIUS 服务器的职责)与交换机相连,服 务器IP 地址为 10.110.91.164; 设置交换机与认证RADIUS 服务器交互报文时的共享密钥为“expert ”。 RADIUS 服务器可使用CAMS 服务器。使用第三方 RADIUS 服务器时,RADIUS 方 案中的server-type 可以选择standard 类型或huawei类型。 在RADIUS 服务器上设置与交换机交互报文时的共享密钥为“expert ”; 设置验证的端口号; 添加Telnet 用户名及登录密码。 如果RADIUS 方案中设置交换机不从用户名中去除用户域名而是一起传给RADIUS 服务器,RADIUS 服务器上添加的Telnet 用户名应为“userid @isp-name”形式。