Ubuntu下SNMP和Nginx配置

八 28th, 2011

由于安全和分析需要给服务器添加了监控,很多服务器监控是用SNMP协议的。现总结一下安装过程
SNMP至今有3个版本,强烈建议使用v3,v1和v2导致的服务器安全漏洞我就不在这骂了。

一,安装

sudo apt-get install snmpd snmp
vi /etc/snmp/snmpd.conf

这里面的东西基本都是没用的,一个个删除太麻烦,建议这样搞
mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bak #备份旧文件
vi /etc/snmp/snmpd.conf
直接粘贴如下内容:

agentAddress 171.153.123.***:161 #冒号前为服务器ip,冒号后为端口,snmp协议默认为161。注意不能写成127.0.0.1否则外网访问不了
rouser oldsong auth #rouser即read only user,只读权限。oldsong为用户名,auth为验证方式

下面要新建刚才提到的oldsong用户

#vi /var/lib/snmp/snmpd.conf

在未尾添加

createUser oldsong MD5 “mypassword”

createUser jiankongbao MD5 “mypassword” 这一行会在snmpd重启后自动删除。
要说明的是,如果你使用上述方法配置,就会使用v3版本。snmpd会根据配置不同自动切换版本
二、启动snmp

/etc/init.d/snmpd start

三、测试

snmpwalk -v 3 -l authNoPriv -a MD5 -u 'oldsong' -A 'mypassword' '127.0.0.1:161' 'sysDescr'

如果返回

SNMPv2-MIB::sysDescr.0 = STRING: Linux ubuntu 2.6.39.1-****34 #1 SMP Tue Jun 21 10:29:24 EDT 2011 i686

说明成功.
但上述只是测试本地可以访问成功,下面测试外网

snmpwalk -v 3 -l authNoPriv -a MD5 -u 'oldsong' -A 'mypassword' '171.153.123.***:11161' 'sysDescr'
#171.153.123.***为服务器ip地址

如果返回

snmpwalk: Timeout (Sub-id not found: (top) -> sysDescr)

这说明失败了,问题在这里

vi /etc/default/snmpd

可以找到这行:
snmpDOPTS=’-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1′
原来Ubuntu为了安全起见把snmp监听在本地回环了
将之修改为:
snmpDOPTS=’-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid’
保存后重启snmpd即可

/etc/init.d/snmpd restart

四、添加防火墙iptables
如果为了安全,建议添加iptables,限制只有特定ip可能访问,如限制只有160.195.249.1可以访问

iptables -A INPUT -i eth0 -p udp -s 160.195.249.1 --dport 161 -j ACCEPT
标签: , ,
>>原创文章,欢迎转载。转载请注明:转载自Ruby迷,谢谢!
>>原文链接地址:Ubuntu下SNMP和Nginx配置
  1. reyesyang
    一 5th, 201213:16

    很有帮助的文章,按照监控宝的官方文档配置的,遇到了
    snmpwalk: Timeout (Sub-id not found: (top) -> sysDescr)。
    看到博主的文章,意识到是agentAddress没有配置外网地址。十分感谢!

  2. 够戏博客
    八 30th, 201101:49

    呵呵 ,老宋 来看你了 。 不错

    • 老宋
      八 30th, 201108:59

      呵呵,欢迎常来:)