理解并取证:SSH远程管理协议的工作原理


  SSH(Secure Shell)它默认的连接端口是22,可以把所有传输的数据进行加密。它是代替Telnet进行安全远程操作一种很好的方式。当然,事实上它不止能代替Telnet进行安全的工作,还能为FTP等应用服务提供安全的传输通道。


第一阶段:(基于口令的安全验证)只要用户知道自己的账号和口令,就可以登录到远程主机。所有传输的数据都会被加密。但是不能保证正在连接的服务器就是用户想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。


第二阶段:思科的路由器如果配置了SSH,那么就会在设备上产生一对非对称式的密钥对,一把私钥和一把公钥。私钥是不可公开的,所以设备要保密私钥;公钥是可公开的,所以设备可以将自己的公钥发送给SSH客户端,SSH的客户端拿着公钥来加密数据,所以数据在传送的过程中,是保密的,这样就免除了“中间者的攻击或窃取”。被公钥加密的数据被传送到路由器上时,路由器可以利用自己的私钥来解密数据。这样就保证了数据在传递过程中的安全性,如下图9.4所示。

理解并取证:SSH远程管理协议的工作原理_思科认证

SSH与Telnet的比较:

nSSH较Telnet具备了更好的安全性。

nSSH还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。


演示:思科路由器SSH的远程管理


演示目标:在路由器上配置SSH服务,并取证SSHTelnet的安全性高。

演示环境:如上9.4所示的演示环境。

演示步骤:


第一步:在思科的路由器上配置SSH。配置指令如下所示:


路由器R1的SSH配置:

R1(config)#line vty 0 4 * 进入vty线路模式。

R1(config-line)#loginlocal * 对远程SSH的用户采取本地安全数据库认证。

R1(config-line)#transportinput ssh * 允许SSH传入。

R1(config)#ip domain-name ccna.com

* 使用SSH必须为路由器配置域名,这里的域名是ccna.com。

R1(config)#usernameccna password ccna

* 建立一个路由器的本地安全数据库用户名为ccna密码为ccna

R1(config)#enablepassword ccna * 为路由器配置enable的密码。

R1(config)#crypto keygenerate rsa * 生成路由器的公钥和私钥对。


路由器会有如下提示:

The name for the keys willbe: r1.ccna.com

Choose the size of the keymodulus in the range of 360 to 2048 for your General Purpose Keys. Choosing a key modulus greater than 512 maytake a few minutes.

How many bits in the modulus [512]:建立密钥对模数的长度,保持默认就可以了。

% Generating 512 bit RSA keys keys will be non-exportable...[OK]


路由器提示:SSH 1.99被正式启动。

*May 19 13:51:27.707: %SSH-5-ENABLED: SSH1.99 has been enabled


第二步:实现SSH客户机的登录。就目前而言,Windows还没有提供专用的SSH客户端软件,所以需要第三方软件进行支持。而PuTTY就是一款非常好的第三方SSH客户端软件,如下9.5所示。


理解并取证:SSH远程管理协议的工作原理_思科认证_02

第三步:利用协议分析器分析SSH的数据帧。在192.168.1.2SSH连接到路由器(192.168.1.1)以前打开的协议分析器,然后完成整个SSH的过程,再暂停协议分析器,可得到如下图9.6所示的数据帧和如下图9.7所示的SSH加密后的效果。

理解并取证:SSH远程管理协议的工作原理_CCNA_03

理解并取证:SSH远程管理协议的工作原理_SSH_04