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

注意: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
说明:

1

2

3

4

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 5.X是: /var/net-snmp/snmpd.conf
Centos 6.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.1 = INTEGER: 1
IF-MIB::ifIndex.2 = INTEGER: 2
IF-MIB::ifIndex.3 = INTEGER: 3
IF-MIB::ifDescr.1 = STRING: lo
IF-MIB::ifDescr.2 = STRING: em1
IF-MIB::ifDescr.3 = STRING: em2
IF-MIB::ifType.1 = INTEGER: softwareLoopback(24)
IF-MIB::ifType.2 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.3 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifMtu.1 = INTEGER: 16436
IF-MIB::ifMtu.2 = INTEGER: 1500
IF-MIB::ifMtu.3 = INTEGER: 1500
....
....
IF-MIB::ifOutDiscards.1 = Counter32: 0
IF-MIB::ifOutDiscards.2 = Counter32: 0
IF-MIB::ifOutDiscards.3 = Counter32: 0
IF-MIB::ifOutErrors.1 = Counter32: 0
IF-MIB::ifOutErrors.2 = Counter32: 0
IF-MIB::ifOutErrors.3 = Counter32: 0
IF-MIB::ifOutQLen.1 = Gauge32: 0
IF-MIB::ifOutQLen.2 = Gauge32: 0
IF-MIB::ifOutQLen.3 = Gauge32: 0
IF-MIB::ifSpecific.1 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.2 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.3 = 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 1|2c|3             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端口

 

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

你可能感兴趣的