例:Junos OS設定を変更または削除から保護する
この例では、設定モードで protect コマンドと unprotect コマンドを使用して、CLI設定を保護および保護解除する方法を示します。
要件
この例では、以下のハードウェアおよびソフトウェアコンポーネントを使用しています。
-
MXシリーズまたはPTXシリーズデバイス
概要
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コマンドの使用法の検証
目的
設定の保護に使用される 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 system
設定をXMLで表示
目的
保護された階層またはステートメントが 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]階層は、すでに保護されている場合は保護されなくなります。