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

AAA 技术详解:认证、授权与计费的原理、应用与配置实践

AAA(Authentication, Authorization, Accounting,即认证、授权和计费)是网络安全的“身份管理员”,负责验证用户身份、分配访问权限并记录行为轨迹。它如同网络世界中的“物业管理系统”,通过三重机制确保接入安全、权限清晰、操作可追溯。


一、AAA 概述:网络安全的“三道防线”
1.1 AAA 的定义与背景

AAA 是一种网络安全框架,起源于远程访问管理需求,最早用于拨号网络(如 PPP)。随着局域网、Wi-Fi 和设备管理的普及,AAA 扩展到更广泛的场景,成为现代网络不可或缺的一部分。它通过三步流程——认证(确认“你是谁”)、授权(决定“你能做什么”)、计费(记录“你做了什么”)——实现对用户和设备的精细控制。

AAA 的历史与网络接入技术的演进密切相关。早期的网络多依赖简单密码或无认证接入,难以应对日益增长的安全威胁。AAA 的出现,结合 RADIUS(1991 年提出)和 TACACS+ 等协议,提供了标准化的解决方案,广泛应用于企业、ISP 和教育网络。

1.2 AAA 的核心功能与特性
  • 认证(Authentication):验证用户或设备身份,支持密码、证书等多因子方式。
  • 授权(Authorization):根据身份分配权限,如访问范围、带宽限制等。
  • 计费(Accounting):记录访问时间、流量使用或操作日志,便于审计。
  • 集中管理:通过服务器统一处理,提升效率和一致性。
  • 灵活性:支持有线、无线、VPN 和设备管理等多种场景。
  • 安全性:防止未授权访问,保护网络资源。
1.3 AAA 的典型应用场景
  • 企业网络:管理员工和访客的接入权限。
  • 公共 Wi-Fi:验证用户身份,限制非法使用。
  • ISP 服务:计费用户流量,提供差异化服务。
  • 设备管理:控制管理员对路由器、交换机的操作。
  • 远程访问:结合 VPN 确保安全登录。

二、AAA 的工作机制:三步协同的基石
2.1 核心组件及其分工

AAA 的运行依赖三个角色协同工作:

  • 客户端(Client/Supplicant):请求接入的设备,如电脑、手机或 IoT 设备,提供身份凭据。
  • 网络访问服务器(NAS,Network Access Server):网络接入点(如交换机、路由器、AP),拦截用户请求并发起认证。
  • AAA 服务器(AAA Server):后台处理中心,通常运行 RADIUS 或 TACACS+ 协议,负责身份验证、权限分配和行为记录。

通信方式

  • 客户端与 NAS:通过 PPP、802.1X 或 Web 认证协议交互。
  • NAS 与 AAA 服务器:通过 RADIUS(UDP)或 TACACS+(TCP)传输数据。

比喻:客户端是“访客”,NAS 是“门卫”,AAA 服务器是“物业大脑”。

2.2 AAA 的工作流程

AAA 的运行像一场有条不紊的“入场检查”:

  1. 认证阶段
    • 客户端连接 NAS(如插上网线或连 Wi-Fi)。
    • NAS 发送认证请求(如“请输入用户名和密码”)。
    • 客户端提交凭据(如“zhangsan/password123”)。
    • NAS 将凭据转发至 AAA 服务器,服务器查验后返回“通过”或“拒绝”。
  2. 授权阶段
    • 服务器根据身份分配权限(如“仅限外网”或“全网访问”)。
    • NAS 执行授权策略,放行或限制流量。
  3. 计费阶段
    • NAS 记录用户行为(如“zhangsan 上网 2 小时,用 500MB”)。
    • 数据定期上传至服务器,形成审计日志。

关键点

  • 三步可独立执行,也可集成运行。
  • 未通过认证,NAS 拒绝所有非认证流量。
