一.进入 特权模式 密码
设置访问网络设备特权模式口令
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     显示有关记帐功能的调试信息

网络设备 密码、用户级别 AAA授权 的管理的更多相关文章

  1. oAuth 使得第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权

    OAUTH协议为用户资源的授权提供了一个安全的.开放而又简易的标准.与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可 ...

  2. Linux 管理环境变量的文件分为系统级和用户级别

    Linux 管理环境变量的文件分为系统级和用户级别 管理环境变量的文件也分为系统级和用户级别: 1.系统级:/etc/profile:该文件是用户登录时,操作系统定制用户环境时使用的第一个文件,应用于 ...

  3. MongoDB用户授权和管理

    转载于https://blog.csdn.net/yu757371316/article/details/55210536 1.mongodb安装好后第一次进入是不需要密码的,也没有任何用户,通过sh ...

  4. 转 在SQL Server中创建用户角色及授权(使用SQL语句)

     目录 要想成功访问 SQL Server 数据库中的数据 我们需要两个方面的授权 完整的代码示例 使用存储过程来完成用户创建 实例 要想成功访问 SQL Server 数据库中的数据, 我们需要两个 ...

  5. 在SQL Server中创建用户角色及授权

    参考文献 http://database.51cto.com/art/201009/224075.htm 正文 要想成功访问 SQL Server 数据库中的数据, 我们需要两个方面的授权: 获得准许 ...

  6. ORACLE - 用户和角色的权限管理

    在ORACLE中,创建用户后需要授权才能使用. 一.用户管理 1. 用户和角色信息查询 --查询所有用户 SQL> select * from dba_users; --经授予的用户或角色的系统 ...

  7. Oracle 11g安装步骤以及Oracle11g创建表空间和用户,并授权

    Oracle 11g安装步骤详解 一.Oracle 下载 注意Oracle分成两个文件,下载完后,将两个文件解压到同一目录下即可. 路径名称中,最好不要出现中文,也不要出现空格等不规则字符. 官方下地 ...

  8. MONGODB用户、角色和权限管理

      最近遇到很多问MONGODB用户认证授权方面的问题,现在特记录下来,与大家共享. 一.概念理解 1.用户概念 Mongodb的用户是由 用户名+所属库名组成 例如: 登录mongo  testdb ...

  9. 最简实例演示asp.net5中用户认证和授权(4)

    上篇: 最简实例演示asp.net5中用户认证和授权(3) 上面我们把自定义认证和授权的相关的最小基础类和要实现的接口都实现了,下面就是如何来进行认证和授权的配置. 首先我们要告诉系统,我们的用户和角 ...

随机推荐

  1. Excel查找匹配函数的16种方法

    作者:高顿初级会计链接:https://zhuanlan.zhihu.com/p/79795779来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 1.普通查找 查找李晓 ...

  2. 【java面试】网络通信篇

    1.说一下HTTP协议 HTTP协议是超文本传输协议,属于应用层协议,规定了客户端与服务端传输数据的格式:它是无状态的,对于前面传送过的信息没有记录:请求方式有GET,POST,HEAD,PUT,DE ...

  3. Python环境搭建(win)——Python官方解释器

    Python官方解释器搭建方法: 本文以当前最新的3.8.1为例 1.在电脑上打开Python的官网https://www.python.org/ 2.找到Download下的All releases ...

  4. python  获取网页图片 十月底的 一弹

    #!/usr/bin/pythonimport reimport urllib def getHtml(url):    page=urllib.urlopen(url)    html=page.r ...

  5. 请求参content-type的值为json,返回报错的解决方法

    如上图,请求后报参数错误 原因content-type的值为json requests.post左侧的data要改为json 即r = requests.post(url, json=data, he ...

  6. 正则表达式在c++中的实现

    这个是最基础的解释器,它实现了串联.并联.克林闭包,字符集为除了()|*的ASCII字符,而且不能判断表达式合法,效率还很低,内存利用率低. 它只能判读输入的字符串是否符合表达式. #include& ...

  7. 使用ob缓存简单实现页面静态化

    <?php //接收新闻id,传统的方法查询数据库并显示数据 $id=intval($_GET['id']); //先判断该新闻对于的静态页面是否存在,如果有,则直接返回,如果 //没有,则查询 ...

  8. postman发送请求的简单操作

    发送请求常用的是post和get 两者的区别是: 1.post比get安全,因为参数直接暴露在url中,不能用来传递敏感信息 2.get参数通过url传递,post放在request body中 3. ...

  9. EL表达式(Exprission language)

    EL介绍 Expressive Language, JSP2.0引入,简化jsp开发中对对象的引用,(可以直接读取对象的属性,不需要像之前java脚本那样去做,比较繁琐),使得访问存储在JavaBea ...

  10. JMeter入门 | 第一个并发测试

    JMeter入门 | 第一个并发测试 背景 近期我们组新来了一些新同事,之前从来没有用过JMeter做个并发测试,于是准备了一系列小教程去指引新同事,本章主要是新人入门体验教程,快速实现第一个接口并发 ...