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