CISCO     AAA
3A概念:认证authentication 授权authorization 记帐 accounting
cisco为路由器和交换机提供多种3A服务的方法:
1 自包含AAA   路由器/NAS自身包含AAA服务   NAS(网络访问服务器)
2 CISCO SECURE ACS   路由器/NAS上的AAA服务与外部CISCO SECURE ACS系统联系
3 CISCO SECURE ACS SOLUTION ENGINE    路由器/NAS上的AAA服务与外部CISCO SECURE ACS SOLUTION
ENGINE系统联系
4 第三方ACS   路由器/NAS上的AAA服务与外部CISCO认可的第三方ACS系统联系 radius tacacs+
cisco secure acs系列是供安全访问网络的一种全面而灵活的平台。他主要负责以下一个方面的安全
通过CISCO NAS和路由器拨号
管理员进行路由器和交换机的控制台及VTY端口访问
CISCO PIX防火墙访问
×××3000系列集线器(仅用于RADIUS)
使用CISCO LEAP 和 PEAP的无线局域网支持
交换机的无线802.1X认证
边界路由器AAA配置过程
1 在vty,异步,aux和tty端口对特权EXEC和配置模式进行安全访问
config t
enable password ***
service password-encryption
enable secret ******
2 在边界路由器上,用aaa new-model命令启用AAA。
config t
aaa new-model
username *** password ***
aaa authentication login default local  
注意点,在配置aaa new-model命令的时候,一定要提供一种本地登入方式,防止由于管理性会话失效而引发
路由器锁定。
3 配置AAA认证列表
aaa authentication login 定义用户视图登入到路由器时需要使用哪个认证步骤。
aaa authentication ppp   对于使用PPP的串行接口上的用户会话,定义了要使用的认证步骤。
aaa authentication enable default 定义了有人试图通过enable命令进去特权EXEC模式时,应该采用的
认证步骤
在访问服务器上全局启用了AAA之后,还需要定义认证方法列表,并将其应用到链路和接口。这些认证方法
列表指出了服务(PPP,ARAP,NASI,LOGIN) 和认证方法(本地,TACACS+,RADIUS,login 或enable),这里
建议将本地认证作为最后一种方法。
定义认证方法列表
   1规定服务(PPP,ARAP,NASI)或登录认证
   2标识一个列表名称或采用缺省
   3规定认证方法,并规定其中一种不可用时,路由器如何反应
   4将其应用到一下链路或接口之一
    链路--tty,vty,console,aux和async链路,或者供登入的控制台端口已经供ARA的异步链路
    接口--同步,异步以及为PPP.SLIP.NASI或ARAP而配置的虚拟接口
   5在全局配置模式下使用aaa authentication命令,以启用AAA认证过程。
     1 aaa authentication login命令
     config t
     aaa authentication login default enable
     aaa authentication login console-in local
     aaa authentication login tty-in line
     console-in和 tty-in是管理员创建的简单的方法列表名称。
     aaa authentication login {default | list-name} method1 [method2~~~]
     default   用户登入时,使用此变量后面列出的认证方法,作为缺省的方法列表
     list-name   当用户登录时,用来命名认证方法列表的字符串
     method:
      (enable) 使用enable口令来认证   
      (krb5)    用kerberos 5来认证
      (krb5-telnet)   当借助telnet连接路由器时,使用kerberos 5 telnet认证协议
      (line) 用链路口令来认证
      (local)   用本地用户名数据库来认证
      (none)    不用认证
      (group- radius)   使用包含所有RADIUS服务器的一个列表来认证
      (group tacacs+)   使用包含所有TACACS+服务器的一个列表来认证
      (group group-name) 用RADIUS或TACACS+服务器的一个子集来认证 这些服务器定义在aaa group
