4. Nexus 本地用户、角色与 AAA 认证配置

本地用户、角色与 TACACS+ 回退的权限模型

Nexus NX-OS 的权限控制由三层构成:用户(谁登录)、角色(能执行哪些命令)、认证方式(凭据由谁校验)。本地用户与自定义角色是设备自带的能力,TACACS+ 则把校验外置到 AAA 服务器。当服务器不可达时,aaa authentication login 中配置的 fallback 决定是否退回本地校验,从而避免管理面被完全锁死。

① 用户层 netadmin network-admin 角色 opview 自定义只读角色 svcops 自定义运维角色 ② 角色层(rule 定义) network-admin permit * (全命令) opview(自定义) permit show * / 禁 config svcops(自定义) permit show / interface / copy ③ 认证层 TACACS+ 服务器 10.10.10.20 / 10.10.10.21 本地用户数据库 username / password / role fallback local 服务器不可达时启用 登录认证决策路径 TACACS+ 可达? 是 服务器校验凭据 返回角色属性 否 fallback local 本地数据库校验 角色权限生效 命令集受 rule 约束 本地角色绑定 权限差异验证点 show run 可执行 configure 被拒绝

配置本地用户与自定义角色

先创建两个自定义角色,再绑定用户。NX-OS 的角色通过 role name <role> 进入角色配置模式,用 rule 语句定义允许或拒绝的命令范围。规则按顺序匹配,编号越小优先级越高。

! 创建只读角色 opview
role name opview
  rule 10 permit command show *
  rule 20 deny command configure *
  rule 30 deny command copy *
  exit

! 创建运维角色 svcops
role name svcops
  rule 10 permit command show *
  rule 20 permit command interface *
  rule 30 permit command copy running-config startup-config
  rule 40 deny command * 
  exit

! 创建本地用户并绑定角色
username netadmin password 0 N3tAdm!n2024 role network-admin
username opview  password 0 0pV!ew2024  role opview
username svcops  password 0 SvC0ps!2024 role svcops

! 查看角色定义
show role
show role name opview
show user-account
角色规则中 deny command * 必须放在最后,否则会拦截前面已允许的命令。NX-OS 按 rule 编号升序匹配,命中即停止。

配置 TACACS+ 认证与本地回退

AAA 配置分三步:启用 aaa 特性、定义 TACACS+ 服务器组、指定登录认证方法列表。方法列表中的 local 关键字就是回退入口。

! 启用 AAA
aaa new-model

! 定义 TACACS+ 服务器组
tacacs-server host 10.10.10.20 key 0 T4c4csKey!2024
tacacs-server host 10.10.10.21 key 0 T4c4csKey!2024
aaa group server tacacs+ TAC_GRP
  server 10.10.10.20
  server 10.10.10.21
  exit

! 认证方法列表:先 TACACS+,失败回退本地
aaa authentication login default group TAC_GRP local

! 授权方法列表
aaa authorization console
aaa authorization exec default group TAC_GRP local

! 验证配置
show aaa authentication
show tacacs-server
show run | inc aaa
配置 aaa authentication login default group TAC_GRP local 时,务必确认本地至少有一个 network-admin 用户且密码已知。若 TACACS+ 服务器不可达且本地无可用账号,SSH 登录将被拒绝,只能通过 Console 口恢复。

验证不同角色的命令权限差异

用三个账号分别 SSH 登录,执行相同命令集,观察输出差异。下表为预期结果,实际以设备返回为准。

命令netadmin (network-admin)svcops (自定义)opview (自定义)
show version允许允许允许
show running-config允许允许允许
configure terminal允许拒绝拒绝
copy running-config startup-config允许允许拒绝
reload允许拒绝拒绝

验证 TACACS+ 回退时,可在服务器侧临时停用服务,或在交换机上执行 test aaa group TAC_GRP opview 0pV!ew2024 legacy 观察返回。若服务器不可达,登录应自动走本地数据库,且角色权限与本地绑定一致。

! 测试 AAA 认证(不实际登录)
test aaa group TAC_GRP opview 0pV!ew2024 legacy

! 查看当前登录用户与角色
show users
show user-account

! 查看 AAA 统计
show aaa accounting log
回退验证的关键判断:断开 TACACS+ 服务器后,用 opview 账号 SSH 登录,若能进入且 configure terminal 被拒绝,说明 fallback local 生效且角色规则正确加载。