AAA概述
AAA是认证(Authentication)、授权(Authorization)和计费(Accounting)的简称,是网络安全中进行访问控制的一种安全管理机制,提供认证、授权和计费三种安全服务。
AAA认证模式
- 本地AAA认证
- 基于服务器的AAA认证
本地AAA认证
本地AAA会在网络设备(如思科路由器)本地保存用户名和密码。用户向本地数据库认证自己的身份,如图所示。本地 AAA 是小型网络的理想选择。
使用CLI配置本地AAA认证
配置本地AAA认证步骤
- 配置用户名和密码
- 在路由器上全局启用AAA
- 在路由器上配置AAA参数
- 对AAA配置进行确认和排错
拓扑
首先建立一个简单的拓扑结构,为路由器和PC配置好IP地址用于通信
RA(config)#username admin secret cisco 创建用户名admin密码cisco
路由器在没有任何远程登录的情况下PC是无法远程登录路由器的。
RA(config)#aaa new-model 全局启用AAA
开启AAA后就可以直接使用之前配置的用户名密码进行登录。
配置AAA参数
AAA 认证有两种方法,分别为默认的方法和命名的方法
RA(config)#aaa authentication login {default | list-name} method1....method4
默认的方法:默认在所有接口上使用
命名的方法:需要指定接口使用
默认的方法
RA(config)#aaa authentication login default 后面需要设置方法(认证方式)
- enable 使用特权EXEC密码认证
- group 基于服务器的认证
- local 使用本地数据库不区分大小写的用户名认证
- local-case 使用本地数据库区分大小写的用户名认证
- none 没有认证(一般用于测试)
注:可以设置最多4个方法,方法按先后顺序进行认证。设置的第一个方法失效后才会使用第二个方法,以此类推直达最后一个一个方法。失效的概念不是第一个方法的密码不知道,然后使用第二的方法进行认证,而是第一个方法没有设置用户名或者密码才会使用第二个方法进行认证。
例如:RA(config)#aaa authentication login default local enable在所有需要认证的地方首先使用本地数据库认证,如果本地数据库里面没有数据,才会使用特权EXEC密码进行认证。
演示:
先删除之前设置的用户名密码,创建一个特权EXEC密码
RA(config)#no username admin
RA(config)#enable secret cisco123
使用主机验证
由于启用了AAA认证所以需要输入用户名,不知道用户名是什么就随便输入一个,密码输入的是cisco123(特权EXEC的密码)因为本地数据库没有数据,所以第一个方法失效,使用了第二个方法进行认证。
重新创建用户名admin密码cisco再次验证
RA(config)#username Admin secret Cisco
第一个方法没有失效所以必须使用第一个方法(本地数据库不区分用户名大小写认证,密码要和数据库里面的密码一致)认证
用户名admin
密码Cisco
命名的方法
创建一个名为TELNET -LOGIN的AAA
RA(config)#aaa authentication login TELNET-LOGIN local-case none
配置vty接口
RA(config)#line vty 0 4 进入vty接口
RA(config-line)#transport input telnet 使用telnet登录
RA(config-line)#login authentication TELNET-LOGIN 将TELNET-LOGIN用在vty接口上
验证:
就要使用区分大小写的用户名,密码进行登录(不再使用default方法认证)
用户名:Admin
密码:Cisco
删除用户名密码再次验证
RA(config)#no username Admin
local-case方法失效,使用第二个方法none(不需要认证)
用户名:abc(随便输的)
密码:无