Openvpn解決方案
OpenVPN簡(jiǎn)介
VPN直譯就是虛擬專用通道,是提供給企業(yè)之間或者個(gè)人與公司之間安全數(shù)據(jù)傳輸的隧道,OpenVPN無疑是Linux下開源VPN的先鋒,提供了良好的性能和友好的用戶GUI。[
OpenVPN允許參與建立VPN的單點(diǎn)使用共享金鑰,電子證書,或者用戶名/密碼來進(jìn)行身份驗(yàn)證。它大量使用了OpenSSL加密庫(kù)中的SSLv3 /TLSv1 協(xié)議函式庫(kù)。OpenVPN能在Solaris、Linux、OpenBSD、FreeBSD、NetBSD、Mac OS X與Windows 上運(yùn)行,并包含了許多安全性的功能。它并不是一個(gè)基于Web的VPN軟件,也不與IPsec及其他VPN軟件包兼容。
虛擬私有網(wǎng)絡(luò)(VPN)隧道是通過Internet隧道技術(shù)將兩個(gè)不同地理位置的網(wǎng)絡(luò)安全的連接起來的技術(shù)。當(dāng)兩個(gè)網(wǎng)絡(luò)是使用私有IP地址的私有局域網(wǎng)絡(luò)時(shí),它們之間是不能相互訪問的,這時(shí)使用隧道技術(shù)就可以使得兩個(gè)子網(wǎng)內(nèi)的主機(jī)進(jìn)行通訊。例如,VPN隧道技術(shù)經(jīng)常被用于大型機(jī)構(gòu)中不同辦公區(qū)域子網(wǎng)的連接。
有時(shí),使用VPN隧道僅僅是因?yàn)樗馨踩?。服?wù)提供商與公司會(huì)使用這樣一種方式架設(shè)網(wǎng)絡(luò),他們將重要的服務(wù)器(如,數(shù)據(jù)庫(kù),VoIP,銀行服務(wù)器)放置到一個(gè)子網(wǎng)內(nèi),僅僅讓有權(quán)限的用戶通過VPN隧道進(jìn)行訪問。如果需要搭建一個(gè)安全的VPN隧道,通常會(huì)選用IPsec,因?yàn)镮Psec VPN隧道被多重安全層所保護(hù)。
VPN (虛擬專用網(wǎng))發(fā)展至今已經(jīng)不在是一個(gè)單純的經(jīng)過加密的訪問隧道了,它已經(jīng)融合了訪問控制、傳輸管理、加密、路由選擇、可用性管理等多種功能,并在全球的信息安全體系中發(fā)揮著重要的作用。也在網(wǎng)絡(luò)上,有關(guān)各種VPN協(xié)議優(yōu)缺點(diǎn)的比較是仁者見仁,智者見智,很多技術(shù)人員由于出于使用目的考慮,包括訪問控制、 安全和用戶簡(jiǎn)單易用,靈活擴(kuò)展等各方面,權(quán)衡利弊,難以取舍;尤其在VOIP語(yǔ)音環(huán)境中,網(wǎng)絡(luò)安全顯得尤為重要,因此現(xiàn)在越來越多的網(wǎng)絡(luò)電話和語(yǔ)音網(wǎng)關(guān)支持VPN協(xié)議。
一. vpn分類
1. 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)行封裝。
2. 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ò)上使用。
3. IPSec
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ù)包路由到最終目的地。
4. SSLVPN
SSL協(xié)議提供了數(shù)據(jù)私密性、端點(diǎn)驗(yàn)證、信息完整性等特性。SSL協(xié)議由許多子協(xié)議組成,其中兩個(gè)主要的子協(xié)議是握手協(xié)議和記錄協(xié)議。握手協(xié)議允許服務(wù)器 和客戶端在應(yīng)用協(xié)議傳輸?shù)谝粋€(gè)數(shù)據(jù)字節(jié)以前,彼此確認(rèn),協(xié)商一種加密算法和密碼鑰匙。在數(shù)據(jù)傳輸期間,記錄協(xié)議利用握手協(xié)議生成的密鑰加密和解密后來交換 的數(shù)據(jù)。
SSL獨(dú)立于應(yīng)用,因此任何一個(gè)應(yīng)用程序都可以享受它的安全性而不必理會(huì)執(zhí)行細(xì)節(jié)。SSL置身于網(wǎng)絡(luò)結(jié)構(gòu)體系的傳輸層和應(yīng)用層之間。此外,SSL本身就被幾乎所有的Web瀏覽器支持。這意味著客戶端不需要為了支持SSL連接安裝額外的軟件。這兩個(gè)特征就是SSL能 應(yīng)用于VPN的關(guān)鍵點(diǎn)。
二. 什么是VPN使用的隧道技術(shù)與隧道協(xié)議
VPN隧道所使用的公共網(wǎng)絡(luò)可以是任何類型的通信網(wǎng)絡(luò)??梢允荌nternet,也可以是企業(yè)內(nèi)部網(wǎng)。為創(chuàng)建隧道,VPN的客戶機(jī)和服務(wù)器必須使用相同的隧道協(xié)議,常用的隧道協(xié)議包括點(diǎn)對(duì)點(diǎn)隧道協(xié)議PPTP、第2層隧道協(xié)議L2TP和安全I(xiàn)P隧道模式IPSec。
按照開放系統(tǒng)互聯(lián)OSI參考模型劃分,隧道技術(shù)可以分為以第2層隧道協(xié)議為基礎(chǔ)的技術(shù)和以第3層隧道協(xié)議為基礎(chǔ)的技術(shù)。第2層隧道協(xié)議對(duì)應(yīng)OSI模型中的數(shù)據(jù)鏈路層,使用幀作為數(shù)據(jù)傳輸單位。PPTP和L2TP協(xié)議屬于第2層隧道協(xié)議,都是將數(shù)據(jù)封裝在點(diǎn)對(duì)點(diǎn)協(xié)議(PPP)的幀中通過Internet發(fā)送。第3層隧道協(xié)議對(duì)應(yīng)OSI模型中的網(wǎng)絡(luò)層,使用包作為數(shù)據(jù)傳輸單位。安全I(xiàn)P隧道模式IPSec屬于第3層隧道協(xié)議,是將數(shù)據(jù)包封裝在附加了IP包頭的新數(shù)據(jù)包中通過IP網(wǎng)絡(luò)傳送。
點(diǎn)對(duì)點(diǎn)隧道協(xié)議(PPTP,Point-to-PointTunnelingProtocol)將點(diǎn)對(duì)點(diǎn)協(xié)議(PPP,Point-to-PointProtocol)的數(shù)據(jù)幀封裝進(jìn)IP數(shù)據(jù)包中,通過TCP/IP網(wǎng)絡(luò)進(jìn)行傳輸。PPTP可以對(duì)IP、IPX或NetBEUI數(shù)據(jù)進(jìn)行加密傳遞。PPTP通過PPTP控制連接來創(chuàng)建、維護(hù)和終止一條隧道,并使用通用路由封裝(GRE,GenericRoutingEncapsulation)對(duì)PPP數(shù)據(jù)幀進(jìn)行封裝。封裝前,PPP數(shù)據(jù)幀的有效載荷(有效傳輸數(shù)據(jù))首先必須經(jīng)過加密、壓縮或是兩者的混合處理。
第2層隧道協(xié)議(L2TP,LayerTwoTunnelingProtocol)是PPTP和第2層轉(zhuǎn)發(fā)技術(shù)(L2F,LayerTwoForward)的結(jié)合。第2層轉(zhuǎn)發(fā)是Cisco公司提出的隧道技術(shù)。為了避免PPTP和L2F兩種互不兼容的隧道技術(shù)在市場(chǎng)上彼此競(jìng)爭(zhēng)給用戶造成困惑和帶來不便,Internet工程任務(wù)委員會(huì)IETF要求將兩種技術(shù)結(jié)合在單一隧道協(xié)議中,并在該協(xié)議中綜合PPTP和L2F兩者的優(yōu)點(diǎn),由此產(chǎn)生了L2TP。L2TP協(xié)議將PPP數(shù)據(jù)幀封裝后,可通過TCP/IP、X.25、幀中繼或ATM等網(wǎng)絡(luò)進(jìn)行傳送。L2TP可以對(duì)IP、IPX或NetBEUI數(shù)據(jù)進(jìn)行加密傳遞。目前,僅定義了基于TCP/IP網(wǎng)絡(luò)的L2TP。L2TP隧道協(xié)議既可用于Internet,也可用于企業(yè)內(nèi)部網(wǎng)。
為了實(shí)現(xiàn)在專用或公共IP網(wǎng)絡(luò)上的安全傳輸,安全I(xiàn)P隧道模式IPSec使用安全方式封裝和加密整個(gè)IP包。它首先對(duì)IP數(shù)據(jù)包進(jìn)行加密,然后將密文數(shù)據(jù)包再次封裝在明文IP包內(nèi),通過網(wǎng)絡(luò)發(fā)送到接收端的VPN服務(wù)器。VPN服務(wù)器對(duì)收到的數(shù)據(jù)包進(jìn)行處理,在去除明文IP包頭,對(duì)內(nèi)容進(jìn)行解密之后,獲得原始的IP數(shù)據(jù)包,再將其路由到目標(biāo)網(wǎng)絡(luò)的接收計(jì)算機(jī)。
在這三種隧道協(xié)議中,點(diǎn)對(duì)點(diǎn)隧道協(xié)議PPTP和第2層隧道協(xié)議L2TP的優(yōu)點(diǎn)是對(duì)用微軟公司操作系統(tǒng)的用戶來說很方便,因?yàn)槲④浌疽寻阉鼈冏鳛槁酚绍浖囊徊糠?;缺點(diǎn)是PPTP和L2TP將不安全的IP數(shù)據(jù)包封裝在安全的IP數(shù)據(jù)包內(nèi)。PPTP和L2TP適用于遠(yuǎn)程訪問虛擬專用網(wǎng)。安全I(xiàn)P隧道模式IPSec的優(yōu)點(diǎn)是它定義了一套用于認(rèn)證、保護(hù)私密和數(shù)據(jù)完整性的標(biāo)準(zhǔn)協(xié)議,缺點(diǎn)是微軟公司對(duì)IPSec的支持不夠。IPSec適用于可信的局域網(wǎng)之間的虛擬專用網(wǎng),即企業(yè)內(nèi)部網(wǎng)VPN應(yīng)用。
OpenVPN
典型的SSL VPN應(yīng)用如OpenVPN,是一個(gè)比較好的開源軟件。PPTP主要為那些經(jīng)常外出移動(dòng)或家庭辦公的用戶考慮;而OpenVPN主要是針對(duì)企業(yè)異地兩地總分公司之間的VPN不間斷按需連接,例如ERP在企業(yè)中的應(yīng)用。
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ù)交換到磁盤。
OpenVPN通過PKCS#11支持硬件加密標(biāo)識(shí),如智能卡。
三. 環(huán)境部署
操作系統(tǒng):centos6.6
應(yīng)用軟件:openvpn,http(測(cè)試用),ntp,rsync或者scp(用來分發(fā)證書)
系統(tǒng)數(shù)量:3
具體應(yīng)用:web(192.168.10.2)、vpn(eth0:192.168.10.1 eth1:20.20.20.1)client(20.20.20.2)
部署目標(biāo):client能夠訪問web。
前期準(zhǔn)備:在配置網(wǎng)段的時(shí)候,前期要先把應(yīng)用軟件都裝上,防止配置完ip無法連接yum,關(guān)閉selinux和iptables。
實(shí)現(xiàn)思路:
安裝openvpn軟件
CA配置
自簽名證書
為 bj-vpnserver 簽發(fā)證書
為 運(yùn)維人員簽發(fā)證書(可以復(fù)用)
四. 實(shí)際部署
安裝軟件(web,vpnserver,vpnclient)
web(略:yum安裝,寫個(gè)測(cè)試頁(yè),啟動(dòng)服務(wù))
ip配置(略:詳情請(qǐng)見ip具體應(yīng)用)
[vpnserver and vpnclient]
[root@vpnserver ~]# yum -y install openvpn
[vpnserver]
[root@vpnserver /]# cd /usr/share/doc/openvpn-2.0.9/easy-rsa/ [root@vpnserver easy-rsa]# chmod +x * [root@vpnserver easy-rsa]# vim vars
export KEY_COUNTRY=CN
export KEY_PROVINCE=BJ
export KEY_CITY=BJ
export KEY_ORG="bj-vpnserver"
export KEY_EMAIL="test@126.com"
[root@vpnserver easy-rsa]# source vars
NOTE: when you run ./clean-all, I will be doing a rm -rf on /usr/share/doc/openvpn-2.0.9/easy-rsa/keys
[root@vpnserver easy-rsa]#
[root@vpnserver easy-rsa]# source vars
[root@vpnserver easy-rsa]# ./clean-all
[root@vpnserver easy-rsa]# ./build-ca //生成ca根私鑰和根證書,別的選項(xiàng)都默認(rèn)
Common Name (eg, your name or your server"s hostname) []:ca
[root@vpnserver easy-rsa]# ./build-key-server server 為服務(wù)器端生成證書和秘鑰 [server 默認(rèn)]
Generating a 1024 bit RSA private key
..............................................................++++++
........++++++
writing new private key to "server.key"
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ".", the field will be left blank.
-----
Country Name (2 letter code) [CN]:
State or Province Name (full name) [BJ]:
Locality Name (eg, city) [BJ]:
Organization Name (eg, company) [bj-vpnserver]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server"s hostname) []:bj-server
Email Address [test@126.com]:
Please enter the following "extra" attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /usr/share/doc/openvpn-2.0.9/easy-rsa/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject"s Distinguished Name is as follows
countryName :PRINTABLE:"CN"
stateOrProvinceName :PRINTABLE:"BJ"
localityName :PRINTABLE:"BJ"
organizationName :PRINTABLE:"bj-vpnserver"
commonName :PRINTABLE:"bj-server"
emailAddress :IA5STRING:"test@126.com"
Certificate is to be certified until Jul 3 12:31:22 2026 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
[root@vpnserver easy-rsa]#
2. vpnclient 簽發(fā)證書
[root@bj-vpnserver easy-rsa]# ./build-key client1 //client1自定義證書名
Common Name (eg, your name or your server"s hostname) []:client1
3. 創(chuàng)建密鑰協(xié)商文件 迪菲?赫爾曼密鑰
[root@vpnserver easy-rsa]# ./build-dh [root@vpnserver easy-rsa]# ls keys/ 01.pem ca.key client1.key index.txt.attr serial server.csr 02.pem client1.crt dh1024.pem index.txt.attr.old serial.old server.key ca.crt client1.csr index.txt index.txt.old server.crt [root@vpnserver easy-rsa]# pwd /usr/share/doc/openvpn-2.0.9/easy-rsa [root@vpnserver easy-rsa]# cd keys/ [root@vpnserver keys]# cp ca.crt server.key server.crt dh1024.pem /etc/openvpn/ [root@vpnserver keys]# ls /etc/openvpn/ ca.crt dh1024.pem server.crt server.key [root@vpnserver keys]#
4. 修改openvpn
[root@vpnserver keys]# cp /usr/share/doc/openvpn-2.0.9/sample-config-files/server.conf /etc/openvpn/ [root@vpnserver keys]# vim /etc/openvpn/server.conf
local 20.20.20.1 //vpn服務(wù)器提供服務(wù)的IP
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.8.0.0 255.255.255.0 //隧道tun網(wǎng)絡(luò)
ifconfig-pool-persist ipp.txt
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100
push "route 192.168.10.0 255.255.255.0" //為所有客戶添加到北京內(nèi)網(wǎng)1的路由
push "route 192.168.20.0 255.255.255.0" //為所有客戶添加到北京內(nèi)網(wǎng)2的路由
client-config-dir ccd
;route 10.9.0.0 255.255.255.252
;learn-address ./script
;push "redirect-gateway"
;push "dhcp-option DNS 10.8.0.1"
;push "dhcp-option WINS 10.8.0.1"
;client-to-client
;duplicate-cn //是否允許證書復(fù)用
keepalive 10 120
;tls-auth ta.key 0 # This file is secret
;cipher BF-CBC # Blowfish (default)
;cipher AES-128-CBC # AES
;cipher DES-EDE3-CBC # Triple-DES
comp-lzo
max-clients 100
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
log openvpn.log
verb 3
mute 20
5.開啟路由轉(zhuǎn)發(fā)
[root@bj-vpnserver ~]# vim /etc/sysctl.conf net.ipv4.ip_forward = 1 [root@bj-vpnserver ~]# sysctl -p
6. 開啟服務(wù)
[root@vpnserver ~]# service openvpn start [root@vpnserver ~]# chkconfig openvpn on
7. 查看ip
[root@vpnserver keys]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 52:54:d0:cd:4b:2d brd ff:ff:ff:ff:ff:ff inet 192.168.122.15/24 brd 192.168.122.255 scope global eth0 inet6 fe80::5054:d0ff:fecd:4b2d/64 scope link valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 52:54:00:fb:18:d2 brd ff:ff:ff:ff:ff:ff inet 20.20.20.1/24 brd 20.20.20.255 scope global eth1 inet6 fe80::5054:ff:fefb:18d2/64 scope link valid_lft forever preferred_lft forever
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
link/[65534]
inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
8. 將client證書導(dǎo)入client
vpnclient
[root@vpnclient ~]# cp /usr/share/doc/openvpn-2.0.9/sample-config-files/client.conf /etc/openvpn/
vpnserver
[root@vpnserver keys]# scp ca.crt client1.crt client1.key root@20.20.20.2:/etc/openvpn/ The authenticity of host "20.20.20.2 (20.20.20.2)" can"t be established. RSA key fingerprint is e4:30:be:43:07:0d:0c:a4:87:60:84:38:f8:ac:b8:04. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added "20.20.20.2" (RSA) to the list of known hosts. root@20.20.20.2"s password: ca.crt 100% 1139 1.1KB/s 00:00 client1.crt 100% 3405 3.3KB/s 00:00 client1.key 100% 916 0.9KB/s 00:00 [root@vpnserver keys]# [root@vpnclient ~]# ls /etc/openvpn/ ca.crt client1.crt client1.key client.conf
9. 配置vpnclient配置文件
[root@vpnclient ~]# ls /etc/openvpn/ ca.crt cd-client1.crt cd-client1.key [root@vpnclient ~]# vim /etc/openvpn/client.conf client dev tun ;dev-node MyTap proto udp remote 20.20.20.1 1194 //撥號(hào)地址==》vpnserver ;remote-random nobind user nobody group nobody persist-key persist-tun ;http-proxy-retry # retry on connection failures ;http-proxy [proxy server] [proxy port #] ;mute-replay-warnings ca ca.crt cert cd-client1.crt key cd-client1.key ;ns-cert-type server ;tls-auth ta.key 1 ;cipher x comp-lzo verb 3 mute 20
10. vpnclient啟動(dòng)
root@vpnclient openvpn]# service openvpn restart Shutting down openvpn: [ OK ] Starting openvpn: [ OK ] [root@vpnclient openvpn]# chkconfig openvpn on
注:證書錯(cuò)誤啟動(dòng)會(huì)出錯(cuò)。
11.查看ip
[root@vpnclient openvpn]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 52:54:f0:af:44:0f brd ff:ff:ff:ff:ff:ff inet 20.20.20.2/24 brd 20.20.20.255 scope global eth0 inet6 fe80::5054:f0ff:feaf:440f/64 scope link valid_lft forever preferred_lft forever
3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
link/[65534]
inet 10.8.0.6 peer 10.8.0.5/32 scope global tun0
12. 測(cè)試
[root@vpnclient openvpn]# curl 192.168.10.2 web test
五. windows訪問
安裝openvpn
openvpn-install-X.X.X.X-x86_64.exe
2.證書文件 ca.crt cd-client1.crt cd-client1.key導(dǎo)入
C:\Program Files\OpenVPN\config
3. 建立配置文件
默認(rèn)不存在,需要去上層目錄去尋找
C:\Program Files\OpenVPN\config\client.ovpn client dev tun proto udp remote 20.20.20.1 1194 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert cd-client2.crt key cd-client2.key ns-cert-type server cipher BF-CBC comp-lzo verb 3 mute 20
client.ovpn目錄sample-config
正常啟動(dòng)過程
雙擊桌面圖標(biāo),就可以訪問了,如果需要連接多個(gè)vpn,就需要重復(fù)上述步驟,并且把.ovpn的文件復(fù)制并改名,然后修改配置文件內(nèi)容就可以了,如果連接不上可能是ntp有問題。
上一篇:無