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