SNMP是什么?
简单网络管理协议是一种机制,它使用工作站作为入口点实行网络管理控制。
在Cisco环境中,路由器包含了一个SNMP代理和管理信息库(MIB)。你将需要某种应用软件来与你的路由器进行交流。下面的例子显示了一个使用工作站与网络中的路由器进行通信的典型配置。
在决定如何控制SNMP激活设备时,你需要考虑是使用软件轮流检测设备的有用信息,还是在设备上激活trap以使其自动返回信息,或者采取两者的结合。 每一个SNMP激活设备包含了一个数据库叫管理信息库(MIB),它是一个包含有设备信息的简单的分级树结构。SNMPv1也使用了非常简单的命令指令表。基本的命令是GET,它从MIB中重新得到信息,SET命令,它将数据放入MIB变量。
一个非常流行的管理Cisco路由器工场的软件是Tobias Oetiker 的MRTG,它是一个非常强大的工具,而且是免费的。另一个知名的产品是Ipswitch的WhatsUp Gold,这是一个适当定价的监控工具,很容易安装和使用。如果你想同时监控和配置你的系统,你可能想从Cisco获得CiscoWorks。
为什么我们需要保护SNMP性能? SNMPv1也使用了双口令系统,
在这儿口令叫做Community string,
一个string仅仅负责得到数据,是只读的community string,另外一个是读/写的community string,它被用来得到和放置数据进入MIB变量中。
community string是用明文传输的,最新的SNMP的版本,即v3在安全性方面提供了改进,但大多数的管理应用软件仅利用SNMPv1。
首先需要做什么? 你需要发布基本的命令使你的路由器能够使用SNMP。
snmp-server community look RO snmp-server community touch RW第一个命令允许读访问到任何提交community string为look的软件。
第二个命令允许读和写访问到任何提交community string为touch的软件
为你的community string选择强壮的口令是非常重要的!在上面例子中我使用的口令显然是非常弱的。不要使用象public 或 private这样的string名。每一个人都能猜到这样的名字,因为他们普遍地被使用。
如果可能的话,你应该避免对你所有的路由器使用相同的 community string,尽量为每一个设备使用不同的string。不要让只读string与读/写string相同。有一个SNMP口令评判工具叫做SNMP Brute Force Attack,可以从SolarWinds得到,它能测试你的community string的强度。它在你的SNMP激活路由器上执行一个字典攻击。事实上,你可以在任何SNMP激活的设备,如server、switch、hub或 modem上使用它。
同时,不要忘记定期更改你的口令。 限制能访问到SNMP激活路由器的主机 限制SNMP仅能访问到你网络上的管理工作站,这也是一个非常谨慎的安全方法,特别是当你有INTERNET连接时。
你能使用访问列表和更改snmp-server版本的命令去限制到你的网络的访问。让我们假设你有一个C类网络地址204.50.25.0。
access-list 5 permit 204.50.25.0 0.0.0.255snmp-server community touch RW 5 第一个命令创建一个号码为5的访问列表(在这儿5是一个任意的数值),仅允许来自网络204.50.25.0的流量。
第二个命令允许读和写访问到任何提交community string为touch的软件,只要请求是来自于204.50.25.0的网络。
如何察觉某人正尝试使用SNMP获得未授权的访问到我的路由器? 我们可以使用SNMP的trap性能,当某人用不正确的community string发送SNMP命令时,让路由器来告诉我们。这个工具需要管理工作站装有如CiscoWorks这样的软件。
snmp-server enable trapssnmp-server trap-authenticationsnmp-server host 204.50.25.5第一个命令告诉路由器使能trap,如果它不是激活的,没有trap被向前转发。
第二个命令告诉路由器如果community string的验证失败,发送一个trap。
第三个命令告诉路由器哪一个主机应该被发送trap。
总结 SNMP是一个简单但很强大的管理你的路由器网络的工具,采取简单的防范确保它没有被滥用也同样重要。使用强壮的口令,周期性的改变它们,跟踪到你的路由器的访问也是必须的。