2.3 协议支持与状态管理
  • 协议:RADIUS 和 TACACS+ 是主要承载协议,详见下节。
  • 状态
    • 未认证:仅允许认证流量。
    • 已认证未授权:等待权限分配。
    • 已授权:正常访问并记录。
  • 异常处理:超时、重试、备用服务器切换。

三、RADIUS 与 TACACS+:AAA 的“两种语言”
3.1 RADIUS(远程认证拨号用户服务)
  • 定义:开源协议(RFC 2865),广泛用于认证和计费。
  • 特点
    • 使用 UDP(端口 1812/1813),传输快速。
    • 仅加密密码,报文整体不加密。
    • 认证和授权绑定,计费功能强大。
  • 优势:简单高效,易于部署。
  • 局限:授权粒度较粗,安全性稍弱。
  • 场景:Wi-Fi 接入、ISP 计费。
3.2 TACACS+(终端访问控制访问控制系统+)
  • 定义:思科专有协议,强化管理功能。
  • 特点
    • 使用 TCP(端口 49),传输可靠。
    • 报文全加密,安全性高。
    • 认证、授权、计费独立控制。
  • 优势:权限细化,支持复杂策略。
  • 局限:非开源,兼容性有限。
  • 场景:设备管理(如路由器登录)。
3.3 对比表
特性RADIUSTACACS+
协议类型UDPTCP
加密范围仅密码整包加密
功能分离认证授权绑定三者独立
部署复杂度中高
典型应用Wi-Fi、VPN设备管理

选择建议:上网认证选 RADIUS,设备管理选 TACACS+。


四、AAA 的优势与局限:实用性的平衡
4.1 核心优势
  • 安全性:严格身份验证,杜绝非法接入。
  • 权限管理:细化控制,满足多样化需求。
  • 可追溯性:行为记录便于审计和问题排查。
  • 集中化:统一管理,降低运维成本。
  • 扩展性:支持大规模用户和设备。
4.2 局限性分析
  • 部署成本:需搭建服务器,初期投入较高。
  • 配置复杂:小型网络可能显得“杀鸡用牛刀”。
  • 依赖性:服务器故障可能影响接入。
4.3 应用实例

场景:企业区分员工和访客网络。

  • 需求:员工全网访问,访客仅外网。
  • 结果:员工认证后访问内部资源,访客受限,行为全记录。

五、AAA 配置与实践:企业网络场景
5.1 场景描述

网络结构:企业 LAN(192.168.1.0/24),包含交换机(NAS)、无线 AP 和 RADIUS 服务器(192.168.1.100)。 需求

  • 员工通过 802.1X 认证,授权全网访问。
  • 访客通过 Web 认证,授权外网访问。
  • 记录所有用户行为。
5.2 交换机配置(NAS)
system-view
# 配置 RADIUS 服务器
radius scheme MYRADIUSserver-type standardprimary authentication 192.168.1.100 1812primary accounting 192.168.1.100 1813key authentication cipher MySecureKeykey accounting cipher MySecureKey
# 配置 AAA
aaaauthentication lan-access radius-scheme MYRADIUSauthorization lan-access radius-scheme MYRADIUSaccounting lan-access radius-scheme MYRADIUS
# 启用 802.1X
dot1x
interface GigabitEthernet0/0/1dot1x authentication-method eapdot1x port-control auto
5.3 无线 AP 配置
system-view
# 配置 RADIUS
radius scheme MYRADIUSprimary authentication 192.168.1.100 1812key authentication cipher MySecureKey
# 配置 WLAN
wlan service-template 1ssid COMPANY-WIFIauthentication-method radius MYRADIUSaccounting-method radius MYRADIUS
5.4 RADIUS 服务器配置(示例)
  • 用户数据库
    • 员工:wang123/password123,属性:VLAN 10。
    • 访客:guest/guestpass,属性:VLAN 20,带宽 2Mbps。
  • 计费策略:记录接入时间和流量。
5.5 验证与故障排查
  • 查看状态:display aaa user
  • 检查日志:display logbuffer
  • 模拟测试:员工登录验证 VLAN 10,访客受限外网。

