第133篇:RADIUS 与 HWTACACS 协议原理
关键词
RADIUS、HWTACACS、TACACS+、AAA 协议、认证、授权、计费
一、RADIUS 协议
1.1 RADIUS 概述
RADIUS(Remote Authentication Dial-In User Service,RFC 2865/2866)是最广泛使用的 AAA 协议。
| 特性 |
说明 |
| 传输层 |
UDP(认证 1812,计费 1813) |
| 报文格式 |
定长头部 + 变长属性 |
| 加密 |
仅密码加密(MD5),其他属性明文 |
| 用途 |
网络接入认证(802.1X、PPPoE、VPN) |
1.2 RADIUS 报文交互
NAS(交换机) RADIUS 服务器
│ │
│ Access-Request │
│ (用户名/密码/属性) │
│───────────────────────────►│
│ │
│ Access-Accept │
│ (授权属性/VLAN/ACL) │
│◄───────────────────────────│
│ 或 │
│ Access-Reject │
│ (认证失败原因) │
│◄───────────────────────────│
│ 或 │
│ Access-Challenge │
│ (二次验证/EAP 协商) │
│◄───────────────────────────│
│ │
│ Accounting-Request │
│ (开始计费) │
│───────────────────────────►│
│ Accounting-Response │
│◄───────────────────────────│
1.3 RADIUS 报文格式
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Code | Identifier | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Authenticator |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Attributes ...
+-+-+-+-+-+-+-+-+-+-+-+-+
| Code |
报文类型 |
| 1 |
Access-Request |
| 2 |
Access-Accept |
| 3 |
Access-Reject |
| 4 |
Accounting-Request |
| 5 |
Accounting-Response |
| 11 |
Access-Challenge |
1.4 RADIUS 属性(AVP)
| 属性号 |
名称 |
说明 |
| 1 |
User-Name |
用户名 |
| 2 |
User-Password |
密码(MD5 加密) |
| 4 |
NAS-IP-Address |
认证设备的 IP |
| 5 |
NAS-Port |
端口号 |
| 6 |
Service-Type |
服务类型 |
| 7 |
Framed-Protocol |
帧协议 |
| 8 |
Framed-IP-Address |
分配的 IP |
| 27 |
Session-Timeout |
会话超时 |
| 64 |
Tunnel-Type |
隧道类型(VLAN 分配) |
| 81 |
Tunnel-Private-Group-ID |
VLAN ID(用于授权 VLAN) |
二、HWTACACS
2.1 HWTACACS 概述
HWTACACS(华为 Terminal Access Controller Access Control System)是基于思科 TACACS+ 的增强版 AAA 协议。
| 特性 |
说明 |
| 传输层 |
TCP(49) |
| 加密 |
整个报文全部加密 |
| 认证/授权/计费 |
分离(三个独立服务) |
| 用途 |
设备管理认证(SSH/Console) |
2.2 RADIUS vs HWTACACS
| 对比项 |
RADIUS |
HWTACACS/TACACS+ |
| 传输层 |
UDP |
TCP |
| 加密范围 |
仅密码 |
整个报文 |
| 认证/授权 |
合并 |
分离 |
| 计费 |
支持 |
支持 |
| 适用场景 |
用户接入认证 |
设备管理认证 |
| 厂商支持 |
通用 |
华为/思科 |
三、RADIUS 配置回顾
# ===== RADIUS 模板(用于用户接入)=====
radius-server template CAMPUS
radius-server shared-key cipher Radius@2024
radius-server authentication 10.254.100.100 1812
radius-server accounting 10.254.100.100 1813
radius-server retransmit 3
radius-server timeout 5
radius-server source-ip 10.254.1.1
四、HWTACACS 配置
# ===== HWTACACS 模板(用于设备管理)=====
hwtacacs-server template ADMIN
hwtacacs-server shared-key cipher TACACS@2024
hwtacacs-server authentication 10.254.100.200 49
hwtacacs-server authorization 10.254.100.200 49
hwtacacs-server accounting 10.254.100.200 49
hwtacacs-server source-ip 10.254.1.1
# ===== AAA 认证方案 =====
aaa
authentication-scheme ADMIN_AUTH
authentication-mode hwtacacs local # HWTACACS 优先,本地备选
authorization-scheme ADMIN_AUTH
authorization-mode hwtacacs local
accounting-scheme ADMIN_AUTH
accounting-mode hwtacacs
domain ADMIN
authentication-scheme ADMIN_AUTH
authorization-scheme ADMIN_AUTH
accounting-scheme ADMIN_AUTH
hwtacacs-server ADMIN
# ===== 应用到登录 =====
user-interface vty 0 4
authentication-mode aaa
protocol inbound ssh
五、RADIUS 和 HWTACACS 的角色分工
5.1 典型部署
用户接入认证 设备管理认证
│ │
│ RADIUS │ HWTACACS
│ │
▼ ▼
| RADIUS 服务器 192.168.1.100 端口 1812/13 |
|
TACACS 服务器 192.168.1.200 端口 49 |
| │ │ |
|
|
| 802.1X/MAC 用户接入 |
|
SSH/Console 设备管理 |
| --- |
--- |
--- |
| 业务 |
协议 |
认证方式 |
安全要求 |
| 用户接入(802.1X/PPPoE) |
RADIUS |
EAP/密码 |
中(仅密码加密) |
| 设备管理(SSH/Console) |
HWTACACS |
完整加密 |
高(全报文加密) |
5.2 组合部署建议
# 同一个 AAA 域可以同时配置 RADIUS 和 HWTACACS
# 但实际场景通常分开管理
# 域 CAMPUS:用户接入 → RADIUS
domain CAMPUS
authentication-scheme CAMPUS_AUTH
radius-server CAMPUS
# 域 ADMIN:设备管理 → HWTACACS
domain ADMIN
authentication-scheme ADMIN_AUTH
hwtacacs-server ADMIN
六、排错
# RADIUS 状态
display radius-server template CAMPUS
# HWTACACS 状态
display hwtacacs-server template ADMIN
# 测试 RADIUS 认证
test-aaa user zhangsan password 123 radius-template CAMPUS
# 查看 AAA 日志
display aaa online-fail-record
七、总结
| 知识点 |
RADIUS |
HWTACACS |
| 传输 |
UDP 1812/1813 |
TCP 49 |
| 加密 |
仅密码 |
全报文 |
| 认证/授权 |
合并 |
分离 |
| 适用 |
用户接入认证 |
设备管理认证 |
| 标准 |
RFC 标准 |
华为/思科私有 |
八、思考
- RADIUS 和 HWTACACS 在传输层协议上的区别是什么?
- 为什么 RADIUS 仅加密密码,而 HWTACACS 加密整个报文?
- 什么场景应该使用 RADIUS?什么场景应该使用 HWTACACS?
- RADIUS 的 Access-Challenge 报文的作用是什么?
- 在一个网络中能否同时使用 RADIUS 和 HWTACACS?如果可以,如何区分?
下篇预告:第134篇《访客网络与员工网络隔离方案》——讲解企业园区网中访客和员工如何安全隔离,包括独立的 SSID、VLAN 隔离、Portal 认证等。