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】
- 用户输入用户名和密码;
- RADIUS客户端根据收到的用户名和密码,向RADIUS服务器发送认证请求包(Access-Request);
- RADIUS服务器将该用户信息与USERS数据库中的信息进行对比分析,如果认证功,则将用户的权限信息以认证响应包(Access-Accept)发送给 RADIUS客户端;如果认证失败,则返回Access-Reject响应包;
- RADIUS客户端根据接收到的认证结果对用户进行接入或者 拒绝,如果可以接入用户,则RADIUS客户端向RADIUS服务器发送计费开始请求包(Accounting-Request ),Status-Type取值为start ;
- RADIUS服务器返回计费开始响应包(Accounting-Response );
- 用户开始访问资源;
- RADIUS客户端向RADIUS服务器发送计费停止请求包(Accounting-Request ),Status-Type取值为stop ;
- RADIUS服务器返回计费结束响应包(Accounting-Response );
- 用户访问资源结束。RADIUS协议采用UDP报文来承载数据,通过定时器管理机制、重传机制、备用服务器机制,确保RADIUS 服务器和客户端之间交互消息正确收发。
Part 2 - 实验配置
2.1 实验拓扑
【图2-1】
2.2 实验需求
- IP的地址,如图2-1所示;
- PC机使用Telnet对路由器进行远程登入;
- NAS对登入行为进行验证,验证方式采用AAA,并使用RADIUS作为AAA协议;
2.3 实验设备
- 华为AR2220路由器,通过eNSP模拟;
- PC机,使用物理主机;
- 思科ACS 5.8(ACS的安装本文不涉及,如果不清楚的小伙伴可以留言回复)
2.3 实验配置步骤
Step 1 - 基础IP配置(略)
Step 2 - 配置AAA服务器
- 通过Web页面登入AAA服务器(思科ACS服务器)
- 在AAA服务器上添加AAA的客户端
在右部导航栏,Network Device Groups --> Network Devices and AAA Clients
在页面的左下角点击Create
配置AAA客户端
- Name:客户端的名字,可以随便填写;
- IP:客户端的IP地址,保证IP可达;
- AAA协议选择,本文选择RADIUS,并保证密钥和客户端上的密钥一致
配置完成后,点击提交(submit)
- 在ACS上创建用户账户
Step 3 - 配置AAA客户端
- 创建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
- 配置AAA协议使用RADIUS,并在AAA配置模式下调用上一步创建的模板
[Huawei]aaa
[Huawei-aaa-authen-Helperaddress]authentication-mode radius
[Huawei-aaa]authentication-scheme Helperaddress
- 配置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
- 进入VTY配置模式,将VTY验证方式配置成AAA
[Huawei]user-interface vty 0 4
[Huawei-ui-vty0-4]authentication-mode aaa
Step 4 - 在PC机上进行测试
网友评论