注意: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 |
|
我的安装如下:
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