六、AAA 的安全、优化与故障排查
6.1 安全机制
  • 多因子认证:结合密码和 OTP(一次性密码)。
  • 加密增强:TACACS+ 全加密,或 RADIUS 配合 TLS。
  • 访问控制:限制 NAS 与服务器的通信 IP。
6.2 优化技术
  • 动态 VLAN:根据用户身份分配网络。
  • 负载均衡:部署多台 AAA 服务器。
  • 实时计费:缩短记录间隔,提升审计精度。
6.3 故障排查案例
  • 问题:用户无法认证。
    • 检查:凭据是否正确,服务器是否可达。
    • 解决:验证 RADIUS 密钥一致性。
  • 问题:权限未生效。
    • 检查:授权属性是否正确下发。
    • 解决:调整服务器返回参数。

七、AAA 的未来与趋势
  • 零信任集成:与 NAC 结合,强化安全。
  • 云 AAA:迁移至云端,提升灵活性。
  • AI 分析:利用日志预测异常行为。

相关文章:

AAA 技术详解:认证、授权与计费的原理、应用与配置实践

AAA(Authentication, Authorization, Accounting,即认证、授权和计费)是网络安全的“身份管理员”,负责验证用户身份、分配访问权限并记录行为轨迹。它如同网络世界中的“物业管理系统”,通过三重机制确保接入安全、权…...

OneM2M:全球性的物联网标准-可应用于物联网中

OneM2M 是一个全球性的物联网(IoT)标准,旨在为物联网设备和服务提供统一的框架和接口,以实现设备之间的互操作性、数据共享和服务集成。OneM2M 由多个国际标准化组织(如 ETSI、TIA、TTC、ARIB 等)共同制定,目标是解决物联网领域的碎片化问题,提供一个通用的标准,支持跨…...

redis数据迁移教程(使用RedisShake实现不停机迁移十分便捷)

1.我的场景 需要把本地的redis数据上传到阿里云服务器上面,服务器上redis并没有开aof持久化,但是将rdb文件上传至服务器后每次重启redis,rdb文件会被覆盖导致无法同同步数据,最终决定使用RedisShake 2.RedisShake介绍 什么是 RedisShake​ RedisShake 是一个用于处理和迁移…...

Linux基本操作指令3

1、wget: 这是一个用于从网络上下载文件的命令行工具。它支持 HTTP、HTTPS 和 FTP 协议。 wget http://download.qt.io/archive/qt/5.12/5.12.9/qt-opensource-linux-x64-5.12.9.run 2、下载完成后,你可以通过以下命令使文件可执行并运行安装程序: ch…...

2025年2月平价旗舰手机性能对比

1、荣耀Magic7 点评:缺席潜望式长焦,3X直立长焦体验还行。兼顾性能、游戏、屏幕、影像、续航、快充等诸多方面,且外围配置比较齐全。 2、vivo x200 点评:潜望式长焦相机,拍照效果好,30W无线充电着实鸡肋&a…...

Python SQLite3 保姆级教程:从零开始学数据库操作

Python SQLite3 保姆级教程:从零开始学数据库操作 本文适合纯新手!无需任何数据库基础,跟着步骤操作即可掌握 SQLite3 的核心用法。 目标:让你像用记事本一样轻松操作数据库! 目录 什么是 SQLite3?环境准…...

第七步:简单爬虫与网页测试

Puppeteer 官方文档:https://puppeteer.bootcss.com/ 1、安装 puppeteer是一个node插件安装命令:npm i puppeteer 2、概念 无头浏览器:就是不打开浏览器的页面,直接进行浏览器后台操作 3、入门 引入:import pup…...

4.桥接模式

概况 桥接模式:将抽象部分与实现部分分离,使它们可以独立变化,通过组合而非继承的方式实现解耦。 业务场景 场景描述:开发一个跨平台的图形绘制系统,支持不同形状(如圆形、矩形)和不同渲染方式…...

