网络设备如果只有本地用户名密码做认证,改密码得逐台设备登录去改,几十台设备能累死。有了AAA和RADIUS,密码统一在服务器上管理,设备只是去服务器问一下"这个人能不能登录"。今天说说H3C设备上AAA和RADIUS怎么配。
AAA是什么
AAA是三个英文单词的首字母:Authentication认证、Authorization授权、Accounting计费。
认证:验证用户身份,你是谁,密码对不对。
授权:验证通过后,你能做什么,能看哪些命令能配哪些功能。
计费:记录用户操作行为,谁在什么时间登录了哪台设备做了什么。

三个功能不是非得全配,可以只做认证不做计费,也可以全配。实际使用中至少认证是必须的。
RADIUS
RADIUS全称远程认证拨号用户服务协议,是AAA最常用的后端协议。设备作为RADIUS客户端,把用户名密码发给RADIUS服务器验证。
RADIUS的流程很简单:用户在设备上输入用户名密码,设备构造RADIUS报文发给服务器,服务器查数据库后返回接受或拒绝。如果是接受,还会带上授权信息,比如这个用户是管理员还是只读用户。
RADIUS用UDP协议,端口默认1812做认证计费,1813做计费上报。报文用共享密钥加密,所以设备和服务器上的密钥必须一致。
H3C上怎么配
第一步,创建RADIUS方案:
radius scheme radius_server
primary authentication 10.1.1.100 1812
primary accounting 10.1.1.100 1813
key authentication simple mysecret123
key accounting simple mysecret123
user-name-format without-domain
primary authentication指定主认证服务器地址和端口。key authentication是共享密钥,两端要一样。user-name-format without-domain表示发给RADIUS服务器的用户名不带域名,有些服务器需要带域名。
第二步,创建ISP域并绑定RADIUS方案:
domain my_domain
authentication login radius-scheme radius_server
authorization login radius-scheme radius_server
accounting login radius-scheme radius_server
domain是H3C设备上的认证域概念。一个域绑定一套AAA方案,不同域可以用不同的认证方式。用户登录时用户名带上域名(如user@my_domain),设备就根据域名找到对应的域配置。如果不带域名,走默认域。
第三步,在设备上创建本地管理员作为备份:
local-user admin
password hash mypassword
service-type telnet ssh
authorization-attribute user-role network-admin
为什么需要本地备份?RADIUS服务器挂了设备就登录不了了。配一个本地用户做备份,RADIUS不通时可以降级到本地认证。在domain里配:
domain my_domain
authentication login radius-scheme radius_server local
这行的意思是先试RADIUS,不通再试本地。
第四步,使能设备的远程管理:
line vty 0 63
authentication-mode scheme
scheme表示用AAA域做认证。配完这一步,通过Telnet或SSH登录时就会走RADIUS认证了。
SSH更安全
实际生产环境不建议用Telnet明文传输。配SSH:
ssh server enable
public-key local create rsa
然后line vty里指定只允许SSH:
line vty 0 63
authentication-mode scheme
protocol inbound ssh
HWTACACS和RADIUS的区别
除了RADIUS,还有一种AAA协议叫HWTACACS。HWTACACS也是华为/华三定义的AAA协议,和思科的TACACS+类似。
两者的主要区别:RADIUS用UDP,报文只加密密码部分,认证和授权在一个报文里返回。HWTACACS用TCP更可靠,整个报文加密,认证和授权分开走。
实际使用中RADIUS更主流,服务器支持更广。HWTACACS在需要精细化命令授权(比如指定用户只能用某几个命令)的场景更合适。H3C设备两种都支持。
排障
登录不上设备,先检查RADIUS服务器通不通。ping服务器IP确认网络可达。检查设备和服务器上的共享密钥是否一致,大小写敏感。
display radius statistics看RADIUS报文统计,如果认证请求发出去了但没收到回应,大概率是密钥不匹配或服务器地址端口写错。
如果RADIUS通了但登录还是被拒绝,检查服务器上用户名密码配置和权限级别。有些RADIUS服务器需要配置Vendor属性指定用户角色,比如返回H3C的Vendor属性值296表示network-admin。
H3CNE-Security的GB0-510考试中AAA是重要考点,包含AAA技术原理、RADIUS认证、RADIUS报文结构、HWTACACS认证等知识点。H3CIE-RS+的GB0-802笔试也有AAA考点。如果需要系统学习AAA和RADIUS配置,润天教育作为H3C钻石级授权培训中心的安全和路由交换课程中都有AAA实验环节,千万级真机实验室可以对接真实RADIUS服务器做认证实验。