红联Linux门户
Linux帮助

学习如何来保障linux下SNMP服务的安全

发布时间:2012-02-25 21:26:57来源:Linux社区作者:linux使用者

  在我们使用SNMP服务的时候,对它的安全很注意。所以在操作中,保障SNMP服务的安全也就是我们这次学习的重点。如果某些设备确实有必要运行SNMP,则必须保障这些设备的安全。


  首先要做的是确定哪些设备正在运行SNMP服务。除非定期对整个网络进行端口扫描,全面掌握各台机器、设备上运行的服务,否则的话,很有可能遗漏一、二个SNMP服务。


  特别需要注意的是,网络交换机、打印机之类的设备同样也会运行SNMP服务。确定SNMP服务的运行情况后,再采取下面的措施保障服务安全。


  加载SNMP服务的补丁


  安装SNMP服务的补丁,将SNMP服务升级到2.0或更高的版本。联系设备的制造商,了解有关安全漏洞和升级补丁的情况。


  保护SNMP通信字符串


  一个很重要的保护措施是修改所有默认的通信字符串。根据设备文档的说明,逐一检查、修改各个标准的、非标准的通信字符串,不要遗漏任何一项,必要时可以联系制造商获取详细的说明。


  过滤SNMP


  另一个可以采用的保护措施是在网络边界上过滤SNMP通信和请求,即在防火墙或边界路由器上,阻塞SNMP请求使用的端口。标准的SNMP服务使用161和162端口,厂商私有的实现一般使用199、391、705和1993端口。


  禁用这些端口通信后,外部网络访问内部网络的能力就受到了限制;另外,在内部网络的路由器上,应该编写一个ACL,只允许某个特定的可信任的SNMP管理系统操作SNMP。例如,下面的ACL只允许来自(或者走向)SNMP管理系统的SNMP通信,限制网络上的所有其他SNMP通信:


  access-list 100 permit ip host w.x.y any access-list 100 deny udp any any eq snmp access-list 100 deny udp any any eq snmptrap access-list 100 permit ip any any


  这个ACL的第一行定义了可信任管理系统(w.x.y)。利用下面的命令可以将上述ACL应用到所有网络接口:


  interface serial 0 ip access-group 100 in


  总之,SNMP的发明代表着网络管理的一大进步,现在它仍是高效管理大型网络的有力工具。


  然而,SNMP的早期版本天生缺乏安全性,即使最新的版本同样也存在问题。就象网络上运行的其他服务一样,SNMP服务的安全性也是不可忽视的。不要盲目地肯定网络上没有运行SNMP服务,也许它就躲藏在某个设备上。


  那些必不可少的网络服务已经有太多让人担忧的安全问题,所以最好关闭SNMP服务之类并非必需的服务——至少尽量设法保障其安全。