计算机网络-AAA原理概述

对于任何网络,用户管理都是最基本的安全管理要求之一,在华为设备管理中通过AAA框架进行认证、授权、计费实现安全验证。

一、AAA概述

AAA(Authentication(认证), Authorization(授权), and Accounting(计费))是一种管理框架,它提供了授权部分用户访问指定资源和记录这些用户操作行为的安全机制。因其具有良好的可扩展性,并且容易实现用户信息的集中管理而被广泛使用。AAA可以通过多种协议来实现,在实际应用中,最常使用RADIUS (Remote Authentication Dial-In User Service)协议。

AAA是Authentication(认证)、Authorization(授权)和Accounting(计费)的简称,是网络安全的一种管理机制,提供了认证、授权、计费三种安全功能。 AAA基本概念

AAA常见网络架构中包括:

  • 用户,接入用户,需要访问资源的接入者
  • NAS(Network Access Server),网络设备,如果配置了本地认证则网络设备作为认证服务器角色
  • AAA服务器(AAA Server),远程认证服务器,常见如RADIUS服务器 AAA网络架构

因为这边没有搭建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分别作为认证、计费端口,具有良好的实时性;同时也支持重传机制和备用服务器机制,从而具有较好的可靠性。 RADIUS

简单来讲就是在服务器区域部署一个认证服务器用于账号与权限管理,在网络设备NAS上配置到认证服务器的地址和端口,当指定用户实现RADIUS时代理认证和请求信息,通过了认证才允许访问资源。

四、AAA的应用场景

常见的有以下应用场景: 应用场景

因为没有搭建服务器一般可以使用NAS本地认证就是网络设备作为认证服务器将账号密码和授权配置好即可。

在华为的网络设备上的AAA的配置简介: 华为AAA认证概述 aaa中以域为一个分组,域配置绑定对应的认证、授权、计费模板,模板里面可以设置(不认证、本地认证、远端认证等),然后创建用户关联到指定的域配置模板,用户默认不使用@符号就是关联到系统默认的default域,因此如果需要自定义认证域在创建时必须指定@域名,域名可以自行设置。

系统默认配置如下:

# 默认域default和default_admin,默认认证、授权是本地认证和不认证
aaa 
 authentication-scheme default
 authorization-scheme default
 accounting-scheme default
 domain 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实验配置。 SSH

AR1服务器端:

# 服务器端配置
# 配置接口地址
interface GigabitEthernet0/0/0
 ip address 12.1.1.1 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 192.168.1.254 255.255.255.0 
 
# 开启SSH服务器功能,华为上叫stelnet
stelnet server enable 

# 配置远程VTY的验证方式,因为SSH和telnet通过一个虚拟终端连接到设备,也就是VTY方式因此需要配置VTY验证,配置aaa验证
user-interface vty 0 4
 authentication-mode aaa
 protocol inbound all

# 最后进入aaa视图配置
authentication-scheme test        # 创建一个认证模板,认证方式为local,默认为local
  authentication-mode local
  qu                              # 返回aaa视图 
authorization-scheme test         # 创建一个授权模板,使用本地授权,就是在创建本地用户时候指定授权
  authorization-mode local
  qu                              # 返回aaa视图
accounting-scheme test            # 创建一个计费模板,不计费
  accounting-mode none 
  qu                              # 返回aaa视图
domain test                       # 创建一个域模板,将上面3个模板关联到域模板下
  authentication-scheme test 
  accounting-scheme test
  authorization-scheme test
  qu                              # 返回aaa视图
# 开始创建用户,使用用户名@域名格式创建,服务允许telent ,ssh ,terminal
local-user chuck@test password cipher 123456
 local-user chuck@test privilege level 13
 local-user chuck@test service-type telnet terminal ssh

<AR1> save

AR2通过stelnet登录到服务器。

