如果你既關注你的隱私又是在使用Wi-Fi熱點或者其他公共網絡,那么虛擬專用網VPN對你來說是最不可或缺的手段。現在發(fā)展的技術比如安全套接層SSL(為"https"形式的網絡地址提供安全服務),可以防止信息在電腦和郵件服務器或者其他網絡應用上傳輸時被惡意攔截,不過這種保護措施也具有其局限性。
VPN的安全優(yōu)勢
其一,絕大多數的網頁和郵件服務并不提供傳輸加密功能。如果你只是使用POP客戶端檢查來自Comcast、Earthlink或者其他任何網絡服務供應商的郵件,你可能會面臨安全風險。同樣地,你在Google、雅虎或者其他網頁上輸入查詢信息,也會面臨一定的潛在風險。
另外,即使在網站上提供SSL安全保護,但是多數情況下,還是很容易受到被稱為sidejacking的劫持(SideJacking是指籍著嗅探技術,攫取附近WiFi使用者造訪網站時的cookies數據,保存下來作為日后破解使用。被截獲的cookies可用來復制受害者先前建立連接的網站。),它允許任何人進入你的網絡,并且可以輕易讀取你的郵件和系統(tǒng)日志。
就連上個月初召開的黑帽大會上,三名通訊員使用簡易的監(jiān)測工具探取會議發(fā)布計算機網絡,其中一人的密碼也被人竊取了。那么,又有誰知道有多少網絡搜索、即使通訊和電子郵件信息被暴露了呢?假設肇事者不透露半點風聲,這次攻擊也許不會被發(fā)現。
這次事件也讓我們想到了虛擬專用網VPN。虛擬專用網是一種"基于公共數據網,給用戶一種直接連接到私人局域網感覺的服務"。VPN提供用戶一種私人專用(Private)的感覺,因此建立在不安全、不可信任的公共數據網的首要任務是解決安全性問題。VPN的安全性可通過隧道技術、加密和認證技術得到解決。
VPN網絡可以防止人們監(jiān)測Wi-Fi熱點或者你的通訊本地網絡,他們所能看到的也僅僅是被加密的數據包。最重要的是,這種保護能夠延伸到每一個網頁搜索、即使通訊或者郵件收發(fā)。
有許多中小企業(yè)裝備了價格低廉的VPN產品,但是卻暴露了不少安全問題。在VPN中,我們一致認為,使用OpenVPN可以為自己的網絡帶來更可靠的安全保障。OpenVPN是一個用于創(chuàng)建虛擬專用網絡加密通道的軟件包,它允許參與建立VPN的單點使用預設的私鑰,第三方證書,或者用戶名/密碼來進行身份驗證。它還大量使用了OpenSSL加密庫,以及SSLv3/TLSv1協(xié)議。
由于OpenVPN與生俱來便具備了許多安全特性,所以使用OpenVPN自然是不二之選。下面,本文將向你一步步講述如何在兩臺裝有XP機器上設立OpenVPN(一臺作為可靠的服務器,另一臺作為客戶端上網沖浪)。
為動態(tài)IP設立域名和子網
第一步:準備工作
在安裝和配置OpenVPN之前,你需要考慮好幾個問題,才有便于計劃工作的順利開展。首先,如果你的用戶也是在局域網中運行的話,請確保他所擁有的子網與常見IP號碼的區(qū)別。大多數的路由器默認情況下一般都是使用192.168.1.x形式,其實這很容易出問題。如果在Wi-Fi熱點環(huán)境下使用相同的子網,那么會出現IP沖突并導致無法連接網絡的問題。
為了避免這個問題,可以根據實際需要,對子網進行重新編號,比如可以選擇192.168.199.1。當你設置LAN時,要明確你所用到子網不會被其他主機用于連接網絡。我們會在下面的講述中選擇從192.168.199.151開始的11個IP地址。
改變子網
第二步:設置服務器和動態(tài)IP
如果你沒有固定IP并且你的服務器IP也沒有指定的話,那么你需要一個域名映射到你服務器的IP地址上(如果你的服務器擁有固定IP,那么你可以跳過這部分內容直接看下面的第三步)。你可以登陸DynDNS,免費使用他們的動態(tài)DNS服務功能。
DynDNS頁面
為此,你需要先創(chuàng)建一個帳戶和密碼。提醒你注意的是,用戶名和密碼最好是你很容易識記,并且方便你使用的,因為你將會時常用到它們。創(chuàng)建好之后,登陸帳戶,并選擇添加主機服務鏈接。它允許你創(chuàng)建自己的域名,然后自動映射到你的服務器地址。為此,你需要填入一個域名,選擇"脫機主機"選項,然后在頁面底部點擊"創(chuàng)建主機"。我們選擇"openvpndemo.dyndns.org"域名。當然,你可以選擇自己中意的域名(前提是沒有被他人使用)。
添加主機
接下來,下載DynDNS升級軟件(點此下載),并安裝在服務器上(選擇默認安裝方式)。當第一次運行時,它會提示你輸入用戶名和密碼,你直接輸入剛才創(chuàng)建的用戶名和密碼即可。
一旦你輸入了用戶名和密碼,DynDNSUpdater就會顯示你剛才填入的域名,如果顯示無誤,那么直接點擊"應用"按鈕。
dyndns帳戶信息
現在,你已經為你的服務器建立了一個域名。每當服務器IP變化(假設它是動態(tài)設置的),DynDNS就會相應地更新域名系統(tǒng)。(如果這一步你還有什么疑問的話,可以向DynDNS尋求幫助)
dyndnsupdater配置
第三步:安裝和配置OpenVPN
打開OpenVPN的下載頁面并下載該軟件。在大多數情況下,你可能想要下載最新穩(wěn)定版本的安裝程序,因此我們建議你下載OpenVPN-2.1rc9-install.exe。
下載OpenVPN #p#副標題#e#
下載好之后,把它安裝在客戶端和服務器端,并確保使用默認方式安裝。如果WindowsXP會顯示"TAP-Win32"或"ZRTPMiniport"未通過認證的警告信息,你大可不必擔心,當它出現時,只要點下"繼續(xù)執(zhí)行"即可。
管理密鑰
OpenVPN可以為服務器提供對稱密鑰來驗證客戶端,也可以為客戶端驗證服務器。這就使得密鑰管理會變得更加容易,但也會給帶來更多的安全風險。因此,無論如何,請不要選擇對稱密鑰選項。
相反,使用OpenVPN的公開密鑰體系(PKI),可以提供更加可靠的安全保障。使用之前,你需要為服務器和客戶端生成一個權威認證機構(CA)和獨立的密鑰。
為OpenVPN生成和分發(fā)SSL密鑰并不是很簡單的事情,不過幸好OpenVPN有一套密鑰管理腳本,你只需要簡單配置即可完成這一工作。首先,在服務器端打開命令窗口(選擇"開始">"運行",并鍵入"cmd"點擊確定),在打開的命令窗口中,鍵入"cdProgramFilesOpenVPNeasy-rsa"(不包括引號),回車后可以發(fā)現,命令提示符該為了"C:ProgramFilesOpenVPNeasy-rsa>",緊接著輸入如下命令:
init-config
vars
clean-all
build-ca
前三個命令輸入后,系統(tǒng)不會有什么提示,當輸入最后一個命令后,系統(tǒng)就會提示你所有的信息,包括兩個字母的國家代碼和州或者省的代碼。其他信息可以不輸入或者忽略,唯一需要輸入的是共同名稱,比如輸入OpenVPN-CA。至此,你已經成功創(chuàng)建好了密鑰所需的認證機構。
命令窗口中實現操作
現在為服務器創(chuàng)建密鑰,這需要在命令窗口中來實現。
生成證書管理的密鑰
創(chuàng)建服務器密鑰--服務器端
同剛才的命令類似,系統(tǒng)會給你提示一些信息,要求你輸入某些字符。其實你大可忽略這些,包括其中一個要求你輸入密碼的提示信息。唯一不能被忽略的是CommonName字段。當系統(tǒng)征求名稱時,輸入"server";當詢問是否要求認證時,輸入"y";當問及是否要提交時,同樣輸入"y"。創(chuàng)建的這些密鑰對是用在服務器上來使用的。
生成服務器端密鑰
下面將要創(chuàng)建客戶端機器上的密鑰對。同樣地,你也需要在命令窗口中來實現。
創(chuàng)建密鑰的pkcs12--客戶端1
此命令將生成一個密鑰對,而且該密鑰對只能輸入你所選擇的密碼才能進行訪問。同剛才一樣,你可以忽略大部分內容,但是在CommonName字符下,你要輸入"client1"。當它提示輸入密碼時,你可以忽略。當詢問是否要求認證時,輸入"y";當問及是否要提交時,同樣輸入"y"。接下來,系統(tǒng)會要求你輸入和確認登出密碼。這一步相當重要,因為一旦客戶端被控制的話,它可以有效阻止偷盜者訪問VPN網絡。請選擇一些既容易識記又不容易被人猜測到的密碼。
生成客戶端密鑰
現在,你已經成功生成所有客戶端連接VPN服務器所需要的密鑰。找到"C:ProgramFilesOpenVPNeasy-rsakeys"并雙擊,就可以看到所有的密鑰。
密鑰文件夾
下面的工作,就是要把這些密鑰劃分到不同的地方。在這整個密鑰文件夾中,最重要的要數ca.key,它是CA權威認證負責給客戶端生成新密鑰以提供其連接到服務器的驗證請求。如果該文件一旦丟失,那么客戶端就無法實現與VPN服務器的連接;如果該文件被竊取,那么偷盜者也可以利用它來連接服務器。因此,請把該文件設置為最高安全級別,提供可靠的安全保障。
其次,我們也要特別留心以下三個文件:ca.crt,server.crt和server.key。打開服務器"C:ProgramFilesOpenVPNconfig",并復制這三個文件到這個文件夾中。最后,再回到"C:ProgramFilesOpenVPNeasy-rsakeys",找到"client1.p12"文件,復制該文件到客戶端的"C:ProgramFilesOpenVPNconfig"文件夾中。至此,你已經完成設立OpenVPN的密鑰管理部分。
配置OpenVPN
下面,我們要為服務器和客戶端添加配置文件,并更加需要進行一些修改。
首先,下載一個server.ovpn文件和client.ovpn文件。然后對其重新命名,并分別復制到客戶端和服務器端的"C:ProgramFilesopenvpnconfig"文件夾中。
如果你是嚴格按照我們的做法操作,那么這些文件具有你所需要的大部分設置,除此之外,你還需要手動添加幾個文件。首先,在服務器中定位到"C:ProgramFilesopenvpnconfig",打開文件夾中的"server.ovpn"文件(以文檔編輯器打開,或者鼠標右鍵以記事本方式打開)。打開之后,找到文本字符串"server-bridge",并在其右邊有一行大寫字母的字符串,你可以把設置好的參數替代這些字符串。
server.ovpn
替代"DEFAULT.GATEWAY"的是你局域網的默認網關IP,在本文中,我們使用192.168.199.1。替代"SUBNET.MASK"的是子網掩碼,我們使用255.255.255.0。
在前面講述的準備工作中,我們討論過子網IP沖突的問題。"BEGINNING.DHCP.RANGE"可以用來表示起始IP,而"END.DHCP.RANGE"表示中止IP。全部設置好后,該行變成如下形式:
server-bridge192.168.199.1255.255.255.0192.168.199.151192.168.199.161
并請記得保存設置。
接著,就是自定義客戶端上的配置文件了。找到"PLACE.IP.NUMBER.OR.DOMAIN.NAME.HERE"字符串,并根據本文講述,你可以設置成"openvpndemo.dyndns.org"并保存該配置文件。
client.ovpn #p#副標題#e#
完成以上操作后,服務器和客戶端上的"C:ProgramFilesOpenVPNconfig"文件夾應該會如圖所示。
服務器配置文件夾
客戶端配置文件夾
第五步:橋接LAN
安裝好OpenVPN后,網絡連接中會出現一個新的本地連接。在網絡連接窗口的右上方,有個設備名稱一欄,你可以在該欄中找到"TAP-Win32AdapterV9"(若沒有,可以鼠標右鍵,點查看下的詳細信息),選中鼠標并右鍵選中橋接(如圖所示)。
橋接之前
橋接之后
下面,我們可以測試連接是否正常。在服務器桌面或者開始菜單,找到OpenVPN圖標,鼠標右鍵選選擇連接。如果你可以看到以下連接界面,說明一切正常。
服務器連接界面
在客戶端運行OpenVPN之前,請先確保連接上了網絡。然后雙擊運行,并測試連接。當出現連接界面后,系統(tǒng)會提示你輸入密碼。在輸入正確后,你若能看到如下客戶端連接窗口,說明客戶端連接正常。
客戶端連接界面