Golang学习笔记_44——命令模式

Golang学习笔记_41——观察者模式 Golang学习笔记_42——迭代器模式 Golang学习笔记_43——责任链模式 文章目录 一、核心概念1. 定义2. 解决的问题3. 核心角色4. 类图 二、特点分析三、适用场景1. 事务管理系统2. 多媒体遥控器3. 操作审计系统 四、Go语言实现示例五、高级应用…...

算法中的背包问题详解:部分背包与0-1背包

1. 背包问题概述 背包问题是组合优化中的经典问题,其核心目标是:在给定容量的背包中装入一组物品,使得物品的总价值最大化。根据物品是否可分割或重复选择,背包问题分为多个变种,其中最常见的两种是: 部分…...

【单片机通信技术】STM32 HAL库 SPI主从机通过串口发送数据

一、说明 使用STM32F103C8T6最小系统板,让板载SPI1与SPI2通信,通过串口收发数据。本文章说明了在配置与编写时遇到的一些问题,以及详细说明如何使用cubeMAX进行代码编写。 二、CubeMAX配置 1.时钟配置选择外部高速时钟 2.系统模式与时钟配…...

laravel中 添加公共/通用 方法/函数

一,现在app 下面创建Common目录,然后在创建Common.php 文件 二,修改composer.json文件 添加这个到autoload 中 "files": ["app/Common/Common.php"]"autoload": {"psr-4": {"App\\": &quo…...

Jetpack Compose — 入门实践

一、项目中使用 Jetpack Compose 从此节开始,为方便起见,如无特殊说明,Compose 均指代 Jetpack Compose。 开发工具: Android Studio 1.1 创建支持 Compose 新应用 新版 Android Studio 默认创建新项目即为 Compose 项目。 注意:在 Language 下拉菜单中,Kotlin 是唯一可…...

P8686 [蓝桥杯 2019 省 A] 修改数组--并查集 or Set--lower_bound()的解法!!!

P8686 [蓝桥杯 2019 省 A] 修改数组--并查集 题目 并查集解析代码【并查集解】 Set 解法解析lower_bound代码 题目 并查集解析 首先先让所有的f(i)i,即每个人最开始的祖先都是自己,然后就每一次都让轮到那个数的父亲1&#xff08…...

应用案例 | 精准控制,高效运行—宏集智能控制系统助力SCARA机器人极致性能

概述 随着工业4.0的深入推进,制造业对自动化和智能化的需求日益增长。传统生产线面临空间不足、效率低下、灵活性差等问题,尤其在现有工厂改造项目中,如何在有限空间内实现高效自动化成为一大挑战。 此次项目的客户需要在现有工厂基础上进行…...

Greenplum6.19集群搭建

一,安装说明 1.1环境说明 1、首先确定部署的环境,确定下服务器的端口,一般默认是22的端口; 2、当前这份文档是服务器处于10022端口下部署的(现场生产环境要求,22端口在生产环境存在安全隐患)&…...

sqlserver中的锁模式 | SQL SERVER如何开启MVCC(使用row-versioning)【启用行版本控制减少锁争用】

文章目录 引言锁和隔离级别的关系锁模式之间兼容性I 隔离级别SQLServer默认的隔离级别为:“read commited” (已提交读)在SQLServer2005引入了基于行版本控制的隔离级别。SQL SERVER如何开启MVCC(使用row-versioning)sqlserver开启MVCC后的锁II sqlserver中的锁模式**1、共享…...

胜软科技冲刺北交所一年多转港股:由盈转亏,毛利率大幅下滑

《港湾商业观察》施子夫 近期,山东胜软科技股份有限公司(以下简称,胜软科技)递表港交所获受理,独家保荐机构为广发证券(香港)。 在赴港上市之前,胜软科技还曾谋求过A股上市&#x…...

Java零基础入门笔记:多线程

前言 本笔记是学习狂神的java教程,建议配合视频,学习体验更佳。 【狂神说Java】Java零基础学习视频通俗易懂_哔哩哔哩_bilibili 第1-2章:Java零基础入门笔记:(1-2)入门(简介、基础知识)-CSDN博客 第3章…...

Django 中,Form 和 ModelForm的用法和区别

在 Django 中,Form 和 ModelForm 是用于处理表单数据的两种主要方式。它们的主要区别在于是否与模型(Model)直接关联。以下是它们的用法、区别以及高级用法的详细说明: 一、Form 的使用 1. 基本用法 Form 是一个独立的表单类,不与任何模型直接关联。适用于需要手动定义字…...

tcp udp区别

TCP(传输控制协议) 和 UDP(用户数据报协议) 是两种常用的传输层协议,它们在数据传输方式、可靠性和应用场景等方面有显著区别。以下是它们的主要区别: 1. 连接方式 TCP:面向连接的协议。通信前需…...

数据类设计_图片类设计之1_矩阵类设计(前端架构基础)

前言 学的东西多了,要想办法用出来.C和C是偏向底层的语言,直接与数据打交道.尝试做一些和数据方面相关的内容 引入 图形在底层是怎么表示的,用C来表示 认识图片 图片是个风景,动物,还是其他内容,人是可以看出来的.那么计算机是怎么看懂的呢?在有自主意识的人工智能被设计出来…...

C++:入门详解(关于C与C++基本差别)

目录 一.C的第一个程序 二.命名空间(namespace) 1.命名空间的定义与使用: (1)命名空间里可以定义变量,函数,结构体等多种类型 (2)命名空间调用(&#xf…...

GC安全点导致停顿时间过长的案例

GC安全点导致停顿时间过长的案例 前言安全点的概念案例分析解决方法如有需要收藏的看官,顺便也用发财的小手点点赞哈,如有错漏,也欢迎各位在评论区评论! 前言 前段时间在使用G1垃圾收集时,因服务读写压力过大&#xf…...

linux下 jq 截取json文件信息

背景:通过‘登录名‘ 获取该对象的其他个人信息如名字。 环境准备:麒麟操作系统V10 jq安装包 jq安装包获取方式:yum install jq 或 使用附件中的rpm 或 git自行下载 https://github.com/stedolan/jq/releases/download/ 实现过程介绍&am…...

git lfs使用方法指南【在github保存100M以上大文件】

为了在 GitHub 仓库中存储超过 100MB 的大文件并避免推送失败,使用 Git LFS(Large File Storage) 是最佳解决方案。以下是详细步骤: 一、安装 Git LFS 下载并安装 Git LFS: 访问 Git LFS 官网 下载对应系统的安装包。或…...

躲藏博弈:概率论与博弈论视角下的最优策略选择

躲藏博弈:概率论与博弈论视角下的最优策略选择 1. 问题引入 想象这样一个场景:你在厕所里藏了一部手机,一周过去了,它仍未被发现。现在你面临一个决策: 选项A:继续将手机留在原处选项B:将手机…...

类加载器加载过程

今天我们就来深入了解一下Java中的类加载器以及它的加载过程。 一、什么是类加载器? 在Java中,类加载器(Class Loader)是一个非常重要的概念。它负责将类的字节码文件(.class文件)加载到Java虚拟机&#x…...

Python中dump、dumps和load、loads的异同

Python中dump、dumps和load、loads的异同 Python中dump、dumps和load、loads的异同 1. json.dump()和json.dumps() 1.1 json.dump()1.1 json.dumps() 2. json.load()和json.loads() 2.1 json.load()2.2. json.loads() 3. 总结对比4. 区分5. 完整代码 1. json.dump()和json.dum…...

Spring Boot整合ArangoDB教程

精心整理了最新的面试资料和简历模板,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 一、环境准备 JDK 17Maven 3.8Spring Boot 3.2ArangoDB 3.11(本地安装或Docker运行) Docker启动ArangoDB docker run -d --name ar…...