# 正确配置接口地址
interface GigabitEthernet0/0/0
 ip 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 users
  User-Intf    Delay    Type   Network Address     AuthenStatus    AuthorcmdFlag
  0   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@test
  Domain name        : test
  User MAC           : ffff-ffff-ffff
  User access type   : SSH
  User IP address    : 2.1.1.12
  User ID            : 8
  User login time    : 2024/01/17 16:40:32
  User offline time  : 2024/01/17 16:42:26
  User offline reason: user request to offline
  -------------------------------------------------------------------
  Are you sure to display some information?(y/n)[y]:y
  -------------------------------------------------------------------
  User name          : chuck@test
  Domain name        : test
  User MAC           : ffff-ffff-ffff
  User access type   : SSH
  User IP address    : 2.1.1.12
  User ID            : 7
  User login time    : 2024/01/17 15:28:41
  User offline time  : 2024/01/17 15:29:56
  User offline reason: user request to offline
  -------------------------------------------------------------------
  Are you sure to display some information?(y/n)[y]:y

# 查看域模板信息
[AR1]dis domain name test

  Domain-name                     : test                            
  Domain-state                    : Active
  Authentication-scheme-name      : test
  Accounting-scheme-name          : test
  Authorization-scheme-name       : test
  Service-scheme-name             : -
  RADIUS-server-template          : -
  HWTACACS-server-template        : -
  User-group                      : -

暂时只能实现这个了,如果要配置RADIUS需要远程服务器,然后配置服务器地址和端口信息。

总结:AAA是一套认证授权的模板,分为认证、授权、计费,每个功能可以设置不认证、本地认证、远端认证,3个模板可以灵活实现认证功能,简单实验了一下通过AAA实现远程登录验证,今天就先这样了。

对文章感兴趣的欢迎搜索:不喜欢热闹的孩子 不喜欢热闹的孩子

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/344229.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙APP的应用场景

鸿蒙APP可以用于多种场合和设备类型&#xff0c;这是鸿蒙系统的分布式能力和多终端适配的优势。以下是一些鸿蒙APP的应用场景&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1.智能手机和平板电脑&am…

桌面型物联网智能机器人设计(预告)

相关资料 桌面级群控机器人CoCube探索-2022--CSDN博客 视频&#xff1a; 能&#xff01;有&#xff01;多&#xff01;酷&#xff01;CoCube桌面级群控机器人 让我看看谁在SJTU里划水… 简要介绍 设计一个桌面型物联网智能机器人&#xff0c;以ESP32芯片为核心&#xff0c;配…

uniapp+uview封装上传图片组件(单张/多张)

uniappuview封装上传图片组件(单张/多张) 先看效果 1.uploadImg.vue <template><view class"uploadImg flex-d flex-wrap"><!-- 多张图片上传 --><view class"imgList imgArr flex-d flex-wrap" v-for"(item,index) in file…

Leetcode2806. 取整购买后的账户余额

Every day a Leetcode 题目来源&#xff1a;2806. 取整购买后的账户余额 解法1&#xff1a;数学 题目要求为将 purchaseAmount 四舍五入到最近的 10 的倍数作为 roundedAmount&#xff0c;计算 100−roundedAmount 的值并返回。 分类讨论即可。 代码&#xff1a; /** lc…

Leetcode—24. 两两交换链表中的节点【中等】

2023每日刷题&#xff08;八十七&#xff09; Leetcode—24. 两两交换链表中的节点 实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x),…

Java零基础学习19:集合

编写博客目的&#xff1a;本系列博客均根据B站黑马程序员系列视频学习和编写目的在于记录自己的学习点滴&#xff0c;方便后续回忆和查找相关知识点&#xff0c;不足之处恳请各位有缘的朋友指正。 一、集合和数组的对比 数组和集合很相似&#xff0c;但集合只能存储引用数据类…

MySQL两个表的亲密接触-连接查询的原理

MySQL对于被驱动表的关联字段没索引的关联查询&#xff0c;一般都会使用 BNL 算法。如果有索引一般选择 NLJ 算法&#xff0c;有 索引的情况下 NLJ 算法比 BNL算法性能更高。 关系型数据库还有一个重要的概念&#xff1a;Join&#xff08;连接&#xff09;。使用Join有好处&…

【操作系统】实验四 增加Linux系统调用

&#x1f57a;作者&#xff1a; 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux &#x1f618;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 &#x1f3c7;码字不易&#xff0c;你的&#x1f44d;点赞&#x1f64c;收藏❤️关注对我真的很重要&…

Zabbix 整合 Prometheus:案例分享与操作指南

一、简介 Zabbix 和 Prometheus 都是流行的开源监控工具&#xff0c;它们各自具有独特的优势。Zabbix 主要用于网络和系统监控&#xff0c;而 Prometheus 则专注于开源的分布式时间序列数据库。在某些场景下&#xff0c;将这两个工具整合在一起可以更好地发挥它们的优势&#…

