AAA 的基本构架
AAA 通常采用“客户端—服务器”结构。这种结构既具有良好的可扩展性,又便于集中管理用户 信息。如图 1 所示。
图 1 AAA 的基本构架示意图
认证
不认证:对用户非常信任,不对其进行合法检查,一般情况下不采用这种方式。
本地认证:将用户信息配置在网络接入服务器上。本地认证的优点是速度快,可以为运营降 低成本,缺点是存储信息量受设备硬件条件限制。
远端认证:将用户信息配置在认证服务器上。支持通过 RADIUS(Remote Authentication Dial In User Service)协议或 HWTACACS(HuaWei Terminal Access Controller Access Control System)协议进行远端认证。
授权
AAA 支持以下授权方式:
不授权:不对用户进行授权处理。
本地授权:根据网络接入服务器为本地用户账号配置的相关属性进行授权。
HWTACACS 授权:由 HWTACACS 服务器对用户进行授权。
if-authenticated 授权:如果用户通过了认证,而且使用的认证模式是本地或远端认证,则用户 授权通过。
RADIUS 认证成功后授权:RADIUS 协议的认证和授权是绑定在一起的,不能单独使用 RADIUS 进行授权。
计费
AAA 支持以下计费方式:
不计费:不对用户计费。
远端计费:支持通过 RADIUS 服务器或 HWTACACS 服务器进行远端计费。
RADIUS 协议
远程认证拨号用户服务 RADIUS(Remote Authentication Dial-In User Service)是一种分布式的、客 户端/服务器结构的信息交互协议,能保护网络不受未授权访问的干扰,常应用在既要求较高安全 性、又允许远程用户访问的各种网络环境中。该协议定义了基于 UDP 的 RADIUS 帧格式及其消息 传输机制,并规定 UDP 端口 1812、1813 分别作为认证、计费端口。
RADIUS 最初仅是针对拨号用户的 AAA 协议,后来随着用户接入方式的多样化发展,RADIUS 也 适应多种用户接入方式,如以太网接入、ADSL 接入。它通过认证授权来提供接入服务,通过计费 来收集、记录用户对网络资源的使用。
RADIUS 服务器
RADIUS 服务器一般运行在中心计算机或工作站上,维护相关的用户认证和网络服务访问信息,负 责接收用户连接请求并认证用户,然后给客户端返回所有需要的信息(如接受/拒绝认证请求)。
RADIUS 服务器通常要维护三个数据库,如图 1 所示:
图 1 RADIUS 服务器的组成
“Users”:用于存储用户信息(如用户名、口令以及使用的协议、IP 地址等配置信息)。
“Clients”:用于存储 RADIUS 客户端的信息(如接入设备的共享密钥、IP 地址等)。
“Dictionary”:用于存储 RADIUS 协议中的属性和属性值含义的信息。
RADIUS 客户端
RADIUS 客户端一般位于网络接入服务器 NAS(Network Access Server)设备上,可以遍布整个网 络,负责传输用户信息到指定的 RADIUS 服务器,然后根据从服务器返回的信息进行相应处理(如 接受/拒绝用户接入)。
网络接入服务器作为 RADIUS 协议的客户端,实现以下功能:
标准 RADIUS 协议及扩充属性,包括 RFC2865、RFC2866。
华为扩展的私有属性。
对 RADIUS 服务器状态的主动探测功能。
计费结束报文的本地缓存重传功能。
RADIUS 服务器的自动切换功能。
安全机制
RADIUS 客户端和 RADIUS 服务器之间认证消息的交互是通过共享密钥的参与来完成的,并且共 享密钥不能通过网络来传输,增强了信息交互的安全性。另外,为防止用户密码在不安全的网络上 传递时被窃取,在传输过程中对密码进行了加密。
认证和计费消息流程
RADIUS 客户端与服务器间的消息流程如图 2 所示。
用户登录网络接入服务器时,会将用户名和密码发送给该网络接入服务器;
该网络接入服务器中的 RADIUS 客户端接收用户名和密码,并向 RADIUS 服务器发送认证请 求;
RADIUS 服务器接收到合法的请求后,完成认证,并把所需的用户授权信息返回给客户端; 对于非法的请求,RADIUS 服务器返回认证失败的信息给客户端。
图 2 RADIUS 客户端与服务器间的消息流程
计费的消息流程和认证/授权的消息流程类似。
HWTACACS 协议
HW 终端访问控制器控制系统协议 HWTACACS(Huawei Terminal Access Controller Access Control System)是在 TACACS(RFC 1492)基础上进行了功能增强的安全协议。该协议与 RADIUS 协议 类似,采用客户端/服务器模式实现 NAS 与 HWTACACS 服务器之间的通信。
HWTACACS 协议主要用于点对点协议 PPP(Point-to-Point Protocol)和虚拟私有拨号网络 VPDN (Virtual Private Dial-up Network)接入用户及终端用户的认证、授权和计费。其典型应用是对需要 登录到设备上进行操作的终端用户进行认证、授权、计费。设备作为 HWTACACS 的客户端,将 用户名和密码发给 HWTACACS 服务器进行验证。用户验证通过并得到授权之后可以登录到设备 上进行操作。
HWTACACS 协议和 RADIUS 协议的比较
HWTACACS 协议与 RADIUS 协议都实现了认证、授权、计费的功能,它们有很多相似点:结构 上都采用客户端/服务器模式;都使用公共密钥对传输的用户信息进行加密;都有较好的灵活性和 可扩展性。
与 RADIUS 相比,HWTACACS 具有更加可靠的传输和加密特性,更加适合于安全控制。 HWTACACS 协议与 RADIUS 协议的主要区别如表 1 所示。
HWTACACS 的基本消息交互流程
下面以 Telnet 用户为例,说明使用 HWTACACS 对用户进行认证、授权和计费的过程。基本消息交 互流程图如图 1 所示。 图 1 HWTACACS 的基本消息交互流程图
在整个过程中的基本消息交互流程如下:
1. Telnet 用户请求登录设备。
2. HWTACACS 客户端收到请求之后,向 HWTACACS 服务器发送认证开始报文。
3. HWTACACS 服务器发送认证回应报文,请求用户名。
4. HWTACACS 客户端收到回应报文后,向用户询问用户名。
5. 用户输入用户名。
6. HWTACACS 客户端收到用户名后,向 HWTACACS 服务器发送认证持续报文,其中包括了 用户名。
7. HWTACACS 服务器发送认证回应报文,请求登录密码。
8. HWTACACS 客户端收到回应报文,向用户询问登录密码。
9. 用户输入密码。
10. HWTACACS 客户端收到登录密码后,向 HWTACACS 服务器发送认证持续报文,其中包括 了登录密码。
11. HWTACACS 服务器发送认证回应报文,指示用户通过认证。
12. HWTACACS 客户端向 HWTACACS 服务器发送授权请求报文。
13. HWTACACS 服务器发送授权回应报文,指示用户通过授权。
14. HWTACACS 客户端收到授权回应成功报文,向用户输出设备的配置界面。
15. HWTACACS 客户端向 HWTACACS 服务器发送计费开始报文。
16. HWTACACS 服务器发送计费回应报文,指示计费开始报文已经收到。
17. 用户请求断开连接。
18. HWTACACS 客户端向 HWTACACS 服务器发送计费结束报文。
19. HWTACACS 服务器发送计费结束报文回应,指示计费结束报文已经收到。
说明:
HWTACACS 协议与其他厂商支持的 TACACS+协议都实现了认证、授权、计费的功能。HWTACACS 和 TACACS+的认证流程与实现方式是一致的,HWTACACS 协议能够完全兼容 TACACS+协议。
6.4.4 基于域的用户管理
一个域是由属于同一个域的用户构成的群体。
NAS 设备对用户的管理是基于域的,每个接入用户都属于一个域。用户所属的域是由用户登录时 提供的用户名决定的,如图 1 所示。
用户的认证、授权、计费都是在相应的域视图下应用预先配置的认证、授权、计费方案来实现的。 AAA 有缺省的认证、授权、计费方案,分别为本地认证、本地授权、本地计费。如果用户所属的 域下未应用任何认证、授权、计费方案,系统将使用缺省的认证、授权、计费方案。