3. Catalyst管理访问安全加固
管理平面的安全加固,核心目标是回答三个问题:谁能登录设备、登录后能做什么、做过什么能否追溯。Catalyst 交换机的管理访问路径主要有 Console、VTY(Telnet/SSH)和 SNMP/HTTP 等,其中 VTY 是日常运维使用最频繁、也最容易被攻击的入口。本节围绕 SSH 加密通道、AAA 集中认证、特权分级、VTY ACL 限制、登录增强与审计日志六个环节,构建一条完整的管理访问安全链。
一、关闭明文通道,启用 SSH
Telnet 以明文传输用户名、口令和全部配置命令,任何中间节点都可抓包还原,因此第一步必须关闭 Telnet,仅保留 SSH。Catalyst 上启用 SSH 需要先满足三个前置条件:配置主机名与域名(用于生成 RSA 密钥对)、生成足够长度的 RSA 密钥、配置本地用户名与口令。示例配置如下:
Switch(config)# hostname CAT-3850
CAT-3850(config)# ip domain-name corp.example.com
CAT-3850(config)# crypto key generate rsa modulus 2048
CAT-3850(config)# username netadmin privilege 15 secret Str0ng#Pass
CAT-3850(config)# ip ssh version 2
CAT-3850(config)# ip ssh time-out 60
CAT-3850(config)# ip ssh authentication-retries 3
CAT-3850(config)# line vty 0 15
CAT-3850(config-line)# transport input ssh
CAT-3850(config-line)# login local
CAT-3850(config-line)# exec-timeout 10 0
CAT-3850(config-line)# logging synchronous
其中 transport input ssh 是关键,它彻底拒绝 Telnet 会话;ip ssh version 2 禁用存在已知缺陷的 SSHv1;exec-timeout 10 0 表示空闲 10 分钟自动断开,避免无人值守的会话被物理或远程接管。密钥长度建议 2048 位及以上,1024 位在合规审计中通常已不被接受。
二、AAA 与 TACACS+/RADIUS 集中认证
本地用户名适合应急和少量设备,但设备规模扩大后,账号增删、口令轮换、权限调整会变得难以管理。AAA(Authentication、Authorization、Accounting)配合 TACACS+ 或 RADIUS 服务器,可实现集中认证、集中授权和操作审计。两者选择上,TACACS+ 使用 TCP 49,对整个报文体加密,且支持按命令授权(Command Authorization),更适合网络设备管理;RADIUS 使用 UDP 1645/1812,只加密口令字段,常用于用户接入认证。管理访问场景优先选 TACACS+。
CAT-3850(config)# aaa new-model
CAT-3850(config)# tacacs server TAC1
CAT-3850(config-server-tacacs)# address ipv4 10.10.20.50
CAT-3850(config-server-tacacs)# key Tacacs#Key2024
CAT-3850(config-server-tacacs)# timeout 5
CAT-3850(config)# aaa group server tacacs+ TACGRP
CAT-3850(config-sg-tacacs+)# server name TAC1
CAT-3850(config)# aaa authentication login default group TACGRP local
CAT-3850(config)# aaa authorization exec default group TACGRP local if-authenticated
CAT-3850(config)# aaa authorization commands 15 default group TACGRP local
CAT-3850(config)# aaa accounting exec default start-stop group TACGRP
CAT-3850(config)# aaa accounting commands 15 default start-stop group TACGRP
认证列表写成 group TACGRP local 的含义是:优先向 TACACS+ 服务器认证,服务器不可达时回退到本地账号。这是保证“服务器故障仍可登录”的关键设计,但本地账号必须保留强口令并定期轮换。授权中的 if-authenticated 表示用户已通过认证即允许进入 exec,避免服务器授权响应异常导致无法登录。
三、特权分级与命令授权
Catalyst 默认有 privilege 0、1、15 三级,实际运维中应细分。常见做法是:监控人员用 privilege 1 只读查看,一线运维用 privilege 5 可执行 show 与部分 clear,网络管理员用 privilege 15 全权。特权级别通过 username ... privilege N 或 TACACS+ 服务器下发。若使用命令授权,可在 TACACS+ 服务器上按用户组定义允许的命令集,例如只允许 show 开头的命令,拒绝 configure、reload、write erase 等高风险命令。
本地也可用 privilege level 配合 privilege exec level 调整命令归属级别,但可维护性差,仅建议在无 AAA 服务器时临时使用。特权分级的意义在于最小权限原则:即使某个只读账号口令泄露,攻击者也无法修改配置或擦除启动配置。
四、VTY ACL 限制源地址
仅靠认证还不够,应进一步限制“谁能发起连接”。通过标准 ACL 绑定到 VTY 线路,只允许管理网段访问 22 端口:
CAT-3850(config)# ip access-list standard MGMT-ACCESS
CAT-3850(config-std-nacl)# permit 10.10.20.0 0.0.0.255
CAT-3850(config-std-nacl)# permit 10.10.30.0 0.0.0.255
CAT-3850(config-std-nacl)# deny any log
CAT-3850(config)# line vty 0 15
CAT-3850(config-line)# access-class MGMT-ACCESS in
注意 access-class ... in 的方向是“进入 VTY 的流量”,即限制登录源。末尾的 deny any log 会记录被拒绝的源地址,便于发现扫描行为。ACL 应只放行运维跳板机或管理 VLAN,切勿放行 any。若同时存在 IPv6 管理地址,还需配置 ipv6 access-list 并绑定 ipv6 access-class。
五、登录增强与审计日志
登录增强包括:配置登录横幅(banner motd)声明未授权访问禁止;启用 login block-for 防止口令暴力破解;开启 login on-failure log 记录失败尝试;配置 service password-encryption 避免明文口令出现在配置中;关闭不必要的 HTTP/SNMP 写权限。审计日志方面,将日志发送到 syslog 服务器,并保证时间戳准确(配置 NTP 与 clock timezone),否则日志无法用于事件关联。
CAT-3850(config)# banner motd ^C Authorized access only. ^C
CAT-3850(config)# login block-for 120 attempts 3 within 60
CAT-3850(config)# login on-failure log
CAT-3850(config)# login on-success log
CAT-3850(config)# service password-encryption
CAT-3850(config)# logging host 10.10.20.60
CAT-3850(config)# logging trap informational
CAT-3850(config)# logging source-interface Vlan10
CAT-3850(config)# ntp server 10.10.20.70
CAT-3850(config)# clock timezone CST 8
login block-for 120 attempts 3 within 60 表示 60 秒内失败 3 次即封锁 120 秒,可显著降低暴力破解成功率。日志级别 informational 能覆盖登录成功/失败、权限变更、配置修改等关键事件。建议在 syslog 服务器上对 %SEC_LOGIN-5-LOGIN_SUCCESS、%SEC_LOGIN-4-LOGIN_FAILED、%SYS-5-CONFIG_I 等消息设置告警。
六、验证与常见排障
配置完成后应逐项验证:show ip ssh 确认 SSH 版本与状态;show users 查看当前登录会话;show aaa servers 确认 TACACS+ 服务器状态为 UP;show access-lists MGMT-ACCESS 查看 ACL 命中计数;show logging 检查登录与配置变更记录。常见问题包括:TACACS+ 密钥两端不一致导致认证失败;ACL 未放行跳板机地址导致自己被锁在外面;NTP 未同步导致日志时间错乱;aaa new-model 启用后未配置回退 local,服务器故障时无法登录。建议在变更前保留一个已登录的会话,并准备好 Console 应急通道。