SNMP服务存在可写口令处理方法

很多操作系统或者网络设备的SNMP代理服务都存在默认口令。如果您没有修改这些默认口令或者口令为弱口令,远程攻击者就可以通过SNMP代理获取系统的很多细节信息。如果攻击者得到了可写口令,它甚至可以修改系统文件或者执行系统命令。
* 修改SNMP缺省口令或者禁止SNMP服务:

在Solaris系统下,修改/etc/snmp/conf/snmpd.conf
中缺省的口令,然后执行下列命令使之生效:
#/etc/init.d/init.snmpdx stop
#/etc/init.d/init.snmpdx start

在Solaris系统下,执行下列命令可以禁止SNMP服务:
# /etc/init.d/init.snmpdx stop
# mv /etc/rc3.d/S76snmpdx /etc/rc3.d/s76snmpdx

对于Windows系统,您可以参考以下方法关闭SNMP服务(以Windows 2000为例):
打开控制面板,双击“添加或删除程序”,选择“添加/删除Windows组件”,选中“管理和监视工具”,双击打开,取消“简单网络管理协议”复选框,按确定,然后按照提示完成操作。

在Cisco路由器上您可以使用如下方式来修改、删除SNMP口令:

1. telnet或者通过串口登录进入您的Cisco路由器

2. 进入enable口令:

Router>enable
Password:
Router#

3. 显示路由器上当前的snmp配置情况:

Router#show running-config
Building configuration…


snmp-server community public RO
snmp-server community private RW
….
….

4. 进入配置模式:

Router#configure terminal
Enter configuration commands, one per line.? End with CNTL/Z.
Router(config)#

您可以选用下面三种方法中的一种或者结合使用:

(1) 如果您不需要通过SNMP进行管理,可以禁止SNMP Agent服务:

将所有的只读、读写口令删除后,SNMP Agent服务就禁止

a. 删除只读(RO)口令:

Router(config)#no snmp-server community public RO
……

b. 删除读写(RW)口令

Router(config)#no snmp-server community private RW
……
(2) 如果您仍需要使用SNMP,修改SNMP口令,使其不易被猜测:

a. 删除原先的只读或者读写口令:

Router(config)#no snmp-server community public RO
Router(config)#no snmp-server community private RW

b. 设置新的只读和读写口令,口令强度应该足够,不易被猜测。

Router(config)#no snmp-server community XXXXXXX RO
Router(config)#no snmp-server community YYYYYYY RW

(3) 只允许信任主机通过SNMP口令访问(以对只读口令’public’为例)

a. 创建一个访问控制列表(假设名为66):

router(config)#access-list 66 deny any

b. 禁止任何人访问public口令:

router(config)#snmp-server community public ro 66

c. 设置允许使用public口令进行访问的可信主机(1.2.3.4):

router(config)#snmp-server host 1.2.3.4 public

对于读写口令的访问限制同上。

在对SNMP口令进行修改、删除等操作之后,需要执行write memory命令保存设置:

router(config)#exit (退出configure模式)
router#write memory (保存所作设置)

* 在防火墙上过滤掉对内部网络UDP 161端口的访问。
copy:nsfocus’s ids