【网站监控】如何在Linux服务器上开启SNMP服务?

在Linux服务器上开启安全的SNMP代理

SNMP被无数的设备用来作为监测协议,并且工作得非常可靠,安全性较高。必要的安全配置,可以让SNMP代理程序在服务器上安全运行,配置详情如下:

在各种Linux分发版中,大多数都已经默认集成了snmpd,比如在suse10中,你可以这样开启snmpd: suse10:~ # /etc/init.d/snmpd start

如果没有默认安装,你要做的就是自己来编译snmpd,按照下边的步骤,非常简单。对于Linux平台,我们推荐使用Net-SNMP,它实现了标准的SNMP协议,并且包括了代理程序以及各种SNMP工具。

编译和安装:

第一步:下载Net-SNMP的源代码,生成编译规则

选择一个版本,比如5.4.2.1,下载地址:

http://sourceforge.net/projects/net-snmp/files/net-snmp/5.4.2.1/

接下来对下载的源代码包进行解压缩:

suse10:~ # tar xzvf net-snmp-5.4.2.1.tar.gz

通过configure来生成编译规则:

suse10:~ # cd net-snmp-5.4.2.1

suse10:~ # ./configure --prefix=/usr/local/snmp --with-openssl=/usr/ --with-mib-modules=ucd-snmp/diskio

第二步:开始编译和安装

suse10:~ # make

suse10:~ # make install

至此,已经有了可以运行的SNMP代理程序,它位于/usr/local/snmp/sbin/snmpd,在启动它之前,我们还要进行一些必要的设置。

设置安全的验证方式

将SNMP代理程序暴露给网络上的所有主机是很危险的,为了防止其它主机访问你的SNMP代理程序,需要在SNMP代理程序上加入身份验证机制。

不同的SNMP协议版本的验证机制不同,小蜜蜂监测系统目前支持v2c和v3两个版本。

v2c版本的验证机制比较简单,它基于明文密码和授权IP来进行身份验证。

v3版本则通过用户名和密码的加密传输来实现身份验证。

我们建议使用v3,不过按照以下的介绍进行配置, v2c版本和v3版本都可以保证一定的安全性,请结合实际情况进行配置。

注: v2c和v3是指SNMP协议的版本, Net-SNMP是用来实现SNMP协议的程序套件

配置v3版本的SNMP代理

一些早期版本的Linux分发版,其内置的SNMP代理程序可能并不支持v3,建议编译和安装最新的Net-Snmp。

第一步:创建一个v3的帐号

suse10:~ # vi /usr/local/snmp/share/snmp/snmpd.conf

第二步:添加一个只读帐号

rouser qycnjk auth v3中,“rouser”用于表示只读帐号类型,随后的“qycnjk”是指定的用户名,后边的“auth”指明需要验证。

第三步:添加指定用户

接下来添加“qycnjk”这个用户,这就是v3中的特殊机制,我们打开以下配置文件:

suse10:~ # vi /var/net-snmp/snmpd.conf

这个文件会在snmpd启动的时候被自动调用,我们需要在它里边添加创建用户的指令,如下: createUser qycnjk MD5 mypassword

意思是创建一个名为“qycnjk”的用户,密码为“mypassword”,并且用MD5进行加密传输。配置中的用户名、密码和加密方式,在小蜜蜂监测系统中添加服务器的时候需要填写。注意:密码至少要有8个字节。这是SNMP协议的规定,如果小于8个字节,通信将无法进行。

一旦snmpd启动后,出于安全考虑,以上这行配置会被snmpd自动删除,当然,snmpd会将这些配置以密文的形式记录在 其它文件中,重新启动snmpd是不需要再次添加这些配置的,除非你希望创建新的用户。

启动SNMP代理程序

配置后,现在可以启动snmpd,如下:

/usr/local/snmp/sbin/snmpd

如果要关闭,直接kill这个进程,如下:

killall -9 snmpd

配置v2c版本的SNMP代理

第一步:创建snmpd的配置文件

suse10:~ # vi /usr/local/snmp/share/snmp/snmpd.conf

第二步:创建一个只读帐号

只读帐号也就是read-only community,在snmpd.conf中添加以下内容:

rocommunity qycnjk 221.5.47.27

rocommunity qycnjk 125.90.88.155

这里的“rocommunity”表示这是一个只读的访问权限,“qycnjk”相当于密码只是一个例子,你可以设置其它字符串作为密码。 最右边的IP是小蜜蜂监测系统专用的监测点,这意味着只有小蜜蜂监测有权限来访问你的SNMP代理程序。

故而以上这段配置中,只有“qycnjk”是需要你进行修改,在后台添加服务器监测时也需要提供这个字符串。

增强的安全机制

有了以上的验证机制,你就可以放心的使用SNMP代理了。如果你觉得SNMP代理程序版本较低,想加多一把安全锁,你还可以使用防火墙(iptables)来增强安全过滤。

在Linux中,我们用iptables来实现防火墙,一般情况下,除了流入指定端口的数据包以外,我们应该将其它流入的IP数据包抛弃。如果你已经配置了一定的防火墙规则,那么只要增加针对SNMP的规则即可。

SNMP代理程序默认监测在udp161端口,为你的iptables增加以下规则:

iptables -A INPUT -i eth0 -p udp -s 221.5.47.27 --dport 161 -j ACCEPT

iptables -A INPUT -i eth0 -p udp -s 125.90.88.155 --dport 161 -j ACCEPT

设置中假设服务器外网网卡是eth0,你可以根据实际情况来修改。

这样一来,只有小蜜蜂监测系统的专用监测器可以发送UDP数据包到你的服务器的161端口,与SNMP代理程序进行通信。

更多实时网站监控信息  敬请关注小蜜蜂网站服务平台http://www.webxmf.com/cn

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。