扫一扫
关注微信公众号

加强SNMP的安全?
2007-10-09   网络

简单网络管理协议(SNMP)简单易行,工作于TCP/IP网络的应用层,在Internet主干设备和绝大多数厂商的网络产品中被广泛采用,是事实上的网络管理协议。但是,许多产品在SNMPv1实施中存在安全问题,特别是在SNMP代理和SNMP管理器处理Trap消息和其他请求消息方面存在安全隐患。这些隐患可能会引发服务中断,被黑客用于DoS攻击或非法获取设备访问权限。因此必要采取相应措施,正确配置网络,使网络安全风险趋于最小。

简单网络管理系统由SNMP管理器和SNMP代理组成。代理是实际网络设备中实现 SNMP功能的部分,使用UDP端口161接收请求消息;管理器使用UDP端口162接收代理的事件通告消息。管理方一旦获取设备的访问权限,就可以访问设备信息,修改和配置设备参数。由于采用的是UDP协议,工作时不需要在代理和管理器之间保持连接。

SNMP提供了三种重要的基本操作:获取网络设备信息的读操作Get、设置网络设备参数值的写操作Set和异常事件报告的陷阱操作Trap。SNMP使用的协议数据传输单元包括Get-request、Get-Next-Request、Get-Response、Set-Request和Trap,其中Get-request和Get-Next-Request由安装SNMP管理器的网络管理工作站发送给SNMP代理,请求检索设备信息,代理以Get-Response响应;SNMP管理器使用Set-Request对代理所在网络设备实现远程设置参数,这些都通过对管理信息库的读写操作实现;只有Trap是代理主动送出的非请求信息,用于向SNMP管理器报告如设备启动、关闭和其他等异常事件的发生。

SNMPv1不支持加密和授权,仅使用类似口令的简单认证。按照SNMPv1协议的规定,大多数网络产品出厂时设定的只读操作用户名默认值为“Public”,读写操作用户名默认值为“Private”,通常网络管理人员并不对该值进行修改。这就造成了安全隐患,利用这些默认值黑客可以容易地获取到设备的访问权。由于SNMP主要采用UDP协议传输数据,还容易被假冒IP源地址,仅使用访问控制列表不足以防范。大多数SNMP设备接收来自网络广播地址的SNMP消息,黑客甚至可以不必知道目标设备的IP地址,通过发送SNMP广播数据包就可以达到目的。

另外,SNMP管理器解析处理Trap消息和SNMP代理处理请求消息也存在缺陷,主要原因是对SNMP消息的检查不充分,当数据包中含有异常字段值或过长对象时,可能产生内存耗尽、堆栈耗尽及缓冲区溢出等致命错误,从而形成缓冲区溢出攻击或拒绝服务攻击的条件,出现设备不能正常工作,产生大量日志记录,引起系统崩溃、挂起和设备自动重新启动等问题。

为了进一步加强SNMP的安全,建议采取以下措施。

(1)关注所用产品的设备驱动与管理软件更新情况。及时进行软件版本升级和使用补丁程序修补漏洞。

(2)无必要时关闭SNMP服务对于一些中小规模的网络,网络管理员常常通过控制台端口对网络设备按照静态模式配置参数,对于这种情况可以考虑关闭SNMP功能。例如对 Cisco公司的产品,可以使用“No Snmp-Server”命令关闭,用“Show Snmp”命令查看。

(3)过滤进入网络的SNMP流量,保证设备安全。正常情况下,网络中不应该存在外部主机发起的针对内部网络设备的SNMP数据包,可结合IP地址和传输端口、服务类型进行过滤。SNMP服务常使用UDP端口161、162,可能用到的其他端口还有TCP端口161、162、199、1993,UDP端口199、1993等。另外,由于SNMP监控程序常常与网卡地址绑定,还应该注意过滤来自广播地址、子网广播地址,以及内部返回地址的SNMP流

(4)严格控制网络内部未授权主机的SNMP访问。正常情况下,只有安装了SNMP管理器的网络设备有权发送SNMP请求,可以对SNMP代理进行访问控制配置,将来自未授权设备的SNMP请求阻挡掉。但是这种方法对使用UDP协议的源IP地址欺骗无作用,这样配置还可能影响网络性能,需要兼顾考虑。将SNMP流量限制在特定的VLAN上也是一种有效方法。

热词搜索:

上一篇:水晶头松脱,导致Internet连接中断
下一篇:Win98与Wind2000的资源如何共享?

分享到: 收藏