网络设备 密码、用户级别 AAA授权 的管理

一.进入 特权模式 密码
设置访问网络设备特权模式口令
cisco>enable
cisco#config terminal
cisco(config)#enable password 密码

enable password存在的问题是它将口令以可阅读文本的形式储存在 running-config和startup-config中

特别说明:
Router(config)#enable password ?

     7          Specifies a HIDDEN password will follow

    LINE     The UNENCRYPTED (cleartext) 'enable' password

    level      Set exec level password


7

        是思科自有的加密协议type7,比较简单,容易破解,这里的用法是  enable password 7  ……
后面是加入密文才有效。这个密文通常要在以前备份的配置里拷贝才行,用于配置恢复时使用。
比如你设置enable password cisco
然后使用service password-encryption命令开启加密
在show running-config里面能够看到enable password 7 104D000A0618
104D000A0618这个值你就可以直接写在enable password 7后面,实际就是cisco密文加密的结果

 

LINE

        直接输入密码,不加密,明文显示
 

level   (后面讲)
         设置用户级别密码 指定密码作用于哪个级别(实际操作中会将密码加密保存)
          共15个等级  最低为1   最高为15(相当于root权限)
          进入对应的级别输入 相应的密码 
          如:Router>enable 5   (此时应输入5级密码)

 

在网络设备中,默认情况下,除了使能加密口令外,其它所有口令都以明文格式储存在startup-config 和 running-config中。使用 service password-encryption 命令后,所有系统口令都将以加密形式存储。

加密系统所有口令
cisco(config)# service password-encryption 
加密的方式是cisco私有加密方式


取消系统口令加密
cisco(config)# no service password-encryption 
取消加密不会将已加密的口令恢复为可阅读文本,但是新设置的密码将会以明文存在


二.使能密码

        思科引入新的口令控制特权模式访问,即加密口令,使能密码
设置访问网络设备特权模式加密口令
cisco>enable
cisco#config terminal
cisco(config)#enable secret 密码
采用了MD5加密,如果配置了加密口令,则不在使用未加密口令,两种口令不能并列使用

         

 特别说明:
      
Router(config)#enable secret ?

        0      Specifies an UNENCRYPTED password will follow

        5      Specifies an ENCRYPTED secret will follow

       LINE The UNENCRYPTED (cleartext) 'enable' secret

       level   Set exec level password


       其实对于Secret 选项来说,密码肯定是会被加密的。
       假设我要设置的密码为cisco


     0 是指:我现在即将输入的密码是原始密码,是:cisco
     5 是指:就是输入cisco 的MD5值:$1$XNRo$8FSa/XSF9DbmF6VbK6L6K
     level   :    设置用户级别密码 指定密码作用于哪个级别

 

 

三.控制台登录密码

配置console 访问密码

cisco>enable
cisco# config terminal
cisco(config)# line console 0            切换为控制台0号 线路配置模式
cisco(config)# password  密码           设置密码
cisco(config)# login               将控制台线路设置为登陆需要输入口令 才能访问(否则即使设置密码也不需要输入)

四.辅助线路

配置vty访问密码

cisco>enable
cisco#config terminal
cisco(config)#line aux 0             对aux0号 线路进行配置
cisco(config)#password 密码     设置密码
cisco(config)#login                   将控制台线路设置为登陆需要输入口令 才能访问(否则即使设置密码也不需要输入)

五.虚拟终端线路(vty 同步)(tty异步) telnet  ssh

配置vty访问密码

cisco>enable
cisco#config terminal
cisco(config)#line vty 0 15 对vty0到15号 线路进行配置(最大允许16个人同时登陆,VTY线路的编号)
cisco(config)#password 密码 设置密码
cisco(config)#login       将控制台线路设置为登陆需要输入口令 才能访问(否则即使设置密码也不需要输入)
                                         

 

特别说明:
   
Router(config-line)#login ?

        authentication    authenticate using aaa method list

          local Local       password checking

   authentication    配置Telnet口登录进行AAA认证(后面讲)

 

   local        如果设置 local 则指明使用本地数据库进行身份验证,将要输入 用户名 和 密码
                  首先必须要用username xxx  password xxx命令
                  来创建你的用户并且给你的用户设置密码

 

        特别说明,在默认情况下,除了password secret外,所有cisco密码都以明文形式,存贮在路由器的配置,这些密码通过 show running-config命令来查看。这是非常不安全的行为。

        为提高密码安全性,可进行如下配置。

1.设置最短密码长度
      cisco IOS 12.3 以后的版本,可以利用命令
      security passwords min-length 长度   
      
