張 偉,王鳳英
(山東理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山東 淄博 255049)
GREoverIPsecVPN結(jié)合NAT的構(gòu)建方案研究與實(shí)現(xiàn)
張 偉,王鳳英
(山東理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山東 淄博 255049)
IPSec和GRE均為構(gòu)建虛擬專用網(wǎng)所采用的技術(shù),其自身都有其局限性,IPSec不支持廣播、組播和非IP數(shù)據(jù)流,而GRE不支持?jǐn)?shù)據(jù)加密.分析了IPSec和GRE各自的優(yōu)勢(shì),結(jié)合IPSec的安全性和GRE對(duì)廣播、組播和非IP數(shù)據(jù)流支持的特點(diǎn),提出了GREoverIPSecVPN結(jié)合NAT的構(gòu)建方案,實(shí)現(xiàn)了兩個(gè)局域網(wǎng)之間單播或組播數(shù)據(jù)的保密通訊,通過(guò)運(yùn)行EIGRP協(xié)議交互內(nèi)網(wǎng)路由信息,進(jìn)而使用NAT技術(shù)實(shí)現(xiàn)局域網(wǎng)內(nèi)部用戶脫離VPN訪問(wèn)Internet.依據(jù)提出的構(gòu)建方案,繪制了組網(wǎng)拓?fù)鋱D,并基于GNS3進(jìn)行了仿真實(shí)驗(yàn),驗(yàn)證了方案的安全性和可實(shí)施性.該方案既滿足了不同局域網(wǎng)之間安全通信的需要,也滿足了局域網(wǎng)內(nèi)部用戶訪問(wèn)Internet的需求.
IPSec;虛擬專用網(wǎng);GRE;NAT
在以往的網(wǎng)路環(huán)境中,企業(yè)內(nèi)部網(wǎng)絡(luò)要完成相互連結(jié)的工作時(shí),雖然傳統(tǒng)的專線連接可以滿足這些需求,但高昂的費(fèi)用嚴(yán)重制約了其使用范圍;尤其遇到跨國(guó)連線時(shí),費(fèi)用更高.因此建立在Internet上的VPN技術(shù)也就應(yīng)運(yùn)而生.目前有多種不同的技術(shù)用于創(chuàng)建和維護(hù)VPN網(wǎng)絡(luò).IPSec是用于構(gòu)建VPN的一類網(wǎng)絡(luò)層安全協(xié)議,有其自身的局限性,不支持廣播、組播和非IP數(shù)據(jù)流.GRE規(guī)定了如何使用一種網(wǎng)絡(luò)協(xié)議封裝另一種網(wǎng)絡(luò)協(xié)議,能夠支持單播、組播、廣播和非IP數(shù)據(jù)流[1-4].本文基于IPSec和GRE提出了GRE over IPSec VPN,結(jié)合NAT提出了VPN的實(shí)驗(yàn)方案,并基于GNS3進(jìn)行仿真,驗(yàn)證了方案的安全性和可實(shí)施性.
1.1 IPSec
IPSec主要結(jié)合了IKE、ESP、AH這三個(gè)協(xié)議,從而組成了一個(gè)完整的安全框架[5-7].IPSec分兩種工作模式:傳輸模式和隧道模式.在傳輸模式中,需要在IP頭和IP負(fù)載之間插入ESP頭或AH頭,因此這種模式需要初始IP頭包含在公共網(wǎng)絡(luò)上可以路由的地址.在隧道模式中,需要在IP頭之前加上一個(gè)ESP頭或AH頭,同時(shí)在ESP或AH之前加上一個(gè)新的IP頭,這個(gè)新的IP頭中的IP地址包含了兩個(gè)IPSec對(duì)等體的IP地址,而不是將初始主機(jī)和目的主機(jī)的IP地址作為源地址和目標(biāo)地址[8-10].由此可見(jiàn),隧道模式會(huì)更加安全.
1.2 GRE
通用路由封裝(Generic Routing Encapsulating,GRE)是網(wǎng)絡(luò)中通過(guò)隧道將通信從一個(gè)專用網(wǎng)絡(luò)傳輸?shù)搅硪粋€(gè)專用網(wǎng)絡(luò)的協(xié)議.提供了用一種網(wǎng)絡(luò)協(xié)議去封裝另外一種網(wǎng)絡(luò)協(xié)議并進(jìn)行傳輸?shù)臋C(jī)制.
當(dāng)路由器收到數(shù)據(jù)包后,它會(huì)在原始數(shù)據(jù)包上加上一個(gè)GRE包頭和包尾,然后再在封裝好的數(shù)據(jù)包上加上一個(gè)新的IP頭,這個(gè)新的IP頭的源地址和目的地址分別為GRE隧道的源地址和目的地址,然后被路由到隧道對(duì)端地址,再由隧道目的設(shè)備去掉GRE封裝,取出里面的原始數(shù)據(jù)包,最終路由器到目的地.GRE最大的優(yōu)點(diǎn)是能夠支持單播、組播、廣播和非IP數(shù)據(jù)流,但是不提供安全加密功能,因此GRE隧道并不是一個(gè)安全的隧道,為了提供網(wǎng)絡(luò)通信的安全性,GRE通常與其他加密協(xié)議如IPSec一起使用.
1.3 GRE over IPSec
IPSec能夠?yàn)閿?shù)據(jù)提供加密、認(rèn)證和完整性校驗(yàn),同時(shí)支持單播和IP數(shù)據(jù)流,但是不支持廣播、組播和非IP數(shù)據(jù)流.GRE能夠支持單播、組播、廣播和非IP數(shù)據(jù)流,但是不支持加密,因此為了彌補(bǔ)IPSec和GRE各自的缺點(diǎn),本文將IPSec和GRE結(jié)合使用[11-12].
本文選擇GRE over IPSec而不選擇IPSec over GRE方案,因?yàn)樵贗PSec over GRE中,加密的IPSec數(shù)據(jù)流會(huì)被封裝進(jìn)GRE中,而GRE隧道的建立是不加密的,同時(shí)ACL之外的數(shù)據(jù)會(huì)直接走GRE隧道,因此會(huì)出現(xiàn)數(shù)據(jù)傳輸不安全的情況.在GRE over IPSec中,由于是先對(duì)數(shù)據(jù)流進(jìn)行GRE封裝,然后在封裝成IPSec數(shù)據(jù)包,這樣也就保證了IPSec隧道中所傳輸數(shù)據(jù)的安全性.
1.4 NAT
網(wǎng)絡(luò)地址轉(zhuǎn)換(Network Address Translation,NAT)是將私有網(wǎng)絡(luò)地址轉(zhuǎn)換成公網(wǎng)地址的一種技術(shù),最初IETF是為了緩解IPv4地址緊缺而提出的一種解決方案.現(xiàn)如今被廣泛應(yīng)用于各種類型的Internet方式和多種類型的網(wǎng)絡(luò)中[13-15].
NAT按其基本功能主要分為靜態(tài)地址轉(zhuǎn)換、動(dòng)態(tài)地址轉(zhuǎn)換和網(wǎng)絡(luò)地址和端口轉(zhuǎn)換.其中靜態(tài)地址轉(zhuǎn)換是將私網(wǎng)IP地址與預(yù)先指定的公網(wǎng)地址進(jìn)行一對(duì)一固定的轉(zhuǎn)換.動(dòng)態(tài)地址轉(zhuǎn)換先是定義一個(gè)合法的地址池(Address Pool),然后把來(lái)自私網(wǎng)的IP地址映射成地址池中的地址.網(wǎng)絡(luò)地址與端口轉(zhuǎn)換可以允許多個(gè)私網(wǎng)地址共用一個(gè)公網(wǎng)地址,在只有少量公網(wǎng)地址但是卻有多個(gè)合法用戶想要去外部網(wǎng)絡(luò)的情況下,這個(gè)方式極為有用.
在現(xiàn)實(shí)環(huán)境中,為便于公司總部與分部之間的實(shí)時(shí)業(yè)務(wù)數(shù)據(jù)交換,通常需要直接建立通信連接,本文VPN實(shí)驗(yàn)方案先在公司總部和分部之間建立GRE隧道,然后再使用IPSec對(duì)經(jīng)過(guò)隧道的數(shù)據(jù)流進(jìn)行加密保護(hù).同時(shí)公司總部和分部之間運(yùn)行EIGRP協(xié)議交互內(nèi)網(wǎng)路由信息.
當(dāng)數(shù)據(jù)在隧道中進(jìn)行傳輸并且用IPSec進(jìn)行加密時(shí),此時(shí)會(huì)隱藏私有IP地址,所以為經(jīng)過(guò)IPSec隧道的數(shù)據(jù)做NAT已經(jīng)沒(méi)有必要了.本文將通過(guò)策略路由使經(jīng)過(guò)IPSec隧道的流量與去往Internet的流量相分離,同時(shí)為去往Internet的流量做NAT,實(shí)現(xiàn)了公司內(nèi)部數(shù)據(jù)交互時(shí)走IPSec隧道的保密通訊和去往Internet流量脫離隧道傳輸.
3.1 實(shí)驗(yàn)拓?fù)鋱D
圖1中,路由器R1與R4模擬A公司總部,路由器R3與R5模擬A公司分部,他們分別處于不同的地理位置.路由器R2模擬Internet路由器,路由器R1使用s2/0和路由器R2的s2/0接口相連,路由器R3使用s2/1和路由器R2的s2/1接口相連,模擬廣域網(wǎng)鏈路.公司內(nèi)部之間配置EIGRP來(lái)交換內(nèi)網(wǎng)信息,路由器R1和R3建立GRE隧道以及配置IPsec保證數(shù)據(jù)安全,在路由器R1上寫策略路由分離隧道流量和去往Internet的流量,同時(shí)R1上配置NAT,最終實(shí)現(xiàn)公司內(nèi)部之間能夠通過(guò)私網(wǎng)地址進(jìn)行安全通信以及脫離VPN對(duì)Internet的訪問(wèn).
圖1 實(shí)驗(yàn)拓?fù)鋱D
3.2 路由器接口IP地址配置
路由器各接口的IP地址見(jiàn)表1.
表1 接口IP地址
路由器接口IP地址網(wǎng)絡(luò)掩碼R1S2/012.1.1.1255.255.255.0f0/010.1.1.1255.255.255.0R2S2/012.1.1.2255.255.255.0S2/123.1.1.2255.255.255.0R3S2/123.1.1.3255.255.255.0f0/010.1.2.1255.255.255.0R4f0/010.1.1.2255.255.255.0R5f0/010.1.2.2255.255.255.0
3.3 路由器配置
R1(config)#ip route0.0.0.0 0.0.0.0 12.1.1.2//配置默認(rèn)路由
R3(config)#ip route0.0.0.0 0.0.0.0 23.1.1.2
R3(config)#int tu10//配置GRE隧道
R3(config-if)#ip unnumbered f0/0//配置f0/0接口為無(wú)編碼IP
R3(config-if)#tunnel sous2/1//定義隧道起源地址
R3(config-if)#tunnel destination12.1.1.1//定義隧道目的地址
R1(config)#int tu10
R1(config-if)#ip unnumbered f0/0
R1(config-if)#tunnel sou s2/0
R1(config-if)#tunnel destination23.1.1.3
R1(config)#router ei 100//配置eigrp協(xié)議
R1(config-router)#no au//關(guān)閉自動(dòng)匯總
R1(config-router)#net10.1.1.1 0.0.0.0 //將接口地址宣告進(jìn)eigrp
R4(config)#router ei 100
R4(config-router)#no au
R4(config-router)#net10.1.1.2 0.0.0.0
-R3、R5也按照R1、R4處對(duì)應(yīng)配置EIGRP
R1(config)#access-list 110 permit gre host12.1.1.1 host 23.1.1.3//定義感興趣流
R1(config)#crypto isakmp policy 10//配置IKE策略
R1(config-isakmp)#authentication pre-share//認(rèn)證方式使用PSK
R1(config-isakmp)#encryptionaes//使用AES加密算法
R1(config-isakmp)#hash sha//完整性校驗(yàn)采用sha算法
R1(config-isakmp)#group 1//密鑰算法采用group 1
R1(config-isakmp)#lifetime 3600//配置安全關(guān)聯(lián)的有效期為3600s
R1(config-isakmp)#exit//退到上一層
R1(config)#crypto isakmp key 0 cisco address23.1.1.3//配置對(duì)端地址,并通過(guò)密碼驗(yàn)證對(duì)方
R1(config)#crypto ipsec transform-set cisco esp-aes esp-sha-hmac//定義IPSec使用的轉(zhuǎn)換集
R1(cfg-crypto-trans)#mode tunnel //指定IPSec的工作模式為隧道模式
R1(cfg-crypto-trans)#exit
R1(config)#crypto map vpn 10 ipsec-isakmp//定義一個(gè)名叫vpn的crypto map
R1(config-crypto-map)#match address 110//匹配感興趣流
R1(config-crypto-map)#set peer23.1.1.3//設(shè)置IPSec對(duì)等體的IP地址
R1(config-crypto-map)#set transform-set cisco//定義這個(gè)crypto map使用的轉(zhuǎn)換集
R1(config-crypto-map)#ints2/0
R1(config-if)#crypto map vpn//應(yīng)用到接口
-R3也按照R1對(duì)應(yīng)配置IPSec
R2(config)#int lo0//配置環(huán)回口,模擬公網(wǎng)地址
R2(config-if)#ip add 2.2.2.2 255.255.255.255
R1(config)#access-list 110 deny ip 10.1.1.0 0.0.0.255 10.1.2.0 0.0.0.255//定義ACL
R1(config)#access-list 110 permit ip 10.1.1.0 0.0.0.255 any
R1(config)#ip nat inside source list 110 ints2/0 overload//NAT配置
R1(config)#ints2/0
R1(config-if)#ip nat outside
R1(config-if)#int f0/0
R1(config-if)#ip nat inside
R4(config)#ip route0.0.0.0 0.0.0.0 10.1.1.1
3.4 測(cè)試
完成以上配置后,可以測(cè)試公司總部和分部的連通性,這里測(cè)試R4和R5的連通性,通過(guò)使用ping命令,結(jié)果如圖2所示.
圖2 R4和R5的連通性測(cè)試
同樣,也需要測(cè)試R4和R2的環(huán)回口的連通性,結(jié)果如圖3所示,可以看出通信正常,說(shuō)明公司用戶可以正常訪問(wèn)互聯(lián)網(wǎng).
圖3 R4和R2的連通性測(cè)試
為測(cè)試IPSec會(huì)話是否已經(jīng)建立起來(lái),可以使用命令show crypto engine connections active進(jìn)行查看,結(jié)果如圖4所示,可以發(fā)現(xiàn)由于hello包是每5s中發(fā)送一次,因此加解密也是在不斷的進(jìn)行.
圖4 VPN會(huì)話表
為了驗(yàn)證當(dāng)R4和R5進(jìn)行相互通信時(shí),數(shù)據(jù)是經(jīng)過(guò)IPSec隧道并且是經(jīng)過(guò)加密處理的,我們采用在R4上向R5發(fā)送30個(gè)ping包,結(jié)果如圖5所示.
圖5 R4和R5的連通性測(cè)試
從圖4中我們可以看到最后一輪查看VPN會(huì)話表時(shí)顯示的加密數(shù)據(jù)包為21個(gè),解密數(shù)據(jù)包為21個(gè),在經(jīng)過(guò)圖5中R4向R5發(fā)送30個(gè)數(shù)據(jù)包后,從圖6中可以看出此時(shí)的加解密數(shù)據(jù)包各為54個(gè),由于hello包是每5s發(fā)送一次,所以在此期間的加解密hello包各3個(gè),加解密ping包各為30個(gè),所以可以看出對(duì)于R4向R5發(fā)送的30ping包是經(jīng)過(guò)IPSec隧道,并且是經(jīng)過(guò)加解密的.
圖6 VPN會(huì)話表
同樣,為了測(cè)試公司內(nèi)部網(wǎng)絡(luò)訪問(wèn)互聯(lián)網(wǎng)時(shí)是脫離VPN不經(jīng)過(guò)加解密的,在R4上向R2的環(huán)回口發(fā)送30個(gè)ping包,結(jié)果如圖7所示.
圖7 R4和R2的連通性測(cè)試
從圖6中可以看出加密數(shù)據(jù)包為54個(gè),解密數(shù)據(jù)包為54個(gè),在R4上向R2的環(huán)回口發(fā)送30個(gè)ping包后,30個(gè)ping包都是正常通信的,而此時(shí)從圖8中可以看出加解密數(shù)據(jù)包各為56個(gè),可以看出從R4發(fā)往R2的30個(gè)正常通信的ping包是沒(méi)有經(jīng)過(guò)IPSec隧道,即不經(jīng)過(guò)加解密的,期間只有每5s發(fā)送一次的hello經(jīng)歷過(guò)加解密.
圖8 VPN會(huì)話表
通過(guò)比較本文我們提出的新方案和一些文獻(xiàn)[5,11]相關(guān)應(yīng)用于VPN方案(王麗娜[5]和劉景林[11])的特征,我們發(fā)現(xiàn)改進(jìn)的方案有著更好的安全性.表2列出了對(duì)比結(jié)果,其中F1:方案能夠?qū)崿F(xiàn)數(shù)據(jù)的安全加密傳輸;F2:能夠?qū)崿F(xiàn)單播、組播、廣播和非IP數(shù)據(jù)流的傳輸;F3:采用較為安全的AES加密算法(AES相對(duì)DES算法加密強(qiáng)度更大);F4:采用較為安全的sha算法進(jìn)行完整性校驗(yàn)(MD5算法目前已經(jīng)被破解,相對(duì)sha算法安全性較低); F5:IPSec的工作模式為隧道模式;F6:脫離隧道實(shí)現(xiàn)對(duì)Internet的訪問(wèn).
表2 相關(guān)比較
F1F2F3F4F5F6文獻(xiàn)[5]YesYesYesNoNoNo文獻(xiàn)[11]YesYesNoNoNoYes本文方案YesYesYesYesYesYes
隨著“三網(wǎng)融合”業(yè)務(wù)的展開, 除數(shù)據(jù)交互業(yè)務(wù)外,GRE over IPSec技術(shù)也為語(yǔ)音、視頻等業(yè)務(wù)提供了很好的方案,雖然GRE over IPSec在實(shí)際網(wǎng)絡(luò)應(yīng)用中對(duì)設(shè)備的性能指標(biāo)要求較高,也具有一定的復(fù)雜性,但由于人們對(duì)安全的越來(lái)越重視,該技術(shù)也得到了廣泛應(yīng)用,結(jié)合IPSec和GRE搭建VPN具有重要的現(xiàn)實(shí)意義.
[1]王鳳領(lǐng). 基于IPSec的VPN技術(shù)的應(yīng)用研究[J]. 計(jì)算機(jī)技術(shù)與發(fā)展, 2012, 22(9):250-252.
[2]童樣, 張水平, 李有峰,等. 基于MPLS的VPN互訪技術(shù)[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2014, 35(9):3018-3023.
[3]唐琳, 陳蘭蘭, 付達(dá)杰. 一種基于IPsec VPN的聯(lián)網(wǎng)信息系統(tǒng)審計(jì)方案[J]. 軟件, 2014(4):97-99.
[4]MALIK S. Network Security Principles and Practices [M].北京:人民郵電出版社,2013.
[5]王麗娜, 劉炎, 何軍. 基于IPSec和GRE的VPN實(shí)驗(yàn)仿真[J]. 實(shí)驗(yàn)室研究與探索, 2013, 32(9):70-75.
[6]ELEZI M, RAUFI B. Conception of virtual private networks using IPsec suite of protocols, comparative analysis of distributed databasequeries using different IPsec modes of encryption [J]. Procedia - Social and Behavioral Sciences, 2015, 195:1938-1948.
[7]仲光蘋, 劉金明. 基于Packet Tracer的IPSec VPN實(shí)驗(yàn)教學(xué)設(shè)計(jì)[J]. 實(shí)驗(yàn)科學(xué)與技術(shù), 2012, 10(3):51-53.
[8]DOYLE J,CARROLL J. Routing TCP/IP(Volume II)[M].北京:人民郵電出版社,2009:233-271.
[9]KUNDU A. Mitigation of storage covert channels in IPSec for QoS aware applications[J]. Procedia Computer Science, 2015, 54:102-107.
[10]SADEGHI A R, SCHULZ S, VARADHARAJAN V. The silence of the LANs: efficient leakage resilience for IPsec VPNs[J]. IEEE Transactions on Information Forensics & Security, 2014, 9(2):221-232.
[11] 劉景林.基于安全GRE隧道的Site-to-Site VPN構(gòu)建方案研究與實(shí)現(xiàn)[J].長(zhǎng)春大學(xué)學(xué)報(bào),2012,22(8):949-955.
[12]王麗娜, 劉炎. BGP/MPLS VPN中CE接入Internet仿真[J]. 實(shí)驗(yàn)室研究與探索, 2014, 33(3):76-80.
[13]劉向東,李志浩,王德高,焉德軍.NAT原理實(shí)驗(yàn)的設(shè)計(jì)與實(shí)現(xiàn)[J].實(shí)驗(yàn)室研究與探索,2012,31(1):58-62.
[14]YAO B J, HWANG S H, YEH C Y. Mathematical model of network address translation port mapping [J]. Aasri Procedia, 2014, 8(8):105-111.
[15]IETF RFC 2993.Architectural Implications of NAT[S].
(編輯:姚佳良)
The GRE over IPsec VPN research and implementation of combining with the construction scheme of NAT
ZHANG Wei, WANG Feng-ying
(School of Computer Science and Technology, Shandong University of Technology, Zibo 255049, China)
IPSec and GRE are used to build a virtual private network technology, which has its own limitations. IPSec does not support broadcast, multicast, and non IP data streams while GRE doesn't support data encryption. This paper analyzes the advantages of the IPSec and GRE respectively. We combined with the security of IPSec and the support of GRE to broadcast, multicast and non IP data flow, put forward the scheme of constructing the GRE over IPSec VPN based on NAT and then realized secure communication between two LANs unicast or multicast data. By running EIGRP interactive network routing information and use NAT technology, it can realize the internal LAN users access the Internet without VPN. Based on the proposed scheme, we render the network topology, carry out the simulation experiment based on GNS3, and verify the scheme is safety and can be implemented. The scheme proposed in this paper not only meet the need of secure communication between different LANs, but also meet the needs of internal LAN users access to the Internet.
IPSec; virtual local area network;GRE;NAT
2016-05-23
國(guó)家自然科學(xué)基金項(xiàng)目(61473179);山東省重點(diǎn)研發(fā)計(jì)劃項(xiàng)目(2016GGX101027);山東省自然科學(xué)基金項(xiàng)目(ZR2014FM007 )
張偉,男,big_zhangwei@163.com; 通信作者:王鳳英,女,wfy@sdut.edu.cn
1672-6197(2017)03-0006-05
TP
A