示例:保护 Junos OS 配置不被修改或删除
此示例说明如何在配置模式下使用 和 unprotect 命令protect来保护和取消对 CLI 配置的保护。
要求
此示例使用以下硬件和软件组件:
-
MX 系列或 PTX 系列设备
概述
借助 Junos OS,您可以保护设备配置不被其他用户修改或删除。这可以通过在 CLI 的配置模式中使用 protect 命令来实现。同样,您也可以使用命令 unprotect 取消对受保护配置的保护。
这些命令可用于配置层次结构的任何级别——顶级父层次结构、配置语句或层次结构最底层中的标识符。
如果配置层次结构受保护,则用户无法执行以下活动:
删除或修改受保护层次结构中的层次结构、语句或标识符
在受保护的层次结构中插入新的配置语句或标识符
重命名受保护层次结构中的语句或标识符
将配置复制到受保护的层次结构中
激活或停用受保护层次结构中的语句
对受保护的层次结构进行注释
拓扑结构
保护父级层次结构
保护子层次结构
保护层次结构中的配置语句
保护配置语句的标识符列表
过程
分步程序
某些配置语句可以采用多个值。例如, address 层次结构级别的 [edit system login deny-sources] 语句可以采用主机名、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 或多个单独地址,请在级别 [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 ];
}
}
}
...
通过尝试修改配置验证层次结构是否受到保护
目的
要尝试使用 、 renamecopyinsert和delete命令修改activate配置,以验证配置是否受到保护。
行动
要验证配置是否受到保护:
尝试将 、
copy、insertrenamedelete和 命令用于activate顶级层次结构或子级别层次结构或层次结构中的语句。对于受保护的层次结构或语句,Junos OS 会显示命令尚未执行的相应警告。例如:
protect: system { host-name a; inactive: domain-search [ a b ]; }要验证层次结构是否受到保护,请尝试发出
activate以下语句的domain-search命令:[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 格式查看配置:
导航到您要查看的层次结构。
将命令
show与管道符号和选项| display xml一起使用:[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]如果层次结构已受到保护,则该层次结构将不受保护。