设置0~16位的最短字符长度,启用后,user passwords、enable secret、line passwords、都会遵循此设置

 

2.禁用无用连接
    在线路配置模式下,使用
    Router(config-line)#exec-timeout  时间
    该命令来控制管理接口连接时间,

 

3.加密配置文件中的所有密码
     加密系统所有口令
     cisco(config)# service password-encryption 
    加密的方式是cisco私有加密方式,是一种可逆的加密,建议使用与enable 不同的密码


    取消系统口令加密
    cisco(config)# no service password-encryption 
    取消加密不会将已加密的口令恢复为可阅读文本,但是新设置的密码将会以明文存在

  

4.使用本地数据库中的用户和密码执行登陆验证,有两种配置方式
      Router(config)# username 用户名  passwords 密码
      Router(config)# username 用户名 secret  密码   (用md5加密,安全性更高)

     然后在线路配置中,启用本地登陆验证
     Router(config-line)#login local

 

5.其它的登陆安全措施

R1(config)#login block-for 60 attempts 3 within 30
                                    //30s内连续登录失败3次后,等待60s(进入安静期)后才能再次登录
R1(config)#login quiet-mode access-class 10  
                                       //安静期内ACL10指定的计算机仍可以远程访问本路由器
R1(config)#login delay 2                 //登录成功后有2s延迟,即2s后才能再次登录
R1(config)#login on-failure log        //登录失败会在日志中记录
R1(config)#login on-success log        //登录成功会在日志中记录
R1(config)#security authentication failure rate 5 log
                                  //连续登录失败5次后,默认等待15s后才能再次登录,并会产生日志,IOS12.3(1)
 验证配置可以使用  show login 

 

6.设置标语
    

配置旗标消息:

R1(config)#banner motd @        @        //每日报告旗标(MOTD Message-of-the-day banner)   连接时

R1(config)#banner login@        @        //登录旗标          登录前

R1(config)#banner exec @        @        //EXEC旗标      登陆后

R1(config)#banner incoming@        @        //传入旗标 
                                                                在与反向Telnet线路连接的终端上显示,该旗标有助于向用户提供指令;

R1(config)#banner slip-ppp@        @        //SLIP-PPP旗标

                       常用于兼容非Cisco系列线路Internet协议(如:SLIP和PPP拨号软件连接中),如果使用默
                               认旗标,会导致连接问题。

 

 

 

 

 

用户级别控制:

 

Cisco IOS提供从0到15的16个优先权等级:

①默认情况下IOS有3个预定义的用户等级,分别为:

    优先权等级0:包括disable、enable、exit、help和logout命令;

    优先权等级1:User EXEC mode,即用户模式(R1>)的所有用户级命令;

    优先权等级15:Privileged EXEC mode(启用模式),包括R1#提示的所有启动级命令。


         ②2至14等级用于用户自定义的模式;
                      cisco(config)# enable secret level  级别 密码
                                                      
设置从用户模式进入各级别 特权模式的密码
                        R1(config)# username user3 privilege 5 secret 密码
                                                      
创建优先权等级5的user3用户

 

③ R1(config)# privilege mode level 级别 命令
                  命令可以更改、移动或设置上述任一级别的命令优先权,

          mode:是指路由器上的不同模式
                                cisco(config)#privilege ?

                                       configure      Global configuration mode

                                       exec             Exec mode

                                       interface      Interface configuration mode

                                       line               Line configuration mode

                                       router           Router configuration mode

    示例:          R1(config)#privilege configure level 5 interface  
                                   //移动等级15的“interface”命令到等级5
                                  R1(config)#privilege configure level 5 ping
                                        //等级5及以上才可以使用  ping 命令

                    

 

④“R1(config-line)#privilege level level              命令可以修改给定线路的优先权等级。

    示例:R1(config)#line vty 3 4 

          R1(config-line)#privilege level 1        //修改VTY线路3-4的默认优先权等级为1

           使用  show privilege  命令显示当前级别 

 

 

AAA认证:
 
一、简介
        AAA是Authentication(认证)Authorization授权 Account记帐的简称;
        它们不是必须的也不是要同时一起使用的;
        他们可以使用路由器设备本地数据库,也可以使用外部数据库(ACS);
                首先我们要认证,即通过密码验证;我们就算没有设置其实也用到了认证,就是登陆路由器要输入的密码,
        这个叫enable
         我们在配置了,username abc password aaa 
                                     username abc secret password
                
