Net-SNMP V3协议 安装配置笔记(CentOS 6.3/5.6)

时间:2022-01-09 17:06:08

注意:snmp V3,需要需要关闭selinux和防火墙;

关闭selinux方法:

#vi /etc/selinux/config

将文件中的SELINUX="" 为 disabled ,然后重启。

关闭防火墙方法:

service iptables stop

开机不启动防火墙:

chkconfig iptables off

1. 检查服务器是否已经安装了 net-snmp服务,如果已经安装跳过此环节。

安装前期安装必备套件net-snmp net-snmp-devel net-snmp-utils
说明:

net-snmp:提供了一个入口,使得监控服务器可以通过snmp协议从这个入口与被监控机器通信
net-snmp-devel: 是为了使用net-snmp-config, net-snmp-utils是为了使用snmpwalk
net-snmp-libs:  提供了运行需要的库文件
net-snmp-utils: 提供了一套工具,可以利用snmp协议进行通信

  我的安装如下:

yum -y install net-snmp net-snmp-devel net-snmp-utils

2. 已经成功后,开始配置/etc/snmp/snmpd.conf

如果已经启动,先停止后再进行配置:

[root@hxweb101 ~]$ service snmpd stop
#注意:-a是密码,-A是密码加密方式,而用户名跟在最后面
# -ro表示只读用户组,可以采集信息,但是不能更改系统设置
#说明:在snmpwalk测试的时候,-a表示加密方式,-A是密码,所以这一点很重要 [root@hxweb101 ~]$ net-snmp-config --create-snmpv3-user -ro -a mypass -A MD5 myname
#执行完成后会输出
#adding the following line to /var/lib/net-snmp/snmpd.conf:
# createUser myname MD5 "Jian.kong@bao1" DES
#adding the following line to /etc/snmp/snmpd.conf:
# rouser myname

注意这里,配置文件的路径发生了变化:

Centos .X是: /var/net-snmp/snmpd.conf
Centos .X是: /var/lib/net-snmp/snmpd.conf

然后启动,进行测试:

[root@hxweb101 ~]$ service snmpd start
[root@hxweb101 ~]$ snmpwalk -v3 -u myname -l auth -a MD5 -A mypass 127.0.0.1 if #如果输出下面信息,说明配置成功:
IF-MIB::ifIndex. = INTEGER:
IF-MIB::ifIndex. = INTEGER:
IF-MIB::ifIndex. = INTEGER:
IF-MIB::ifDescr. = STRING: lo
IF-MIB::ifDescr. = STRING: em1
IF-MIB::ifDescr. = STRING: em2
IF-MIB::ifType. = INTEGER: softwareLoopback()
IF-MIB::ifType. = INTEGER: ethernetCsmacd()
IF-MIB::ifType. = INTEGER: ethernetCsmacd()
IF-MIB::ifMtu. = INTEGER:
IF-MIB::ifMtu. = INTEGER:
IF-MIB::ifMtu. = INTEGER:
....
....
IF-MIB::ifOutDiscards. = Counter32:
IF-MIB::ifOutDiscards. = Counter32:
IF-MIB::ifOutDiscards. = Counter32:
IF-MIB::ifOutErrors. = Counter32:
IF-MIB::ifOutErrors. = Counter32:
IF-MIB::ifOutErrors. = Counter32:
IF-MIB::ifOutQLen. = Gauge32:
IF-MIB::ifOutQLen. = Gauge32:
IF-MIB::ifOutQLen. = Gauge32:
IF-MIB::ifSpecific. = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific. = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific. = OID: SNMPv2-SMI::zeroDotZero

我创建用户的时候没有没有设定privpass,是为了简化过程,如果要创建带privpass验证,而且这个privpass也可以选择不同于密码的加密方式,比如,我密码采用MD5加密,而privpass采用AES加密,增加破解难度,那么可以这样写

net-snmp-config:
--create-snmpv3-user [-ro] [-a authpass] [-x privpass] [-X DES] [-A MD5|SHA] [username]

snmpwalk V3验证常用参数:

-v |2c|             specifies SNMP version to use
-u USER-NAME set security name (e.g. bert)
-l LEVEL set security level (noAuthNoPriv|authNoPriv|authPriv)
-a PROTOCOL set authentication protocol (MD5|SHA)
-A PASSPHRASE set authentication protocol pass phrase
-x PROTOCOL set privacy protocol (DES|AES)
-X PASSPHRASE set privacy protocol pass phrase

snmpwalk V2c/V1验证常用:

-c COMMUNITY          set the community string

例如,SNMP V3 用户创建实例:

[root@hxweb101 ~]$ net-snmp-config --create-snmpv3-user -ro -a mypass -A MD5 -x myprivpass -X DES myname

#snmpwalk要这样写
[root@hxweb101 ~]$ snmpwalk -v3 -u myname -l authPriv -a MD5 -A mypass -x DES -X myprivpass 127.0.0.1 if

命令执行之后将自动建立新的配置文件snmpd.conf,而内容也十分简单。只有用户名和权限,而关于认证方式的信息则会存储在/var/net-snmp/snmpd.conf文件中。

[root@hxweb101 ~]$ cat /var/lib/net-snmp/snmpd.conf

3.设置IPtables,确保安全

接下来的事情,就是就是开放指定IP访问161的UDP端口

#注意:
# . 假设服务器外网网卡是em1,请根据实际情况修改。
# . 只有x.x.x.x可以发送UDP数据包到你的服务器的161端口 #--------Specail Setting for SNMP --------------#
iptables -A INPUT -i em1 -p udp -s x.x.x.x --dport -j ACCEPT
iptables -A INPUT -i em1 -p udp -s x.x.x.x --dport -j ACCEPT

原文:http://blog.hexu.org/archives/1698.shtml/comment-page-1