计算机网络-AAA原理概述
对于任何网络,用户管理都是最基本的安全管理要求之一,在华为设备管理中通过AAA框架进行认证、授权、计费实现安全验证。
一、AAA概述
AAA(Authentication(认证), Authorization(授权), and Accounting(计费))是一种管理框架,它提供了授权部分用户访问指定资源和记录这些用户操作行为的安全机制。因其具有良好的可扩展性,并且容易实现用户信息的集中管理而被广泛使用。AAA可以通过多种协议来实现,在实际应用中,最常使用RADIUS (Remote Authentication Dial-In User Service)协议。
AAA是Authentication(认证)、Authorization(授权)和Accounting(计费)的简称,是网络安全的一种管理机制,提供了认证、授权、计费三种安全功能。 
AAA常见网络架构中包括:
-
用户,接入用户,需要访问资源的接入者 -
NAS(Network Access Server),网络设备,如果配置了本地认证则网络设备作为认证服务器角色 -
AAA服务器(AAA Server),远程认证服务器,常见如RADIUS服务器
因为这边没有搭建RADIUS服务器所以我也没有用过这个远程认证,一般用的本地认证。
二、AAA实现
认证、授权、计费每个部分可以独立进行设置。
AAA支持三种认证方式:
-
不认证:完全信任用户,不对用户身份进行合法性检查。鉴于安全考虑,这种认证方式很少被采用。 -
本地认证:将本地用户信息(包括用户名、密码和各种属性)配置在NAS上,此时NAS就是AAA Server。本地认证的优点是处理速度快、运营成本低;缺点是存储信息量受设备硬件条件限制。这种认证方式常用于对用户登录设备进行管理,如Telnet,FTP用户等。 -
远端认证:将用户信息(包括用户名、密码和各种属性)配置在认证服务器上。支持通过RADIUS协议或HWTACACS协议进行远端认证。NAS作为客户端,与RADIUS服务器或HWTACACS服务器进行通信。
AAA授权功能赋予用户访问的特定网络或设备的权限。AAA支持以下授权方式:
-
不授权:不对用户进行授权处理。 -
本地授权:根据NAS上对应域下的配置进行授权。 -
远端授权:支持由RADIUS服务器授权或HWTACAS服务器授权。 -
HWTACACS授权,使用HWTACACS服务器对所有用户授权。 -
RADIUS授权,只支持对通过RADIUS服务器认证的用户授权。RADIUS协议的认证和授权是绑定在一起的,不能单独使用RADIUS进行授权。
-
当采用远端授权时,用户可以同时从授权服务器和NAS获取授权信息。NAS配置的授权信息优先级比授权服务器下发的授权信息低。
AAA支持以下两种计费方式:
-
不计费:为用户提供免费上网服务,不产生相关活动日志。 -
远端计费:支持通过RADIUS服务器或HWTACACS服务器进行远端计费。
认证和授权都有三种形式:不认证、本地认证、远端认证(RADIUS服务器认证),计费一般用得少。
三、RADIUS简介
RADIUS是一种分布式的、客户端/服务器结构的信息交互协议,可以实现对用户的认证、计费和授权功能。
通常由NAS作为RADIUS客户端,负责传输用户信息到指定的RADIUS服务器,然后根据从服务器返回的信息进行相应处理(如接受/拒绝用户接入)。RADIUS服务器一般运行在中心计算机或工作站上,维护相关的用户认证和网络服务访问信息,负责接收用户连接请求并认证用户,然后给客户端返回所有需要的信息(如接受/拒绝认证请求)。RADIUS使用UDP(User Datagram Protocol)作为传输协议,并规定UDP端口1812、1813分别作为认证、计费端口,具有良好的实时性;同时也支持重传机制和备用服务器机制,从而具有较好的可靠性。 
简单来讲就是在服务器区域部署一个认证服务器用于账号与权限管理,在网络设备NAS上配置到认证服务器的地址和端口,当指定用户实现RADIUS时代理认证和请求信息,通过了认证才允许访问资源。
四、AAA的应用场景
常见的有以下应用场景: 
因为没有搭建服务器一般可以使用NAS本地认证就是网络设备作为认证服务器将账号密码和授权配置好即可。
在华为的网络设备上的AAA的配置简介:
aaa中以域为一个分组,域配置绑定对应的认证、授权、计费模板,模板里面可以设置(不认证、本地认证、远端认证等),然后创建用户关联到指定的域配置模板,用户默认不使用@符号就是关联到系统默认的default域,因此如果需要自定义认证域在创建时必须指定@域名,域名可以自行设置。
系统默认配置如下:
# 默认域default和default_admin,默认认证、授权是本地认证和不认证
aaa authentication-scheme defaultauthorization-scheme defaultaccounting-scheme defaultdomain default domain default_admin local-user admin password cipher %$%$K8m.Nt84DZ}e#<0`8bmE3Uw}%$%$local-user admin service-type http
五、AAA配置
配置示例:
# 进入AAA视图
[Huawei] aaa# 创建认证方案
[Huawei-aaa] authentication-scheme authentication-scheme-name # 创建认证方案并进入相应的认证方案视图,配置认证方式,local指定认证方式为本地认证。缺省情况下,认证方式为本地认证。
[Huawei-aaa-authentication-scheme-name] authentication-mode { hwtacacs | local | radius }# 创建domain并绑定认证方案
[Huawei-aaa] domain domain-name# 在相应的domain视图下绑定认证方案
[Huawei-aaa-domain-name] authentication-scheme authentication-scheme-name # 在aaa视图下创建用户,如果用户名中带域名分隔符,如@,则认为@前面的部分是用户名,后面部分是域名如果没有@,则整个字符串为用户名,域为默认域
[Huawei-aaa] local-user user-name password cipher password# 配置用户接入类型
[Huawei-aaa] local-user user-name service-type { { terminal | telnet | ftp | ssh | snmp | http } | ppp | none }# 配置用户级别
[Huawei-aaa] local-user user-name privilege level level
因为没有RADIUS只能测试NAS本地认证实现ssh和telnet实验配置。
5.1 SSH实验配置。 
AR1服务器端:
# 服务器端配置
# 配置接口地址
interface GigabitEthernet0/0/0ip address 12.1.1.1 255.255.255.0
#
interface GigabitEthernet0/0/1ip address 192.168.1.254 255.255.255.0 # 开启SSH服务器功能,华为上叫stelnet
stelnet server enable # 配置远程VTY的验证方式,因为SSH和telnet通过一个虚拟终端连接到设备,也就是VTY方式因此需要配置VTY验证,配置aaa验证
user-interface vty 0 4authentication-mode aaaprotocol inbound all# 最后进入aaa视图配置
authentication-scheme test # 创建一个认证模板,认证方式为local,默认为localauthentication-mode localqu # 返回aaa视图
authorization-scheme test # 创建一个授权模板,使用本地授权,就是在创建本地用户时候指定授权authorization-mode localqu # 返回aaa视图
accounting-scheme test # 创建一个计费模板,不计费accounting-mode none qu # 返回aaa视图
domain test # 创建一个域模板,将上面3个模板关联到域模板下authentication-scheme test accounting-scheme testauthorization-scheme testqu # 返回aaa视图
# 开始创建用户,使用用户名@域名格式创建,服务允许telent ,ssh ,terminal
local-user chuck@test password cipher 123456local-user chuck@test privilege level 13local-user chuck@test service-type telnet terminal ssh<AR1> save
AR2通过stelnet登录到服务器。
# 正确配置接口地址
interface GigabitEthernet0/0/0ip address 12.1.1.2 255.255.255.0 # 配置第一次远程认证,这个我理解就是第一次登录需要输入账号密码那个框,需要开启
ssh client first-time enable# 在用户视图下进行登录
[AR2]stelnet 12.1.1.1
Please input the username:chuck@test
Trying 12.1.1.1 ...
Press CTRL+K to abort
Connected to 12.1.1.1 ...
Enter password:
<AR1>dis usersUser-Intf Delay Type Network Address AuthenStatus AuthorcmdFlag0 CON 0 00:05:13 pass Username : Unspecified+ 129 VTY 0 00:00:00 SSH 12.1.1.2 pass Username : chuck@test <AR1># 注意第一次登录会提示y/n看清楚,然后用户名需要带域名的格式
# 通过dis users可以看到当前登录用户信息及登录方式
在服务器端进行AAA认证信息的查看:
[AR1]dis aaa offline-record all -------------------------------------------------------------------User name : chuck@testDomain name : testUser MAC : ffff-ffff-ffffUser access type : SSHUser IP address : 2.1.1.12User ID : 8User login time : 2024/01/17 16:40:32User offline time : 2024/01/17 16:42:26User offline reason: user request to offline-------------------------------------------------------------------Are you sure to display some information?(y/n)[y]:y-------------------------------------------------------------------User name : chuck@testDomain name : testUser MAC : ffff-ffff-ffffUser access type : SSHUser IP address : 2.1.1.12User ID : 7User login time : 2024/01/17 15:28:41User offline time : 2024/01/17 15:29:56User offline reason: user request to offline-------------------------------------------------------------------Are you sure to display some information?(y/n)[y]:y# 查看域模板信息
[AR1]dis domain name testDomain-name : test Domain-state : ActiveAuthentication-scheme-name : testAccounting-scheme-name : testAuthorization-scheme-name : testService-scheme-name : -RADIUS-server-template : -HWTACACS-server-template : -User-group : -
暂时只能实现这个了,如果要配置RADIUS需要远程服务器,然后配置服务器地址和端口信息。
总结:AAA是一套认证授权的模板,分为认证、授权、计费,每个功能可以设置不认证、本地认证、远端认证,3个模板可以灵活实现认证功能,简单实验了一下通过AAA实现远程登录验证,今天就先这样了。
对文章感兴趣的欢迎搜索:不喜欢热闹的孩子 
本文由 mdnice 多平台发布
相关文章:
计算机网络-AAA原理概述
对于任何网络,用户管理都是最基本的安全管理要求之一,在华为设备管理中通过AAA框架进行认证、授权、计费实现安全验证。 一、AAA概述 AAA(Authentication(认证), Authorization(授权), and Accounting(计费))是一种管理框架&#…...
Oracle BIEE 示例(一)数据透视表2
1 背景 版本:BIEE 12C 视图:数据透视表 实现内容(顺序与具体内容不一致): 2 空列显示(方法一) 2.1 问题 列为空时,标题栏不显示信息。 2.2 期望 即使数据为空,也要显示列名。 2.3 官方资料 2.3.1 操作步骤 2.3.1.1 要在分析级别关闭空值隐藏,请执行以下操作…...
算法训练营Day50(动态规划11)
说明 较难,二刷再仔细打代码 123.买卖股票的最佳时机III 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 提醒 这道题一下子就难度上来了,关键在于至多买卖两次,这意味着可以买卖一次,可以买卖两次&a…...
DS:顺序表的实现(超详细!!)
创作不易,友友们给个三连呗! 本文为博主在DS学习阶段的第一篇博客,所以会介绍一下数据结构,并在最后学习对顺序表的实现,在友友们学习数据结构之前,一定要对三个部分的知识——指针、结构体、动态内存管理的…...
用flinkcdc debezium来捕获数据库的删除内容
我在用flinkcdc把数据从sqlserver写到doris 正常情况下sqlserver有删除数据,doris是能捕获到并很快同步删除的。 但是我现在情况是doris做为数仓,数据写到ods,ods的数据还会通过flink计算后写入dwd层,所以此时ods的数据是删除了…...
mariadb数据库从入门到精通
mariadb数据库的安装以及安全初始化 mariadb数据库的安装以及安全初始化 mariadb数据库的安装以及安全初始化一、实验前提二、mariadb数据库的安装三、mariadb数据库安全初始化3.1 设定数据库基本的安全初始化3.2关闭对外开放端口 系列文章目录一、查看数据库二、进入库并且查看…...
LabVIEW探测器CAN总线系统
介绍了一个基于FPGA和LabVIEW的CAN总线通信系统,该系统专为与各单机进行系统联调测试而设计。通过设计FPGA的CAN总线功能模块和USB功能模块,以及利用LabVIEW开发的上位机程序,系统成功实现了CAN总线信息的收发、存储、解析及显示功能。测试结…...
侧输出流(Side Output)
侧输出流(Side Output)是处理函数中的一个重要功能,允许我们将自定义的数据发送到侧输出流中进行处理或输出。通过将数据发送到侧输出流,我们可以将不同的数据流进行分离,以便进行不同的处理和操作。 在处理函数中&…...
Vue 动态组件与异步组件:深入理解与全面应用
聚沙成塔每天进步一点点 本文内容 ⭐ 专栏简介1. 动态组件实现原理:用法示例: 2. 异步组件实现原理:用法示例: 3. 异步组件的高级应用a. 异步组件的命名:b. 异步组件的加载状态管理: ⭐ 写在最后 ⭐ 专栏简…...
Zephyr 源码调试
背景 调试环境对于学习源码非常重要,但嵌入式系统的调试环境搭建稍微有点复杂,需要的条件略多。本文章介绍如何在 Zephyr 提供的 qemu 上调试 Zephyr 源码,为后续分析 Zephyr OS 相关原理做铺垫。 环境 我的开发环境为 wsl ubuntu…...
数学建模绘图
注意:本文章旨在记录观看B站UP数模加油站之后的笔记文章,无任何商业用途~~ 必备网站 以下网站我都试过,可以正常访问 配色(取色)网站: Color Palettes Generator and Color Gradient Tool Python&#x…...
代码随想录算法训练营第十天 | 239.滑动窗口最大值、347.前K个高频元素
代码随想录算法训练营第十天 | 239.滑动窗口最大值、347.前K个高频元素 文章目录 代码随想录算法训练营第十天 | 239.滑动窗口最大值、347.前K个高频元素1 LeetCode 239.滑动窗口最大值2 LeetCode 347.前K个高频元素 1 LeetCode 239.滑动窗口最大值 题目链接:https…...
【Godot4自学手册】第五节用GDScript语言让主人公动起来
GDScript 是Godot自带的编程语言,用于编写游戏逻辑,它是一种高级面向对象的指令式编程语言,使用渐进类型,专为 Godot 构建。在这一小节里,我将自学用GDScript语言控制主人公的行走和攻击。 一、给Player节点添加GDScr…...
被问到Tomcat是什么该怎么回答?他还有一个好帮手JDK你知道吗?
目录 Tomcat简介: 使用建议: Tomcat好帮手---JDK Tomcat和JDK的关系 安装JDK 1.打开浏览器输入网址 Oracle | Cloud Applications and Cloud Platform 进入Oracle官网 2、在官网首页菜单栏,点击产品,在硬件和软件中找到Java࿰…...
【Web前端实操11】定位实操_照片墙(无序摆放)
设置一个板块,将照片随意无序摆放在墙上,从而形成照片墙。本来效果应该是很唯美好看的,就像这种,但是奈何本人手太笨,只好设置能达到照片墙的效果就可。 代码如下: <!DOCTYPE html> <html lang&…...
图像处理------调整色调
什么是色调? 色调,在画面上表现思想、感情所使用的色彩和色彩的浓淡。分为暖色调和冷色调。 from cv2 import destroyAllWindows, imread, imshow, waitKey#创建棕褐色色调 def make_sepia(img, factor: int):pixel_h, pixel_v img.shape[0], img.shap…...
【操作系统】实验七 显示进程列表
🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要&…...
[实战]加密传输数据解密
前言 下面将分享一些实际的渗透测试经验,帮助你应对在测试中遇到的数据包内容加密的情况。我们将以实战为主,技巧为辅,进入逆向的大门。 技巧 开局先讲一下技巧,掌握好了技巧,方便逆向的时候可以更加快速的找到关键函数…...
yarn install 报错 证书过期 Certificate has expired
“Certificate has expired” 的意思是证书已过期。这通常是指数字证书在其有效期限之前已经失效了。数字证书通常用于加密和保护网络通信,以及验证网站的身份。如果证书已经过期,那么使用该证书的网站或服务可能会受到安全威胁。为了保证安全࿰…...
多流转换 (分流,合流,基于时间的合流——双流联结 )
目录 一,分流 1.实现分流 2.使用侧输出流 二,合流 1,联合 2,连接 三,基于时间的合流——双流联结 1,窗口联结 1.1 窗口联结的调用 1.2 窗口联结的处理流程 2,间隔联结 2.1 间隔联…...
通过稳定的路由与容灾机制保障关键业务中的AI服务连续性
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过稳定的路由与容灾机制保障关键业务中的AI服务连续性 在将大模型能力集成到关键业务流程时,服务的连续性与可靠性是…...
构建离线优先应用终极指南:Material Components Web 与 Service Worker 完美集成
构建离线优先应用终极指南:Material Components Web 与 Service Worker 完美集成 【免费下载链接】material-components-web Modular and customizable Material Design UI components for the web 项目地址: https://gitcode.com/gh_mirrors/ma/material-compone…...
从零开始将Taotoken接入现有Nodejs项目实践步骤
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 从零开始将Taotoken接入现有Nodejs项目实践步骤 1. 准备工作:获取API密钥与模型信息 在开始代码改造之前,…...
构建高效AI学习伙伴:从系统提示词到结构化交互设计
1. 项目概述:一个为学习者量身定制的AI交互模式最近在GitHub上看到一个挺有意思的项目,叫“learner-ai-mode”。光看名字,你可能会觉得这又是一个普通的AI应用或者学习工具。但当我深入去研究它的代码和设计理念后,发现它其实指向…...
VMDE终极指南:如何快速检测虚拟机环境的完整教程
VMDE终极指南:如何快速检测虚拟机环境的完整教程 【免费下载链接】VMDE Source from VMDE paper, adapted to 2015 项目地址: https://gitcode.com/gh_mirrors/vm/VMDE VMDE(Virtual Machine Detection Enhanced)是一款强大的开源虚拟…...
抖音批量下载终极解决方案:douyin-downloader免费开源工具完整指南
抖音批量下载终极解决方案:douyin-downloader免费开源工具完整指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fa…...
边缘TTS实战:本地部署高质量语音合成与性能优化指南
1. 项目概述:当TTS遇见边缘计算最近在折腾一个需要实时语音合成的项目,发现了一个挺有意思的仓库:travisvn/openai-edge-tts。这名字一看就很有料,把“OpenAI”和“Edge-TTS”这两个词组合在一起,背后指向的是一个非常…...
移动端数据抓取实战:基于Capacitor插件实现自动化采集
1. 项目概述:一个为移动端设计的“数据抓手”最近在做一个移动端的数据采集项目,需要从一些应用里提取特定的信息。直接写原生代码去解析页面结构,不仅开发周期长,而且一旦目标应用的界面更新,我们的代码就得跟着改&am…...
联邦学习与RAG融合:构建隐私保护的跨机构智能检索系统
1. 项目概述与核心价值最近在折腾一个跨机构文档智能检索的原型,核心需求是:在不共享原始数据的前提下,让多个参与方(比如几家医院、几个研究实验室)能够联合起来,构建一个强大的、统一的文档知识库&#x…...
3步搞定B站视频下载:BBDown让你的收藏从未如此简单 [特殊字符]
3步搞定B站视频下载:BBDown让你的收藏从未如此简单 🎬 【免费下载链接】BBDown Bilibili Downloader. 一个命令行式哔哩哔哩下载器. 项目地址: https://gitcode.com/gh_mirrors/bb/BBDown 还在为无法离线观看B站优质内容而烦恼吗?BBDo…...
