AAA
对于任何网络,用户管理都是最基本的安全管理要求之一。
AAA(Authentication, Authorization, and Accounting)是一种管理框架,它提供了授权部分用户访问指定资源和记录这些用户操作行为的安全机制。因其具有良好的可扩展性,并且容易实现用户信息的集中管理而被广泛使用。AAA可以通过多种协议来实现,在实际应用中,最常使用RADIUS (Remote Authentication Dial-In User Service)协议。
AAA概述
网络运营商(ISP)需要验证家庭宽带用户的账号密码之后才允许其上网,并记录用户的上网时长或上网流量等内容,这就是AAA技术最常见的应用场景。
AAA常见架构
AAA常见网络架构中包括用户、NAS(Network Access Server)、AAA服务器(AAA Server)。
NAS基于域来对用户进行管理,每个域都可以配置不同的认证、授权和计费方案,用于对该域下的用户进行认证、授权和计费。
每个用户都属于某一个域。用户属于哪个域是由用户名中的域名分隔符@后的字符串决定。例如,如果用户名是user1@domain1,则用户属于domain1域。如果用户名后不带有@,则用户属于系统缺省域(default)。
认证(Authentication)
AAA支持的认证方式有:不认证,本地认证,远端认证。
AAA支持三种认证方式:
授权(Authorization)
AAA支持的授权方式有:不授权,本地授权,远端授权。
授权信息包括:所属用户组、所属VLAN、ACL编号等。
AAA授权功能赋予用户访问的特定网络或设备的权限。AAA支持以下授权方式:
当采用远端授权时,用户可以同时从授权服务器和NAS获取授权信息。NAS配置的授权信息优先级比授权服务器下发的授权信息低。
计费(Accouting)
计费功能用于监控授权用户的网络行为和网络资源的使用情况。
AAA支持的计费方式有:不计费,远端计费。
AAA支持以下两种计费方式:
AAA实现协议 - RADIUS
AAA可以用多种协议来实现,最常用的是RADIUS协议。
AAA可以用多种协议来实现,最常用的是RADIUS协议。RADIUS是一种分布式的、客户端/服务器结构的信息交互协议,可以实现对用户的认证、计费授权功能。
通常由NAS作为RADIUS客户端,负责传输用户信息到指定的RADIUS服务器,然后根据从服务器返回的信息进行相应处理(如接受/拒绝用户接入)。
RADIUS服务器一般运行在中心计算机或工作站上,维护相关的用户认证和网络服务访问信息,负责接收用户连接请求并认证用户,然后给客户端返回所有需要的信息(如接受/拒绝认证请求)。RADIUS使用UDP(User Datagram Protocol)作为传输协议,并规定UDP端口1812、1813分别作为认证、计费端口,具有良好的实时性;同时也支持重传机制和备用服务器机制,从而具有较好的可靠性。
HWTACACS是一种集中式的、客户端/服务器结构的信息交互协议,使用TCP协议传输,TCP端口号为49。HWTACACS提供的认证、授权和计费服务相互独立,能够在不同的服务器上实现。
RADIUS客户端与服务器间的消息流程如下:
AAA常见应用场景
- RADIUS客户端通知用户访问结束,用户结束访问网络资源。
- RADIUS客户端向RADIUS服务器提交计费结束请求报文。
- RADIUS服务器返回计费结束响应报文,并停止计费。
- 当用户接入网络时,用户发起连接请求,向RADIUS客户端(即NAS)发送用户名和密码。
- RADIUS客户端向RADIUS服务器发送包含用户名和密码信息的认证请求报文。
- RADIUS服务器接收到合法的请求后,完成认证,并把所需的用户授权信息返回给客户端;对于非法的请求,RADIUS服务器返回认证失败的信息给客户端。
- RADIUS客户端通知用户认证是否成功。
- RADIUS客户端根据接收到的认证结果接入/拒绝用户。如果允许用户接入,则RADIUS客户端向RADIUS服务器发送计费开始请求报文。
- RADIUS服务器返回计费开始响应报文,并开始计费。
- 用户开始访问网络资源。
- 当用户不再想要访问网络资源时,用户发起下线请求,请求停止访问网络资源。
- 不计费:为用户提供免费上网服务,不产生相关活动日志。
- 远端计费:支持通过RADIUS服务器或HWTACACS服务器进行远端计费。
- 不授权:不对用户进行授权处理。
- 本地授权:根据NAS上对应域下的配置进行授权。
- 远端授权:支持由RADIUS服务器授权或HWTACAS服务器授权。
- HWTACACS授权,使用HWTACACS服务器对所有用户授权。
- RADIUS授权,只支持对通过RADIUS服务器认证的用户授权。RADIUS协议的认证和授权是绑定在一起的,不能单独使用RADIUS进行授权。
- 不认证:完全信任用户,不对用户身份进行合法性检查。鉴于安全考虑,这种认证方式很少被采用。
- 本地认证:将本地用户信息(包括用户名、密码和各种属性)配置在NAS上,此时NAS就是AAA Server。本地认证的优点是处理速度快、运营成本低;缺点是存储信息量受设备硬件条件限制。这种认证方式常用于对用户登录设备进行管理,如Telnet,FTP用户等。
- 远端认证:将用户信息(包括用户名、密码和各种属性)配置在认证服务器上。支持通过RADIUS协议或HWTACACS协议进行远端认证。NAS作为客户端,与RADIUS服务器或HWTACACS服务器进行通信。
- 认证(Authentication):验证用户是否可以获得访问权,确定哪些用户可以访问网络。
- 授权(Authorization):授权用户可以使用哪些服务。
- 计费(Accounting):记录用户使用网络资源的情况。
- AAA是Authentication(认证)、Authorization(授权)和Accounting(计费)的简称,是网络安全的一种管理机制,提供了认证、授权、计费三种安全功能。