server radius或aaa group server tacacs+命令中
     2 aaa authentication ppp命令
     aaa authentication ppp (default |list-name) method1 [method2~~~]
     default   用户登入时,使用此变量后面列出的认证方法,作为缺省的方法列表
     list-name   当用户登录时,用来命名认证方法列表的字符串
     method:
       (if-needed 如果用户在TTY链路上认证了,就不需要再认证
       (krb5      用kerberos 5来认证
       (local     用本地用户名数据库来认证
       (local-case
       (none     不用认证
       (group group-name    用RADIUS或TACACS+服务器的一个子集来认证 这些服务器定义在aaa group
server radius或aaa group server tacacs+命令中
     3 aaa authentication enable default命令
     aaa authentication enable default method1 [method2~~~]
     method:
       enable 使用enable口令来认证
       line    用链路口令来认证
       none    不用认证
       group radius    使用包含所有RADIUS服务器的一个列表来认证
       group tacacs+   使用包含所有TACACS+服务器的一个列表来认证
       group group-name    用RADIUS或TACACS+服务器的一个子集来认证 这些服务器定义在aaa group
server radius或aaa group server tacacs+命令中
     4   对链路和接口应用认证命令
     config t
     aaa new-model 启用AAA
     aaa authentication login default enable    将enable口令作为缺省的登入方式
     aaa authentication login console-in group tacacs+ local     无论何时使用名为console-in的列
表,都使用TACACS+认证,如果TACACS+认证失败,己用本地用户名和口令
     aaa authentication login dial-in group tacacs+           无论何时使用名为dial-in的列表,都
使用TACACS+认证.
     username *** password ****         建立一个本地用户名和口令,最可能与console-in登录方法列
表一起使用
     line console 0     进入链路控制台配置模式
     login authentication console-in    使用console-in列表作为控制台端口0的登录认证
     line s3/0
     ppp authentication chap dial-in    使用dial-in列表作接口S3/0 的PPP CHAP的登录认证    
4 配置供用户通过认证之后的AAA授权
     aaa authorization 命令
     aaa authorization {network|exec|commands level|reverse-access|configuration} {default
|list-name} method1 [method2~~~]
     network 为所有网络相关的服务请求进行授权,包括SLIP,PPP,PPP NCP和ARA
     exec      使用授权,以确定是否用户可以运行一个EXEC shell.
     commands 为所有处于规定的特权级别的命令使用授权
     level     规定应该被授权的命令级别,有效值 0-15
     reverse-access   为反向访问连接使用授权,例如反向Telnet
     configuration   从AAA服务器上下载配置
     default         使用此变量后列出的认证方法,作为缺省方法列表供认证
     listname        用来命令认证方法列表的字符串
     method 规定以下关键字的至少一种
       group 用radius或tacacs+服务器的一个子集来认证,这些服务器定义在aaa group server radius
或aaa group server tacacs+命令中
       if-authenticated   如果用户为认证,允许用户访问请求的功能;
       krb5-instance      使用被kerberos instance map命令定义的实例;
       local              用本地用户名数据库来授权
       none                不用授权
例子:
     enable secret level 1 ***    为级别1的用户建立一个enable secret口令
     enable secret level 15 ***    为级别15的用户建立一个enable secret口令
     aaa new-model   启用AAA
     aaa authentication login default enable     将enable口令作为缺省的登入方式
     aaa authentication login console-in group tacacs+ local     无论何时使用名为console-in的列
表,都使用TACACS+认证,如果TACACS+认证失败,己用本地用户名和口令
     aaa authentication login dial-in group tacacs+    无论何时使用名为dial-in的列表,都使用
TACACS+认证.
     username *** password ****         建立一个本地用户名和口令,最可能与console-in登录方法列
表一起使用
     aaa authorization commands 1 alpha local    用本地用户名数据库来为所有级别1命令的使用进行
授权
     aaa authorization commands 15 bravo if-authenticated group tacplus local   如果用户已经认
证了,让其运行级别15的命令,如果还未认证,在允许其访问级别15的命令之前,必须基于tacplus组中的
TACACS+服务器来认证
     aaa authorization network charlie local none   使用本地数据库来对所有网络服务的使用授权,
如果本地服务器不可用,此命令执行并不授权,用户能使用所有的网络服务
     aaa authorization exec delta if-authenticated group tacplus    如果用户已经认证,让其运行
EXEC过程,如果没有认证,在允许EXEC之前,必须基于tacplus组中的TACACS+服务器来认证
     privilege exec level 1 ping   为级别1的用户启用PING
     line console 0
     login authentication console-in   使用console-in列表作为控制台端口0的登录认证
     line s3/0
     ppp authentication chap dial-in   使用dial-in列表作接口S3/0 的PPP CHAP的登录认证
5 配置规定如何写记帐记录的AAA记帐
     aaa accounting [auth-proxy |system |network |exec |connection |commands level]{default
|list-name} [vrf vrf-name] [start-stop|stop-only|none][broadcast][method][method2]
      auth-proxy   提供有关所有认证代理用户事件的信息
      system       为所有非用户相关的系统级事件执行记帐
      network      为所有网络相关的服务请求运行记帐
      exec         为EXEC shell会话运行记帐。
      connection    提供所有有关源子NAS的外出连接的信息
      commands      为所有处于特定特权级别的命令运行记帐,有效的特权级别取值0-15
      default       使用本参数之后列出的记帐方式
      list-name     用来命令记帐方式列表的字符串
      vrf vrf-name 规定一个VRF配置
      start-stop    在一个过程的开端,发送一个开始记帐通知,在过程结束时,发送一个停止记帐通知

      stop-only     在被请求用户工程结束时发送一个停止记帐通知
      none          禁止此链路或接口上的记帐服务
      broadcast           启用发送记帐记录到多个3A服务器,同时向每个组中第一台服务器发送记帐记

      method 规定一下关键子中的至少一个
         group radius   用所有RADIUS服务器列表作为记帐
         group tacacs+ 用所有列出的TACACS+服务器来记帐
         group group-name 用RADIUS或TACACS+服务器的一个子集作为记帐
    在路由器上启用下列命令以启用几张
   aaa accounting system wait-start local   用记帐方法审计系统事件
   aaa accounting network stop-only local   当网络服务中断,发送停止记录通知
   aaa accounting exec start-stop local     当EXEC过程开始时,发送一个开始记录通知,结束时,发
送停止记录
   aaa accounting commands 15 wait-start local   在任何级别15的命令开始之前,发送一个开始记录通
知,并等待确认,当命令中止时,发送一个停止记录通知。
      
6 校验配置
   debug aaa authentication 显示有关认证功能的调试信息
   debug aaa authorization 显示有关授权功能的调试信息
   debug aaa accounting     显示有关记帐功能的调试信息