网络技术基础(20)——AAA原理与配置

本文涉及的产品
文件存储 NAS,50GB 3个月
简介: 【3月更文挑战第6天】华为设备的AAA框架实现网络安全管理,包括认证、授权、计费三要素,常使用RADIUS协议。用户、NAS(Network Access Server)和AAA服务器构成基本架构。认证方式有不认证、本地认证和远端认证,授权方式包括不授权、本地授权和远端授权,计费则为不计费和远端计费。RADIUS作为分布式协议,处理认证、计费和授权。常见应用场景如SSH登录,配置涉及创建认证方案、用户及服务类型。实验配置示例展示了SSH登录的AAA验证过程。

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

AAA概述

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

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

image.png

AAA常见网络架构中包括:

  • 用户,接入用户,需要访问资源的接入者

  • NAS(Network Access Server),网络设备,如果配置了本地认证则网络设备作为认证服务器角色

  • AAA服务器(AAA Server),远程认证服务器,常见如RADIUS服务器

image.png

因为这边没有搭建RADIUS服务器所以我也没有用过这个远程认证,一般用的本地认证。

AAA实现

认证、授权、计费每个部分可以独立进行设置。

image.png

AAA支持三种认证方式:

  • 不认证:完全信任用户,不对用户身份进行合法性检查。鉴于安全考虑,这种认证方式很少被采用。

  • 本地认证:将本地用户信息(包括用户名、密码和各种属性)配置在NAS上,此时NAS就是AAA Server。本地认证的优点是处理速度快、运营成本低;缺点是存储信息量受设备硬件条件限制。这种认证方式常用于对用户登录设备进行管理,如Telnet,FTP用户等。

  • 远端认证:将用户信息(包括用户名、密码和各种属性)配置在认证服务器上。支持通过RADIUS协议或HWTACACS协议进行远端认证。NAS作为客户端,与RADIUS服务器或HWTACACS服务器进行通信。

image.png

AAA授权功能赋予用户访问的特定网络或设备的权限。AAA支持以下授权方式:

  • 不授权:不对用户进行授权处理。

  • 本地授权:根据NAS上对应域下的配置进行授权。

  • 远端授权:支持由RADIUS服务器授权或HWTACAS服务器授权。

    • HWTACACS授权,使用HWTACACS服务器对所有用户授权。

    • RADIUS授权,只支持对通过RADIUS服务器认证的用户授权。RADIUS协议的认证和授权是绑定在一起的,不能单独使用RADIUS进行授权。

当采用远端授权时,用户可以同时从授权服务器和NAS获取授权信息。NAS配置的授权信息优先级比授权服务器下发的授权信息低。

image.png

AAA支持以下两种计费方式:

  • 不计费:为用户提供免费上网服务,不产生相关活动日志。

  • 远端计费:支持通过RADIUS服务器或HWTACACS服务器进行远端计费。

认证和授权都有三种形式:不认证、本地认证、远端认证(RADIUS服务器认证),计费一般用得少。

RADIUS简介

RADIUS是一种分布式的、客户端/服务器结构的信息交互协议,可以实现对用户的认证、计费和授权功能。

通常由NAS作为RADIUS客户端,负责传输用户信息到指定的RADIUS服务器,然后根据从服务器返回的信息进行相应处理(如接受/拒绝用户接入)。RADIUS服务器一般运行在中心计算机或工作站上,维护相关的用户认证和网络服务访问信息,负责接收用户连接请求并认证用户,然后给客户端返回所有需要的信息(如接受/拒绝认证请求)。RADIUS使用UDP(User Datagram Protocol)作为传输协议,并规定UDP端口1812、1813分别作为认证、计费端口,具有良好的实时性;同时也支持重传机制和备用服务器机制,从而具有较好的可靠性。

image.png

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

AAA的应用场景

常见的有以下应用场景:

image.png

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

在华为的网络设备上的AAA的配置简介:

image.png

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实验配置。

SSH实验配置

image.png

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需要远程服务器,然后配置服务器地址和端口信息。

相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
29天前
|
机器学习/深度学习 存储 算法
神经网络分类算法原理详解
神经网络分类算法原理详解
53 0
|
1月前
|
监控 Linux Shell
【Shell 命令集合 网络通讯 】Linux 配置和管理网络流量的形状 shapecfg命令 使用指南
【Shell 命令集合 网络通讯 】Linux 配置和管理网络流量的形状 shapecfg命令 使用指南
39 0
|
21天前
|
运维 Kubernetes Cloud Native
探索Kubernetes的大二层网络:原理、优势与挑战🚀
在云原生领域,Kubernetes (K8s) 已经成为容器编排的事实标准☁️📦。为了支撑其灵活的服务发现和负载均衡🔍🔄,K8s采用了大二层网络的设计理念🕸️。本文将深入探讨大二层网络的工作原理、带来的好处✨,以及面临的挑战和解决方案❗🛠️。
探索Kubernetes的大二层网络:原理、优势与挑战🚀
|
19天前
|
网络协议 Linux
在Linux中,管理和配置网络接口
在Linux中管理网络接口涉及多个命令,如`ifconfig`(在新版本中被`ip`取代)、`ip`(用于网络设备配置)、`nmcli`(NetworkManager的CLI工具)、`nmtui`(文本界面配置)、`route/ip route`(处理路由表)、`netstat/ss`(显示网络状态)和`hostnamectl/systemctl`(主机名和服务管理)。这些命令帮助用户启动接口、设置IP地址、查看连接和路由信息。不同发行版可能有差异,建议参考相应文档。
19 4
|
6天前
|
Ubuntu 网络协议 Linux
Linux(20) Ubuntu 20.04 网络接口自动切换路由配置
Linux(20) Ubuntu 20.04 网络接口自动切换路由配置
28 0
|
9天前
|
安全 数据建模 网络安全
深入理解SSL数字证书:定义、工作原理与网络安全的重要性
本文阐述了SSL数字证书在网络安全中的关键作用,定义了其作为验证服务器身份的数字凭证,基于PKI体系保障数据传输安全。文章介绍了三种类型的证书,包括DV、OV和EV,适用于不同安全需求的网站。获取和安装证书涉及向证书颁发机构申请并部署到服务器。在网络安全挑战下,正确使用和管理SSL证书对于保护用户数据和提升信任度至关重要。
|
11天前
|
数据采集 数据可视化
R语言用相关网络图可视化分析汽车配置和饮酒习惯
R语言用相关网络图可视化分析汽车配置和饮酒习惯
13 0
|
16天前
|
安全 网络协议 网络安全
网络原理(5)--HTTPS是如何进行加密的
网络原理(5)--HTTPS是如何进行加密的
12 0
|
16天前
|
存储 JSON 前端开发
网络原理(4)HTTP协议(下)
网络原理(4)HTTP协议
27 0
|
19天前
|
网络协议
centos8 网卡 Nmcli(是network的简写 Nmcli)配置网络
centos8 网卡 Nmcli(是network的简写 Nmcli)配置网络
19 0