詳解網路安全協議SSH(Secure Shell)

Telnet缺少安全的認證方式,而且傳輸過程採用TCP進行明文傳輸,存在很大的安全隱患。單純提供Telnet服務容易招致DoS(Deny of Service)、主機IP地址欺騙、路由欺騙等惡意攻擊。

隨著人們對網路安全的重視,傳統的Telnet和FTP透過明文傳送密碼和資料的方式,已經慢慢不被人接受。SSH(Secure Shell)是一個網路安全協議,透過對網路資料的加密,解決了這個問題。它在一個不安全的網路環境中,提供了安全的遠端登入和其他安全網路服務。

SSH透過TCP進行資料互動,它在TCP之上構建了一個安全的通道。另外SSH服務除了支援標準埠22外,還支援其他服務埠,以防止受到非法攻擊。

SSH支援的客戶端功能

SSH客戶端功能允許使用者與支援SSH Server的路由器、UNIX主機等建立SSH連線。如圖4-1、圖4-2所示,可以建立SSH通道進行本地連線或廣域網連線。

圖4-1

在區域網內建立SSH通道

詳解網路安全協議SSH(Secure Shell)

圖4-2

透過廣域網建立SSH通道

詳解網路安全協議SSH(Secure Shell)

SFTP

SFTP(SSH File Transfer Protocol)是SSH FTP的簡稱,是一種安全的FTP。SFTP建立在SSH連線的基礎之上,遠端使用者可以安全地登入裝置,進行檔案管理和檔案傳送等操作,為資料傳輸提供了更高的安全保障。同時,由於裝置提供了SFTP客戶端功能,可以從本裝置安全登入到遠端SSH伺服器上,進行檔案的安全傳輸。

STelnet

STelnet是基於SSH的安全Telnet服務。與Telnet相比,SSH伺服器透過對客戶端進行認證及雙向的資料加密,為網路終端訪問提供了安全的服務。

SCP

SCP(Secure Copy)是基於SSH的安全協議,對客戶端進行認證和資料加密,以保證在傳統的非安全網路環境下進行安全的檔案傳輸。

SCP使用SSH進行資料傳輸和使用者認證,從而確保資料傳輸的可靠性和機密性。客戶端可以傳送(上傳)檔案到伺服器,亦可從伺服器請求(下載)檔案或目錄。預設情況下,SCP運行於TCP協議下的22號埠。

SSH服務支援其他埠

SSH協議的標準偵聽埠號為22,攻擊者不斷訪問標準埠,導致頻寬的浪費和伺服器效能的下降,致使其他正常使用者無法訪問,這是一種DoS(拒絕服務)攻擊。

設定SSH服務端的偵聽埠號為其他埠,攻擊者不知道SSH偵聽埠號的更改,可有效防止攻擊者對SSH服務標準埠訪問消耗頻寬和系統資源。正常使用者透過對非標準埠的SSH服務的訪問,降低遭受DoS(拒絕服務)攻擊可能性。

圖4-3是一個透過其他埠訪問SSH伺服器的組網應用。

圖4-3

SSH伺服器支援其他埠訪問

詳解網路安全協議SSH(Secure Shell)

只有合法的使用者採用SSH伺服器設定的非標準偵聽端口才能建立Socket連線,進行SSH協議的版本號協商、演算法協商及會話金鑰生成、認證、會話請求、會話階段等過程。

SSH服務可以應用在網路中的中間交換裝置、邊緣裝置上,可以實現使用者對裝置的安全訪問和管理。

安全的遠端訪問

SSH透過以下措施實現在不安全網路上提供安全的遠端訪問:

支援RSA(Revist-Shamir-Adleman Algorithm)/DSA(Digital-Signature Algorithm)/ECC(Elliptic Curves Cryptography)公鑰驗證方式,根據非對稱加密體系的加密原則,透過生成公鑰和私鑰,實現金鑰的安全交換,最終實現安全的會話全過程。

支援證書驗證方式,客戶端透過證書籤名來進行伺服器端驗證,有效防止中間人攻擊。

支援資料加密標準DES(Data Encryption Standard)、3DES、AES(Advanced Encryption Standard)。

SSH客戶端與伺服器端通訊時,對傳輸的資料進行加密,包括使用者名稱及口令,有效防止對口令的竊聽。

