輕松構(gòu)建自己的OpenVPN家庭服務(wù)器(VMware+Amahi)
原創(chuàng)【51CTO精選譯文】實(shí)不相瞞,我抵擋不住開(kāi)放式Wi-Fi熱點(diǎn)的吸引力。我的智能手機(jī)有數(shù)據(jù)服務(wù)方案,我甚至可以把智能手機(jī)用作我那臺(tái)筆記本電腦的無(wú)線路由器,但無(wú)線的速度比3G快多了,而且通常不會(huì)有相應(yīng)的帶寬限制或額外成本。另一方面,無(wú)線熱點(diǎn)又天生缺乏安全性。這就是為什么每當(dāng)外出時(shí),我經(jīng)常讓那臺(tái)iMac開(kāi)著,那樣就能通過(guò)與家里那臺(tái)服務(wù)器之間通過(guò)SSH加密隧道,上網(wǎng)沖浪。這項(xiàng)技術(shù)用起來(lái)相當(dāng)棒,也相當(dāng)安全。它甚至幫助我在17屆DefCon大會(huì)期間避免被公布在綿羊墻上(51CTO編輯注:Wall of Sheep,又叫恥辱墻,是DefCon大會(huì)上的一個(gè)特色,這面“墻”會(huì)顯示大會(huì)期間采用不安全的協(xié)議使用了Wi-Fi熱點(diǎn)的那些用戶(hù)們的用戶(hù)名和密碼,見(jiàn)下圖)。
比SSH隧道安全更高、功能更多的一種解決方案是,讓你的筆記本電腦成為VPN網(wǎng)絡(luò)的一個(gè)成員。傳統(tǒng)上,VPN是公司實(shí)施的一種安全機(jī)制,旨在讓員工們?cè)谶h(yuǎn)離辦公室時(shí)——或者甚至在同一家公司的遠(yuǎn)程分支機(jī)構(gòu)時(shí),可以全面而安全地訪問(wèn)企業(yè)網(wǎng)絡(luò)。
但你沒(méi)必要是個(gè)大人物才能享用VPN技術(shù)的好處。歸功于免費(fèi)開(kāi)源的OpenVPN,你在家里就能組建起完全屬于你自己的VPN服務(wù)器,然后能夠從你所在的任何地方,安全地訪問(wèn)家庭局域網(wǎng)里面的資源。另外,你只要在OpenVPN配置中稍作幾處細(xì)小調(diào)整,還能使用該服務(wù)器來(lái)安全地上網(wǎng)沖浪,這意味著你可以通過(guò)從筆記本電腦到遠(yuǎn)程O(píng)penVPN服務(wù)器的加密隧道,重新路由發(fā)送所有網(wǎng)絡(luò)流量。
(51CTO編輯注:當(dāng)然了,這樣的策略也同樣適合小型企業(yè)。)
先決條件
你可以將OpenVPN安裝在市面上的任何一款操作系統(tǒng)上,不過(guò)最好是用Linux或*BSD。對(duì)我來(lái)說(shuō),選擇Linux是明擺著的。雖然一開(kāi)始我認(rèn)為自己會(huì)選擇Ubuntu Server,但Amahi Home Server很快因極其容易的安裝和配置而贏得了我的芳心。
說(shuō)到類(lèi)似組建環(huán)境的軟件部分,你其實(shí)只需要一款Linux發(fā)行版。至于硬件部分,配備奔騰3級(jí)處理器、512MB內(nèi)存和20GB硬盤(pán)的這樣一種中規(guī)中矩的設(shè)備完全夠用了。另外,你總是可以為Amahi準(zhǔn)備一個(gè)虛擬機(jī),然后使用該虛擬機(jī)而不是物理機(jī)。實(shí)際上我就是這么做的。
至于虛擬化平臺(tái),我本該選擇免費(fèi)的VirtualBox軟件——順便說(shuō)一下,這款軟件可供Windows、Mac OS X和Linux等主機(jī)使用。但VMware很早就贏得了我的信任。說(shuō)實(shí)話(huà),我使用VMware的技術(shù)也覺(jué)得最自在。我那臺(tái)舊iMac運(yùn)行Mac OS X Snow Leopard,擔(dān)任小型虛擬化主機(jī)的角色完全綽綽有余,于是我開(kāi)始用VMware Fusion構(gòu)建了一臺(tái)Amahi虛擬機(jī)。如果你的主機(jī)電腦運(yùn)行Windows或Linux,又想繼續(xù)使用VMware,那么你可以使用工作站版本或免費(fèi)的VMware Player。
我會(huì)在下文演示如何使用Amahi發(fā)行版來(lái)構(gòu)建完全屬于自己的OpenVPN家庭服務(wù)器,只要遵照七個(gè)步驟,輕輕松松就能搞定。
要想有可能建立起VPN連接,客戶(hù)機(jī)必須處在與服務(wù)器不同的子網(wǎng)。從哪個(gè)子網(wǎng)來(lái)連接你沒(méi)得選擇,不過(guò)可以確保你的OpenVPN服務(wù)器處在一個(gè)不太常見(jiàn)的子網(wǎng),比如10.10.10.*或10.20.30.*等。你只要相應(yīng)地設(shè)置住宅(ADSL)路由器,可能還要重新配置局域網(wǎng)里面使用靜態(tài)IP地址的任何個(gè)人電腦。話(huà)雖如此,在下面的一些屏幕截圖中,你會(huì)看到我們的OpenVPN服務(wù)器處在極其常見(jiàn)的子網(wǎng)192.168.1.*里面。但那是由于我們構(gòu)建的這臺(tái)服務(wù)器只是用于本文演示而已。
#p#
第一步:為Amahi配置一個(gè)新的虛擬機(jī)
如果你碰巧有一臺(tái)備用設(shè)備完全閑置著,那倒是也不需要虛擬化。不過(guò)作為一名不折不扣的虛擬化愛(ài)好者,我很少有閑置硬件,于是很高興開(kāi)始踏上了另一趟愉快的虛擬化之旅。下列屏幕截圖顯示了我那個(gè)Amahi虛擬機(jī)的參數(shù)。
#p#
第二步:為HAD創(chuàng)建配置文件,并下載
Amahi是一款基于Fedora的發(fā)行版,為家庭級(jí)文件服務(wù)器、媒體服務(wù)器和應(yīng)用服務(wù)器而設(shè)計(jì)。Amahi的那些人員喜歡把這類(lèi)服務(wù)器稱(chēng)之為家庭數(shù)字助手(Home Digital Assistant),簡(jiǎn)稱(chēng)HDA。如果你想進(jìn)一步了解Amahi,弄清楚它能夠?yàn)槟愕募彝ゾW(wǎng)絡(luò)做什么,強(qiáng)烈鼓勵(lì)你從其官方網(wǎng)站的這一頁(yè)開(kāi)始好好了解一番。在你開(kāi)始下載Amahi之前,要注冊(cè)一個(gè)免費(fèi)帳戶(hù),為你的HAD創(chuàng)建配置文件。參閱下列屏幕截圖,即可了解更多細(xì)節(jié)。
就我們這個(gè)創(chuàng)建環(huán)境而言,其實(shí)沒(méi)有理由下載安裝DVD。Amahi Express CD完全可以了,可以從這里獲得該光盤(pán),通過(guò)BitTorrent或直接通過(guò)HTTP來(lái)下載。至于選擇32位版本還是64位版,我建議你選擇前者,因?yàn)檫x擇64位版其實(shí)沒(méi)什么優(yōu)點(diǎn)。下載完成后,你就有了一個(gè)名為Amahi-6.1-Express-v1-i386.iso的ISO映像文件。
#p#
第三步:安裝Amahi
安裝Amahi的經(jīng)歷不像你之前可能安裝其他任何Linux發(fā)行版的經(jīng)歷。在本文中這意味著安裝過(guò)程很容易、很快速、很簡(jiǎn)單。參閱下列屏幕截圖即可了解所有細(xì)節(jié)。
#p#
第四步:初始配置
成功安裝Amahi后,你需要通過(guò)其網(wǎng)絡(luò)界面登錄到系統(tǒng)上,更改默認(rèn)的管理員密碼,以及創(chuàng)建一個(gè)或多個(gè)普通用戶(hù)。
#p#
第五步:測(cè)試OpenVPN服務(wù)器
至此,你的家庭OpenVPN(虛擬)服務(wù)器應(yīng)該建立并運(yùn)行起來(lái)。為了測(cè)試它,你就得在家庭局域網(wǎng)的外面。但根本用不著拿起那臺(tái)筆記本電腦奔到外面去,因?yàn)槟憧梢灾苯訌腁mahi網(wǎng)站來(lái)測(cè)試服務(wù)器!
#p#
第六步:下載、安裝和配置適合操作系統(tǒng)的VPN客戶(hù)軟件
你可以從Amahi項(xiàng)目的這個(gè)維基頁(yè)面下載一款合適的OpenVPN客戶(hù)軟件。不管你的筆記本電腦運(yùn)行哪種操作系統(tǒng),客戶(hù)軟件的配置都相當(dāng)容易。
以Windows為例,只要先下載該客戶(hù)軟件,然后安裝并運(yùn)行。
在Mac OS X下安裝VPN客戶(hù)軟件來(lái)得比較復(fù)雜。在Amahi人員建議的兩款客戶(hù)軟件中,我選擇了Tunnelblick,它是開(kāi)源的,而且對(duì)我來(lái)說(shuō)效果始終很好。Amahi維基的這個(gè)頁(yè)面詳細(xì)介紹了安裝和配置方面的操作指南。下面就是我在運(yùn)行Mac OS X Leopard的MacBook上進(jìn)行的一番操作。
首先,我開(kāi)啟Terminal(終端)端口,把最新的Tunnelblick穩(wěn)定版安裝到了我的桌面上。截至本文截稿時(shí),這個(gè)最新穩(wěn)定版是版本3.1.7:
mblack:~ cvar$ cd ~/Desktop mblack:Desktop cvar$ curl -O http://tunnelblick.googlecode.com/files/Tunnelblick_3.1.7.dmg % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 3441k 100 3441k 0 0 706k 0 0:00:04 0:00:04 --:--:-- 802k mblack:Desktop cvar$ mblack:Desktop cvar$ ls -lh Tunnel* -rw-r--r-- 1 cvar staff 3.4M Jul 10 08:43 Tunnelblick_3.1.7.dmg mblack:Desktop cvar$
我從桌面上的那個(gè)*.dmg文件,以平常的方式安裝了Tunnelblick:先打開(kāi)DMG,把Tunnelblick.app拷貝到Applications文件夾?;氐絋erminal(終端)窗口上,我在桌面上創(chuàng)建了一個(gè)名為amahi.tblk的文件夾,切入到該文件夾:
mblack:Desktop cvar$ mkdir amahi.tblk mblack:Desktop cvar$ cd amahi.tblk mblack:amahi.tblk cvar$
按照Amahi維基上的操作指南,我下載了下列三個(gè)文件:
mblack:amahi.tblk cvar$ curl -O http://dl.amahi.org/vpn/AmahiHDAClient.crt % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 3809 100 3809 0 0 6291 0 --:--:-- --:--:-- --:--:-- 14373 mblack:amahi.tblk cvar$ curl -O http://dl.amahi.org/vpn/AmahiHDAClient.key % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 887 100 887 0 0 1364 0 --:--:-- --:--:-- --:--:-- 2889 mblack:amahi.tblk cvar$ curl -O http://dl.amahi.org/vpn/ca-cert.crt % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1257 100 1257 0 0 2072 0 --:--:-- --:--:-- --:--:-- 4054 mblack:amahi.tblk cvar$ mblack:amahi.tblk cvar$ ls -lh total 24 -rw-r--r-- 1 cvar staff 3.7K Jul 10 09:08 AmahiHDAClient.crt -rw-r--r-- 1 cvar staff 887B Jul 10 09:08 AmahiHDAClient.key -rw-r--r-- 1 cvar staff 1.2K Jul 10 09:08 ca-cert.crt mblack:amahi.tblk cvar$
我創(chuàng)建了一個(gè)空文件,并命名為openvpn.ovpn:
mblack:amahi.tblk cvar$ touch openvpn.ovpn mblack:amahi.tblk cvar$ ls -lh total 24 -rw-r--r-- 1 cvar staff 3.7K Jul 10 09:24 AmahiHDAClient.crt -rw-r--r-- 1 cvar staff 887B Jul 10 09:24 AmahiHDAClient.key -rw-r--r-- 1 cvar staff 0B Jul 10 09:27 openvpn.ovpn -rw-r--r-- 1 cvar staff 1.2K Jul 10 09:24 ca-cert.crt mblack:amahi.tblk cvar$
我在TextEdit中打開(kāi)了openvpn.ovpn,把下列內(nèi)容粘貼到里面:
remote delta.yourhda.com 1194 client dev tun proto udp resolv-retry infinite nobind persist-key persist-tun ca Ca-cert.crt cert AmahiHDAClient.crt key AmahiHDAClient.key comp-lzo verb 3 auth-user-pass
當(dāng)然在你這個(gè)例子中,要把“delta”換成為HAD賦予的那個(gè)名字。然后,我保存openvpn.ovpn,退出TextPad,第一次運(yùn)行Tunnelblick。
最后但并非最不重要的一點(diǎn)是,本文是以Linux為例來(lái)演示的。正如你所料,Amahi維基的這個(gè)頁(yè)面詳細(xì)介紹了如何連接到OpenVPN服務(wù)器的操作指南。我遵照了這些簡(jiǎn)單、一般的操作指南,一次是在openSUSE設(shè)備上,另一次是在Ubuntu設(shè)備上。在這兩種情況下,我都成功連接到了遠(yuǎn)程O(píng)penVPN服務(wù)器,沒(méi)有任何問(wèn)題。
#p#
第七步:通過(guò)OpenVPN服務(wù)器,重新路由發(fā)送所有網(wǎng)絡(luò)流量
到現(xiàn)在,你隨時(shí)能夠安全地連接到家庭網(wǎng)絡(luò),訪問(wèn)(ADSL)路由器后面的資源。這相當(dāng)有用,但如果你通過(guò)OpenVPN服務(wù)器還能安全地上網(wǎng)沖浪,那就更棒了。這一點(diǎn)完全能夠做到:你只要在主要的OpenVPN配置文件中作幾處改動(dòng)即可。
從Amahi虛擬機(jī)的文本控制臺(tái),以root用戶(hù)的身份登錄到Fedora,進(jìn)入到/etc/openvpn目錄,用文本編輯器打開(kāi)amahi.conf(nano是個(gè)不錯(cuò)的選擇):
[root@localhost ~]# cd /etc/openvpn/ [root@localhost openvpn]# nano amahi.conf
找到下面這一行
push "route 192.168.1.0 255.255.255.0"
把它注釋掉:
#push "route 192.168.1.0 255.255.255.0"
提醒:你的Amahi可能在不同的子網(wǎng)里面,所以你可能看到的不是192.168.1.0,而是192.168.0.0或10.0.0.0之類(lèi)的子網(wǎng)。就在被注釋掉的那一行下面,插入下列內(nèi)容:
push "redirect-gateway def1"
將變更內(nèi)容保存到amahi.conf,退出編輯器。重新啟動(dòng)OpenVPN服務(wù),就萬(wàn)事大吉了:
[root@localhost openvpn]# /etc/init.d/openvpn restart Shutting down openvpn: [ OK ] Starting openvpn: [ OK ] [root@localhost openvpn]#
祝賀你!現(xiàn)在開(kāi)始,只要你一連接到OpenVPN服務(wù)器,不但可以訪問(wèn)家庭路由器后面的資源,還能夠通過(guò)遠(yuǎn)程家庭服務(wù)器,安全地上網(wǎng)沖浪!
英文原文:http://parabing.com/2011/07/10/build-your-own-openvpn-home-server-in-7-easy-steps/
【編輯推薦】