简介
本文档介绍为权限级别较低的用户显示完整运行配置的配置过程。
先决条件
要求
要理解本文档,必须具备对思科权限级别的基本了解,背景信息足以解释对所需权限级别的理解。
使用的组件
本文档中用于配置示例的组件是ASR1006,但所有Cisco IOS®或Cisco IOS XE设备的工作方式都类似。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
本文档介绍如何为登录到低权限级别的路由器的用户显示完整运行配置的配置步骤。要了解下一个问题和解决方法,必须了解权限级别。 可用的权限级别范围为0到15,并允许管理员自定义哪些命令在哪些权限级别可用。默认情况下,路由器的三个权限级别为:
- 0级 — 仅包括基本命令(disable、enable、exit、help和log out)
- 1级 — 包括在用户EXEC命令模式下可用的所有命令
- 级别15 -包括在特权EXEC命令模式下可用的所有命令
在这些最小和最大级别之间的剩余级别未定义,直到管理员将命令和/或用户分配给它们。因此,管理员可以为用户分配不同权限级别,这些权限级别介于最小权限级别和最大权限级别之间,以分隔不同用户也具有访问权限的内容。然后,管理员可以将单个命令(和各种其他选项)分配给单个权限级别,以使此级别的任何用户都可以使用它。例如:
Router(config)# username user1 privilege 7 password P@ssw0rD1
Router(config)# privilege exec level 7 show access-lists
使用此配置,当user1连接到路由器时,他们能够运行该命令和show access-lists
/或在该权限级别启用的任何其他内容。但是,如问题语句后面所述show running-config
,不能对启用该命令进行相同说明。
配置问题
为不同用户配置不同的路由器访问级别时,网络管理员通常会尝试将某些用户指定为仅有权访问命令,而不提供任何命令访问show
,这是很常见的做法configuration
。对于大多数命令而言,这是一项简单任务show
,因为您可以通过如下所示的简单配置授予访问权限:
Router(config)# username test_user privilege 10 password testP@ssw0rD
Router(config)# privilege exec level 10 show
Router(config)# privilege exec level 10 show running-config
使用此示例配置test_user
,第二行可允许访问过多的show related命令,这些命令通常在此权限级别不可用。但是show running-config
,该命令的处理方式与大多数show命令不同。即使使用示例代码的第三行,系统也只为用户显示省略/缩写show running-config
,尽管该命令以正确的权限级别指定。
User Access Verification
Username: test_user
Password:
Router#
Router#show privilege
Current privilege level is 10
Router#
Router#show running-config
Building configuration...
Current configuration : 121 bytes
!
! Last configuration change at 21:10:08 UTC Mon Aug 28 2017
!
boot-start-marker
boot-end-marker
!
!
!
end
Router#
您可以看到,此输出未显示任何配置,对于尝试收集有关路由器配置信息的用户没有帮助。这是因为show running-config
,该命令显示用户能够在其当前权限级别修改的所有命令。此配置设计为安全配置,可防止用户从其当前权限级别访问之前配置的命令。当尝试创建具有show命令访问权限的用户时会出现此问题,这是工程师在排除故障时最初收集的标准命令show running-config
。
配置解决方案和验证
作为这一困境的解决之道,传统命令的另一个版本show run
,绕过了命令的这种限制。
Router(config)# show running-config view full
Router(config)# privilege exec level 10 show running-config view full
添加到命令view full
(以及反过来允许用户访问命令的权限级别)现在允许用户查看完整命令而不忽略任何省略的命令show running-config
。
Username: test_user
Password:
Router#
Router#show privilege
Current privilege level is 10
Router#
Router#show running-config view full
Building configuration...
Current configuration : 2664 bytes
!
! Last configuration change at 21:25:45 UTC Mon Aug 28 2017
!
version 15.4
service timestamps debug datetime msec
service timestamps log datetime msec
no platform punt-keepalive disable-kernel-core
!
hostname Router
!
boot-start-marker
boot system flash bootflash:packages.conf
boot system flash bootflash:asr1000rp1-adventerprisek9.03.13.06a.S.154-3.S6a-ext.bin
boot-end-marker
!
vrf definition Mgmt-intf
!
address-family ipv4
exit-address-family
!
address-family ipv6
exit-address-family
!
enable password <omitted>
!
no aaa new-model
!
no ip domain lookup
!
subscriber templating
!
multilink bundle-name authenticated
!
spanning-tree extend system-id
!
username test_user privilege 10 password 0 testP@ssw0rD
!
redundancy
mode sso
!
cdp run
!
interface GigabitEthernet0/2/0
no ip address
shutdown
negotiation auto
!
interface GigabitEthernet0/2/1
no ip address
shutdown
negotiation auto
!
interface GigabitEthernet0
vrf forwarding Mgmt-intf
ip address <omitted>
negotiation auto
cdp enable
!
ip forward-protocol nd
!
control-plane
!
!
privilege exec level 10 show running-config view full
alias exec show-running-config show running-config view full
!
line con 0
stopbits 1
line aux 0
exec-timeout 0 1
no exec
transport output none
stopbits 1
line vty 0 4
login local
!
end
Router#
但是,这确实会产生问题,通过向用户提供此版本命令的访问权限,这不会增加尝试通过设计省略版本来解决的初始安全风险?
show running-config
作为解决方案的变通方案并确保安全网络设计的一致性,您可以为运行完整版命令的用户创建别名,而无需为用户提供访问/知识,如下所示:
Router(config)# alias exec show-running-config show running-config view full
在本示例中,是别名show running-config
,当用户登录路由器时,他们可以输入此别名而不是命令,并在不知道正在运行的实际命令的情况下接收预期输出。
注意:从16.X版本开始,根据平台的不同,还需要使用命令(config)#file privilege <level>向文件添加权限。
结论
总之,这只是管理性创建不同级别的用户权限访问时如何获得更多控制的一个示例。创建各种权限级别和访问不同命令的选项非常多,以下示例说明了如何确保show only用户在无权访问任何配置命令时仍然能够访问完整的运行配置。
相关信息