锐捷交换机接入 RADIUS:AAA 登录配置、验证与锁定用户清除

· 8 分钟阅读

锐捷交换机接入 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 secretusername ... 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 lockoutshow aaa lockoutclear aaa local user lockout 的用法;官方问答也说明了用户锁定状态的查看方式。

锁定的阈值和自动解锁时间由本机 AAA 策略决定,不同系列、不同软件版本的默认值未必相同。若需要调整,应先查询当前配置和帮助:

show running-config | include aaa local authentication
aaa local authentication ?

只在明确理解安全影响后,再按设备支持的语法调整失败次数或锁定时长。不要为排障而长期关闭锁定保护。


六、推荐的上线顺序

一次风险较低的变更可以按下面顺序完成:

  1. 确认 RADIUS 服务器已创建用户、允许交换机源地址,并能记录认证日志。
  2. 通过 Console 创建本地紧急账号,确认该账号可用。
  3. 配置 RADIUS 服务器、服务器组和登录认证方法列表。
  4. 只把方法列表绑定到 VTY,暂不修改 Console。
  5. 在第二个 SSH 窗口用测试账号登录,核对服务器的 Access-Accept 日志。
  6. 登录异常时,先停止重试,检查锁定状态;必要时从 Console 清除锁定。
  7. 验证稳定后保存配置,并记录交换机管理源 IP、RADIUS 服务器地址和变更时间。

这个流程的重点不是“把 RADIUS 配置写进去”,而是始终保留可恢复的管理通道,并用交换机日志与服务器日志共同确认实际认证路径。