はじめに
このドキュメントでは、特権レベルの低いユーザの完全な実行コンフィギュレーションを表示する設定プロセスについて説明します。
前提条件
要件
このドキュメントを理解するには、シスコの特権レベルの基本的な知識が必要です。必要な特権レベルの理解については、「背景説明」を参照してください。
使用するコンポーネント
このドキュメント内の設定例で使用されたコンポーネントはASR1006ですが、Cisco IOS®またはCisco IOS XEデバイスはすべて同様に動作します。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
このドキュメントでは、特権レベルが低いルータにログインしたユーザの完全な実行コンフィギュレーションを表示する方法の設定手順について説明します。次の問題と回避策を理解するには、特権レベルを理解する必要があります。 使用可能な特権レベルは0 ~ 15の範囲で、どのコマンドをどの特権レベルで使用できるかを管理者がカスタマイズできます。デフォルトでは、ルータの3つの特権レベルは次のとおりです。
- レベル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
この設定を使用すると、ユーザ1がルータに接続したときに、show access-lists
コマンドや、その特権レベルで有効になっているその他の任意のコマンドを実行できます。show running-config
ただし、問題の説明で後述するように、enabledコマンドに対しては同じことは言えません。
設定の問題
異なるユーザに対してルータへの異なるアクセスレベルを設定する場合、ネットワーク管理者は一般的に、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
この設定例では、2行目により、通常この特権レベルでは使用できない多数のshow relatedコマンドへのアクセスをtest_user
に許可できます。ただし、show running-config
コマンドは、ほとんどのshowコマンドとは異なる方法で処理されます。サンプルコードの3行目でも、コマンドが正しい特権レベルで指定されていても、省略/省略された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>コマンドを使用してファイルに権限を追加することも必要です。
結論
結論として、これは管理上、異なるレベルでユーザ権限アクセスを作成する際に、より詳細な制御を行う方法の1つの例にすぎません。さまざまな特権レベルを作成したり、異なるコマンドにアクセスしたりするためのオプションは数多く存在します。これは、show onlyユーザがコンフィギュレーションコマンドにアクセスできない場合でも完全な実行コンフィギュレーションにアクセスできるようにする方法の例です。
関連情報