理解並取證:SSH遠端管理協議的工作原理
SSH(Secure Shell)它預設的連線埠是22,可以把所有傳輸的資料進行加密。它是代替Telnet進行安全遠端操作一種很好的方式。當然,事實上它不止能代替Telnet進行安全的工作,還能為FTP等應用服務提供安全的傳輸通道。
第一階段:(基於口令的安全驗證)只要使用者知道自己的賬號和口令,就可以登入到遠端主機。所有傳輸的資料都會被加密。但是不能保證正在連線的伺服器就是使用者想連線的伺服器。可能會有別的伺服器在冒充真正的伺服器,也就是受到“中間人”這種方式的攻擊。
第二階段:思科的路由器如果配置了
SSH
,那麼就會在裝置上產生一對非對稱式的金鑰對,一把私鑰和一把公鑰。私鑰是不可公開的,所以裝置要保密私鑰;公鑰是可公開的,所以裝置可以將自己的公鑰傳送給
SSH
客戶端,
SSH
的客戶端拿著公鑰來加密資料,所以資料在傳送的過程中,是保密的,這樣就免除了“中間者的攻擊或竊取”。被公鑰加密的資料被傳送到路由器上時,路由器可以利用自己的私鑰來解密資料。這樣就保證了資料在傳遞過程中的安全性,如下圖9.4所示。
SSH與Telnet的比較:
nSSH較Telnet具備了更好的安全性。
nSSH還有一個額外的好處就是傳輸的資料是經過壓縮的,所以可以加快傳輸的速度。
演示:思科路由器SSH的遠端管理
演示目標:在路由器上配置SSH服務,並取證SSH比Telnet的安全性高。
演示環境:如上圖9.4所示的演示環境。
演示步驟:
第一步:在思科的路由器上配置SSH。配置指令如下所示:
路由器R1的SSH配置:
R1(config)#line vty 0 4 * 進入vty線路模式。
R1(config-line)#login local * 對遠端SSH的使用者採取本地安全資料庫認證。
R1(config-line)#transport input 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的資料幀。在192.168.1.2上SSH連線到路由器(192.168.1.1)以前開啟的協議分析器,然後完成整個SSH的過程,再暫停協議分析器,可得到如下圖9.6所示的資料幀和如下圖9.7所示的被SSH加密後的效果。