锐捷交换机接入 RADIUS:AAA 登录配置、验证与锁定用户清除
锐捷交换机接入 RADIUS:AAA 登录配置、验证与锁定用户清除
把 RADIUS 服务器地址和共享密钥写进交换机,并不代表 SSH 登录已经走 RADIUS。
设备侧至少要完成三件事:定义 RADIUS 服务器、创建 AAA 认证方法列表、把方法列表绑定到 VTY 线路。少了后两步,交换机仍可能使用原来的本地认证方式。
本文以锐捷设备的常见 CLI 风格说明管理登录接入 RADIUS 的过程。不同系列和软件版本的命令可能略有差异,正式执行前请用 ? 核对本机支持的关键字,并保留 Console 会话作为回退手段。
本文讨论的是交换机自身的 SSH/Telnet 管理登录认证;它和终端接入网络时使用的 802.1X 是两个不同场景。不要在没有验证的情况下,把两类 AAA 配置混在同一套方法列表里。
一、先理解认证链路
一次正常的 SSH 管理登录链路如下:
运维终端
→ SSH 到交换机 VTY
→ VTY 调用 AAA 方法列表
→ 交换机向 RADIUS UDP/1812 发 Access-Request
→ RADIUS 返回 Access-Accept 或 Access-Reject
→ 交换机允许或拒绝登录
因此,出现“服务器日志完全没有请求”时,优先检查交换机的 AAA 方法列表和 VTY 绑定;这通常不是用户密码问题。
二、接入前的安全准备
远端 AAA 配置一旦写错,可能把自己锁在设备外。建议先完成以下准备:
- 通过 Console 进入设备,并在整个变更过程中不要断开该会话;
- 预先创建一个本地紧急账号(break-glass),用于 RADIUS 不可用时回退;
- 先只改 VTY,不要立即把 Console 也套用远端 AAA;
- 从第二个 SSH 窗口测试,确认成功后再结束原会话;
- 确认交换机到 RADIUS 服务器之间 UDP/1812 已放通;若做计费,再放通 UDP/1813;
- RADIUS 服务器应仅允许明确的管理网段或交换机源地址,避免用
0.0.0.0/0放开所有客户端。
本地紧急账号的命令依平台而异,常见形式如下:
username breakglass privilege 15 secret <本地紧急密码>
如果设备使用的是 enable secret、username ... password 或其他语法,以设备实际 CLI 为准。
三、RADIUS 与 AAA 的配置模板
下面是一个用于实验和小规模管理网的配置模板。<...> 必须替换为实际值,示例中的共享密钥只是占位符,不应直接照抄。
configure terminal
! 1. 启用 AAA(若设备尚未启用)
aaa new-model
! 2. 定义 RADIUS 服务器
radius-server host <RADIUS_SERVER_IP> key <RADIUS_SHARED_SECRET>
radius-server timeout 5
! 3. 创建 RADIUS 服务器组
aaa group server radius RADIUS-LAB
server <RADIUS_SERVER_IP>
! 4. 建立“RADIUS 优先、本地回退”的登录认证方法列表
aaa authentication login VTY_AUTH group RADIUS-LAB local
! 5. 仅绑定到远程管理线路
line vty 0 4
login authentication VTY_AUTH
transport input ssh
end
write memory
其中最关键的是这一行:
aaa authentication login VTY_AUTH group RADIUS-LAB local
它定义了认证顺序:先问 RADIUS-LAB,在远端服务不可用等情况下再使用本地账号。随后 login authentication VTY_AUTH 才把这套规则实际应用到 VTY。
只出现下面两类配置时,认证通常还没有被启用:
radius-server host <RADIUS_SERVER_IP> key <RADIUS_SHARED_SECRET>
aaa group server radius RADIUS-LAB
它们只是定义了服务器与服务器组。
固定 RADIUS 源地址(按需)
如果交换机有多个三层接口、DHCP 地址会变化,或 RADIUS 服务器按照 NAS 源 IP 放行客户端,建议让请求始终使用管理接口地址。支持该功能的版本可参考以下形式:
ip radius source-interface Vlan <管理 VLAN ID>
也有型号使用其他接口名称或命令形式。配置前先确认该管理接口的 IP、到服务器的回程路由,以及 RADIUS 服务器允许的客户端地址都一致。
四、如何安全验证
先在交换机上检查基础连通性与 AAA 配置:
ping <RADIUS_SERVER_IP>
show aaa group
show aaa method-list
show aaa user lockout
然后保持 Console 登录不退出,在另一台终端新开 SSH 会话测试。若 Windows SSH 客户端中保存了多个私钥,建议暂时禁止公钥认证,避免未预期的密钥尝试消耗失败次数:
ssh -o PubkeyAuthentication=no -o PreferredAuthentications=password,keyboard-interactive <用户名>@<交换机管理地址>
正确的结果是:交换机向服务器发出 Access-Request,服务器记录 Access-Accept,SSH 登录成功。
如果服务器没有收到请求,按下列顺序检查:
| 现象 | 优先检查项 |
|---|---|
| 服务器日志没有任何请求 | VTY 是否绑定了认证方法列表、方法列表是否引用正确服务器组、路由和 ACL 是否允许 UDP/1812 |
| 服务器收到请求但返回 Access-Reject | 用户名/密码、RADIUS 用户库、交换机源 IP 是否在客户端白名单、共享密钥是否一致 |
| 认证成功但权限不符合预期 | RADIUS 返回的厂商属性与设备支持情况;细粒度命令授权通常更适合 TACACS+ |
| SSH 立即拒绝或不再转发请求 | 检查设备是否对本地用户启用了失败锁定 |
不要依赖某些设备存在的“测试 AAA”命令;不同版本支持的语法差异较大。以一次真实、可控的 SSH 登录和服务器日志为最终依据更可靠。
五、清除登录失败后被锁定的本地用户
如果设备日志出现类似内容:
%AAA-6-USER_LOCKED: User <用户名> locked out on authentication failure.
表示设备的本地 AAA 锁定机制已经拒绝该用户。此时请求可能在交换机本地就被拦截,RADIUS 服务器不会看到新的认证报文;修改服务器密码或反复 SSH 重试都不能解除锁定。
请从 Console 或仍可用的管理员会话执行以下检查:
show aaa user lockout
show aaa lockout
常见的解锁命令为:
clear aaa local user lockout user-name <用户名>
需要紧急清除所有被锁用户时,可使用:
clear aaa local user lockout all
有些版本的关键字可能为 username,也有版本只支持 all。先在 clear aaa local user lockout ? 下查看本机命令补全,再执行清除操作。
锐捷官方的安全配置指南列出了 show aaa user lockout、show aaa lockout 和 clear aaa local user lockout 的用法;官方问答也说明了用户锁定状态的查看方式。
锁定的阈值和自动解锁时间由本机 AAA 策略决定,不同系列、不同软件版本的默认值未必相同。若需要调整,应先查询当前配置和帮助:
show running-config | include aaa local authentication
aaa local authentication ?
只在明确理解安全影响后,再按设备支持的语法调整失败次数或锁定时长。不要为排障而长期关闭锁定保护。
六、推荐的上线顺序
一次风险较低的变更可以按下面顺序完成:
- 确认 RADIUS 服务器已创建用户、允许交换机源地址,并能记录认证日志。
- 通过 Console 创建本地紧急账号,确认该账号可用。
- 配置 RADIUS 服务器、服务器组和登录认证方法列表。
- 只把方法列表绑定到 VTY,暂不修改 Console。
- 在第二个 SSH 窗口用测试账号登录,核对服务器的
Access-Accept日志。 - 登录异常时,先停止重试,检查锁定状态;必要时从 Console 清除锁定。
- 验证稳定后保存配置,并记录交换机管理源 IP、RADIUS 服务器地址和变更时间。
这个流程的重点不是“把 RADIUS 配置写进去”,而是始终保留可恢复的管理通道,并用交换机日志与服务器日志共同确认实际认证路径。