当前位置: 首页 > news >正文

AAA 服务器与 RADIUS 协议笔记

一、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)认证与授权阶段
  1. 用户向 RADIUS 客户端(如无线 AP)输入用户名和密码等身份凭证;
  2. RADIUS 客户端将凭证封装为Access-Request(认证请求) 报文,通过共享密钥加密后发送给 RADIUS 服务器;
  3. RADIUS 服务器从后端用户数据库查询用户信息,比对凭证合法性:
    • 若认证通过,返回Access-Accept(认证通过) 报文,同时携带授权规则(如分配 IP 地址、会话超时时间);
    • 若认证失败,返回Access-Reject(认证拒绝) 报文,拒绝用户接入。
(2)计费阶段
  1. 认证通过后,RADIUS 客户端发送Accounting-Request(Start) 报文给服务器,标记会话开始,触发计费统计;
  2. 会话过程中,客户端可定期发送计费更新报文(可选);
  3. 当用户结束访问时,RADIUS 客户端发送Accounting-Request(Stop) 报文,携带完整的会话统计数据(如总流量、总时长);
  4. 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-AddressNAS 设备(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 分配等)。

http://www.dtcms.com/a/345019.html

相关文章:

  • C语言初学笔记【联合与枚举】
  • Unreal Engine USceneComponent
  • 如何实现二维CAD与3D建模工程图关联一体化出图 | 中望3D 2026新亮点
  • android sdk 虚拟机是否可以通过命令行打开?
  • 数字逻辑与数字系统设计之电梯控制器设计
  • 防爆连接器在防爆箱上的作用
  • shell脚本第二阶段-----选择结构
  • Unreal Engine IWYU Include What You Use
  • DLT645仪表通信,串口助手调试读写地址
  • 【C#】观察者模式 + UI 线程调度、委托讲解
  • vuex如何在js文件中使用
  • NVIDIA GB200 架构详解及与 B200/H200/H100 的区别
  • 【芯芯相印】芯片设计生产全流程核心技术术语与实践指南:从架构定义到量产交付的完整图谱
  • NLP学习之Transformer(2)
  • 数据预处理学习笔记
  • Thunderbird 将推出在德国托管的加密电子邮件服务
  • Android Jetpack | Hilt
  • 快速了解深度学习
  • 数学建模--Topsis(Python)
  • 学习python第12天
  • 第5.3节:awk数据类型
  • gcc 和 make 命令
  • 机试备考笔记 17/31
  • 打工人日报20250822
  • Redis 部署模式深度对比与选型指南
  • 计算机毕设大数据方向:电信客户流失数据分析系统技术实现详解
  • ​如何用 Windows 10 ISO 文件重装系统?U盘安装教程(附安装包下载)
  • Kubernetes 调度器 详解
  • 加密货币与区块链:六大刑事重灾区
  • Vue3源码reactivity响应式篇之Reactive