C语言进阶——数据结构之链表

前言 hello&#xff0c;大家好呀&#xff0c;我是Humble 在之前的两篇博客&#xff0c;我们学完了数据结构中的顺序表&#xff0c;还对它进行了一个应用&#xff0c;做了一个通讯录的小项目 那今天我们再来学习一个新的数据结构——链表 引入 我们来回忆一下顺序表 对于顺…

Spring Boot 初始(快速搭建 Spring Boot 应用环境)

提示&#xff1a; ① 通过下面的简介可以快速的搭建一个可以运行的 Spring Boot 应用&#xff08;估计也就2分钟吧&#xff09;&#xff0c;可以简单的了解运行的过程。 ② 建议还是有一点 Spring 和 SpringMVC的基础&#xff08;其实搭建一个 Spring Boot 环境不需要也没有关系…

C++多线程_std::future与std::promise

目录 1. 引言 2. promise/future的含义 std::future std::promise std::packaged_task std::async 处理异常 std::shared_future 实战&#xff1a;多线程实现快速排序 时钟与限定等待时间 参考: 1. 引言 在并发编程中&#xff0c;我们通常会用到一组非阻塞的模型&a…

共享wifi项目到底能不能做?

如今&#xff0c;互联网已经渗透到我们生活的方方面面&#xff0c;人们对WiFi的需求越来越大&#xff0c;已经成为人们不可或缺的一部分。在这样的背景下&#xff0c;共享WiFi项目应运而生&#xff0c;作为近年来兴起的创业选择&#xff0c;成为了越来越多创业者追逐的热门项目…

Servlet 与 MVC

主要内容 Servlet 重点 MVC 重点 Filter 重点 章节目标 掌握 Servlet 的作用 掌握 Servlet 的生命周期 掌握 JSP 的本质 掌握 MVC 的设计思想 掌握 Filter 的作用及使用场景 第一节 Servlet 1. Servlet 概念 Servlet 是在服务器上运行的能够对客户端请求进行处理&a…

微信小程序(八)图片的设定

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.图片的三种常见缩放形式 2.图片全屏预览 源码&#xff1a; testImg.wxml <!-- 默认状态&#xff0c;不保证缩放比&#xff0c;完全拉伸填满容器 --> <image class"pic" mode"scaleTo…

Backtrader 文档学习-Target Orders

Backtrader 文档学习-Target Orders 1. 概述 sizer不能决定操作是买还是卖&#xff0c;意味着需要一个新的概念&#xff0c;通过增加小智能层可以决定买卖&#xff0c;即通过持仓份额可以决定买卖操作。 这就是策略中order_target_xxx方法族的作用。受zipline的方法的启发&am…

商城系统中30分钟未付款自动取消订单怎么实现(简单几种方法)

实现以上功能 方法1&#xff1a;定时任务批量执行 写一个定时任务&#xff0c;每隔 30分钟执行一次&#xff0c;列出所有超出时间范围得订单id的列表 AsyncScheduled(cron "20 20 1 * * ?")public void cancelOrder(){log.info("【取消订单任务开始】"…

Excel导出警告:文件格式和拓展名不匹配

原因描述&#xff1a; Content-Type 原因&#xff1a;Content-Type&#xff0c;即内容类型&#xff0c;一般是指网页中存在的Content-Type&#xff0c;用于定义网络文件的类型和网页的编码&#xff0c;决定文件接收方将以什么形式、什么编码读取这个文件&#xff0c;这就是经常…

【算法专题】动态规划之路径问题

动态规划2.0 动态规划 - - - 路径问题1. 不同路径2. 不同路径Ⅱ3. 珠宝的最高价值4. 下降路径最小和5. 最小路径和6. 地下城游戏 动态规划 - - - 路径问题 1. 不同路径 题目链接 -> Leetcode -62.不同路径 Leetcode -62.不同路径 题目&#xff1a;一个机器人位于一个 m …

linux安装docker--更具官网教程

1.访问https://docs.docker.com/ 2.进入download 3输入cento 或者直接访问地址Install Docker Engine on CentOS | Docker Docs 4一步一步根据官网命令走 2安装 常见报错&#xff1a; yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.rep…
最新文章