10
Mar.2011
提起VPN,估計大多數人都會想到各大廠商的硬件設備。其實,VPN還有另外一大家族:軟件VPN。通過軟件的部署,實現Virtual Private Network的功能。這篇文章將講述如何利用OpenVPN實現SSL VPN。OPENVPN是近年新出現的一個基於開源軟件體系的VPN項目(www.openvpn.net),具備SSL VPN解決方案的全部特征,支持靈活的客戶端認證方式、分組權限控制,負載平衡,容錯技術等。此外,它還有支持平臺多的優點,包括windows,linux,bsd,mac os等。
需要說明的是OpenVPN與其它常見的SSL VPN產品不同,不是一個基於web瀏覽器的VPN產品,而是一個全功能的VPN解決方案,支持所有協議,甚至IPX。
現在我們通過假設一個簡單的網絡環境,展示OpenVPN的強大和易用:某公司職員在外出差,計劃利用互聯網與公司內部網絡進行數據交互,並且利用VPN技術保證數據的安全性。其網絡結構如下:
OpenVPN作為一款完善、穩定的VPN軟件,完全可以勝任此項任務。其有兩種安全模式,一種是預先共享的靜態密鑰(Static Key)方式,另一種是基於使用SSL/TLS的RSA證書和密鑰的方式。前者具有配置簡單,無需維護X509 PKI的優點,但限制了用戶數量,只支持一對一的連接方式,此外,客戶端必須預先部署靜態密鑰,安全性也不夠高;後者則保證了安全性,但需要額外維護PKI,相對前者配置比較復雜。在企業環境中,推薦使用在此RSA證書和密鑰的方式進行安全認證。為了方便,我們在此選用靜態密鑰方式權當拋磚引玉。
一、軟件下載及安裝
架設VPN之前,我們需要從http://openvpn.net/download.html下載安裝程序。目前 OpenVPN的最新版本是2010.11.09發布的2.1.4版和OpenVPN 2.1.4 -- released on 2010.11.09版。假設Firewall服務器和客戶端都使用了windows操作系統(當然其他操作系統也與此類似),我們需要下載僅幾M的openvpn-2.1.4-install.exe。
服務器和客戶端都需要安裝OpenVPN程序。按照windows的傳統,一路“NEXT” 就可以成功安裝。期間,可能會彈出“TAP-Win32 Adapter V8網卡驅動沒有通過徽標測試”的警告,點擊“仍然繼續”忽略此即可。安裝後,系統會多增加TAP-Win32 Adapter V8的虛擬網卡(無VPN連接時,狀態為斷開)。
二、生成靜態密鑰文件
此安全模式的關鍵是一個2048 bit OpenVPN static key。生成操作很簡單,點擊以下快捷方式就會隨機產生一個2048位的靜態密鑰文件(key.txt)並保存在OpenVPN目錄下的config文件夾:
開始 -> 程序 -> OpenVPN ->Generate a static OpenVPN key。
然後把key.txt分別部署到服務器和客戶端的config文件夾。
三、修改配置文件
程序安裝時,OpenVP自帶了兩種配置文件範例保存在sample-config文件夾下,並把擴展名.ovpn與記事本notepad進行了關聯。sample.ovpn是在靜態密鑰方式下的配置文件範例,我們只需要簡單的修改一下就可以達到我們的需要:
(1) 遠程服務器設置 (第8行remote myremote)如果是客戶端,則把myremote用服務器的地址來代替;如果是服務端,則應把此行用“;”或“#”號註釋掉,否則會出現” Cannot resolve host address: myremote: [HOST_NOT_FOUND] The specified host is unknown.”的錯誤提示。
(2) 連接方式(第34行 dev tap)由於本實驗使用點對點IP連接,故把此行改為dev tun 。相應的,註釋掉tap的配置信息,取消tun兩條配置信息(tun-mtu和ifconfig)的註釋使其生效,並對ifconfig的兩個IP進行配置。其中,前一個IP地址(默認為10.3.0.1)為本機在虛擬局域網中的IP地址(非本地真實IP),第二個IP地址(默認為10.3.0.2)為遠程計算機在虛擬局域網中的IP地址。需要說明的是,虛擬局域網的IP分配並不是隨意的,不能與本地和遠程的計算機所在局域網的IP段沖突,否則就會造成路由混亂,無法正常通訊。我們在此試驗中,保持默認IP不變。
(3) 除以上兩點需要修改外,其他選項可以按需要修改,比如是通訊端口,靜態密鑰文件,是否采用壓縮等。
四、防火墻配置
請確保OpenVPN服務段的UDP1149端口開放。
事實證明,95%以上的連接問題都是由防火墻引起的。
五、VPN測試
右擊配置文件,選擇“Start OpenVPN on this config file”,分別啟動服務端和客戶端,虛擬網卡的狀態會由斷開轉為正常。成功連接後,OpenVPN會根據配置文件自動分配IP給虛擬網卡(請確保系統的DHCP Client服務啟動,否則會不能獲得IP)。
為了驗證VPN已經建立,可以使用ping 命令測試一下。
在此基礎上,簡單的配置一下路由信息,就可以讓VPN客戶端訪問VPN服務端所在網段的全部資源。由此可見,OpenVPN的配置是很簡單的,即使通過基於使用SSL/TLS的RSA證書和密鑰進行認證也不是很復雜。
OpenVPN實現了利用SSL來保證網絡通訊安全性的目的,同時避免了當前大多數SSL VPN產品僅提供簡單的web應用的不足。雖然,此方案丟掉了“零客戶端”的光環,但也因此得到了功能上的增強,是一個不錯的產品。Catalis的資深工程師Duffy說:“在這個項目中Catalis惟一的投資就是花費時間。”如果你只需要最基本的、可靠的安全策略和基本的訪問方式,對其他方面無特別的要求,那麽免費的OpenVPN或許是一個不錯的選擇。
需要說明的是OpenVPN與其它常見的SSL VPN產品不同,不是一個基於web瀏覽器的VPN產品,而是一個全功能的VPN解決方案,支持所有協議,甚至IPX。
現在我們通過假設一個簡單的網絡環境,展示OpenVPN的強大和易用:某公司職員在外出差,計劃利用互聯網與公司內部網絡進行數據交互,並且利用VPN技術保證數據的安全性。其網絡結構如下:
OpenVPN作為一款完善、穩定的VPN軟件,完全可以勝任此項任務。其有兩種安全模式,一種是預先共享的靜態密鑰(Static Key)方式,另一種是基於使用SSL/TLS的RSA證書和密鑰的方式。前者具有配置簡單,無需維護X509 PKI的優點,但限制了用戶數量,只支持一對一的連接方式,此外,客戶端必須預先部署靜態密鑰,安全性也不夠高;後者則保證了安全性,但需要額外維護PKI,相對前者配置比較復雜。在企業環境中,推薦使用在此RSA證書和密鑰的方式進行安全認證。為了方便,我們在此選用靜態密鑰方式權當拋磚引玉。
一、軟件下載及安裝
架設VPN之前,我們需要從http://openvpn.net/download.html下載安裝程序。目前 OpenVPN的最新版本是2010.11.09發布的2.1.4版和OpenVPN 2.1.4 -- released on 2010.11.09版。假設Firewall服務器和客戶端都使用了windows操作系統(當然其他操作系統也與此類似),我們需要下載僅幾M的openvpn-2.1.4-install.exe。
服務器和客戶端都需要安裝OpenVPN程序。按照windows的傳統,一路“NEXT” 就可以成功安裝。期間,可能會彈出“TAP-Win32 Adapter V8網卡驅動沒有通過徽標測試”的警告,點擊“仍然繼續”忽略此即可。安裝後,系統會多增加TAP-Win32 Adapter V8的虛擬網卡(無VPN連接時,狀態為斷開)。
二、生成靜態密鑰文件
此安全模式的關鍵是一個2048 bit OpenVPN static key。生成操作很簡單,點擊以下快捷方式就會隨機產生一個2048位的靜態密鑰文件(key.txt)並保存在OpenVPN目錄下的config文件夾:
開始 -> 程序 -> OpenVPN ->Generate a static OpenVPN key。
然後把key.txt分別部署到服務器和客戶端的config文件夾。
三、修改配置文件
程序安裝時,OpenVP自帶了兩種配置文件範例保存在sample-config文件夾下,並把擴展名.ovpn與記事本notepad進行了關聯。sample.ovpn是在靜態密鑰方式下的配置文件範例,我們只需要簡單的修改一下就可以達到我們的需要:
(1) 遠程服務器設置 (第8行remote myremote)如果是客戶端,則把myremote用服務器的地址來代替;如果是服務端,則應把此行用“;”或“#”號註釋掉,否則會出現” Cannot resolve host address: myremote: [HOST_NOT_FOUND] The specified host is unknown.”的錯誤提示。
(2) 連接方式(第34行 dev tap)由於本實驗使用點對點IP連接,故把此行改為dev tun 。相應的,註釋掉tap的配置信息,取消tun兩條配置信息(tun-mtu和ifconfig)的註釋使其生效,並對ifconfig的兩個IP進行配置。其中,前一個IP地址(默認為10.3.0.1)為本機在虛擬局域網中的IP地址(非本地真實IP),第二個IP地址(默認為10.3.0.2)為遠程計算機在虛擬局域網中的IP地址。需要說明的是,虛擬局域網的IP分配並不是隨意的,不能與本地和遠程的計算機所在局域網的IP段沖突,否則就會造成路由混亂,無法正常通訊。我們在此試驗中,保持默認IP不變。
(3) 除以上兩點需要修改外,其他選項可以按需要修改,比如是通訊端口,靜態密鑰文件,是否采用壓縮等。
四、防火墻配置
請確保OpenVPN服務段的UDP1149端口開放。
事實證明,95%以上的連接問題都是由防火墻引起的。
五、VPN測試
右擊配置文件,選擇“Start OpenVPN on this config file”,分別啟動服務端和客戶端,虛擬網卡的狀態會由斷開轉為正常。成功連接後,OpenVPN會根據配置文件自動分配IP給虛擬網卡(請確保系統的DHCP Client服務啟動,否則會不能獲得IP)。
為了驗證VPN已經建立,可以使用ping 命令測試一下。
在此基礎上,簡單的配置一下路由信息,就可以讓VPN客戶端訪問VPN服務端所在網段的全部資源。由此可見,OpenVPN的配置是很簡單的,即使通過基於使用SSL/TLS的RSA證書和密鑰進行認證也不是很復雜。
OpenVPN實現了利用SSL來保證網絡通訊安全性的目的,同時避免了當前大多數SSL VPN產品僅提供簡單的web應用的不足。雖然,此方案丟掉了“零客戶端”的光環,但也因此得到了功能上的增強,是一個不錯的產品。Catalis的資深工程師Duffy說:“在這個項目中Catalis惟一的投資就是花費時間。”如果你只需要最基本的、可靠的安全策略和基本的訪問方式,對其他方面無特別的要求,那麽免費的OpenVPN或許是一個不錯的選擇。
calvinwu
2011-3-10 12:48
請本文作者和我聯繫,謝謝!
分頁: 1/1
1
1


















免費VPN及在線代理 - 好代理
最新好用的加密在線代理 - Aniscartujo

