1 AAA和用户管理简介
在学习AAA的配置前,先简要了解下AAA的基本知识
1.1 什么AAA
AAA(Authentication Authorization Accounting)是一种提供认证、授权和计费的技术。 认证(Authentication):验证用户是否可以获得访问权,确定哪些用户可以访问网络。 授权(Authorization):授权用户可以使用哪些服务。
计费(Accounting):记录用户使用网络资源的情况。
1.2 AAA的基本架构
AAA通常采用“客户端—服务器”结构。这种结构既具有良好的可扩展性,又便于集中管理用户信息。如下图所示
认证
AAA支持以下认证方式:
不认证:对用户非常信任,不对其进行合法检查,一般情况下不采用这种方式。 本地认证:将用户信息(包括本地用户的用户名、密码和各种属性)配置在网络接入服务器上。本地认证的优点是速度快,可以为运营降低成本;缺点是存储信息量受设备硬件条件限制。
远端认证:将用户信息(包括本地用户的用户名、密码和各种属性)配置在认证服务器上。AAA支持通过RADIUS(Remote Authentication Dial In User Service)协议或HWTACACS (HuaWei Terminal Access Controller Access Control System)协议进行远端认证。网络接入服务器NAS(Network Access Server)作为客户端,与RADIUS服务器或HWTACACS服务器通信。
如果在一个认证方案中采用多种认证模式,将按照配置的顺序进行认证。 当配置的认证方式是先远端认证后本地认证时
如果登录的帐号在远端服务器上没有创建,但是在本地是存在的,经过远端认证时,将被认为认证失败,不再转入本地认证。
只有在远端认证服务器无响应时,才会转入本地认证。
如果选用了不认证(none)或本地认证(
local),它必须作为最后一种认证模式。 授权
AAA支持以下授权方式:
不授权:不对用户进行授权处理。
本地授权:根据网络接入服务器为本地用户账号配置的相关属性进行授权。
HWTACACS授权:由TACACS服务器对用户进行授权。
if-authenticated授权:如果用户通过了认证,而且使用的认证模式不是不认证,则用户
授权通过。
RADIUS认证成功后授权:RADIUS协议的认证和授权是绑定在一起的,不能单独使用
RADIUS进行授权。
如果在一个授权方案中使用多次授权,授权模式的执行顺序按照配置的先后,只有在当
前授权模式没有响应时,才会尝试下一个授权模式,如果授权失败则将不会再进行授权。 计费
AAA支持以下计费方式:
不计费:不对用户计费。
远端计费:通过RADIUS服务器或HWTACACS服务器进行远端计费。
1.3 RADIUS协议
AAA可以用多种协议来实现,最常用的是RADIUS协议。RADIUS最初用来管理使用串口和调制解调器的大量分散用户,后来广泛应用于网络接入服务器NAS(Network Access Server)系统。
RADIUS服务器通过建立一个唯一的用户数据库,存储用户名、密码来对用户进行验证。 用户登录路由器或接入服务器等网络设备时,会将用户名和密码发送给该网络接入服务
器;
该网络设备中的RADIUS客户端(网络接入服务器)接收用户名和密码,并向RADIUS
服务器发送认证请求;
RADIUS服务器接收到合法的请求后,完成认证,并把所需的用户授权信息返回给客户
端;对于非法的请求,RADIUS服务器返回认证失败的信息给客户端。
客户端和RADIUS服务器之间发送的用户密码信息经过加密以后才在网络上传递,以避免用户密码在不安全的网络上被窃取。
RADIUS客户端与服务器间的消息流程如下图所示。
计费的消息流程和认证/授权的消息流程类似。
1.4 HWTACACS协议
HWTACACS是在TACACS(RFC1492)基础上进行了功能增强的一种安全协议。该协议与RADIUS协议类似,主要是通过“客户端—服务器”模式与HWTACACS服务器通信来实现多种用户的AAA功能,可用于PPP、VPDN(Virtual Private Dial Network)接入用户的认证、授权和计费。
认证方式与RADIUS协议类似
1.5 基于域的用户管理
在目前AAA的实现中,所有用户都属于某个域。用户属于哪个域是由用户名中带的“@”后的字符串来决定的,比如“user@hua”,就属于“hua”域;如果用户名中没有带“@”,对于普通用户,属于系统缺省的default域,对于管理用户,属于系统缺省的default_admin域。
2 华为AAA配置方式实例
命令行介绍祥见配置手册
组网拓扑图
2.1 采用RADIUS方式进行认证、授权和计费-命令行解析
#
user-interface con 0 // 串口
user-interface vty 0 //telnet/ssh登录方式线程
authentication-mode aaa //设置认证方式为
aaa
user privilege level 15 //设置通过该线程登录用户等级为
15
idle-timeout 0 0 //设置用户不离线
protocol inbound all //设置登录方式支持telnet和 ssh
#
radius-server template shiva //创建radius 服务器模板
radius-server shared-key cipher 3MQ*TZ,O3KCQ=^Q`MAF4
//配置RADIUS共享密钥-用来通过radius服务器的验证
radius-server authentication 129.7.66.66 1812 //配置radius认证服务器地址以及端口号 radius-server authentication 129.7.66.67 1812 secondary
//配置radius备用认证服务器地址以及端口号
radius-server accounting 129.7.66.66 1813 //配置radius计费服务器地址以及端口号 radius-server accounting 129.7.66.67 1813 secondary
//配置radius备用计费服务器地址以及端口号
radius-server retransmit 5 timeout 10 //配置radius请求报文超时重传次数已经超时时间 aaa //进入aaa视图
authentication-scheme default //缺省的认证方案
authentication-scheme radius //创建一个名称为radius认证方
案
authentication-mode radius hwtacacs local //认证方式为radius、hwtacacs以及本地认证
authorization-scheme default //缺省的授权方
案
accounting-scheme default //缺省的计费方
案
accounting-scheme radius //创建一个名称为radius的计费方
案
accounting-mode radius //配置当前的计费方案模式为
radius
accounting start-fail online //配置计费方案hwtacacs的开始计费失败策略为:当开始计费失败时,允许用户上线。
domain default //缺省的用户
域
domain default_admin //缺省的管理用户
域
domain huawei //创建一个huawei的
域
authentication-scheme radius //配置该域的认证模式为
radius
accounting-scheme radius //配置该域的计费模式为
radius
radius-server radius //配置该域的radius 服务器模
板
#
2.2 采用HWTACACS协议进行认证、计费和授权示例-命令行解析
# user-interface con 0 // 串口
user-interface vty 0 //telnet/ssh登录方式线程
authentication-mode aaa //设置认证方式为
aaa
user privilege level 15 //设置通过该线程登录用户等级为
15
idle-timeout 0 0 //设置用户不离线
protocol inbound all //设置登录方式支持telnet和 ssh
#
hwtacacs-server template ht //创建hwtacacs 服务器模板
hwtacacs-server authentication 129.7.66.66 //配置hwtacacs认证服务器地址
hwtacacs-server authentication 129.7.66.67 secondary //配置hwtacacs备用认证服务器地址
hwtacacs-server authorization 129.7.66.66 //配置hwtacacs授权服务器地址
hwtacacs-server authorization 129.7.66.67 secondary //配置hwtacacs备用授权服务器地址
hwtacacs-server accounting 129.7.66.66 //配置hwtacacs计费服务器地址
hwtacacs-server accounting 129.7.66.67 secondary //配置hwtacacs备用计费服务器地址
hwtacacs-server shared-key cipher 3MQ*TZ,O3KCQ=^Q`MAF4
//配置HWTACACS共享密钥-用来通过hwtacacs服务器的验证
hwtacacs-server timer quiet 3 //设置主用服务器恢复激活状态的时间为3分钟
undo hwtacacs-server user-name domain-included //配置设备向HWTACACS服务器发送的报文中用户名不包含域名。
#
aaa //进入aaa视图
domainname-parse-direction left-to-right //配置域名解析方向是从左向右(缺省) authentication-scheme default
authentication-scheme l-h //创建一个名称为1-h认证方案
authentication-mode hwtacacs local //认证方式为hwtacacs以及本地认证
authentication-super hwtacacs super //来配置当前认证模板对用户提升级别进行认证时采用hwtacacs 以及本地认证模式
authorization-scheme default
authorization-scheme hwtacacs //创建一个名称为hwtacacs授权方案
authorization-mode hwtacacs //授权方式为hwtacacs
authorization-cmd 15 hwtacacs //配置级别为15的用户按命令行授权
accounting-scheme default
accounting-scheme hwtacacs //创建一个名称为hwtacacs计费方案
accounting-mode hwtacacs //计费方式为hwtacacs
accounting realtime 3 //配置hwtacacs计费方案为实时计费,计费间隔为3分钟
accounting start-fail online //配置计费方案hwtacacs的开始计费失败策略为:当开始计费失败时,允许用户上线。
domain default
domain default_admin
domain huawei //创建一个huawei的域
authentication-scheme l-h //配置该域的认证方式为1-h模板
accounting-scheme hwtacacs //配置该域的计费方式为hwtacacs模板
authorization-scheme hwtacacs //配置该域的授权方式为hwtacacs模板
hwtacacs-server ht //配置该域的认证服务器为hwtacacs服务模板ht
#
domain huawei admin //将huawei域设置为缺省的管理域
2.3 华为设备与思科设备通过radius登录验证配置区别
2.3.1 思科设备通过radius登录验证场景命令行
!
aaa new-model //对应authentication-mode
aaa
!
aaa authentication login group1 group radius local //对应authentication-mode radius local
! radius-server host 10.136.13.141 auth-port 1812 acct-port 1646
//对应radius-server template中的配
置 radius-server timeout 30 //对应radius-server timeout
30
radius-server key cisco //对应radius-server shared-key simple
cisco
!
line vty 0 4 //对应user-interface vty 0
4
exec-timeout 20 0 //对应idle-timeout 20
privilege level 15 //对应 user privilege level
15
transport input telnet ssh //对应protocol inbound all
!
2.3.2 与之相对应的华为设备通过radius登录验证场景
# radius-server template
group1
radius-server shared-key simple cisco radius-server authentication 10.136.13.141
1812
radius-server accounting 10.136.13.141
1646
radius-server timeout 30 #
aaa
authentication-scheme
aaa
authentication-mode radius
local
accounting-scheme
radius
accounting-mode
radius
domain default domain
default_admin
domain huawei authentication-scheme
aaa
accounting-scheme
radius
radius-server group1
#
user-interface vty 0
4
authentication-mode
aaa
user privilege level
15
idle-timeout 20 0 protocol inbound all
#