一、AAA 服务器概述
1. 核心定义
AAA 是认证(Authentication)、授权(Authorization)和计费(Accounting) 的简称,是网络安全领域中实现访问控制的核心安全管理机制,通过整合三种服务确保网络资源的安全访问。
2. 三大核心功能
- 认证(Authentication):验证用户身份的合法性,确认 “你是谁”。
核心动作包括核对用户名、密码、数字证书等用户凭证。 - 授权(Authorization):在认证通过后,明确用户可访问的资源范围,规定 “你能做什么”。
具体表现为下发用户权限(如读写权限)、允许访问的目录 / 服务、用户操作级别等规则。 - 计费(Accounting):记录用户对网络资源的使用情况,统计 “你用了多少”。
主要记录内容包括上网流量、连接时长、资源访问次数等数据,为计费结算或审计提供依据。
3. 应用场景
AAA 服务器通过精细化配置,可对多种网络服务提供安全保障,支持的典型服务包括 FTP、TELNET、PPP(点到点协议)、端口接入(如交换机端口准入)等。
二、RADIUS 协议详解
1. 协议定义
RADIUS(Remote Authentication Dial-In User Service,远程认证拨号用户服务)是基于 AAA 模型的分布式网络协议,专为远程用户接入认证场景设计,是实现 AAA 机制的最常用协议之一。
2. 核心特性
- 采用客户端 / 服务器(C/S)架构,分工明确;
- 基于UDP 协议传输,默认使用端口:1812(认证与授权)、1813(计费);
- 通过共享密钥实现客户端与服务器的身份验证,保障通信安全;
- 支持多种认证方式(如密码认证、证书认证等);
- 采用TLV(Type-Length-Value)结构定义属性,扩展性极强,可灵活适配不同场景需求。
3. 核心组件
- 用户:远程接入网络的终端用户(如拨号用户、无线接入用户等),需提供身份凭证(用户名、密码等)。
- RADIUS 客户端(网络接入服务器,NAS):直接接收用户接入请求的设备(如路由器、交换机、无线 AP),负责将用户凭证封装为协议报文并转发给 RADIUS 服务器。
- RADIUS 服务器:核心处理节点,负责接收客户端转发的认证 / 授权请求,查询后端用户数据库(如 AD、LDAP)验证身份,执行授权规则,并记录计费信息;通常对接策略管理系统实现动态规则配置。
4. 完整交互流程
(1)认证与授权阶段
- 用户向 RADIUS 客户端(如无线 AP)输入用户名和密码等身份凭证;
- RADIUS 客户端将凭证封装为Access-Request(认证请求) 报文,通过共享密钥加密后发送给 RADIUS 服务器;
- RADIUS 服务器从后端用户数据库查询用户信息,比对凭证合法性:
- 若认证通过,返回Access-Accept(认证通过) 报文,同时携带授权规则(如分配 IP 地址、会话超时时间);
- 若认证失败,返回Access-Reject(认证拒绝) 报文,拒绝用户接入。
(2)计费阶段
- 认证通过后,RADIUS 客户端发送Accounting-Request(Start) 报文给服务器,标记会话开始,触发计费统计;
- 会话过程中,客户端可定期发送计费更新报文(可选);
- 当用户结束访问时,RADIUS 客户端发送Accounting-Request(Stop) 报文,携带完整的会话统计数据(如总流量、总时长);
- RADIUS 服务器接收后返回Accounting-Response 报文确认,完成计费记录闭环。
5. 报文结构
RADIUS 报文由固定头部和可变属性两部分组成,结构如下:
- Code(1 字节):定义报文类型,核心类型包括:
1=Access-Request(认证请求)、2=Access-Accept(认证通过)、3=Access-Reject(认证拒绝)、4=Accounting-Request(计费请求)、5=Accounting-Response(计费响应)。 - Identifier(1 字节):报文标识,用于匹配请求与响应,防止报文重复或乱序。
- Length(2 字节):整个报文的总长度(字节数),范围为 20~4096 字节。
- Authenticator(16 字节):认证字段,由共享密钥和报文内容计算生成,用于验证报文完整性、防止篡改及客户端 / 服务器身份校验。
- Attributes(可变长度):携带具体业务数据的属性列表,每个属性格式为 “类型(1 字节)+ 长度(1 字节)+ 值(可变长度)”。
6. 核心属性(Attributes)
属性是 RADIUS 协议灵活性的核心,用于传递用户信息、认证数据、授权规则等关键内容。常见核心属性如下:
属性类型 | 描述 | 示例值 |
---|---|---|
User-Name | 用户名(用户身份标识) | "alice@company.com" |
User-Password | 加密的用户密码(用共享密钥加密) | 基于共享密钥加密的字符串 |
NAS-IP-Address | NAS 设备(RADIUS 客户端)的 IP 地址 | 192.168.1.1 |
Framed-IP-Address | 分配给用户的 IP 地址 | 10.0.0.5 |
Session-Timeout | 会话超时时间(单位:秒) | 3600(即 1 小时) |
Service-Type | 允许用户访问的服务类型 | "Framed-User"(拨号用户) |
Called-Station-Id | 接入点标识(如无线 AP 的 MAC 地址) | "AA-BB-CC-DD-EE-FF" |
这些属性可根据实际需求扩展,支持自定义业务规则(如带宽限制、VLAN 分配等)。