例:Junos OS の設定を変更または削除から保護する
この例では、設定モードで protect コマンドと unprotect コマンドを使用して、CLI 設定を保護および保護解除する方法を示しています。
要件
この例では、以下のハードウェアとソフトウェアのコンポーネントを使用しています。
M シリーズ、MX シリーズ、PTX シリーズ、または T シリーズ デバイス
すべてのデバイスでJunos OS 11.2以降が作動
概要
Junos OSを使用すると、他のユーザーによってデバイス設定が変更されたり削除されたりしないように保護できます。これは、CLI の設定モードで protect コマンドを使用することで実現できます。同様に、 unprotect コマンドを使用して、保護された構成の保護を解除することもできます。
これらのコマンドは、最上位の親階層、設定ステートメント、階層の最下位レベル内の識別子など、設定階層のどのレベルでも使用することができます。
構成階層が保護されている場合、ユーザーは以下のアクティビティを実行できません。
保護された階層内の階層、ステートメント、識別子の削除または変更
保護された階層内での新しい設定ステートメントまたは識別子の挿入
保護された階層内のステートメントまたは識別子の名前変更
保護された階層への構成のコピー
保護された階層内でのステートメントのアクティブ化または無効化
保護された階層に注釈を付ける
トポロジー
親レベルの階層の保護
手順
ステップバイステップでの手順
階層の最上位レベルの設定を保護するには:
保護したい階層を特定し、[edit]階層レベルでその階層に対して protect コマンドを発行します。
たとえば、 [edit access] 階層レベル全体を保護する場合は、次のコマンドを使用します。
[edit]user@host#protect access
結果
親階層の下にあるすべての要素を保護します。
設定で使用されていない階層に対して protect コマンドを発行すると、Junos OS CLI に次のエラー メッセージが表示されます。
[edit]user@host#protect accesswarning: statement not found
子階層の保護
手順
ステップバイステップでの手順
親階層内に含まれる子階層を保護するには:
親コンテナ階層に移動します。親レベルの階層に対して protect コマンドを使用します。
たとえば、 [edit system syslog console] 階層レベルを保護する場合は、 [edit system syslog] 階層レベルで次のコマンドを使用します。
[edit system syslog]user@host#protect console
結果
子階層の下にあるすべての要素を保護します。
階層内の設定ステートメントの保護
手順
ステップバイステップでの手順
階層レベル内の設定ステートメントを保護するには:
保護したいステートメントを含む階層レベルに移動し、その階層に対して protect コマンドを発行します。
たとえば、[edit system] 階層レベルの下で host-name ステートメントを保護する場合は、次のコマンドを使用します。
[edit system]user@host#protect host-name
結果
設定ステートメントの識別子リストの保護
手順
ステップバイステップでの手順
一部の構成ステートメントは、複数の値を取ることができます。たとえば、[edit system login deny-sources]階層レベルの address ステートメントは、ホスト名、IPv4 アドレス、または IPv6 アドレスのリストを取得できます。次の構成があるとします。
[edit system login]
deny-sources {
address [ 172.17.28.19 172.17.28.20 172.17.28.21 172.17.28.22];
}
address ステートメントのすべてのアドレスを保護するには、[edit] レベルで次のコマンドを使用します。
[edit]
user@host# protect system login deny-sources address
結果
address ステートメントのすべてのアドレス ([172.17.28.19 172.17.28.20 172.17.28.21 172.17.28.22]) は保護されています。
同種リストからの個々のメンバーの保護
手順
ステップバイステップでの手順
次の構成があるとします。
[edit groups ]
test1 {
system {
name-server {
10.1.2.1;
10.1.2.2;
10.1.2.3;
10.1.2.4;
}
}
}
name-server ステートメントで 1 つ以上の個別のアドレスを保護するには、[edit] レベルで次のコマンドを発行します。
[edit] user@host#protect groups test1 system name-server 10.1.2.1user@host#protect groups test1 system name-server 10.1.2.4
結果
アドレス 10.1.2.1 および 10.1.2.4 は保護されています。
設定の保護解除
手順
ステップバイステップでの手順
[edit system]階層レベルで次の構成があるとします。
protect: system {
host-name bigping;
domain-search 10.1.2.1;
login {
deny-sources {
protect: address [ 172.17.28.19 172.17.28.173 172.17.28.0 174.0.0.0 ];
}
}
}
[edit system]階層レベル全体の保護を解除するには、[edit]レベルで次のコマンドを発行します。
[edit]
user@host# unprotect system
結果
system階層レベル全体が保護解除されます。
検証
show コマンドを使用して、階層が保護されていることを確認する
目的
構成階層が保護されていることを確認するには。
アクション
設定モードで、[edit]階層レベルで show コマンドを発行すると、保護されているすべての設定階層と設定ステートメントが表示されます。
すべての保護された階層またはステートメントには、 protect: 文字列のプレフィックスが付きます。
...
protect: system {
host-name bigping;
domain-search 10.1.2.1;
login {
deny-sources {
protect: address [ 172.17.28.19 172.17.28.173 172.17.28.0 174.0.0.0 ];
}
}
}
...
構成の変更を試みることによって、階層が保護されていることを確認する
目的
activate、copy、insert、rename、および delete コマンドを使用して設定を変更することで、設定が保護されていることを確認するには。
アクション
設定が保護されていることを確認するには:
最上位階層、子階層、階層内のステートメントに対して、
activate、copy、insert、rename、およびdeleteコマンドを使用してみます。保護された階層またはステートメントの場合、Junos OSは、コマンドが実行されていないことを示す適切な警告を表示します。以下はその一例です。
protect: system { host-name a; inactive: domain-search [ a b ]; }階層が保護されていることを確認するには、
domain-searchステートメントに対してactivateコマンドを発行してみてください。[edit system]user@host#
activate system domain-searchJunos OS CLI は、適切なメッセージを表示します。
warning: [system] is protected, 'system domain-search' cannot be activated
保護コマンドの使用確認
目的
設定の保護に使用される protect コマンドを表示します。
アクション
必要な階層に移動します。
コマ
show | display set relativeンドを発行します。
user@host> show | display set relative
set system host-name bigping
set system domain-search 10.1.2.1
set system login deny-sources address 172.17.28.19
set system login deny-sources address 172.17.28.173
set system login deny-sources address 172.17.28.0
set system login deny-sources address 174.0.0.0
protect system login deny-sources address
protect systemXML での構成の表示
目的
保護された階層またはステートメントが XML にも表示されているかどうかを確認します。保護された階層、ステートメント、または識別子は、XML の | display xml 属性で表示されます。
アクション
構成を XML で表示するには:
表示する階層に移動します。
パイプ記号とオプション
| display xmlを指定して、showコマンドを使用します。[edit system]user@host#
show | display xml[edit] user@host# show system | display xml <rpc-reply xmlns:junos="http://xml.juniper.net/junos/11.2I0/junos"> <configuration junos:changed-seconds="1291279234" junos:changed-localtime="2017-12-02 00:40:34 PST"> <system protect="protect"> <host-name>bigping</host-name> <domain-search>10.1.2.1</domain-search> <login> <message> \jnpr \tUNAUTHORIZED USE OF THIS ROUTER \tIS STRICTLY PROHIBITED! </message> <class> <name>a</name> <allow-commands>commit-synchronize</allow-commands> <deny-commands>commit</deny-commands> </class> <deny-sources> <address protect="protect">172.17.28.19</address> <address protect="protect">172.17.28.173</address> <address protect="protect">172.17.28.0</address> <address protect="protect">174.0.0.0</address> </deny-sources> </login> <syslog> <archive> </archive> </syslog> </system> </configuration> <cli> <banner>[edit]</banner> </cli> </rpc-reply>注:unprotect="unprotect"タグを使用してXML構成を読み込むと、すでに保護された階層の保護が解除されます。たとえば、次の XML 階層を読み込むとします。<protocols unprotect="unprotect"> <ospf> <area> <name>0.0.0.0</name> <interface> <name>all</name> </interface> </area> </ospf> </protocols>[edit protocols]階層が既に保護されている場合、その階層は保護されなくなります。