소개
이 문서에서는 권한 수준이 낮은 사용자에 대해 실행 중인 전체 컨피그레이션을 표시하는 컨피그레이션 프로세스를 설명합니다.
사전 요구 사항
요구 사항
이 문서를 이해하려면 Cisco 권한 수준에 대한 기본적인 이해가 필요하며, 배경 정보에서는 필요한 권한 수준에 대한 이해를 설명하기에 충분합니다.
사용되는 구성 요소
이 문서의 구성 예제에 사용된 구성 요소는 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 관련 명령에 액세스할 수 있습니다. 그러나 대부분의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 running-config
show 명령에 대한 액세스 권한이 있는 사용자를 생성하려고 시도할 때 발생하는 문제입니다.
컨피그레이션 솔루션 및 확인
이러한 딜레마에 대한 해결책으로, 이 명령의 제한을 우회하는 또 다른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 권한 <level>을 사용하여 파일에 권한을 추가해야 합니다.
결론
결론적으로, 이는 여러 레벨에서 사용자 권한 액세스를 관리적으로 생성할 때 더 많은 제어 권한을 갖는 방법의 한 예에 불과합니다. 다양한 권한 레벨을 생성하고 서로 다른 명령에 액세스할 수 있는 다양한 옵션이 있으며, 이는 show only 사용자가 어떤 컨피그레이션 명령에도 액세스할 수 없을 때 여전히 전체 실행 컨피그레이션에 액세스할 수 있도록 보장하는 방법의 예입니다.
관련 정보