使用这个帐号的话,叫local;
         这二种是本地的数据库。
         
如果要用到认证服务器,如 tacacs+ radius 就属于group 服务器组方式了,这时你必须要在tacacs+ radius中选一个,同时还最多可选三个其它的认证方式;当然如果你对你的服务器和网络环境有信心的话可以不选。 

二、配置教程
1、使用它们都是三个步骤
  1、建立帐户数据库(本地或认证服务器);
  2、定义列表;
  3、应用到接口和链路;
2、首先我们要启用AAA功能 
  Router(config)# aaa new-model

3、一般来说第二步定义一个本地数据库防止配置失误造成无法登陆
  Router(config)# Username abc password aaa

4、定义认证配置
  认证相当于在问你是谁,你要回答我是哪个;但不可能不停的在问就算不烦嗓子也疼啊,只有在进门时我会问下你是谁,开保险柜时我在问下你是谁,或者是检查指纹测试瞳孔什么的等等;所以我们要对动作进行认证定义。
   Router(config)#aaa authentication  行为 列表名 认证方法
     行为主要有以下三种:
   aaa authentication login ――――――当有一个登陆行为时进行认证;
   aaa authentication ppp ――――――对基于PPP协议的一些网络应用进行认证;
   aaa authentication enable ――――――对使用enable命令进入特权模式时进行认证;
        列表名是自己定义的,这样我们可以把各种认证方式互相组合保存成一个个列表,用的时候方便,修改起来也方便,我改了一个列表里的认证方式那么所有使用这个列表的地方都改了,不需要去一个个地方去改了。
  Dedautl列表是一个系统自己建立的列表名作为缺省列表。它与我们自己建的列表没有任何区别,只不过他是系统建的而已。
3、认证方法,就是指我们是查口令呢还是看指纹还是其它等等,也就是把我们的回答和谁进行分析比较。主要有以
  下几种:

 


关键字

描述
enable 使用enabel口令认证;
krb5 使用Kerberos5来认证;
line 使用线路口令来认证;
local 使用本地用户数据库来认证;
none 不认证;
group radius 使用radius服务器来认证;
group tacacs+ 使用tacacs+服务器来认证;

 

 local-case           使用本地验证(对大小写敏感)


每个列表中必须定义一种认证方法,最多可以定义四种方法,当第一种认证不通过再使用第二种,以此类推。 
例如我们定义
Router(config)# aaa authentication login 二号方案 group tacacs+ local
//我们定义了一个名叫二号方案认证方式,就是先去tacacs+服务器验证,如果不成功在试试用本地帐号来试;
Router(config)# aaa authentication login 三号方案 group local enable
//我们定义了一个名叫三号方案认证方式,就是先用本地帐号验证,如果不成功就用enable密码来验证;

五、应用到接口和链路
我们上面做了那么多但是还没有效果为什么呢,就好像我们做好了报警器,指纹验证器但没装到门上你说可有效果,那当然是不行的了,我们是定义了当登陆时就启用一个列表名字叫二号方案的认证方式,但只有我们把他装到门上才能有效果啊,有人说太麻烦应该定义好了就能用,那就惨了,你给自己家的门上装了二号方案没关系,如果楼道门、院子门,都给装上了那就有问题了,所以我们要把定义好的认证方法列表装到我们需要使用认证的门上,例如我们可能对Telnet要认证,但通过console登陆的就不要认证。
Router(config)# line vty 0 //我们先要进入接口
Router(config-line)# aaa authentication 二号方案   //线路vty0使用名为二号方案的方式进行认证;
或者:
Router(config)# line vty 1
Router(config-line)# login  authentication 三号方案


 

aaa的一些其他命令:
    锁死失败超过限制的账号
   Router(config)# aaa local authentication at tempts max-fail 失败次数

 
显示所有被锁死的用户
  Router# show aaa local user lockout 

  
解除锁定
  Router(config)# clear aaa local user lockout {username 用户名| all}

 只显示aaa认证授权的用户
 Router# show aaa  user  {all | 唯一id}

 显示一个会话的唯一id
 Router# show aaa  sessions 
   

 

AAA授权:

配置供用户通过认证之后的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命令的使用进行
授权  www.2cto.com  
     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的登录认证

 

 

AAA记账:

配置规定如何写记帐记录的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服务器,同时向每个组中第一台服务器发送记帐记
录  www.2cto.com  
      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     显示有关记帐功能的调试信息
 

 

posted @ 2017-10-18 13:55  乌托邦眺望  阅读(4206)  评论(0编辑  收藏  举报