OpenSSH為保障Client(客戶端)與服務器端(Server)的安全通信提供了一整套的工具,這些工具允許用戶為任何類型的Client與Server的通信創建安全通道,包括檢查/發送電子郵件或Web瀏覽。
OpenSSH
在通過Internet登錄到一個遠程系統時,總會存在一種危險,即用戶的口令如果以明文方式傳輸,就可能會被監視字節流的黑客中間截獲并加以濫用。多數用戶實際上都清楚這種風險,并通過使用所謂的“安全外殼”(secure shell)程序來減輕風險,這種“安全外殼”程序的設計目的是在用戶通過互聯網傳輸數字證書之前對證書進行加密。目前這類程序最流行、最通用的就是OpenSSH,這是一個OpenBSD的項目。
不過,許多OpenSSH用戶并沒有認識到,這個程序不僅允許用戶加密用戶的(遠程登錄)telnet會話,它還提供了一整套用以保障客戶端/服務器通信安全的工具,而且允許用戶為任何類型的C/S通信創建安全“通道”,其中包含檢查/發送電子郵件或Web瀏覽。使用這些通道可以極大改善系統的安全性,特別是機密性成為一個關鍵要素的時候。
本文將通過一個具體的例子向您展示如何通過這個OpenSSH來創建加密通道,用于檢查一個POP3郵箱,從而使我們進一步理解并掌握OpenSSH的安全通道特性。
第一步:下載并安裝OpenSSH
用戶可從http://www.openssh.com/下載源代碼,用戶從多種平臺的版本中選擇所需要的版本。其文件已被數字化簽名,從而可以避免損害用戶的安全。本文例子使用的是OpenSSH 4.3。
一旦用戶下載了程序包,將它解到一個臨時目錄并執行標準的“配置─生成─安裝”循環:
|
第二步:生成主機密鑰并啟動OpenSSH進程
安裝過程的最后一步就是生成一對主機密鑰,即特定系統的唯一標識符。這些密鑰,包含一個私有密鑰和一個公有密鑰,分別存儲在諸如 /etc/ssh_host_key and /etc/ssh_host_key.pub,的文件中:
|
一旦密鑰創建完成,通過執行“sshd”啟動OpenSSH進程:(以超級用戶身份):
|
通過打開一個Telnet連接到22號端口確認服務正在運行:
|
第三步:創建一個到用戶的POP3服務器的安全通道
現在讓我們假定用戶的本地系統名為localbox,主管用戶的目標POP3郵箱的主機名為remotebox。下一步就是在remotebox主機上的110端口(POP3連接的標準端口)與localbox計算機上的一個未用的端口之間創建一個加密的SSH通道。這個過程稱為TCP轉發,用OpenSSH完成這個操作是相當簡單的,只需要運行如下的命令:
|
這個命令意思是說:將localbox上未用端口2110上的所有連接轉發到remotebox上的POP3端口110上,并在通道上加密。此命令的結果是:所有到localbox上2110端口的連接企圖都被自動加密,并被發送到remotebox上的110端口上。
現在如果用戶在localbox上打開了telnet連接到端口2110,例如:
|
用戶的連接會被自動轉發到remotebox上的110端口─POP3郵件服務,并且加上高質量的加密以確保任何人都無法“竊聽”用戶與遠程服務器的數據通信。
在這里要注意兩個重要的問題:如果你正使用一個特權端口,必須要有對轉發端口的超級用戶權限;此外,你不應試圖使用已經在用的端口號。
第四步:改變你的POP3客戶端設置
一旦你的安全通道能夠運作,你需要將所做的改變告訴你的郵件客戶端,對于前向通道,你的郵件客戶端可能直接連接到remotebox以檢索電子郵件-一個讓用戶的電子郵件口令以一種非加密的格式沿著線路傳輸,需要對客戶端作類似如下的設置:
|
對于后向通道,你的郵件客戶端應該被重置,直接連接到本地系統上的2110端口,用OpenSSH實現將連接轉發到遠程服務器并實現線路加密。新的設置應看起來是如下的樣子:
|
經過這四步安裝設置之后,你已經擁有了一個郵件客戶端與郵件服務器之間的安全通道,你的口令和數據對他人來說將是不可見的。很明顯,這僅僅是一個例子,可以說是僅僅展示了OpenSSH強大功能的冰山之一角。用戶還可以設置OpenSSH用以加密SMTP、FTP、IRC或者任何類型的客戶端/服務器的連接,或者創建通過防火墻的加密通道。為了您的數據傳輸的安全性,請用OpenSSH為您的傳輸保駕護航!