AAA(Authentication,Authorization and Accounting ,认证、授权和计费)是网络安全的一种管理机制,提供了认证、授权、计费三种安全功能。AAA一般采用客户机/服务器结构。
客户端运行于NAS(Network Access Server,网络接入服务器)上,服务器集中管理用户信息。
AAA的三种安全功能具体作用如下:
- 认证:确认远端访问用户的身份,判断访问者是否为合法的网络用户。
- 授权:对认证通过的不同用户赋予不同的权限,限制用户可以使用的服务。
- 计费:记录用户使用网络服务中的所有操作,包括使用的服务类型、起始时间、数据流量等,它不仅是一种计费手段,也对网络安全起到了监视作用。
AAA支持的服务
- AAA通过对服务器的详细配置,对多种服务提供安全保障。
- 支持 FTP 、Telnet 、 PPP 、端口接入
- 认证:完成各接入或服务请求的用户名、密码、用户信息的交互过程,他不会下发授权信息给用户,也不会触动计费流程。
- 授权:发送授权请求给所配置的授权服务器,授权通过后向用户下发授权信息。
- 计费:发送计费开始、计费更新、计费结束请求报文给所配置的计费服务器。计费不是必须使用的。
配置AAA
- AAA认证方案:配置本地认证或远程认证方案
- 远程认证需要配置RADIUS方案或TACACS 方案
- AAA实现方法:在ISP域中引用已经配置的AAA方案
AAA的配置可以分为两部分:
第1步:根据需要配置本地认证或远程认证方案,远程认证时需要配置RADIUS方案或TACACS 方案:
本地认证:需要在交换机上配置本地用户名,并设置相应的密码和用户级别。
代码语言:javascript复制[H3C]local-user zhangxu
RADIUS方案(radius-scheme):通过引用已配置的RADIUS方案来实现认证、授权、计费。
代码语言:javascript复制[H3C]radius scheme [radius-scheme-name]
RACACS 方案(hwtacacs-scheme):通过引用已配置的TACACS 方案来实现认证、授权、计费。
代码语言:javascript复制[H3C]hwtacacs scheme [hwtacacs-scheme-name]
第2步:创建用户所属的ISP(Internet Service Provider。Internet服务提供商),并在ISP域中引用已配置的AAA方案。
代码语言:javascript复制domain [isp-name]
authentication default { hwtacacs-scheme hwtacacs-scheme-name [local] | local | none | radius-scheme radius-scheme-name [local]}
hwtacacs-scheme | hwtacacs-scheme-name [local] :指定TACACS 方案
local :本地认证
none:不进行认证
radius-scheme radius-scheme-name [local]:指定RADIUS方案
如果配置了 radius-scheme radius-scheme-name local 或 hwtacacs-scheme hwtacacs-scheme-name local ,则 local 为RADIUS服务器或TACACS 服务器没有正常响应后的备选认证方案。在AAA方案认证域中,引用认证方案的同时,还必须引用授权方案和计费方案。
RADIUS协议
- RADIUS(Remote Authentication Dial-In User Service ,远程认证拨号系统)是分布式的交互协议。
- 客户端/服务器结构
- 基于UDP传输,1812、1813端口
- 共享秘钥、多种认证方式
- TLV结构,利于扩展
RADIUS配置
第一步:创建RADIUS方案
代码语言:javascript复制[H3C]radius scheme radius1
第二步:配置主、从认证/授权服务器的IP地址和端口号
代码语言:javascript复制[H3C-radius-radius1]primary authentication [ip-address] [port-number]
[H3C-radius-radius1]secondary authentication [ip-address] [port-number]
第三步:配置主、从计费服务器的IP地址和端口号
代码语言:javascript复制[H3C-radius-radius1]primary accounting [ip-address] [port-number]
[H3C-radius-radius1]secondary accounting [ip-address] [port-number]
缺省情况下,主从服务器的IP地址为0.0.0.0,UDP端口号为1813。
第四步:配置RADIUS报文的共享密钥
代码语言:javascript复制[H3C-radius-radius1]key {authentication | accounting } string
在实际组网中可以指定两台 RADIUS 服务器分别作为 主、从认证授权(计费)服务器;也可以一台服务器即作为主认证授权(计费)服务器,又作为从服务器。 在同一个方案中指定的主认证/授权服务器(计费服务器)和从认证/授权服务器(计费服务器)的IP地址不能相同,否则配置不成功。 保证设备上的RADIUS服务器端口与RADIUS服务器上的端口设置一致。 保证设备上设置的共享密钥与RADIUS服务器上的完全一致。
配置RADIUS报文重传
代码语言:javascript复制[H3C-radius-radius1]retry [times]
配置RADIUS服务定时器
代码语言:javascript复制[H3C-radius-radius1]timer response-timeout [seconds] #服务器响应超时定时器
[H3C-radius-radius1]timer quiet [minutes] #服务器静默定时器
[H3C-radius-radius1]timer realtime-accounting [minutes] #实时计费间隔定时器
RADIUS调试与维护
显示所有或指定域的配置信息
代码语言:javascript复制[H3C-radius-radius1]display domain [isp-name]
显示AAA用户连接的相关信息
代码语言:javascript复制dis dot1x connection
显示指定RADIUS方案的配置信息
代码语言:javascript复制dis radius scheme [name]
TACACS 协议
- TACACS (Terminal Access Controller Access Control System Plus ,终端访问控制器控制系统协议)是一种增强的安全协议。
- H3C设备实现的HWTACACS是在TACACS 基础上进行了功能增强的安全协议。
- 实现了多种类型用户的AAA功能。
RADIUS协议 | TACACS 协议 |
---|---|
使用UDP,网络传输效率更高 | 使用TCP,网络传输更可靠 |
最对验证报文中的密码字段进行加密 | 除了TACACS 报文头,对报文主体全部进行加密 |
协议报文比较简单,认证和授权结合,难以分离 | 协议报文较复杂,认证和授权分离在不同的安全服务器上实现 |
不支持对设备的配置命令进行授权使用,用户登录设备后可以使用的命令由用户级别决定 | 支持对设备的配置命令进行授权使用,用户可以使用的命令行受到用户级别和AAA授权的双重限制。 |
TACACS 配置
第一步:创建HWTACACS方案,并进入视图
代码语言:javascript复制[H3C]hwtacacs scheme [hwtacacs-scheme-name]
第二步:配置主认证、授权、计费服务器的IP地址和端口号。
代码语言:javascript复制[H3C-hwtacacs-tacacs1]primary authentication [ip-address] [port-number] #配置主认证服务器的IP地址和端口号
[H3C-hwtacacs-tacacs1]primary authorization [ip-address] [port-number] #配置主授权服务器的IP地址和端口号
[H3C-hwtacacs-tacacs1]primary accounting [ip-address] [port-number] #配置主计费服务器的IP地址和端口号
缺省情况下、主认证、授权、计费服务的IP地址为0.0.0.0,TCP端口号为49。
第三步:配置从认证、授权、计费服务器的IP地址和端口号。
代码语言:javascript复制[H3C-hwtacacs-tacacs1]secondary authentication [ip-address] [port-number] #配置从主认证服务器的IP地址和端口号
[H3C-hwtacacs-tacacs1]secondary authorization [ip-address] [port-number] #配置从授权服务器的IP地址和端口号
[H3C-hwtacacs-tacacs1]secondaryaccounting [ip-address] [port-number] #配置从计费服务器的IP地址和端口号
缺省情况下、从认证、授权、计费服务的IP地址为0.0.0.0,TCP端口号为49。
第四步:配置共享密钥。交换机与服务器使用MD5算法来加密交互的TACACS 报文,双方通过设置共享秘钥来验证报文合法性。只有密钥一致的情况下,双方才能接受对方发来的报文并做出响应。
代码语言:javascript复制[H3C-hwtacacs-tacacs1]key { accounting | authentication | authorization } [string]
HWTACACS与RADIUS协议一样,也有相同的定时器,作用与RADIUS相似;无论是RADIUS还是HWTACACS认证,交换机发送给服务器的用户名都有两种格式:带域名或不带域名,即“use@ISP”或“user”两种格式。
执行以下命令可以进行切换:
代码语言:javascript复制[H3C-hwtacacs-hwtacacs1]user-name-format { with-domain | without-domain }
TACACS 维护命令
查看所有或指定HWTACACS方案配置信息或统计信息
代码语言:javascript复制[H3C]dis hwtacacs scheme
清除HWTACACS协议的统计信息
代码语言:javascript复制reset hwtacacs statistics { ccounting | authentication | authorization | all }