支援SM2橢圓曲線密碼演算法SM2演算法與RSA演算法一樣,同屬於非對稱密碼演算法體系,是基於ECC(Elliptic Curves Cryptography)演算法的非對稱演算法。與RSA演算法不同的是:RSA演算法是基於大數的因子分解演算法,導致了RSA演算法的金鑰的長度也越來越長。而長金鑰帶來了運算速度較慢、金鑰儲存和管理不方便問題。ECC演算法是基於離散對數的演算法,很難破解,具有更高的安全性。與RSA演算法相比,在相同安全性條件下,ECC演算法可以大大減少金鑰的長度。相較於RSA,橢圓曲線密碼演算法使用更短的金鑰長度就能實現比較牢固的加密強度,同時由於金鑰長度相對較短,加密速度也就相對較快。總而言之,ECC橢圓曲線密碼演算法具有以下優點:相同的安全性,ECC演算法的金鑰長度比RSA演算法更短。計算量小,處理速度快。儲存空間小。頻寬要求低。

為了保證更好的安全性,建議不要使用DES/3DES/小於2048位的RSA演算法做為SSH使用者的認證和資料加密方式,推薦使用更安全的ECC認證演算法。

支援ACL應用

ACL是訪問控制列表。透過ACL對SSH型別的使用者介面限制呼入撥出許可權,防止一些非法地址的使用者進行TCP連線,避免其進入SSH協商,藉此提高SSH伺服器安全性。

圖4-4

SSH支援ACL應用

詳解網路安全協議SSH(Secure Shell)

SSH特性IPv6支援情況

目前,SSH客戶端支援連線IPv6主機地址,SSH伺服器支援IPv6的連線。

SSH應用

支援Stelnet協議

STelnet基於SSH2。0協議,客戶端和伺服器之間經過協商,建立安全連線,客戶端可以像操作Telnet一樣登入伺服器。如圖所示,

圖4-5

SSH支援Stelnet協議

詳解網路安全協議SSH(Secure Shell)

如圖4-5所示,

裝置支援STelnet客戶端、STelnet伺服器功能為了方便使用者的使用,裝置不僅提供STelnet伺服器功能,同時也可以做為STelnet客戶端訪問其他STelnet伺服器。

支援使能/去使能STelnet伺服器功能(預設關閉)在不需要STelnet伺服器情況下可以將其去使能,該功能在全域性模式下配置。

支援SFTP協議

SFTP是基於SSH2。0的安全協議。SSH支援的認證方式為:密碼認證、RSA認證、password-rsa認證、DSA認證、password-dsa認證、ECC認證、SM2認證、password-ecc認證。合法使用者透過客戶端登入時,輸入正確的使用者名稱以及對應的密碼和私鑰,透過伺服器的驗證。此時使用者可以像使用FTP一樣使用,實現對網路檔案的遠端傳輸管理,而系統會對使用者的資料採用協商出來的會話金鑰對資料加密。

攻擊者沒有正確的私鑰和密碼,無法透過伺服器的認證。並且攻擊者無法獲得其他使用者和伺服器之間的會話金鑰,因此後續伺服器和指定客戶端的通訊報文只有指定客戶端和伺服器才能解密。即使攻擊者竊聽到通訊報文,也不能解密,實現了網路資料傳輸的安全性。

支援SFTP客戶端、SFTP伺服器功能為了方便使用者的使用,裝置不僅提供SFTP伺服器功能,也可以做為SFTP客戶端訪問其他SFTP伺服器

支援使能/去使能SFTP伺服器功能(預設關閉)在不需要SFTP伺服器情況下可以將其去使能,該功能在全域性模式下配置。

支援對應使用者的SFTP訪問預設目錄設定對於不同的使用者,伺服器允許訪問的檔案目錄不同。使用者只能訪問SFTP服務設定目錄,因此透過對應使用者的SFTP訪問預設目錄設定實現不同使用者檔案隔離。

支援客戶端與伺服器之間透過透明檔案系統進行的運轉。即對於所有的檔案操作來說,一個標準的檔案系統可以用來訪問遠端板子上的檔案。

支援NETCONF檔案傳輸操作,在檔案傳輸成功或失敗時提供確認機制。

圖4-6

SSH支援SFTP協議

詳解網路安全協議SSH(Secure Shell)

支援SCP協議

