拓扑图如下:
Telnet到Cisco路由器进行远程管理是很多网管的选择,但是通过Telnet传输的数据都是明文,因此这种登录方式存在很大的安全隐患。一个恶意用户完全可能通过类似Sniffer这样的嗅探工具,在管理员主机或者适当的接口进行本地监听获取管理员登录Cisoc路由器的密码。
1、安全测试:
笔者在本地安装了sniffer,然后利用Telnet登录Cisco路由器。停止嗅探然后解码查看,如图1所示笔者登录路由器进入用户模式和全局模式是输入的密码都明文显示出来了。虽然密码被拆分成了两部分,但一个有经验的攻击者完全可能将它们进行组合从而获取Cisco路由器的登录密码。其实,不仅仅是这些,利用嗅探工具管理员所有在路由器上输入的命令都会被嗅探到。这样,就算是管理员更改了路由器的密码,并且进行了加密但都可以嗅探得到。(图1)
从上面最后一行Data:后面的那个C就表示我们输入的第一个密码。再接着查看后面的几个Telnet Data数据包我们就可以看出它的密码。这样对于我们的网络来说是特别不安全的。
2、SSH的安全性
SSH的英文全称是Secure Shell,是由芬兰的一家公司开发的。SSH由客户端和服务端的软件组成,有1.x和2.x两个不兼容的版本。SSH的功能强大,既可以代替Telnet,又可以为FTP、POP3和PPP提供一个安全的“通道”。使用SSH,可以把传输的所有数据进行加密。即使有人截获到数据也无法得到有用的信息。同时,数据经过压缩,大大地加快传输的速度。它默认的连接端口是22。通过使用SSH,可以把所有传输的数据进行加密,这样类似上面的“中间人”攻击方式就不可能实现了,而且它也能够防止DNS和IP欺骗。另外,它还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。
3、SSH部署
基于上面的测试和SSH的安全特性,要实现Cisco路由器的安全管理用SSH代替Telnet是必要的。当然,要实现SSH对CISOC的安全管理,还需要在路由器上进行相关设置。下面笔者就在虚拟环境中演示SSH的部署、连接的技术细节。
(1).Cisco配置
下面是在Cisco上配置SSH的相关命令和说明:
R2(config)#ip domain-name cisco.com 配置一个域名 R2(config)#crypto key generate rsa general-keys modulus 1024 //生成一个rsa算法的密钥,密钥为1024位 (提示:在Cisoc中rsa支持360-2048位,该算法的原理是:主机将自己的公用密钥分发给相关的客户机,客户机在访问主机时则使用该主机的公开密钥来加密数据,主机则使用自己的私有的密钥来解密数据,从而实现主机密钥认证,确定客户机的可靠身份。) The name for the keys will be: R2.cisco.com % The key modulus size is 1024 bits R2(config)# |
这样设置完成后,就不能telnet到Cisoc路由器了。
设置登录方式,然后点击“Open”。
而这里就是颁发给我们的证书。
R2(config)#aaa new-model 启用AAA |
好了现在就可以使用SSH登录了。
(2).SSH登录
上面设置完成后就不能Telnet到cisco了,必须用专门的SSH客户端进行远程登录。为了验证SSH登录的安全性,我们在登录的过程中启用网络抓包软件进行嗅探。
我采用的SSH客户端为PuTTY,启动该软件输入路由器的IP地址172.16.1.1,然后进行�O两个会弹出一个对话框,让我们选择是否使用刚才设置的SSH密钥,点击“是”进入登录命令行,依次输入刚才在路由器上设置的SSH的登录用户及其密码cisco,可以看到成功登录到路由器。
然后我们查看嗅探工具抓包的结果,如图所示所有的数据都进行了加密,我们看不到注入用户、密码等敏感信息。由此可见,利用SSH可以确保我们远程登录Cisco路由器的安全。
总结:其实,SSH不仅可用于路由器的安全管理。在我们进行系统的远程管理、服务器的远程维护等实际应用中都可以部署基于SSH远程管理。另外,当下的SSH工具不仅有命令行下的,也有一些GUI图形界面下的工具。网络管理,安全第一,SSH能够极大程度地预防来自“中间人”的攻击,希望本文对大家提升网络管理的安全性有所帮助帮助。