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