SCP是基於SSH2。0的安全協議。SSH2。0支援的認證方式為:密碼認證、RSA認證、password-rsa認證、DSA認證、password-dsa認證、ECC認證、SM2認證、password-ecc認證。合法使用者透過客戶端登入時,輸入正確的使用者名稱以及對應的密碼和私鑰。透過伺服器的驗證後,使用者可以實現對網路檔案的遠端傳輸管理,而系統會對使用者的資料採用協商出來的會話金鑰對資料加密。

攻擊者沒有正確的私鑰和密碼,無法透過伺服器的認證。並且攻擊者無法獲得其他使用者和伺服器之間的會話金鑰,因此後續伺服器和指定客戶端的通訊報文只有指定客戶端和伺服器才能解密。即使攻擊者竊聽到通訊報文,也不能解密,實現了網路資料傳輸的安全性。

支援SCP客戶端、伺服器功能為了方便使用者的使用,裝置既支援SCP客戶端功能,同時也支援SCP伺服器功能。即裝置既可以作為SCP伺服器也可以作為SCP客戶端接入SCP伺服器。

支援使能/去使能SCP伺服器功能(預設關閉)。在不需要SCP伺服器情況下,可以將其去使能。該功能在全域性模式下配置。

支援客戶端與伺服器之間透過透明檔案系統進行的運轉。即對於所有的檔案操作來說,一個標準的檔案系統可以用來訪問遠端單板上的檔案。

支援檔案目錄中多檔案的遞迴傳輸。例如,檔案目錄directory下包含多個檔案以及子目錄,SCP可實現將整個directory目錄下的檔案進行傳輸,並保持原有的檔案目錄格式。

圖4-7

SCP組網圖

詳解網路安全協議SSH(Secure Shell)

私網訪問

HUAWEI NE20E-S支援STelnet客戶端、SFTP客戶端、SNETCONF客戶端,因此可以建立基於VPN的Socket連線,在公網裝置實現如下訪問:

STelnet客戶端訪問私網SSH伺服器

SFTP客戶端訪問私網SSH伺服器

SNETCONF客戶端訪問私網SSH伺服器

圖4-8

SSH支援私網訪問

詳解網路安全協議SSH(Secure Shell)

SSH伺服器支援其他埠訪問

SSH協議的標準偵聽埠號為22,如果攻擊者不斷訪問標準埠,將致頻寬和伺服器效能的下降,導致其他正常使用者無法訪問。

透過設定SSH伺服器端的偵聽埠號為其他埠號,攻擊者不知道SSH偵聽埠號的更改,仍然傳送標準埠號22的Socket連線,SSH伺服器檢測發現請求連線埠號不是偵聽的埠號,就不建立Socket連線。

圖4-9是一個透過其他埠訪問SSH伺服器的組網應用。

圖4-9

SSH伺服器支援其他埠訪問

詳解網路安全協議SSH(Secure Shell)

只有合法的使用者採用SSH伺服器設定的非標準偵聽端口才能建立Socket連線,進行SSH協議的版本號協商、演算法協商及會話金鑰生成、認證、會話請求、會話階段等過程。

SSH服務可以應用在網路中的中間交換裝置、邊緣裝置上,可以實現使用者對裝置的安全訪問和管理。

支援ACL應用

ACL是Access Control List的簡稱,中文是訪問控制列表。透過ACL對SSH型別的使用者介面限制呼入撥出許可權,防止一些非法地址的使用者進行TCP連線,避免其進入SSH協商,藉此提高SSH伺服器安全性。

圖4-10

SSH支援ACL應用

詳解網路安全協議SSH(Secure Shell)

支援SNETCONF

NETCONF Agent是運行於SSH Server之上的一種應用。使用SSH建立的安全傳輸通道。NETCONF被用來訪問配置、宣告資訊和修改配置資訊,因此訪問此協議的能力應當被限制為使用者和系統。在SSH上執行NETCONF,Client需要先使用SSH傳輸協議來建立SSH傳輸連線。Client和Server為了訊息的完整性而交換金鑰並對金鑰加密。一旦使用者認證成功,Client就呼叫“SSH-連線”服務,即SSH連線協議。在SSH連線服務建立後,Client為SSH會話開啟一個會話型別的通道。一旦SSH會話建立,使用者(或者應用)呼叫SNETCONF作為SSH的一個子系統,這個是SSHv2的一個特性。SSH Sever確保SNETCONF子系統傳輸資料的可靠性和資料順序。

圖4-11

在SSH Server上應用NETCONF組網圖

詳解網路安全協議SSH(Secure Shell)