SNMP 组的访问权限
SNMP 版本 3 (SNMPv3) 使用基于视图的访问控制模型 (VACM),您可以通过该模型配置授予组的访问权限。您可以通过预定义视图过滤可用于特定操作的 MIB 对象来控制访问。您可以分配视图来确定使用特定上下文、特定安全模型(v1、v2c 或 usm)和特定安全级别(已验证、隐私或无)对特定组的读取、写入和通知操作可见的对象。有关如何配置视图的信息,请参阅 配置 MIB 视图。
您可以在层次结构级别定义 [edit snmp v3 vacm] 用户对管理信息的访问权限。VACM 中的所有访问控制都对组进行操作,组是 USM 定义的用户集合,或 SNMPv1 和 SNMPv2c 安全模型中定义的社区字符串。
该术语 security-name 指的是这些通用的最终用户。特定安全名称所属的组在层次结构级别上 [edit snmp v3 vacm security-to-group] 配置。该安全名称可以与在层次结构级别上 [edit snmp v3 vacm security-to-group] 定义的组相关联。一个组标识共享相同访问策略的 SNMP 用户的集合。然后,在层次结构级别上 [edit snmp v3 vacm access] 定义与组关联的访问权限。您可以使用视图来定义访问。对于每个组,您可以根据 SNMP 操作应用不同的视图;例如,读取 (get、 getNext或 getBulk) 写入 (set)、通知、SNMP 请求中使用的安全级别(身份验证、隐私或无)以及安全模型(v1、v2c 或 USM)。
您可以使用语句配置组 security-name 的成员。对于使用 USM 的 v3 数据包,安全名称与用户名相同。对于 SNMPv1 或 SNMPv2c 数据包,安全名称将基于社区字符串确定。安全性名称特定于安全模型。如果还要为 SNMPv1 或 SNMPv2c 数据包配置 VACM 访问策略,则必须在层次结构级别为 [edit snmp v3 vacm security-to-group] 每个安全模型(SNMPv1 或 SNMPv2c)的组分配安全名称。您还必须在层次结构 级别将 [edit snmp v3 snmp-community community-index] 安全名称与 SNMP 社区相关联。
要配置 SNMP 组的访问权限,请在层次结构级别上 [edit snmp v3 vacm] 使用 include 语句。有关此语句的更多信息,请参阅 vacm。
配置授予组的访问权限
本主题包含以下部分:
配置组
要配置授予组的访问权限,请在层次结构级别包含以下 group 语句 [edit snmp v3 vacm access] :
[edit snmp v3 vacm access] group group-name;
group-name 是属于定义访问策略的通用 SNMP 列表的 SNMP 用户的集合。属于特定 SNMP 组的用户继承授予该组的所有访问权限。
配置安全性模型
要配置安全模型,请在层次结构级别包含[edit snmp v3 vacm access group group-name (default-context-prefix | context-prefix context-prefix)]该security-model语句:
[edit snmp v3 vacm access group group-name (default-context-prefix | context-prefix context-prefix)] security-model (any | usm | v1 | v2c);
-
any—任何安全模型 -
usm— SNMPv3 安全模型 -
v1— SNMPV1 安全模型 -
v2c—SNMPv2c 安全模型
配置安全性级别
要配置授予具有特定安全级别的数据包的访问权限,请在层次结构级别包含[edit snmp v3 vacm access group group-name (default-context-prefix | context-prefix context-prefix) security-model (any | usm | v1 | v2c)]该security-level语句:
[edit snmp v3 vacm access group group-name default-context-prefix security-model (any | usm | v1 | v2c)] security-level (authentication | none | privacy);
-
none— 不提供身份验证,也不提供加密。 -
authentication— 提供身份验证,但不加密。 -
privacy— 提供身份验证和加密。
您可以向安全级别等于或大于配置级别的所有数据包授予访问权限。如果配置 SNMPv1 或 SNMPv2c 安全模型,请用作 none 安全级别。如果要配置 SNMPv3 安全模型 (USM),请使用 authentication、 none或 privacy 安全级别。
将 MIB 视图与 SNMP 用户组相关联
MIB 视图定义组成员的访问权限。您可以为 SNMP 支持的每个安全模型(usm、v1 和 v2c)和每个安全级别(身份验证、无和隐私)中的每个 SNMP 操作(读取、写入和通知)应用单独的视图。
要将 MIB 视图与 SNMP 用户组相关联,请在[edit snmp v3 vacm access group group-name (default-context-prefix | context-prefix context-prefix) security-model (any | usm | v1 | v2c) security-level (authentication | none | privacy)]层次结构级别包含以下语句。有关此语句的详细信息,请参阅访问 (SNMP)。
您必须在层次结构级别关联 [edit snmp v3 vacm access group group-name (default-context-prefix | context-prefix context-prefix) security-model (any | usm | v1 | v2c) security-level (authentication | none | privacy)] 至少一个视图(通知、读取或写入)。
您必须在层次结构级别配置 [edit snmp view view-name] MIB 视图。有关如何配置 MIB 视图的信息,请参阅 配置 MIB 视图。
本节介绍与此配置相关的以下主题:
配置通知视图
要将通知访问与 SNMP 用户组相关联,请在层次结构级别包含[edit snmp v3 vacm access group group-name (default-context-prefix | context-prefix context-prefix) security-model (any | usm | v1 | v2c) security-level (authentication | none | privacy)]该notify-view语句。有关此语句的更多信息,请参阅 notify-view。
view-name 指定通知访问权限,这是可发送给 SNMP 组中每个用户的通知列表。视图名称不能超过 32 个字符。
配置读取视图
要将读取视图与 SNMP 组相关联,请在层次结构级别包含[edit snmp v3 vacm access group group-name (default-context-prefix | context-prefix context-prefix) security-model (any | usm | v1 | v2c) security-level (authentication | none | privacy)]该read-view语句。有关此语句的更多信息,请参阅 read-view。
view-name 指定 SNMP 用户组的读取访问权限。视图名称不能超过 32 个字符。
配置写入视图
要将写入视图与 SNMP 用户组相关联,请在层次结构级别包含[edit snmp v3 vacm access group group-name (default-context-prefix | context-prefix context-prefix) security-model (any | usm | v1 | v2c) security-level (authentication | none | privacy)]该write-view语句。有关此语句的详细信息,请参阅 write-view。
view-name 指定 SNMP 用户组的写访问权限。视图名称不能超过 32 个字符。
示例:配置授予组的访问权限
定义访问权限:
[edit snmp v3 vacm]
access {
group group1 {
default-context-prefix {
security-model usm { #Define an SNMPv3 security model
security-level privacy {
notify-view nv1;
read-view rv1;
write-view wv1;
}
}
}
context-prefix lr1/ri1{ # routing instance ri1 in logical system lr1
security-model usm {
security-level privacy {
notify-view nv1;
read-view rv1;
write-view wv1;
}
}
}
}
group group2 {
default-context-prefix {
security-model usm { #Define an SNMPv3 security model
security-level authentication {
read-view rv2;
write-view wv2;
}
}
}
}
group group3 {
default-context-prefix {
security-model v1 { #Define an SNMPv3 security model
security-level none {
read-view rv3;
write-view wv3;
}
}
}
}
}
将安全性模型和安全性名称分配给组
要为组分配安全名称,请在[edit snmp v3 vacm security-to-group]层次结构级别包含以下语句。有关此语句的更多信息,请参阅 security-model (Group)。
本主题包含以下部分:
配置安全性模型
要配置安全模型,请在层次结构级别包含[edit snmp v3 vacm security-to-group]该security-model语句:
[edit snmp v3 vacm security-to-group] security-model (usm | v1 | v2c);
-
usm— SNMPv3 安全模型 -
v1— SNMPv1 安全模型 -
v2c— SNMPv2 安全模型
为组分配安全性名称
要将安全名称与 SNMPv3 用户或 v1 或 v2 社区字符串相关联,请在层次结构级别包含该 security-name 语句 [edit snmp v3 vacm security-to-group security-model (usm | v1 | v2c)] :
[edit snmp v3 vacm security-to-group security-model (usm | v1 | v2c)] security-name security-name;
对于 SNMPv3,是指 security-name 在层次结构级别配置的用户 [edit snmp v3 usm local-engine user username] 名。对于 SNMPv1 和 SNMPv2c,安全名称是在层次结构级别上 [edit snmp v3 snmp-community community-index] 配置的社区字符串。有关配置用户名的信息,请参阅 创建 SNMPv3 用户。有关配置社区字符串的信息,请参阅 配置 SNMPv3 社区。
USM 安全名称与 SNMPv1 和 SNMPv2c 安全名称是分开的。如果除 SNMPv3 之外还支持 SNMPv1 和 SNMPv2c,则必须在层次结构级别的安全到组配置中配置单独的安全 [edit snmp v3 vacm access] 名称。
配置组
创建 SNMPv3 用户或 v1 或 v2 安全名称后,将其与组相关联。组是属于特定安全模型的一组安全名称。组定义属于它的所有用户的访问权限。访问权限定义 SNMP 对象可以读取、写入或创建的内容。组还定义用户可以接收的通知。
如果已配置了要授予用户的所有查看和访问权限的组,则可以将用户添加到该组。如果要向用户授予其他组没有的查看和访问权限,或者未配置任何组,请创建一个组,然后将用户添加到其中。
要配置授予组的访问权限,请在层次结构级别包含group[edit snmp v3 vacm security-to-group security-model (usm | v1 | v2c) security-name security-name]该语句。有关此语句的详细信息,请参阅 group(定义 SNMPv3 组的访问权限)。
示例:安全性组配置
为组分配安全名称:
vacm {
security-to-group {
security-model usm {
security-name user1 {
group group1;
}
security-name user2 {
group group2;
}
security-name user3 {
group group3;
}
}
}
}