Ubuntu下SNMP和Nginx配置
由于安全和分析需要给服务器添加了监控,很多服务器监控是用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
很有帮助的文章,按照监控宝的官方文档配置的,遇到了
snmpwalk: Timeout (Sub-id not found: (top) -> sysDescr)。
看到博主的文章,意识到是agentAddress没有配置外网地址。十分感谢!
呵呵 ,老宋 来看你了 。 不错
呵呵,欢迎常来:)