AAA和RADIUS/HWTACACS协议简介
1.1.1 aaa概述
aaa是authentication,authorization and accounting(认证、授权和计费)的简称,它提供了一个用来对认证、授权和计费这三种安全功能进行配置的一致性框架,实际上是对网络安全的一种管理。
这里的网络安全主要是指访问控制,包括:
哪些用户可以访问网络服务器?
具有访问权的用户可以得到哪些服务?
如何对正在使用网络资源的用户进行计费?
针对以上问题,aaa必须提供下列服务:
认证:验证用户是否可获得访问权。
授权:授权用户可使用哪些服务。
计费:记录用户使用网络资源的情况。
aaa一般采用客户/服务器结构:客户端运行于被管理的资源侧,服务器上集中存放用户信息。因此,aaa框架具有良好的可扩展性,并且容易实现用户信息的集中管理。
1.1.2 radius协议概述
如前所述,aaa是一种管理框架,因此,它可以用多种协议来实现。在实践中,人们最常使用radius协议来实现aaa。
1. 什么是radius
radius是remote authentication dial-in user service(远程认证拨号用户服务)的简称,它是一种分布式的、客户机/服务器结构的信息交互协议,能保护网络不受未授权访问的干扰,常被应用在既要求较高安全性、又要求维持远程用户访问的各种网络环境中(例如,它常被应用在管理使用串口和调制解调器的大量分散拨号用户)。radius系统是nas(network access server)系统的重要辅助部分。
当radius系统启动后,如果用户想要通过与nas(pstn环境下的拨号接入服务器或以太网环境下带接入功能的以太网交换机)建立连接从而获得访问其它网络的权利或取得使用某些网络资源的权利时,nas,也就是radius客户端将把用户的认证、授权和计费请求传递给radius服务器。radius服务器上有一个用户数据库,其中包含了所有的用户认证和网络服务访问信息。radius服务器将在接收到nas传来的用户请求后,通过对用户数据库的查找、更
新,完成相应的认证、授权和计费工作,并把用户所需的配置信息和计费统计数据返回给nas——在这里,nas起到了控制接入用户及对应连接的作用,而radius协议则规定了nas 与radius服务器之间如何传递用户配置信息和计费信息。
nas和radius之间信息的交互是通过将信息承载在udp报文中来完成的。在这个过程中,交互双方将使用密钥对报文进行加密,以保证用户的配置信息(如密码)被加密后才在网络上传递,从而避免它们被侦听、窃取。
radius方案的认证和授权不能分离。
2. radius操作
radius服务器对用户的认证过程通常需要利用接入服务器等设备的代理认证功能,通常整个操作步骤如下:首先,客户端向radius服务器发送请求报文(该报文中包含用户名和加密口令);然后,客户端会收到radius服务器的响应报文,如accept报文、reject报文等,其中,accept报文表明用户通过认证;reject报文表明用户没有通过认证,需要用户重新输入用户名和口令,否则访问被拒绝。
1.1.3 hwtacacs协议概述
1. hwtacacs特性
hwtacacs安全协议是在tacacs(rfc1492)基础上进行了功能增强的一种安全协议。该协议与radius协议类似,主要是通过server/client模式实现多种用户的aaa功能,可用于ppp 和vpdn接入用户及login用户的认证、授权和计费。
与radius相比,hwtacacs具有更加可靠的传输和加密特性,更加适合于安全控制。hwtacacs协议与radius协议的主要区别如下表:
交换机作为hwtacacs的客户端,将接入用户的用户名和密码发给tacacs服务器进行验证和授权。如下图所示:
2. hwtacacs的基本消息交互流程
以telnet为例,说明hwtacacs对用户进行认证、授权和计费的过程。在整个过程中的基本消息交互过程如下:
用户请求登录交换机,tacacs客户端收到请求之后,向tacacs服务器发送请求认证报文;
tacacs服务器发送认证回应报文,请求用户名;tacacs客户端收到回应报文后,向用户请求用户名;
用户反馈用户名,tacacs客户端收到后,向tacacs服务器发送认证持续报文,其中包括了用户名;
tacacs服务器发送认证回应报文,请求登录密码;tacacs客户端收到回应报文,向用户请求登录密码;
用户输入登录密码,tacacs客户端收到后,向tacacs服务器发送认证持续报文,其中包括了登录密码;
tacacs服务器发送认证回应报文,表示用户通过认证;
tacacs客户端向tacacs服务器发送用户授权请求报文;
tacacs服务器发送授权回应报文,表示用户授权通过;
tacacs客户端收到授权回应成功报文,向用户输出交换机的配置界面,用户登陆成功;
tacacs客户端向tacacs服务器发送计费开始报文;
tacacs服务器发送计费回应报文,表示计费开始报文已经收到;
用户退出,tacacs客户端向tacacs服务器发送计费结束报文;
tacacs服务器发送计费结束报文,表示计费结束报文已经收到。
基本消息交互流程图如下:
1.1.4 aaa/radius在交换机中的实现
由前面的概述,我们可以明白,在这样一个aaa/radius框架中,h3c系列交换机是作为用户接入设备即nas,相对于radius服务器来说,h3c系列交换机是radius系统的客户端;换句话说,aaa/radius在h3c系列交换机中实现的是其客户端部分。h3c系列交换机参与的、使用radius认证的组网示意图如下所示。