openVPN應用指南
51CTO
撫琴煮酒
摘要: openVPN作為企業(yè)內(nèi)網(wǎng)的一個入口,我們不建議作DMZ映射,其實僅僅只需要映射一個內(nèi)網(wǎng)IP的1194的TCP和UDP即可,效果也非常好;而且我建議openVPN的外網(wǎng)IP為電信的比較好,這樣速度能得到保證。
Abstract:
Key words :
目前VPN" title="openVPN">openVPN在企業(yè)中的應用部署,我總結(jié)了其應用范疇:
一、使用openVPN實現(xiàn)網(wǎng)通、電信機房快速、安全通信(需要至少一臺電信和網(wǎng)通的雙線服務器,CDN系統(tǒng)的首選)
二、使用openVPN作為公司的遠程辦公環(huán)境,可與PPTPD服務器作為互備(openVPN這時可選擇網(wǎng)橋和路由模式)
三、openVPN可以穿透一些頑固型的防火墻,直接訪問其后的局域網(wǎng)環(huán)境中的資源(這點就比較強悍,具體作用看我們在企中的需求了)
四、使用openVPN作為“翻墻”軟件,游戲及Facebook還有被和諧的網(wǎng)站;
openVPN安全
openVPN作為企業(yè)內(nèi)網(wǎng)的一個入口,我們不建議作DMZ映射,其實僅僅只需要映射一個內(nèi)網(wǎng)IP的1194的TCP和UDP即可,效果也非常好;而且我建議openVPN的外網(wǎng)IP為電信的比較好,這樣速度能得到保證。
關(guān)于用戶證書的有效期限
一般來說,我們在服務器端使用命令 build-key * 建立client用戶的時候,系統(tǒng)默認client用戶的key的有效期限為10年的,如何更改這個有效期限呢,其實可以修改 build-key.bat文件 就可以實現(xiàn).方法是
右擊 easy-rsa 目錄下的 build-key.bat 文件 ,選擇 編輯 , 查找 -days ,把后面的 3650 修改成你想要的有效期限,保存后再使用 build-key * 生成的client用戶的期限就會變成你想要的期限了,過期了key文件是登陸不了服務器的。
我嘗試過另外一種做法,更改openssl.conf文件也可以達到更改默認有效期為10年
openVPN的負載均衡
首先在不同的地方或者不同ip的服務器配置相同vpn服務器,方法是首先在其中A服務器上配置好一個vpn服務器,然后把 整個 openVPN文件夾備份 ,然后在B服務器上先安裝一個openvpn,再把之前A服務器上備份的 openvpn文件夾里面 的文件拷貝到 B服務器,覆蓋掉原來的,這樣兩個服務器的配置是相同的.多個服務器如法炮制.
然后在客戶端配置文件上加上remote A服務器ip 端口 //如 remote 201.3.31.1 443 remote B服務器ip 端口 . . . . . . remote-random //這個為隨機選擇服務器登陸,要是A服務器登陸不了或者掉線,會自動嘗試登陸B(tài)服務器的,從而實現(xiàn)負載均衡
以上部分資料參考了熊茂林的文章
我個人覺得這辦法麻煩,所以單獨配置了一臺PPTPD服務器,采用的網(wǎng)通IP,作為openVPN的備份,如果同事們在家移動辦公時,因為機房電信線路出問題時,可用pptpd網(wǎng)通服務器登陸,這樣不影響工作;但有一個比較悲劇的是,pptpd的穿透很弱,一般的家用路由器都不支持GRE,所以大家都愿意選擇openVPN。
常見軟件VPN介紹:
PPTP
點對點隧道協(xié)議 (PPTP) 是由包括微軟和3Com等公司組成的PPTP論壇開發(fā)的一種點對點隧道協(xié),基于撥號使用的PPP協(xié)議使用PAP或CHAP之類的加密算法,或者使用 Microsoft的點對點加密算法MPPE。其通過跨越基于 TCP/IP 的數(shù)據(jù)網(wǎng)絡創(chuàng)建 VPN 實現(xiàn)了從遠程客戶端到專用企業(yè)服務器之間數(shù)據(jù)的安全傳輸。PPTP 支持通過公共網(wǎng)絡(例如 Internet)建立按需的、多協(xié)議的、虛擬專用網(wǎng)絡。PPTP 允許加密 IP 通訊,然后在要跨越公司IP 網(wǎng)絡或公共IP網(wǎng)絡(如Internet)發(fā)送的 IP 頭中對其進行封裝。
L2TP
第2 層隧道協(xié)議 (L2TP) 是IETF基于L2F (Cisco的第二層轉(zhuǎn)發(fā)協(xié)議)開發(fā)的PPTP的后續(xù)版本。是一種工業(yè)標準 Internet 隧道協(xié)議,其可以為跨越面向數(shù)據(jù)包的媒體發(fā)送點到點協(xié)議 (PPP) 框架提供封裝。PPTP和L2TP都使用PPP協(xié)議對數(shù)據(jù)進行封裝,然后添加附加包頭用于數(shù)據(jù)在互聯(lián)網(wǎng)絡上的傳輸。PPTP只能在兩端點間建立單一隧道。 L2TP支持在兩端點間使用多隧道,用戶可以針對不同的服務質(zhì)量創(chuàng)建不同的隧道。L2TP可以提供隧道驗證,而PPTP則不支持隧道驗證。但是當L2TP 或PPTP與IPSEC共同使用時,可以由IPSEC提供隧道驗證,不需要在第2層協(xié)議上驗證隧道使用L2TP。 PPTP要求互聯(lián)網(wǎng)絡為IP網(wǎng)絡。L2TP只要求隧道媒介提供面向數(shù)據(jù)包的點對點的連接,L2TP可以在IP(使用UDP),楨中繼永久虛擬電路 (PVCs),X.25虛擬電路(VCs)或ATM VCs網(wǎng)絡上使用。
IPSec
隧道模式隧道是封裝、路由與解封裝的整個過程。隧道將原始數(shù)據(jù)包隱藏(或封裝)在新的數(shù)據(jù)包內(nèi)部。該新的數(shù)據(jù)包可能會有新的尋址與路由信息,從而使其能夠通 過網(wǎng)絡傳輸。隧道與數(shù)據(jù)保密性結(jié)合使用時,在網(wǎng)絡上竊聽通訊的人將無法獲取原始數(shù)據(jù)包數(shù)據(jù)(以及原始的源和目標)。封裝的數(shù)據(jù)包到達目的地后,會刪除封 裝,原始數(shù)據(jù)包頭用于將數(shù)據(jù)包路由到最終目的地。
隧道本身是封裝數(shù)據(jù)經(jīng)過的邏輯數(shù)據(jù)路徑,對原始的源和目的端,隧道是不可見的,而只能看到網(wǎng)絡路徑中的點對點連接。連接雙方并不關(guān)心隧道起點和終點之間的任何路由器、交換機、代理服務器或其他安全網(wǎng)關(guān)。將隧道和數(shù)據(jù)保密性結(jié)合使用時,可用于提供VPN。
封裝的數(shù)據(jù)包在網(wǎng)絡中的隧道內(nèi)部傳輸。在此示例中,該網(wǎng)絡是 Internet。網(wǎng)關(guān)可以是外部 Internet 與專用網(wǎng)絡間的周界網(wǎng)關(guān)。周界網(wǎng)關(guān)可以是路由器、防火墻、代理服務器或其他安全網(wǎng)關(guān)。另外,在專用網(wǎng)絡內(nèi)部可使用兩個網(wǎng)關(guān)來保護網(wǎng)絡中不信任的通訊。
當以隧道模式使用IPSec時,其只為為IP通訊提供封裝。使用IPSec隧道模式主要是為了與其他不支持IPSec上的L2TP或PPTP VPN隧道技術(shù)的路由器、網(wǎng)關(guān)或終端系統(tǒng)之間的相互操作。
OpenVPN
openVPN允許參與建立VPN的單點使用預設的私鑰,第三方證書,或者用戶名/密碼來進行身份驗證。它大量使用了OpenSSL加密庫,以及SSLv3/TLSv1 協(xié)議。OpenVPN能在Linux、xBSD、Mac OS X與Windows 2000/XP上運行。它并不是一個基于Web的VPN軟件,也不與IPsec及其他VPN軟件包兼容。
隧道加密:OpenVPN使用OpenSSL庫加密數(shù)據(jù)與控制信息:它使用了OpesSSL的加密以及驗證功能,意味著,它能夠使用任何OpenSSL支持的算法。 它提供了可選的數(shù)據(jù)包HMAC功能以提高連接的安全性。此外,OpenSSL的硬件加速也能提高它的性能。
驗證:OpenVPN提供了多種身份驗證方式,用以確認參與連接雙方的身份,包括:預享私鑰,第三方證書以及用戶名/密碼組合。預享密鑰最為簡單,但同時它 只能用于建立點對點的VPN;基于PKI的第三方證書提供了最完善的功能,但是需要額外的精力去維護一個PKI證書體系。OpenVPN2.0后引入了用 戶名/口令組合的身份驗證方式,它可以省略客戶端證書,但是仍有一份服務器證書需要被用作加密.
網(wǎng)絡:OpenVPN所有的通信都基于一個單一的IP端口,默認且推薦使用UDP協(xié)議通訊,同時TCP也被支持。OpenVPN連接能通過大多數(shù)的代理服務 器,并且能夠在NAT的環(huán)境中很好地工作。服務端具有向客戶端“推送”某些網(wǎng)絡配置信息的功能,這些信息包括:IP地址、路由設置等。OpenVPN提供 了兩種虛擬網(wǎng)絡接口:通用Tun/Tap驅(qū)動,通過它們,可以建立三層IP隧道,或者虛擬二層以太網(wǎng),后者可以傳送任何類型的二層以太網(wǎng)絡數(shù)據(jù)。傳送的數(shù) 據(jù)可通過LZO算法壓縮。IANA(Internet Assigned Numbers Authority)指定給OpenVPN的官方端口為1194。OpenVPN 2.0以后版本每個進程可以同時管理數(shù)個并發(fā)的隧道。
OpenVPN使用通用網(wǎng)絡協(xié)議(TCP與UDP)的特點使它成為IPsec等協(xié)議的理想替代,尤其是在ISP(Internet service provider)過濾某些特定VPN協(xié)議的情況下。在選擇協(xié)議時候,需要注意2個加密隧道之間的網(wǎng)絡狀況,如有高延遲或者丟包較多的情況下,請選擇 TCP協(xié)議作為底層協(xié)議,UDP協(xié)議由于存在無連接和重傳機制,導致要隧道上層的協(xié)議進行重傳,效率非常低下。
安全:OpenVPN與生俱來便具備了許多安全特性:它在用戶空間運行,無須對內(nèi)核及網(wǎng)絡協(xié)議棧作修改;初始完畢后以chroot方式運行,放棄root權(quán)限; 使用mlockall以防止敏感數(shù)據(jù)交換到磁盤。
此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。