如何在华为的网络设备和思科ACS之间部署AAA

Part 1 - 原理介绍
1.1 什么是AAA

AAA是Authentication(验证)、Authorization(授权)和Accounting(审计)的简称。

AAA是一种提供验证、授权和审计的安全技术。该技术可以用于验证用户是否合法,授权用户可以访问哪些服务,并记录用户使用网络资源的情况。

例如,企业总部需要对服务器的资源访问进行控制,只有通过验证的用户才能访问特定的资源,并对用户使用资源的情况进行记录。在这种场景下,可以按照如图1-1所示的方案进行AAA部署。NAS为网络接入服务器,也称为AAA的客户端,负责集中收集和管理用户的访问请求。AAA服务器可以一台专属的硬件设备,也可以是以软件的形式安装在服务器操作系统上(本文将使用思科的ACS软件来实现AAA服务器),用户的验证、授权和审计服务均由AAA服务器来完成。

【图1-1】

1.2 AAA的工作流程

如图1-1所示,当分支站点的用户需要访问总部的服务器资源时,NAS设备会对用户的访问进行控制,用户向NAS设备提交账户信息(用户名和密码)后,NAS设备会将用户信息发送给AAA服务器,由AAA服务器进行账户信息的验证,并对用户进行授权。如果用户验证通过,则分支站点的用户可以访问到特性的服务器资源(可以访问哪些服务器,由授权来决定),同时AAA服务器也会对用户的访问行为进行审计。

1.3 什么是RADIUS

RADIUS(Remote Authentication Dial-In User Service,远程认证拨号用户服务)由IETF定义的一种公有协议,是AAA客户端和AAA服务器之间通讯的一种协议。除了RADIUS协议外,不同的网络设备厂商也提出了各自的私有协议,例如,思科公司提出的TACACS+协议,华为提出的HWTACACS,也可以使用在AAA客户端和AAA服务器之间。(本文将使用RADIUS协议作为AAA的通讯协议)

  • RADIUS 服务包括三个组成部分:
    • 协议:RADIUS的帧格式和消息传输机制在RFC 2865、RFC 2866中进行了定义,并定义了UDP端口1812作为认证端口,UDP端口1813作为计费端口。
    • 服务器:RADIUS服务器,也就是AAA服务器,包含了相关的用户认证和网络服务访问信息。
    • 客户端:网络接入服务器,可以由网络设备,例如,路由器、交换机等,也可以由专属设备来充当,对用户的访问进行控制;
  • RADIUS服务器通常要维护三个数据库,如下图所示:
  • USERS数据库:用于存储用户信息(如用户名、口令以及使用的协议、IP 地址等配置);
  • CLIENTS数据库:用于存储RADIUS客户端(注:是AAA客户端,不是个人用户)的信息,例如,如共享密钥;
  • DICTIONARY数据库:存储的信息用于解释RADIUS协议中的属性和属性值的含义;
  • RADIUS的基本消息交互流程:
    【图1-2】
  1. 用户输入用户名和密码;
  2. RADIUS客户端根据收到的用户名和密码,向RADIUS服务器发送认证请求包(Access-Request);
  3. RADIUS服务器将该用户信息与USERS数据库中的信息进行对比分析,如果认证功,则将用户的权限信息以认证响应包(Access-Accept)发送给 RADIUS客户端;如果认证失败,则返回Access-Reject响应包;
  4. RADIUS客户端根据接收到的认证结果对用户进行接入或者 拒绝,如果可以接入用户,则RADIUS客户端向RADIUS服务器发送计费开始请求包(Accounting-Request ),Status-Type取值为start ;
  5. RADIUS服务器返回计费开始响应包(Accounting-Response );
  6. 用户开始访问资源;
  7. RADIUS客户端向RADIUS服务器发送计费停止请求包(Accounting-Request ),Status-Type取值为stop ;
  8. RADIUS服务器返回计费结束响应包(Accounting-Response );
  9. 用户访问资源结束。RADIUS协议采用UDP报文来承载数据,通过定时器管理机制、重传机制、备用服务器机制,确保RADIUS 服务器和客户端之间交互消息正确收发。
Part 2 - 实验配置
2.1 实验拓扑

【图2-1】

2.2 实验需求
  1. IP的地址,如图2-1所示;
  2. PC机使用Telnet对路由器进行远程登入;
  3. NAS对登入行为进行验证,验证方式采用AAA,并使用RADIUS作为AAA协议;
2.3 实验设备
  1. 华为AR2220路由器,通过eNSP模拟;
  2. PC机,使用物理主机;
  3. 思科ACS 5.8(ACS的安装本文不涉及,如果不清楚的小伙伴可以留言回复)
2.3 实验配置步骤

Step 1 - 基础IP配置(略)
Step 2 - 配置AAA服务器

  1. 通过Web页面登入AAA服务器(思科ACS服务器)
  1. 在AAA服务器上添加AAA的客户端
    在右部导航栏,Network Device Groups --> Network Devices and AAA Clients

在页面的左下角点击Create

配置AAA客户端

  • Name:客户端的名字,可以随便填写;
  • IP:客户端的IP地址,保证IP可达;
  • AAA协议选择,本文选择RADIUS,并保证密钥和客户端上的密钥一致
    配置完成后,点击提交(submit)
  1. 在ACS上创建用户账户

Step 3 - 配置AAA客户端

  1. 创建AAA服务器的模板,
[Huawei]radius-server template Helperaddress
[Huawei-radius-Helperaddress]radius-server authentication 192.168.193.201 1812
[Huawei-radius-Helperaddress]radius-server shared-key helperaddress
[Huawei-radius-Helperaddress]undo radius-server user-name domain-included
  1. 配置AAA协议使用RADIUS,并在AAA配置模式下调用上一步创建的模板
[Huawei]aaa
[Huawei-aaa-authen-Helperaddress]authentication-mode radius
[Huawei-aaa]authentication-scheme Helperaddress
  1. 配置AAA域
    华为的设备是基于域来对用户进行管理,每个域都可以配置不同的认证、授权和授权的模板。每个用户都属于某一个域。用户属于哪个域是由用户名中的域名分隔符@后的字符串决定。例如,如果用户名是user@huawei,则用户属于huawei域。如果用户名后不带有@,则用户属于系统缺省域default。

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

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

进入default-admin域绑定认证模板和radius-server模板(这个default-admin域是专门用来管理用的,所以telnet,ssh等登陆设备时必须使用这个默认的域,自己定义的不行)

[Huawei]aaa
[Huawei-aaa]domain default_admin
[Huawei-aaa-domain-default_admin]authentication-scheme Helperaddress
[Huawei-aaa-domain-default_admin]radius-server Helperaddress
  1. 进入VTY配置模式,将VTY验证方式配置成AAA
[Huawei]user-interface vty 0 4
[Huawei-ui-vty0-4]authentication-mode aaa

Step 4 - 在PC机上进行测试

你可能感兴趣的:(如何在华为的网络设备和思科ACS之间部署AAA)