linux snmpv3添加用户,简单理

发布时间:2019-09-07 08:12:04编辑:auto阅读(1473)

    Snmpv3加强了分组安全性,配置分几步走:

    首先建立用户,用户的属于哪个组

    其次建立访问VACM_VIEWVACM_VIEW其实就是把mib数据库细分了,比如说interfaces  属于view1,tcp属于view2

    再建立VACM_ACCESS,VACM_ACCESS说白了就是把访问具体VACM_VIEW的读或者写的权利赋予之前建的用户

    这样限定特定的用户访问特定的mib对象的策略就建立了

    为用户配置陷阱条目白话解释

    Mib对象信息发给网管主机就需要知道网管主机的ip和网管主机的接受哪些信息和加密的算法,其中TARGET_ADDRESS 就是ip, TARGET_PARAMETERS配置哪个用户接受什么信息,用的是什么算法加密来着

    如何通过手工编辑 /etc/snmpdv3.conf 和 /etc/clsnmp.conf 文件在 SNMPv3 中创建用户。

    在此情形中将会创建用户 u1。用户 u1 可以得到认证密钥但是不会得到专用密钥(只有您已经安装了 snmp.crypto 文件集,专用密钥才可用)。 ul 的认证密钥要使用 HMAC-MD5 协议来创建。在配置好 ul 以后,它会被放到一个组里,然后我们会给那个组定义查看和访问许可权。最后创建 u1 的陷阱条目。

    /etc/snmpdv3.conf 和 /etc/clsnmp.conf 文件中所用的每个单独的值都不能超过 32 个字节。

    步骤 1. 创建用户

    请确定您希望使用哪种安全性协议,是 HMAC-MD5 还是 HMAC-SHA。此情形中使用 HMAC-MD5。 
    使用 pwtokey 命令来生成认证密钥。根据您使用的认证协议以及是否使用专用密钥,您的输出看上去会有所不同。这些密钥将会用在 /etc/snmpdv3.conf 和 /etc/clsnmp.conf 文件中。用户 u1 使用的命令如下: 
    pwtokey -p HMAC-MD5 -u auth anypassword 9.3.230.119所指定的 IP 地址是运行代理的IP 地址。密码可以是任意密码,但是务必要把它保存在一个安全的地方以供将来使用。输出看上去应该类似于以下: 
    Display of 16 byte HMAC-MD5 authKey:          
      63960c12520dc8829d27f7fbaf5a0470            
                                                  
    Display of 16 byte HMAC-MD5 localized authKey:
      b3b6c6306d67e9c6f8e7e664a47ef9a0                        利用超级权限,用您最喜欢的文本编辑器打开 /etc/snmpdv3.conf 文件。 
    按照文件中给定的格式添加一条 USM_USER 条目来创建一个用户。authKey 的值将是用 pwtokey 命令生成的本地化的认证密钥。用户 u1 的此条目如下所示: 
    #---------------------------------------------------------------------------
    # USM_USER entries
    #    Defines a user for the User-based Security Model (USM).
    # Format is:
    #  userName engineID authProto authKey privProto privKey keyType storageType
    #
    USM_USER u1 - HMAC-MD5 b3b6c6306d67e9c6f8e7e664a47ef9a0 - - L -
    #----------------------------------------------------------------------------userName 是用户名。在该例中就是 u1。 
    authProto 必须是您创建这些密钥时所用的协议。在该例中就是 HMAC-MD5。 
    authKey 是使用 pwtokey 命令创建的本地化的认证密钥。 
    privProto 和 privkey 都没有指定,原因是在此情形中,我们没有使用专用密钥。 
    keyType 是 L,因为我们使用本地化的认证密钥。
    保存然后关闭 /etc/snmpdv3.conf 文件。 
    使用您最喜欢的文本编辑器打开 SNMP 管理器上的 /etc/clsnmp.conf 文件。 
    按照文件中给定的格式添加新用户。u1 的条目如下: 
    #----------------------------------------------------------------------------------------------------
    #
    # Format of entries:
    # winSnmpName targetAgent admin secName password context secLevel authProto authKey privProto privKey 
    #
    user1  9.3.230.119  SNMPv3  u1  -  -  AuthNoPriv  HMAC-MD5  63960c12520dc8829d27f7fbaf5a0470  -  -
    #----------------------------------------------------------------------------------------------------winSnmpName 可以是任何值。在使用 clsnmp 命令进行 SNMP 请求时会使用此值。 
    targetAgent 是运行代理的 IP 地址,创建认证密钥时也曾使用过此 IP 地址。 
    admin 设成 SNMPv3,因为要发送 SNMPv3 请求。 
    secName 是要创建的用户名。在该例中就是 u1。 
    seclevel 设成 AuthNoPriv,因为它被配置成使用认证而不是专用密钥(因此,privProto 和 privKey 没有值)。 
    authproto 设成创建认证密钥时所使用的认证协议。 
    authKey 是 pwtokey 命令生成的非本地化密钥。
    保存并关闭 /etc/clsnmp.conf 文件。
    步骤 2. 配置组
    现在必须把用户放到一个组中。如果您已经有一个组,已经配置好所有您希望赋予用户的查看和访问许可权,那么您就可以把此用户放在那个组中。如果您想给此用户一些其它的组都没有的查看和访问许可权,或者如果您根本没有配置任何组,那么就请创建一个组然后把此用户添加进去。

    要把用户添加到一个新组中,请在 /etc/snmpdv3.conf 文件中创建一个新的条目 VACM_GROUP。 u1 的组条目如下:

    #--------------------------------------------------------------
    # VACM_GROUP entries
    #    Defines a security group (made up of users or communities)
    #    for the View-based Access Control Model (VACM).
    # Format is:
    #  groupName securityModel securityName storageType
    VACM_GROUP group1 USM u1 -
    #--------------------------------------------------------------groupName 可以是任何名称。它成为了您的组名称。在该例中就是 group1。 
    securityModel 设为 USM,利用 SNMPv3 的安全功能。 
    securityName 是用户名。在该例中就是 u1。
    步骤 3. 配置查看和访问许可权
    必须给刚创建的新组设置查看和访问许可权。通过向 /etc/snmpdv3.conf 文件中添加 VACM_VIEW 和 VACM_ACCESS 条目来设置这些许可权。

    确定您想让新组拥有哪些查看和访问许可权。


    给 /etc/snmpdv3.conf 文件添加 VACM_VIEW 条目来定义该组可以访问哪些 MIB 对象

    在此情形中,group1 能访问 interfaces、tcp、icmp 和 system MIB 子树。然而,我们要限制 group1 对 system MIB 子树内的 sysObjectID MIB 变量的访问。 
    #----------------------------------------------------------------
    # VACM_VIEW entries
    #    Defines a particular set of MIB data, called a view, for the
    #    View-based Access Control Model.
    # Format is:
    #  viewName viewSubtree viewMask viewType storageType
    VACM_VIEW group1View                interfaces           - included -
    VACM_VIEW group1View                tcp                      - included -
    VACM_VIEW group1View                icmp                      - included -
    VACM_VIEW group1View                system                   - included -
    VACM_VIEW group1View                sysObjectID           - excluded -
    #----------------------------------------------------------------

    viewName 是查看的名称。在该例中就是 group1View。 
    viewSubtree 是您想要授予访问权的 MIB 子树。 
    viewType 决定查看中是否包括所定义的 MIB 子树。在该例中,包括了所有的子树在内,但是作为 system 子树的一部分的 MIB 变量 sysObjectID 除外。


    在 /etc/snmpdv3.conf 文件中添加 VACM_ACCESS 条目来定义组对上面指定的 MIB 对象拥有的许可权。给 group1 的是只读访问权。 
    #-----------------------------------------------------------------------------------------------------------
    # VACM_ACCESS entries
    #    Identifies the access permitted to different security groups
    #    for the View-based Access Control Model.
    # Format is:
    # groupName contextPrefix contextMatch securityLevel securityModel readView writeView notifyView storageType
    VACM_ACCESS  group1 - - AuthNoPriv USM group1View - group1View -
    #-----------------------------------------------------------------------------------------------------------

    groupName 是组名。在该例中就是 group1。 
    securityLevel 是所用的安全级别。在此情形中,使用的是认证密钥而不是专用密钥。因此此值被设为 AuthNoPriv。 
    securityModel 是您使用的安全模型(SNMPv1、SNMPv2c 或 USM)。在此情形中,它被设为 USM 以允许使用 SNMPv3 安全功能。 
    readView 确定组对哪些 VACM_VIEW 拥有读访问权。在此情形中,给定的是 group1View,它授予 group1 对 group1View VACM_VIEW 条目的读访问权。 
    writeView 确定组对哪些 VACM_VIEW 拥有写访问权。在此情形中,没有给 group1 写访问权。 
    notifyView 指定了在由访问表中的条目控制来执行陷阱时所适用的查看名称。


    注:
    在有些情况下,一个组可能会需要多个 VACM_ACCESS 条目。如果组中的用户具有不同的认证和专用设置(noAuthNoPriv、AuthNoPriv 或 AuthPriv),就需要有多个 VACM_ACCESS 条目,并相应设置 securityLevel 参数。


    步骤 4. 为用户配置陷阱条目
    通过向/etc/snmpdv3.conf 文件添加 NOTIFY TARGET_ADDRESS 和 TARGET_PARAMETERS 条目就能创建 SNMPv3 中的陷阱条目。TARGET_ADDRESS 条目将指定您希望把陷阱发送到哪里,而 TARGET_PARAMETERS 条目将会使 TARGET_ADDRESS 信息映射到 group1
    NOTIFY 条目是按缺省配置的。缺省的 NOTIFY 条目如下所示:


    NOTIFY notify1 traptag trap 在此情形中,我们使用缺省条目中指定的值 traptag。



    添加 TARGET_ADDRESS 条目来指定您想把陷阱发送到哪里。 
    #-------------------------------------------------------------------------------------
    # TARGET_ADDRESS
    #    Defines a management application's address and parameters
    #    to be used in sending  notifications.
    # Format is:
    #  targetAddrName tDomain tAddress tagList targetParams timeout retryCount storageType
    #-------------------------------------------------------------------------------------
    TARGET_ADDRESS Target1 UDP 9.3.207.107     traptag trapparms1 - - - 
    targetAddrName 可以是任何名称。在此情形中,我们使用了 Target1。 
    tAddress 是组的陷阱应该发送到的 IP 地址
    tagList 是 NOTIFY 条目中配置的名字。在该例中就是 traptag。 
    targetParams 可以是任何值。我们使用的是 trapparms1,它会用在 TARGET_PARAMETERS 条目中。


    添加 TARGET_PARAMETERS 条目。 
    #------------------------------------------------------------------------- 
    # TARGET_PARAMETERS
    #    Defines the message processing and security parameters
    #    to be used in sending notifications to a particular management target.
    # Format is:
    #  paramsName mpModel securityModel securityName securityLevel storageType
    #-------------------------------------------------------------------------
    TARGET_PARAMETERS trapparms1 SNMPv3  USM     u1    AuthNoPriv

    paramsName 和 TARGET_ADDRESS 条目中的 targetParams 值一模一样,在该例中,此值是 trapparms1。 
    mpModel 是所用的 SNMP 的版本。 
    securityModel 是您使用的安全模型(SNMPv1、SNMPv3 或 USM)。在此情形中,它被设为 USM 以允许使用 SNMPv3 安全功能。 
    securityName 是 USM_USER 条目中指定的用户名,在该例中就是 u1。 
    securityLevel 被设为 AuthNoPriv,因为我们使用认证密钥而不是专用密钥。
    步骤 5. 停止和启动 snmpd 守护程序
    更改完 /etc/snmpdv3.conf 文件后,请先停止然后再启动 snmpd 守护程序。

    输入以下命令以停止 snmpd 守护程序: 
    stopsrc -s snmpd输入以下命令以启动 snmpd 守护程序: 
    startsrc -s snmpd新的设置现在生效了。

    注:
    在 SNMPv1 中使用 refresh -s snmpd 简单刷新代理在 SNMPv3 中无效。如果您对 /etc/snmpdv3.conf 文件进行了更改,您必须按上面所指示的那样停止然后再启动守护程序。SNMPv3 中支持的动态配置功能不允许您进行刷新。
    步骤 6. 测试您的配置
    要验证您的配置是正确的,您可以在 SNMP 管理器上运行以下命令。

    clsnmp -h user1 walk mib其中,mib 是用户能访问的 MIB 子树。在此情形中,它可能是 interfaces、tcp、icmp 或 system。如果配置是正确的,那么您就会在指定的子树中看到信息。

    如果您没有得到正确的输出,那么请重温一遍本文档中的各步骤,并验证您正确的输入了所有的信息。


关键字