傳統的網絡服務程序,如:ftp、pop和telnet在本質上都是不安全的,因為它們在網絡上用明文傳送口令和數據,別有用心的人非常容易就可以截獲這些口令和數據。而且,這些服務程序的安全驗證方式也是有其弱點的,就是很容易受到“中間人”(man-in-the-middle)這種方式的攻擊。所謂“中間人”的攻擊方式,就是“中間人”冒充真正的服務器接收你傳給服務器的數據,然后再冒充你把數據傳給真正的服務器。服務器和你之間的數據傳送被“中間人”轉手后做了手腳之后,就會出現很嚴重的問題。
SSH的英文全稱是Secure SHell。通過使用SSH,你可以把所有傳輸的數據進行加密,這樣“中間人”這種攻擊方式就不可能實現了,而且也能夠防止DNS和IP欺騙。還有一個額外的好處就是傳輸的數據是經過壓縮的,所以可以加快傳輸的速度。SSH有很多功能,它既可以代替telnet,又可以為ftp、pop、甚至ppp提供一個安全的“通道”。
SSH的安全驗證是如何工作?
從客戶端來看,SSH提供兩種級別的安全驗證。
第一種級別(基于口令的安全驗證)只要你知道自己帳號和口令,就可以登錄到遠程主機。所有傳輸的數據都會被加密,但是不能保證你正在連接的服務器就是你想連接的服務器。可能會有別的服務器在冒充真正的服務器,也就是受到“中間人”這種方式的攻擊。
第二種級別(基于密匙的安全驗證)需要依靠密匙,也就是你必須為自己創建一對密匙,并把公用密匙放在需要訪問的服務器上。如果你要連接到SSH服務器上,客戶端軟件就會向服務器發出請求,請求用你的密匙進行安全驗證。服務器收到請求之后,先在該服務器的目錄下尋找你的公用密匙,然后把它和你發送過來的公用密匙進行比較。如果兩個密匙一致,服務器就用公用密匙加密“質詢”(challenge)并把它發送給客戶端軟件。客戶端軟件收到“質詢”之后就可以用你的私人密匙解密再把它發送給服務器。
用這種方式,你必須知道自己密匙的口令。但是,與第一種級別相比,第二種級別不需要在網絡上傳送口令。第二種級別不僅加密所有傳送的數據,而且“中間人”這種攻擊方式也是不可能的(因為他沒有你的私人密匙)。但是整個登錄的過程可能需要10秒。
我之前寫過篇文章介紹如何在IIS下利用SSL來加密WEB的傳輸通道,由于常見的HTTP FTP POP3 SMTP NNTP TELNET等等很多協議都是利用明文在網絡中來傳遞信息的,內部網絡的攻擊者可以很容易監視到你的整個會話過程,包括用戶名,密碼,郵件內容等等,現在很多內部網絡的審計系統和IDS也都可以實現對應用層的信息還原,簡直是沒有安全可言了。現在比較流行使用的工具是SSH2。SSH2不僅支持對于用戶名和密碼加密的傳輸,而且可以實現公鑰認證機制。客戶端與SSH2服務器連接時,會自動收到服務器端的公鑰,在驗證時使用這把公鑰對用戶名和密碼加密,服務器用自己的私鑰解密并進行比較,來證明用戶是否輸入了正確的密碼;如果采用公鑰驗證,客戶端自己要生成一對密鑰并把公鑰傳到服務器上里面指定客戶端的公鑰名字,這種方法比前面的還要安全。
好了,由于在WINDOWS的系統下SSH不是默認就有的安全配置,所以我們需要安裝一些第三方的軟件來實現我們需要的功能。
開始動手配置SSH SERVER

其實NT下的SSH服務軟件也有不少產品,本來想都拿過一一介紹下,后來想想沒有什么必要就介紹一個我認為最好的東西出來吧,就是VSHELL這款軟件。安裝其實非常簡單一路NEXT下來就OK了,沒有需要特別注意的地方。第一次啟動的時候程序會要求我們生成一個隨機產生的密鑰。

步驟其實也很簡單,我們只要按照向導的要求一步一步的來就可以了。


密鑰的長度當然就選1024位,目前是非常安全的長度了。
隨機密鑰的生成是根據我們的鼠標在屏幕上隨便亂晃的時候產生的隨機位置而生成的,所以你需要不停的晃動你的鼠標兆一直到密鑰全部生成為止。

生成的密鑰保存在系統本地硬盤


SSH SERVER的配置很簡單,幾乎不再需要我們額外去做什么設定了,程序自動的在NT系統下注冊為系統的服務進程來存在。有幾個注意的地方說明一下:
Compression是壓縮選項,我們知道很多人說利用SSH進行SFTP的傳輸的時候速度有時候不會因為SSH的加密傳輸而減低反而會提高,其實就是利用SSH通道的數據壓縮傳遞的功能。這個選擇默認是打開的。

VSHELL里還有個地方可以設置用戶的訪問權限,VSHELL是采用的NT下的USER組為自己的用戶密碼也和NT下用戶密碼是一樣的,我們在這里可以設置那些用戶和用戶組有訪問執行端口通道等等功能的權限。


共2頁: 1 [2] 下一頁 | ||
|