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