AAA是一种后台服务,是一种对网络用户进行控制的安全措施。

Authentication 认证  (你是谁)  
认证强度跟元素有关,用于认证的元素越多越安全,元素包括密码,指纹,证书,视网膜等等

 

Authorization 授权(确定你能做什么)
授权用户能够使用的命令
授权用户能够访问的资源
授权用户能够获得的信息

 

Accounting  审计(确定你做了什么)
两类审计:
1、时间审计
2、命令审计

 

为什么要用AAA?
通过AAA技术,我们能对接入网络的用户进行控制,可以控制哪些用户能接入网络,能得到什么样的权限,还能记录用户上来之后做了啥事。

1、跟网络设备数量有关,也就是跟NAS的数量有关
2、跟用户数量有关
3、由于用户的频繁变动

AAA的基本拓扑:

 

NAS–网络访问服务器,或者叫网络接入服务器。其实就是你网络的边缘网关,外部节点需要通过这台路由器来访问你的网络。需要在这台路由器上对接入的用户进行控制。

三大类的需要认证的流量类型client—–NAS(网络访问服务器)
也就是三种到达NAS的流量

1、登入nas telnet/ssh/http/https(也叫网管流量)
2、拔入nas pptp/l2tp/pppoe/ipsec ***…..
3、穿越nas auth-proxy(ios)认证代理/cut-through(pix)

 

AAA安全服务器的选择:

1、本地安全数据库
2、远程安全服务器,也就是AAA服务器

 

本地安全数据库:
本地安全数据库运行在NAS上为一小部分用户提供服务,实现起来容易,但是功能不够强大。

 

特点:
1、在小型网络中使用
2、在CISCO的路由器上存储用户名和密码
3、通过CISCO路由器上的本地安全数据库进行用户验证
4、不需要外部的数据库服务器

 

AAAprotocols:RADIUS和TACACS+
通常在网络中实现AAA,都是通过部署一台单独的AAA服务器来实现,而AAA服务器是需要跟NAS通信的,它们之间通信的协议有两种:RADIUS和TACACS+

TACACS+   基于TCP     cisco标准   端口号49  信息是加密后传送的

RADIUS    基于UDP     国际标准   新端口号1812(authen/author)   1813(account)  
                                旧端口号1645(authen/author)   1646(account)   

RADIUS的信息是明文传送的,只有密码是加密传送的。

注意:RADIUS各厂家是不一样的,有不同的av pair

RADIUS:
有四种消息类型:
access-request   访问请求,客户发给server
access-challenge  挑战信息,查询AAA服务器上的配置 
access-accept 允许访问,查到有这个配置才会允许
access-reject 拒绝访问

ACS—CISCO的访问控制服务器,也就是AAA服务器。只需要在一台服务器上装上CISCO的ACS软件,就得到了一台AAA服务器。这台服务器可以配置为使用tacacs+和NAS通信,也可以配置为使用radius协议与NAS通信。

 

以下是在路由器上配置三A的步骤:

先做准备工作:

1、启用AAA
aaa new-model   注意:启用三A后,路由器上不符合三A的命令会被去掉

2、做保护
aaa authentication login NOACS none  保护-不认证
aaa authorization exec NOACS none  保护-不授权

line console 0     本地线路的保护
  login authentication NOACS     设定对CON口不进行认证,保留最后一个进入的方法,以防万一
  authorization exec NOACS       建议配置,但最好配置上

line aux 0     AUX的保护
  login authentication NOACS
  authorization exec NOACS      

3、client指server的地址
NAS(config)#tacacs-server host 150.100.1.100 key cisco  密码后面千万不要打上空格,敏感的

还要在AAA服务器上增加一个client,并指明client的地址,最好起个环回口让服务器指,在服务器的CMD下加一个路由指向这个环回口。如果server指的是环回口,在client上还要指定一下更新源。
ip tacacs source-interface lo0

4、测试
test aaa group tacacs+ testR5(用户名) cisco(口令) new-code 本命令纯属测试,没别的作用,只是看AAA服务器起没起作用,new-code是在新的IOS中才要用到的。
如果出现user successfully authenticated表示没问题

 

一、认证:

1、开启对login的认证
aaa authentication login FOR_VTY none   不进行认证直接进入
aaa authentication login FOR_VTY line   注意line意思是用line下的密码进行认证
aaa authentication login FOR_VTY local    启用本地数据库,要自定义username和password
aaa authentication login FOR_VTY local-case  用户名大小写敏感
aaa authentication login FOR_VTY enable   使用enable密码进行验证
aaa authentication login FOR_VTY group tacacs+   使用三A服务器进行验证
aaa authentication login FOR_VTY local line none 如果第一种方法没有的话,就用第二种进行认证,如果第二种也没有,就不进行认证直接进入了,因为设了none

需要在线程下调用:
line vty 0 4
  login authenticate FOR_VTY  

2、开启对enable的认证
aaa authentication enable default group tacacs+  在进入enable模式的时候会提示输入用户名和密码,因为tacacs+服务器上定义了用户名和密码。

转载于:https://blog.51cto.com/laogebo/472175