红联Linux门户
Linux帮助

openSUSE 11.2下Net-SNMPv3的使用

发布时间:2014-07-29 22:19:11来源:linux网站作者:2nth0nyj

以下配置均在openSUSE 11.2上通过测试:


一. 添加SNMPv3帐号;

1. 首先添加一个拥有读写权限的帐号到/etc/snmp/snmpd.conf, 加入一行 rwuser anhonyjiang, 表示是一个拥有读写权限的帐号。

2. 修改/var/lib/net-snmp/snmpd.conf文件, 加入一行createUser anthonyjiang SHA aaaaaaaa AES bbbbbbbb。 该文件中的说明

#
# net-snmp (or ucd-snmp) persistent data file.
#
############################################################################
# STOP STOP STOP STOP STOP STOP STOP STOP STOP  
 #
#                    **** DO NOT EDIT THIS FILE ****
#
# STOP STOP STOP STOP STOP STOP STOP STOP STOP  
 ############################################################################
#
# DO NOT STORE CONFIGURATION ENTRIES HERE.
# Please save normal configuration tokens for snmpd in SNMPCONFPATH/snmpd.conf.
# Only "createUser" tokens should be placed here by snmpd administrators.
# (Did I mention: do not edit this file?)

注释中说明了只有createUser语句应该放置在这个地方。 另外, 认证和加密方式默认均需要在8个字符以上, 所以选择了aa...和bb....
3. service snmpd start;启动SNMP服务
4. snmpget -v3 -l authPriv -u anthonyjiang -a SHA -A aaaaaaaa -x AES -X bbbbbbbb localhost sysLocation.0
SNMPv2-MIB::sysLocation.0 = STRING: Chengdu
 
通过snmpget获取的信息。
 
如果不想每次都输入这么多信息, 可以在$HOME/.snmp/snmp.conf目录文件中配置默认的帐号、认证方式和加密方式等等, 如下:

pensuse-laptop:~/.snmp # cat $HOME/.snmp/snmp.conf
defVersion 3
defSecurityName anthonyjiang
defSecurityLevel authPriv
defAuthType SHA
defAuthPassphrase aaaaaaaa
defPrivType AES
defPrivPassphrase bbbbbbbb
这样,就可以只输入snmpget localhost sysDescr.0 来获取结果。

 
二 访问控制
 
1. 添加只有读权限的帐号
 
2. 基于视图的访问控制

 
三 其他操作
 
1. 远程重新载入配置snmpd.conf和远程重启
 
如果在本机, 可以通过service snmpd reload或者kill -HUP $(cat cat /var/run/snmpd.pid)重新载入配置。 如果不在本机, 可以通过snmpset命令进行,前提是执行该命令的用户对agent拥有写权限, 如下:

snmpset localhost UCD-SNMP-MIB::versionUpdateConfig.0 = 1

UCD-SNMP-MIB::versionUpdateConfig.0 = INTEGER: 1

snmpset localhost UCD-SNMP-MIB::versionRestartAgent.0 = 1

UCD-SNMP-MIB::versionRestartAgent.0 = INTEGER: 1