什么是RADIUS认证

连接公共场所的wifi,在浏览器中输入手机号/验证码,就是RADIUS认证

Portal 认证(网页弹窗) 连上后浏览器自动跳登录页,输手机号/验证码 ✅ 走 RADIUS
wifi是RADIUS客户端,它就是个中转器,真正的认证是在RADIUS服务端进行的。

RADIUS(Remote Authentication Dial In User Service,远程用户拨号认证服务)是目前应用最广泛的 AAA(认证、授权、计费)协议,被视为网络接入控制的"事实标准"。它最初为拨号上网设计,如今已扩展到无线 Wi-Fi(802.1X)、VPN、以太网接入、宽带运营等几乎所有网络接入场景。


一、核心功能:AAA 三大支柱

功能 英文 RADIUS 报文 做了什么
认证 Authentication Access-RequestAccess-Accept / Access-Reject / Access-Challenge 确认"你是谁"(用户名+密码/证书/OTP)
授权 Authorization Access-Accept 携带属性返回 决定"你能干什么"(VLAN、IP、带宽、ACL、会话时长)
计费 Accounting Accounting-Request (Start/Stop/Interim)Accounting-Response 记录"你干了什么、用了多少"(时长、上下行流量、会话 ID)

关键点 :RADIUS 协议比 AAA 框架更早诞生,所以它把认证和授权合并在一次交互里完成Access-Accept 里既有"通过认证"也有"授权参数")。计费则独立走另一套报文。


二、工作原理:一次完整交互流程

以"你连上公司 Wi-Fi"为例:

复制代码
手机 → Wi-Fi AP(NAS/RADIUS 客户端)→ RADIUS 服务器 → 用户数据库(LDAP/SQL)

Step 1|接入请求

  • 你输入用户名/密码,AP(NAS)把你的凭据和自己的 IP/端口号打包成 Access-Request(UDP 1812)发给 RADIUS 服务器。

Step 2|服务器验证

  • RADIUS 服务器先用共享密钥验证这条请求是否来自合法 NAS(防止伪造)。
  • 再去用户数据库(LDAP / MySQL / Active Directory)核对账号密码。
  • 验证方式灵活:PAP、CHAP、EAP-TLS、PEAP、MSCHAPv2 等都支持。

Step 3|返回结果

结果 报文 含义
通过 Access-Accept 同意接入 + 携带授权属性(VLAN=10、IP=10.1.1.5、限速 10M、超时 2h)
失败 Access-Reject 拒绝(密码错/账号禁用/无权限)
需二次验证 Access-Challenge "再给我一个 OTP / 证书"(多因素认证)

Step 4|NAS 执行

  • NAS 收到 Accept → 放行,应用授权策略(划 VLAN、限速等)。
  • 收到 Reject → 拒绝,提示"认证失败"。

Step 5|计费流程(独立于认证)

时机 报文 作用
用户上线 Accounting-Request (Start) 记录会话开始时间、用户名、NAS IP
会话中 Accounting-Request (Interim-Update) 定期上报已用流量/时长(防异常下线不计费)
用户下线 Accounting-Request (Stop) 记录结束时间、总上下行字节数

Step 6|动态授权(CoA)与强制下线(DM)

  • CoA(Change of Authorization) :用户已经在线,服务器主动推新策略(如"把带宽从 10M 降到 2M")。
    • 流程:CoA-Request(服务器→NAS)→ NAS 改策略 → CoA-ACK / CoA-NAK(NAS→服务器)
  • DM(Disconnect Message):服务器主动踢用户下线。

三、报文结构(非常简洁)

复制代码
 0        1      2-3     4-19              ...
+--------+------+--------+------------------+
| Code   | ID   | Length | Authenticator(16)|
+--------+------+--------+------------------+
| Attributes (Type-Length-Value 反复)       |
+------------------------------------------+
字段 长度 含义
Code 1 byte 报文类型:1=Access-Request、2=Access-Accept、3=Access-Reject、4=Accounting-Request、5=Accounting-Response、11=Access-Challenge
Identifier 1 byte 匹配请求/响应(防重放)
Length 2 byte 整包长度(认证最大 4096,计费最大 4095)
Authenticator 16 byte 核心安全字段:请求时为随机数;响应时为 MD5(Code+ID+Length+ReqAuth+SharedSecret+Attributes)
Attributes 可变 TLV 结构:Type(1)+Length(1)+Value,承载用户名、密码、VLAN、IP、流量等

密码不会明文传输:User-Password 属性用 共享密钥 + MD5 加密后放入报文中。


四、安全机制

机制 说明
共享密钥(Shared Secret) NAS 和 RADIUS 服务器各配一个相同密钥,不走网络,用于生成 Authenticator 和加密密码
MD5 哈希签名 Authenticator 字段 = MD5(报文内容 + 共享密钥),防篡改和伪装
密码加密 密码属性用 MD5(SharedSecret + RequestAuthenticator) 作为密钥流做 XOR 加密
重传 + 备用服务器 NAS 没收到响应会重试,可配置多台 RADIUS 服务器轮询/主备
扩展性 厂商可定义私有属性(VSA, Vendor-Specific Attribute, Type=26),不破坏协议兼容

五、典型应用场景

场景 举例
企业 Wi-Fi 802.1X + RADIUS,员工用 AD 账号连 Wi-Fi,自动分 VLAN
VPN 接入 SSL VPN / IPsec VPN 远程拨号,RADIUS 验身份
宽带运营 PPPoE / DHCP 接入,RADIUS 认证 + 计费(按时长/流量)
交换机端口控制 802.1X 有线认证,未认证端口不通
跨运营商漫游 RADIUS 代理(Proxy)根据用户名 @domain 转发到归属运营商
IoT 设备接入 摄像头/传感器上线前先过 RADIUS 认证

六、RADIUS vs TACACS+ 一句话对比

RADIUS TACACS+
传输 UDP TCP
加密 仅密码加密 全程加密
授权粒度 较粗(VLAN/ACL) 细粒度(命令级权限)
兼容 开放标准,所有厂商支持 Cisco 私有(虽开放但生态小)
适合 Wi-Fi、VPN、宽带接入 交换机/路由器管理命令审计

七、常用开源/商业实现

产品 类型
FreeRADIUS 开源,最流行,支持 LDAP/MySQL/EAP/CoA
Microsoft NPS Windows Server 自带,企业 AD 集成首选
Cisco ISE 商业,企业级,支持 802.1X + 态势感知
Aruba ClearPass 商业,无线场景强
Jasig/Apereo CAS 可接 RADIUS 后端做 SSO

一句话总结:RADIUS 就是网络世界的"门卫系统"------用户来了先查身份证(认证),查完发门禁卡决定能去哪些房间(授权),全程记考勤算费用(计费),还能中途改权限或直接把人轰走(CoA/DM)。协议简单、扩展强、所有设备都支持,所以三十多年了依然是网络接入认证的绝对霸主。

相关推荐
鸡蛋炒肉6 个月前
radius服务器创建方法
服务器·radius
Johny_Zhao1 年前
centos8安装部署RADIUS+MySQLPGSQL高可用架构实现
linux·网络·网络安全·信息安全·云计算·shell·cisco·yum源·radius·huawei·系统运维·华三
卡西里弗斯奥1 年前
【CentOS】搭建Radius服务器
linux·服务器·centos·radius
安 当 加 密2 年前
【安当产品应用案例100集】003-基于SSL VPN架构,通过ASP Radius认证机制强化远程办公
web安全·架构·ssl·远程办公·身份认证·radius
强哥之神3 年前
微软正式发布开源应用平台 Radius平台
云原生·kubernetes·radius