第15章_AAA原理与配置

  • 对于任何网络,用户管理都是最基本的安全管理要求之一。
  • AAA(Authentication, Authorization, and Accounting)是一种管理框架,它提供了授权部分用户访问指定资源和记录这些用户操作行为的安全机制。因其具有良好的可扩展性,并且容易实现用户信息的集中管理而被广泛使用。AAA可以通过多种协议来实现,目前华为设备支持基于RADIUS(Remote Authentication Dial-In User Service)协议或HWTACACS(Huawei Terminal Access Controller Access ControlSystem)协议来实现AAA。在实际应用中,最常使用RADIUS (Remote Authentication Dial-In User Service)协议。
  • AAA是Authentication(认证)、Authorization(授权)和Accounting(计费)的简称,它提供了认证、授权、计费三种安全功能。
  • 本章将介绍AAA基本概念、AAA的实现方式、AAA的基本配置以及常见AAA应用场景。

1.AAA基本概念

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

image-20231120172417245

  • 认证(Authentication):验证用户是否可以获得访问权,确定哪些用户可以访问网络。
  • 授权(Authorization):授权用户可以使用哪些服务。
  • 计费(Accounting):记录用户使用网络资源的情况。
  • 网络运营商(ISP)需要验证家庭宽带用户的账号密码之后才允许其上网,并记录用户的上网时长或上网流量等内容,这就是AAA技术最常见的应用场景。

1.1认证(Authentication)

  • AAA支持的认证方式有:不认证,本地认证,远端认证。

image-20231120173504311

  • AAA支持三种认证方式:
    • 不认证:完全信任用户,不对用户身份进行合法性检查。鉴于安全考虑,这种认证方式很少被采用。
    • 本地认证:将本地用户信息(包括用户名、密码和各种属性)配置在NAS上,此时NAS就是AAA Server。本地认证的优点是处理速度快、运营成本低;缺点是存储信息量受设备硬件条件限制。这种认证方式常用于对用户登录设备进行管理,如Telnet,FTP用户等。
    • 远端认证:将用户信息(包括用户名、密码和各种属性)配置在认证服务器上。支持通过==RADIUS==协议或==HWTACACS==协议进行远端认证。NAS作为客户端,与RADIUS服务器或HWTACACS服务器进行通信。
  • 如果一个认证方案采用多种认证方式,这些认证方式按配置顺序生效。比如,先配置了远端认证,随后配置了本地认证,那么在远端认证服务器无响应时,会转入本地认证方式。如果只在本地设备上配置了登录账号,没有在远端服务器上配置,AR2200认为账号没有通过远端认证,不再进行本地认证。

1.2授权(Authorization)

  • AAA支持的授权方式有:不授权,本地授权,远端授权。
  • 授权信息包括:所属用户组、所属VLAN、ACL编号等。

image-20231120174305401

  • AAA授权功能赋予用户访问的特定网络或设备的权限。AAA支持以下授权方式:
    • 不授权:不对用户进行授权处理。
    • 本地授权:根据NAS上对应域下的配置进行授权。
    • 远端授权:支持由RADIUS服务器授权或HWTACAS服务器授权。
      • HWTACACS授权,使用HWTACACS服务器对所有用户授权。
      • RADIUS授权,只支持对通过RADIUS服务器认证的用户授权。RADIUS协议的认证和授权是绑定在一起的,不能单独使用RADIUS进行授权。
  • 当采用远端授权时,用户可以同时从授权服务器和NAS获取授权信息。NAS配置的授权信息优先级比授权服务器下发的授权信息低。
  • 如果在一个授权方案中使用多种授权方式,这些授权方式按照配置顺序生效。不授权方式最后生效。

1.3计费(Accouting)

注意:计费不是收费

  • 计费功能用于监控授权用户的网络行为和网络资源的使用情况。
  • AAA支持的计费方式有:不计费,远端计费。

image-20231120175622162

  • AAA支持以下两种计费方式:
    • 不计费:为用户提供免费上网服务,不产生相关活动日志。
    • 远端计费:支持通过RADIUS服务器或HWTACACS服务器进行远端计费。

2.AAA常见架构

  • AAA常见网络架构中包括用户、NAS(Network Access Server)、AAA服务器(AAA Server)。

image-20231120173349012

  • NAS基于域来对用户进行管理,每个域都可以配置不同的认证、授权和计费方案,用于对该域下的用户进行认证、授权和计费。
  • 每个用户都属于某一个域。用户属于哪个域是由用户名中的域名分隔符@后的字符串决定。例如,如果用户名是user1@domain1,则用户属于domain1域。如果用户名后不带有@,则用户属于系统缺省域。

3.AAA域

  • AAA可以通过域来对用户进行管理,不同的域可以关联不同的认证、授权和计费方案。

image-20231120180915320

  • 设备基于域来对用户进行管理,每个域都可以配置不同的认证、授权和计费方案,用于对该域下的用户进行认证、授权和计费。

  • 每个用户都属于某一个域。用户属于哪个域是由用户名中的域名分隔符@后的字符串决定。例如,如果用户名是user@huawei,则用户属于huawei域。如果用户名后不带有@,则用户属于系统缺省域default。

  • ARG3系列路由设备支持两种缺省域:

    • default域为普通用户的缺省域。
    • default_admin域为管理用户的缺省域。
  • 用户可以修改但不能删除这两个缺省域。默认情况下,设备最多支持32个域,包括两个缺省域。

