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)的组分配安全名称。还必须将安全名称与层次结构级别的 SNMP 公共组 [edit snmp v3 snmp-community community-index] 相关联。
要配置 SNMP 组的访问权限,请在层次结构级别包含语句 [edit snmp v3 vacm] 。有关此语句的详细信息,请参见 vacm。
配置授予组的访问权限
本主题包含以下部分:
配置组
要配置授予组的访问权限,请在层次结构级别包含 group 语句 [edit snmp v3 vacm access] :
[edit snmp v3 vacm access] group group-name;
group-name 是属于定义访问策略的通用 SNMP 列表的 SNMP 用户的集合。属于特定 SNMP 组的用户将继承授予该组的所有访问权限。
配置安全模型
要配置安全模型,请在层次结构级别包含 security-model 语句 [edit snmp v3 vacm access group group-name (default-context-prefix | context-prefix context-prefix)] :
[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 安全模型
配置安全级别
要配置授予具有特定安全级别的数据包的访问权限,请在层次结构级别包含security-level[edit snmp v3 vacm access group group-name (default-context-prefix | context-prefix context-prefix) security-model (any | usm | v1 | v2c)]以下语句:
[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 视图定义组成员的访问权限。您可以为每个安全模型(USM、v1 和 v2c)和 SNMP 支持的每个安全级别(身份验证、无和隐私)中的每个 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)] 。有关此语句的详细信息,请参见 access (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 用户组相关联,请在层次结构级别包含notify-view[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。
view-name 指定通知访问,这是可以发送给 SNMP 组中的每个用户的通知列表。视图名称不能超过 32 个字符。
配置读取视图
要将读取视图与 SNMP 组关联,请在层次结构级别包含 read-view 该语句 [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。
view-name 指定 SNMP 用户组的读取访问权限。视图名称不能超过 32 个字符。
配置写入视图
要将写入视图与 SNMP 用户组相关联,请在层次结构级别包含 write-view 该语句 [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。
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)。
本主题包含以下部分:
配置安全模型
要配置安全模型,请在层次结构级别包含 security-model 语句 [edit snmp v3 vacm security-to-group] :
[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 (Defining Access Privileges for an SNMPv3 Group)。
示例:安全组配置
为组分配安全名称:
vacm {
security-to-group {
security-model usm {
security-name user1 {
group group1;
}
security-name user2 {
group group2;
}
security-name user3 {
group group3;
}
}
}
}