Telnet缺少安全的認證方式,而且傳輸過程采用TCP進行明文傳輸,存在很大的安全隱患。單純提供Telnet服務容易招致DoS(Deny of Service)、主機IP地址欺騙、路由欺騙等惡意攻擊。
隨著人們對網(wǎng)絡安全的重視,傳統(tǒng)的Telnet和FTP通過明文傳送密碼和數(shù)據(jù)的方式,已經(jīng)慢慢不被人接受。SSH(Secure Shell)是一個網(wǎng)絡安全協(xié)議,通過對網(wǎng)絡數(shù)據(jù)的加密,解決了這個問題。它在一個不安全的網(wǎng)絡環(huán)境中,提供了安全的遠程登錄和其他安全網(wǎng)絡服務。
SSH通過TCP進行數(shù)據(jù)交互,它在TCP之上構建了一個安全的通道。另外SSH服務除了支持標準端口22外,還支持其他服務端口,以防止受到非法攻擊。
SSH支持的客戶端功能
SSH客戶端功能允許用戶與支持SSH Server的路由器、UNIX主機等建立SSH連接。如圖4-1、圖4-2所示,可以建立SSH通道進行本地連接或廣域網(wǎng)連接。
圖4-1 在局域網(wǎng)內(nèi)建立SSH通道
圖4-2 通過廣域網(wǎng)建立SSH通道
SFTP
SFTP(SSH File Transfer Protocol)是SSH FTP的簡稱,是一種安全的FTP。SFTP建立在SSH連接的基礎之上,遠程用戶可以安全地登錄設備,進行文件管理和文件傳送等操作,為數(shù)據(jù)傳輸提供了更高的安全保障。同時,由于設備提供了SFTP客戶端功能,可以從本設備安全登錄到遠程SSH服務器上,進行文件的安全傳輸。
STelnet
STelnet是基于SSH的安全Telnet服務。與Telnet相比,SSH服務器通過對客戶端進行認證及雙向的數(shù)據(jù)加密,為網(wǎng)絡終端訪問提供了安全的服務。
SCP
SCP(Secure Copy)是基于SSH的安全協(xié)議,對客戶端進行認證和數(shù)據(jù)加密,以保證在傳統(tǒng)的非安全網(wǎng)絡環(huán)境下進行安全的文件傳輸。
SCP使用SSH進行數(shù)據(jù)傳輸和用戶認證,從而確保數(shù)據(jù)傳輸?shù)目煽啃院蜋C密性??蛻舳丝梢园l(fā)送(上傳)文件到服務器,亦可從服務器請求(下載)文件或目錄。缺省情況下,SCP運行于TCP協(xié)議下的22號端口。
SSH服務支持其他端口
SSH協(xié)議的標準偵聽端口號為22,攻擊者不斷訪問標準端口,導致帶寬的浪費和服務器性能的下降,致使其他正常用戶無法訪問,這是一種DoS(拒絕服務)攻擊。
設定SSH服務端的偵聽端口號為其他端口,攻擊者不知道SSH偵聽端口號的更改,可有效防止攻擊者對SSH服務標準端口訪問消耗帶寬和系統(tǒng)資源。正常用戶通過對非標準端口的SSH服務的訪問,降低遭受DoS(拒絕服務)攻擊可能性。
圖4-3是一個通過其他端口訪問SSH服務器的組網(wǎng)應用。
圖4-3 SSH服務器支持其他端口訪問
只有合法的用戶采用SSH服務器設定的非標準偵聽端口才能建立Socket連接,進行SSH協(xié)議的版本號協(xié)商、算法協(xié)商及會話密鑰生成、認證、會話請求、會話階段等過程。
SSH服務可以應用在網(wǎng)絡中的中間交換設備、邊緣設備上,可以實現(xiàn)用戶對設備的安全訪問和管理。
安全的遠程訪問
SSH通過以下措施實現(xiàn)在不安全網(wǎng)絡上提供安全的遠程訪問:
- 支持RSA(Revist-Shamir-Adleman Algorithm)/DSA(Digital-Signature Algorithm)/ECC(Elliptic Curves Cryptography)公鑰驗證方式,根據(jù)非對稱加密體系的加密原則,通過生成公鑰和私鑰,實現(xiàn)密鑰的安全交換,最終實現(xiàn)安全的會話全過程。
- 支持證書驗證方式,客戶端通過證書簽名來進行服務器端驗證,有效防止中間人攻擊。
- 支持數(shù)據(jù)加密標準DES(Data Encryption Standard)、3DES、AES(Advanced Encryption Standard)。
- SSH客戶端與服務器端通信時,對傳輸?shù)臄?shù)據(jù)進行加密,包括用戶名及口令,有效防止對口令的竊聽。
- 支持SM2橢圓曲線密碼算法SM2算法與RSA算法一樣,同屬于非對稱密碼算法體系,是基于ECC(Elliptic Curves Cryptography)算法的非對稱算法。與RSA算法不同的是:RSA算法是基于大數(shù)的因子分解算法,導致了RSA算法的密鑰的長度也越來越長。而長密鑰帶來了運算速度較慢、密鑰存儲和管理不方便問題。ECC算法是基于離散對數(shù)的算法,很難破解,具有更高的安全性。與RSA算法相比,在相同安全性條件下,ECC算法可以大大減少密鑰的長度。相較于RSA,橢圓曲線密碼算法使用更短的密鑰長度就能實現(xiàn)比較牢固的加密強度,同時由于密鑰長度相對較短,加密速度也就相對較快??偠灾珽CC橢圓曲線密碼算法具有以下優(yōu)點:相同的安全性,ECC算法的密鑰長度比RSA算法更短。計算量小,處理速度快。存儲空間小。帶寬要求低。
為了保證更好的安全性,建議不要使用DES/3DES/小于2048位的RSA算法做為SSH用戶的認證和數(shù)據(jù)加密方式,推薦使用更安全的ECC認證算法。
支持ACL應用
ACL是訪問控制列表。通過ACL對SSH類型的用戶界面限制呼入呼出權限,防止一些非法地址的用戶進行TCP連接,避免其進入SSH協(xié)商,借此提高SSH服務器安全性。
圖4-4 SSH支持ACL應用
SSH特性IPv6支持情況
目前,SSH客戶端支持連接IPv6主機地址,SSH服務器支持IPv6的連接。
SSH應用
支持Stelnet協(xié)議
STelnet基于SSH2.0協(xié)議,客戶端和服務器之間經(jīng)過協(xié)商,建立安全連接,客戶端可以像操作Telnet一樣登錄服務器。如圖所示,
圖4-5 SSH支持Stelnet協(xié)議
如圖4-5所示,
- 設備支持STelnet客戶端、STelnet服務器功能為了方便用戶的使用,設備不僅提供STelnet服務器功能,同時也可以做為STelnet客戶端訪問其他STelnet服務器。
- 支持使能/去使能STelnet服務器功能(默認關閉)在不需要STelnet服務器情況下可以將其去使能,該功能在全局模式下配置。
支持SFTP協(xié)議
SFTP是基于SSH2.0的安全協(xié)議。SSH支持的認證方式為:密碼認證、RSA認證、password-rsa認證、DSA認證、password-dsa認證、ECC認證、SM2認證、password-ecc認證。合法用戶通過客戶端登錄時,輸入正確的用戶名以及對應的密碼和私鑰,通過服務器的驗證。此時用戶可以像使用FTP一樣使用,實現(xiàn)對網(wǎng)絡文件的遠程傳輸管理,而系統(tǒng)會對用戶的數(shù)據(jù)采用協(xié)商出來的會話密鑰對數(shù)據(jù)加密。
攻擊者沒有正確的私鑰和密碼,無法通過服務器的認證。并且攻擊者無法獲得其他用戶和服務器之間的會話密鑰,因此后續(xù)服務器和指定客戶端的通訊報文只有指定客戶端和服務器才能解密。即使攻擊者竊聽到通訊報文,也不能解密,實現(xiàn)了網(wǎng)絡數(shù)據(jù)傳輸?shù)陌踩浴?/p>
- 支持SFTP客戶端、SFTP服務器功能為了方便用戶的使用,設備不僅提供SFTP服務器功能,也可以做為SFTP客戶端訪問其他SFTP服務器
- 支持使能/去使能SFTP服務器功能(默認關閉)在不需要SFTP服務器情況下可以將其去使能,該功能在全局模式下配置。
- 支持對應用戶的SFTP訪問默認目錄設定對于不同的用戶,服務器允許訪問的文件目錄不同。用戶只能訪問SFTP服務設定目錄,因此通過對應用戶的SFTP訪問默認目錄設定實現(xiàn)不同用戶文件隔離。
- 支持客戶端與服務器之間通過透明文件系統(tǒng)進行的運轉(zhuǎn)。即對于所有的文件操作來說,一個標準的文件系統(tǒng)可以用來訪問遠端板子上的文件。
- 支持NETCONF文件傳輸操作,在文件傳輸成功或失敗時提供確認機制。
圖4-6 SSH支持SFTP協(xié)議
支持SCP協(xié)議
SCP是基于SSH2.0的安全協(xié)議。SSH2.0支持的認證方式為:密碼認證、RSA認證、password-rsa認證、DSA認證、password-dsa認證、ECC認證、SM2認證、password-ecc認證。合法用戶通過客戶端登錄時,輸入正確的用戶名以及對應的密碼和私鑰。通過服務器的驗證后,用戶可以實現(xiàn)對網(wǎng)絡文件的遠程傳輸管理,而系統(tǒng)會對用戶的數(shù)據(jù)采用協(xié)商出來的會話密鑰對數(shù)據(jù)加密。
攻擊者沒有正確的私鑰和密碼,無法通過服務器的認證。并且攻擊者無法獲得其他用戶和服務器之間的會話密鑰,因此后續(xù)服務器和指定客戶端的通訊報文只有指定客戶端和服務器才能解密。即使攻擊者竊聽到通訊報文,也不能解密,實現(xiàn)了網(wǎng)絡數(shù)據(jù)傳輸?shù)陌踩浴?/p>
- 支持SCP客戶端、服務器功能為了方便用戶的使用,設備既支持SCP客戶端功能,同時也支持SCP服務器功能。即設備既可以作為SCP服務器也可以作為SCP客戶端接入SCP服務器。
- 支持使能/去使能SCP服務器功能(默認關閉)。在不需要SCP服務器情況下,可以將其去使能。該功能在全局模式下配置。
- 支持客戶端與服務器之間通過透明文件系統(tǒng)進行的運轉(zhuǎn)。即對于所有的文件操作來說,一個標準的文件系統(tǒng)可以用來訪問遠端單板上的文件。
- 支持文件目錄中多文件的遞歸傳輸。例如,文件目錄directory下包含多個文件以及子目錄,SCP可實現(xiàn)將整個directory目錄下的文件進行傳輸,并保持原有的文件目錄格式。
圖4-7 SCP組網(wǎng)圖
私網(wǎng)訪問
HUAWEI NE20E-S支持STelnet客戶端、SFTP客戶端、SNETCONF客戶端,因此可以建立基于VPN的Socket連接,在公網(wǎng)設備實現(xiàn)如下訪問:
- STelnet客戶端訪問私網(wǎng)SSH服務器
- SFTP客戶端訪問私網(wǎng)SSH服務器
- SNETCONF客戶端訪問私網(wǎng)SSH服務器
圖4-8 SSH支持私網(wǎng)訪問
SSH服務器支持其他端口訪問
SSH協(xié)議的標準偵聽端口號為22,如果攻擊者不斷訪問標準端口,將致帶寬和服務器性能的下降,導致其他正常用戶無法訪問。
通過設定SSH服務器端的偵聽端口號為其他端口號,攻擊者不知道SSH偵聽端口號的更改,仍然發(fā)送標準端口號22的Socket連接,SSH服務器檢測發(fā)現(xiàn)請求連接端口號不是偵聽的端口號,就不建立Socket連接。
圖4-9是一個通過其他端口訪問SSH服務器的組網(wǎng)應用。
圖4-9 SSH服務器支持其他端口訪問
只有合法的用戶采用SSH服務器設定的非標準偵聽端口才能建立Socket連接,進行SSH協(xié)議的版本號協(xié)商、算法協(xié)商及會話密鑰生成、認證、會話請求、會話階段等過程。
SSH服務可以應用在網(wǎng)絡中的中間交換設備、邊緣設備上,可以實現(xiàn)用戶對設備的安全訪問和管理。
支持ACL應用
ACL是Access Control List的簡稱,中文是訪問控制列表。通過ACL對SSH類型的用戶界面限制呼入呼出權限,防止一些非法地址的用戶進行TCP連接,避免其進入SSH協(xié)商,借此提高SSH服務器安全性。
圖4-10 SSH支持ACL應用
支持SNETCONF
NETCONF Agent是運行于SSH Server之上的一種應用。使用SSH建立的安全傳輸通道。NETCONF被用來訪問配置、聲明信息和修改配置信息,因此訪問此協(xié)議的能力應當被限制為用戶和系統(tǒng)。在SSH上運行NETCONF,Client需要先使用SSH傳輸協(xié)議來建立SSH傳輸連接。Client和Server為了消息的完整性而交換密鑰并對密鑰加密。一旦用戶認證成功,Client就調(diào)用“SSH-連接”服務,即SSH連接協(xié)議。在SSH連接服務建立后,Client為SSH會話打開一個會話類型的通道。一旦SSH會話建立,用戶(或者應用)調(diào)用SNETCONF作為SSH的一個子系統(tǒng),這個是SSHv2的一個特性。SSH Sever確保SNETCONF子系統(tǒng)傳輸數(shù)據(jù)的可靠性和數(shù)據(jù)順序。
圖4-11 在SSH Server上應用NETCONF組網(wǎng)圖