解决办法建议您采取以下措施以降低威胁:
* 修改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 (退出congigure模式)
router#write memory (保存所作设置)
* 在防火墙上过滤掉对内部网络UDP 161端口的访问。