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; } } } }