在外出差、休假時,總要上網處理工作和郵件,或者查詢一些訊息。如果沒有公司VPN,又不想花很多錢,是否還能確保無線上網行為的安全呢?跟我學,試著打造自己的安全Web隧道吧,你也可以擁有專有、安全的加密互聯網連接。
不管你上網用的公共無線
網絡是受密碼保護的,還是按分鐘收費的,連接至該網絡的人(餐館里的其他顧客、候機大廳的乘客,或者其他付費用戶)都能偷窺到你的HTTP流量。
需要建立一條加密隧道,來解決這個問題:可以通過加密隧道,發送以自己的筆記本電腦為起點、以某個已知位置(隧道“端點”)為終點的Web流量。隧道可以把你的Web請求轉發到公共互聯網。當然,一旦流量在隧道外面傳送,通常可能會受到互聯網服務提供商(ISP)或執法部門等有關方的審查; 但是當你的數據通過公共Wi-Fi熱點來傳送時,就可以安全地上網沖浪。
第1步:通過SSH實現簡單、低成本的安全連接
要建立自己的安全Web隧道,最簡單的辦法就是向主機提供商支付月費,由其處理所有的復雜工作:獲得服務器、安裝操作系統、確保服務器每天24小時保持在線,而且有可靠的備用電源。采用這種方法,你不必為家里自行安裝任何防火墻而操心,外出時也不必讓電腦繼續運行。
很多共享主機提供商都能提供訪問安全外殼(SSH)服務器的服務。以HostGator為例,該公司基本的Hatchling主機方案每月收費約5美元,也就是說,每天只要花幾毛錢,就能通過該公司的服務擁有自己的安全隧道。一旦在HostGator建立了賬戶,你就可以收到登錄信息和指定服務器。之后,只要發出SSH命令,就可以建立臨時的Web代理系統。
第2步:獲得SSH
客戶端軟件
OS X隨帶命令行SSH客戶端軟件,所以只需打開Terminal(位于Application文件夾下的Utilities文件夾里),你會看到帶用戶名和電腦名稱的命令行提示(跟在$符號后面,下文提到的所有命令前面都要輸入這個符號)。
在Windows機器上,需要下載SSH客戶端軟件。這方面的選擇很多,目前流行的免費客戶端軟件是PuTTY。
第3步:
測試SSH服務器
使用主機提供商提供的登錄信息,就可以在OS X上建立SSH會話,只要在$符號后面輸入下列字符:
$ ssh username@server.websitewelcome.com
在Windows機器上,開啟PuTTY,輸入主機提供商提供的服務器名。選擇Protocol下面的SSH單選按鈕。Port字段應設成22(默認的SSH端口)。然后點擊Open按鈕。
由于是第一次連接至該服務器,OS X的客戶端軟件和PuTTY都會顯示提醒信息,提示核實主機指紋(這個提示應該只出現一次,之后,SSH客戶端軟件會核實指紋沒有變化。要是指紋有變,可能表明你的連接已被篡改)。你會看到類似下面的文本:
The authenticity of host “server.websitewelcome.com” can't be established. RSA key fingerprint is 11:22:33:44:55.
(無法確定主機“server.websitewelcome.com”的真實性。RSA密鑰指紋是11:22:33:44:55。)
Are you sure you want to continue connecting? Yes
(你確信要繼續連接嗎?是的)
一旦核實了指紋,PuTTY會提示輸入用戶名和密碼。OS X會提示只需要輸入密碼,因為你已經在命令行上提供了用戶名。
登錄后,會看到表明現已連接至遠程服務器的命令行的一個提示。注意:$之前的服務器名已有變化,以體現遠程系統:
login as: username
Using keyboard-interactive authentication.
Password: ……
Last login: Fri Jan 01 02:03:04 2010 from 1.2.3.4
username@server $
現在你已確定有一臺正常工作的SSH服務器,下面可以繼續建立隧道了。輸入命令exit,即可關閉SSH會話。
第4步:本地監聽端口和遠程端點
你需要在本地電腦上配置一個端口(本地監聽端口),接收你發給它的任何數據包,然后發送到SSH加密會話。在隧道另一端,流量會在SSH服務器上倒出來。下面介紹如何配置Web瀏覽器,以便代理經過該本地監聽端口的流量。盡管從概念上來看,你似乎想把Web瀏覽器指向遠程服務器,但實際上你是把它指向“本地主機”(localhost),這是你本地電腦的特殊名稱。
你要告訴SSH客戶端連接至SSH服務器,建立一條以使用端口8888的筆記本電腦(localhost)為起點、以SSH服務器為終點的隧道,然后數據會轉發到最終目的地網站。
第5步:
建立SSH隧道
在OS X上,這個過程簡單明了,可以用一個命令來代表:
$ ssh -ND 8888 username@server.websitewelcome.com
N選項告訴SSH客戶端,你不想要交互式會話(命令提示),而只想建立一條隧道。D 8888選項要求SSH客戶端建立一條“動態的”端口轉發隧道,使用端口8888。之所以要動態隧道,是因為目的地網站會因訪問的對象而發生變化; 其他端口轉發隧道使用靜態規則,但就上網瀏覽而言,你需要動態規則。發出命令后,系統會提示你輸入密碼,然后什么動靜都沒有。實際上,如果命令奏效,這個端口就會打開,但你不會在Terminal里面收到任何核實信息。OS X用戶可以繼續下一步。
對Windows用戶來說,再次開啟PuTTY,向下翻滾到Connection左邊的Category列表,展開SSH類別,選擇Tunnels。
再選擇Dynamic單選按鈕,在Source port處輸入8888,然后點擊Add。
現在點擊Open按鈕。輸入密碼后,隧道應已建立好。命令提示里面不會出現核實消息。
第6步:
試試新隧道
現在可以試一試新隧道了。啟動Web瀏覽器,訪問What Is My IP Address網站,注意顯示的IP地址。這是你從當前位置(家里、單位、學校或咖啡館)連接時,別人都會看到的公共IP地址。
一旦你改變了Web代理的設置,需要回到該網站上,核實互聯網相信你是從你的SSH服務器來訪問的,核實你在安全上網瀏覽,沒有其他Wi-Fi熱點用戶在竊聽。
IE用戶應進入到Tools菜單,選擇Internet Options。從該對話框中選擇Connections選項卡(左起第五個),點擊底部的LAN Settings按鈕。在這個彈出對話框中,選擇Use a proxy server for your LAN旁邊的復選框。現在點擊Advanced。在'SOCKS'旁邊輸入localhost作為地址,輸入8888作為端口; 其他所有字段都空著。點擊“OK”三次,再次進入到What Is My IP Address網站。你的IP地址現在應體現SSH服務器的地址。
Windows平臺上的Mozilla Firefox用戶應進入到Tools菜單,選擇Options; OS X Firefox用戶應進入到Firefox菜單,選擇Preferences。之后,任何一種平臺的用戶應選擇Advanced類別(齒輪圖標),然后選擇Network選項卡(左起第二個),點擊Settings按鈕。
選擇Manual Proxy Configuration。在'SOCKS Host'旁邊輸入localhost作為地址,輸入8888作為端口; 其他所有字段都空著。如果SOCKS5單選按鈕還沒有選中,請選中。在Windows上,OK點擊兩次; 在OS X上,只要關閉兩個參數設置窗口。再次訪問What Is My IP Address。你的IP地址現在應體現SSH服務器的地址。
OS X 系統上的Safari用戶應進入到Safari菜單,選擇Preferences。選擇Advanced類別(齒輪圖標),然后選擇Proxies旁邊的Change Settings按鈕。這會打開當前網絡連接的System Preferences。在Proxies選項卡上,選中SOCKS Proxy旁邊的復選框,然后輸入localhost作為地址,輸入8888作為端口。點擊OK和應用,然后關閉System Preferences。再次訪問What Is My IP Address。你的IP地址現在應該體現SSH服務器的地址。
第7步:運行你的SSH服務器
要是不想每月付費給主機提供商,該怎么辦呢?你可以運行自己的SSH服務器。但這種方法并不適合每個人—除非你覺得前面的部分很容易理解,否則不要繼續以下步驟。OS X用戶很幸運:SSH服務器內置在操作系統中。只要打開System Preferences,再打開Sharing類別。在Services選項卡下,選擇Remote Login旁邊的復選框(又叫SSH服務器),就搞定了!
而對Windows用戶來說,有許多免費及廉價的SSH服務器可以使用。運行安裝程序,選擇Personal Edition(若是公司用戶,Standard Edition是一個非常好的低成本選擇)。安裝完成后,控制面板會載入,顯示Easy Settings向導程序。采用所有默認值,點擊用藍色高亮顯示的Start WinSSHD鏈接,即可開啟SSH服務器。
第8步:
測試SSH服務器
下一步是測試SSH服務器,需要用到前面介紹過的一些命令。
OS X用戶應輸入下列命令:
$ ssh username@localhost
Windows用戶應開啟PuTTY,輸入localhost作為服務器地址。可以使用用來登錄到筆記本電腦的自有密碼。記住:這是一條新的連接,所以可能會看到核實指紋的提示。如果沒有通過核實,仔細檢查防火墻或其他安全軟件。
接下來,試著從外部連回到你的SSH服務器。在本地電腦上建立一個測試賬戶,請朋友使用該測試賬戶的密碼來測試連接。
現在你明白了當連接至公共Wi-Fi熱點上時,使用安全隧道來上網瀏覽有多么容易——那么,以后千萬不要再在毫無防備的情況下就去上網沖浪嘍!