4.AAA实现协议

  • AAA可以用多种协议来实现,最常用的是RADIUS协议。

image-20231120175923100

  • AAA可以用多种协议来实现,最常用的是RADIUS协议。RADIUS是一种分布式的、客户端/服务器结构的信息交互协议,可以实现对用户的认证、计费和授权功能。
  • 通常由NAS作为RADIUS客户端,负责传输用户信息到指定的RADIUS服务器,然后根据从服务器返回的信息进行相应处理(如接受/拒绝用户接入)。
  • RADIUS服务器一般运行在中心计算机或工作站上,维护相关的用户认证和网络服务访问信息,负责接收用户连接请求并认证用户,然后给客户端返回所有需要的信息(如接受/拒绝认证请求)。
  • ==RADIUS使用UDP(User Datagram Protocol)作为传输协议,并规定UDP端口1812、1813分别作为认证、计费端口==,具有良好的实时性;同时也支持重传机制和备用服务器机制,从而具有较好的可靠性。
  • RADIUS客户端与服务器间的消息流程如下:
    1. 当用户接入网络时,用户发起连接请求,向RADIUS客户端(即NAS)发送用户名和密码。
    2. RADIUS客户端向RADIUS服务器发送包含用户名和密码信息的认证请求报文。
    3. RADIUS服务器接收到合法的请求后,完成认证,并把所需的用户授权信息返回给客户端;对于非法的请求,RADIUS服务器返回认证失败的信息给客户端。
    4. RADIUS客户端通知用户认证是否成功。
    5. RADIUS客户端根据接收到的认证结果接入/拒绝用户。如果允许用户接入,则RADIUS客户端向RADIUS服务器发送计费开始请求报文。
    6. RADIUS服务器返回计费开始响应报文,并开始计费。
    7. 用户开始访问网络资源。
    8. 当用户不再想要访问网络资源时,用户发起下线请求,请求停止访问网络资源。
    9. RADIUS客户端向RADIUS服务器提交计费结束请求报文。
    10. RADIUS服务器返回计费结束响应报文,并停止计费。
    11. RADIUS客户端通知用户访问结束,用户结束访问网络资源。

5.AAA常见应用场景

image-20231120181043397

6.AAA配置

6.1AAA基本命令

1.进入AAA视图

[Huawei] aaa

从系统视图进入AAA视图进行配置

2.创建认证方案

[Huawei-aaa] authentication-scheme authentication-scheme-name 

创建认证方案并进入相应的认证方案视图

[Huawei-aaa-authentication-scheme-name] authentication-mode { hwtacacs | local | radius }

配置认证方式,local指定认证方式为本地认证。缺省情况下,认证方式为本地认证。

3.创建domain并绑定认证方案

[Huawei-aaa] domain domain-name

创建domain并进入相应的domain视图

[Huawei-aaa-domain-name] authentication-scheme authentication-scheme-name 

在相应的domain视图下绑定认证方案

4.创建用户

[Huawei-aaa] local-user user-name  password cipher password

创建本地用户,并配置本地用户的密码:

  • 如果用户名中带域名分隔符,如@,则认为@前面的部分是用户名,后面部分是域名
  • 如果没有@,则整个字符串为用户名,域为默认域

5.配置用户接入类型

[Huawei-aaa] local-user user-name service-type { { terminal | telnet | ftp | ssh | snmp | http } | ppp | none }

设置本地用户的接入类型。缺省情况下,本地用户关闭所有的接入类型。

6.配置用户级别

[Huawei-aaa] local-user user-name privilege level level

指定本地用户的权限级别。

6.2AAA配置

image-20231120181720429

  • authentication-scheme authentication-scheme-name命令用来配置域的认证方案。缺省情况下,域使用名为“default”的认证方案。

  • authentication-mode {hwtacacs|radius|local }命令用来配置认证方式,local指定认证模方式为本地认证。缺省情况下,认证方式为本地认证。

  • authorization-scheme authorization-scheme-name命令用来配置域的授权方案。缺省情况下,域下没有绑定授权方案。

  • authorization-mode{[hwtacacs|if-authenticated |local ]*[none ]}命令用来配置当前授权方案使用的授权方式。缺省情况下,授权模式为本地授权方式。

  • domain domain-name命令用来创建域,并进入AAA域视图。

image-20231120181705757

  • local-user user-name password cipher password命令用来创建本地用户,并配置本地用户的密码。如果用户名中带域名分隔符,如@,则认为@前面的部分是用户名,后面部分是域名。如果没有@,则整个字符串为用户名,域为默认域。

  • local-user user-name privilege level level命令用来指定本地用户的优先级。

  • 免责申明:设备支持通过Telnet协议和Stelnet协议登录。使用Telnet、Stelnet v1协议存在安全风险,建议您使用STelnetv2登录设备。

配置验证

  • AAA中,每个域都会与相应的认证授权和计费方案相关联。

image-20231120182332878

  • display domain [name domain-name]命令用来查看域的配置信息。

  • Domain-state为Active表示激活状态。Authentication-scheme-name表示域使用的认证方案为auth1。缺省情况下,域使用系统自带的default认证方案。Authorization-scheme-name表示域使用的授权方案为auth2。