劉景林
(泉州經貿職業技術學院 信息技術系,福建 泉州 362000)
基于安全GRE隧道的Site-to-Site VPN構建方案研究與實現
劉景林
(泉州經貿職業技術學院 信息技術系,福建 泉州 362000)
為了實現經由Internet連接的兩個私有網絡之間能夠利用隧道技術以私有IP地址的方式相互訪問其內部資源,并且可以在隧道中傳遞動態路由協議信息,在基于Cisco路由器的配置過程中,通過利用GRE與IPSec兩種技術共同構建Site-to-Site VPN,即首先使用GRE協議對用戶數據和路由協議報文進行隧道封裝,然后通過IPSec提供的數據機密性、數據完整性驗證以及數據源認證功能保護在GRE隧道中傳送的敏感數據,以實現GRE隧道的安全傳輸。通過結合GRE可支持承載IP組播流量與IPSec提供的安全特性創建Site-to-Site VPN,既解決動態路由協議在IPSec VPN隧道內正常通告的問題,又可以保護敏感數據穿越不安全通道的安全性。
GRE;IPSec;Site-to-Site VPN
在經濟全球化的背景下,企業、單位總部與其分支機構或合作伙伴之間經常需要通過Internet開展網上業務,針對如何保護敏感數據通過不安全的公共通道以實現安全通信的問題成了研究的熱點。虛擬專用網絡(VPN)提供了一種使用公共網絡安全地對內部私有網絡進行遠程訪問的連接方式。VPN技術通過使用特定的數據封裝協議對原有的傳輸協議數據包進行重新封裝,并利用相關數據安全傳輸機制為IP流量提供一系列的安全防護措施,實現創建了一條數據傳輸的安全通道。Cisco在其IOS路由器、PIX、ASA防火墻和VPN集中器等產品上支持豐富的IPSec特性,可以提供多種創建Site-to-Site VPN的解決方案,包括動態多點VPN(DMVPN)、Easy VPN、GRE隧道、標準IP安全(IPsec)和全新的群組加密傳輸VPN(GET-VPN),分別用于滿足特定的部署需求,實現安全、可靠的加密數據傳輸。由于傳統基于路由器建立的IPSec VPN不支持IP組播數據包的加密,使得IPSec隧道無法傳送動態路由協議信息,針對Internet連接的雙方站點為相對復雜的私有網絡,兩端的內網網段希望能依靠某些動態路由協議來分發與傳遞路由信息,要求在VPN上能夠支持傳遞動態路由信息的情形,提出了在Cisco路由器上利用GRE(Generic Routing Encapsulation,通用路由封裝)和IPSec(Internet Protocol Security)技術共同構建基于安全GRE隧道的Site-to-Site VPN,該方案既可實現在VPN隧道內交換動態路由協議信息,又可以保護敏感數據在Internet公共網絡中傳輸的安全性。
IPSec是針對OSI/RM參考模型中網絡層IP協議所提出的安全協議,是一種可以廣泛應用于局域網或廣域網中實現保護IP網絡通信的安全解決方案。IPSec協議既可以為主機到主機的點對點IP通信,也可以為網絡到網絡的站點至站點IP通信提供安全保障,主要用于實現數據機密性、數據完整性驗證和用戶身份認證等方面的安全保護。IPSec協議簇主要包括AH協議、ESP協議以及負責密鑰管理的IKE協議,各協議之間的關系如圖1所示。
數據機密性是指對于需要在不安全的公共通道上傳輸的數據利用加密算法和密鑰進行保護,使其免受竊聽攻擊。IPSec支持常見的對稱加密算法DES、3DES和AES,IPSec對等體加解密的過程都需要雙方擁有相同的共享密鑰,為了防止密鑰的泄漏,通信雙方并沒有直接傳輸所需的共享密鑰,而是通過利用D-H密鑰交換算法交換密鑰生成材料,以使得雙方各自生成相同的加密密鑰。

圖1 IPSec安全體系結構
數據完整性驗證主要是利用Hash算法計算散列值來檢查通信雙方所傳送的數據在傳輸過程中是否被修改,典型Hash算法有HMAC-MD5和HMAC-SHA-1兩種,在進行散列值計算時,前者使用128位共享密鑰,而后者則使用160位共享密鑰,因此后者的安全性較高。
數據源認證是指接收者能夠確認數據發送者的身份,這里主要是指驗證遠程VPN設備的身份,目前較為常用的有預共享密鑰和RSA簽名兩種類型的驗證方法[1]。預共享密鑰是指在IPSec對等體事先設置好相同的密鑰,通信雙方利用Hash函數對預共享密鑰和身份信息進行散列計算并發送給對方,接收方使用Hash函數對相同的預共享密鑰和收到的明文身份信息再次計算散列值,并通過比較兩次計算的Hash值實現身份驗證。另一種是RSA簽名,主要是指發送方使用自己的私鑰對身份進行加密,并生成簽名,接收方使用發送方的公鑰對簽名進行解密,將解密得到的身份信息與收到的明文身份信息進行比較,若相同,則發送方的身份即可成功驗證,整個驗證過程需要使用CA認證中心的證書服務。
無論是AH還是ESP協議都有兩種工作方式:傳輸模式和隧道模式。這兩種協議數據報的具體封裝格式如圖2所示。傳輸模式主要為上層協議數據提供保護,原始的IP頭部沒有受保護,即AH和ESP兩種協議在傳輸模式下均沒有對原始的IP報頭進行封裝,只是將AH或ESP報頭插入在IP報頭與傳輸層協議報頭之間。在隧道模式下,原始的整個IP包都封裝在一個新的IP包中,外部新的IP報頭的IP地址為隧道端點的IP,IPSec頭部(AH/ESP)插入在新的IP報頭和原始的IP報頭之間[2]。二者的主要區別是:傳輸模式保護的是VPN站點間所傳輸的數據包內容,而隧道模式保護的是包括原始IP頭部在內的整個數據包,為整個IP數據包提供安全性。

圖2 AH/ESP協議的兩種工作模式
GRE通用路由封裝協議是一種網際層隧道封裝協議,提供了用一種網絡協議去封裝另一種網絡協議并進行傳輸的機制,即將其他協議的數據包重新封裝在新的包頭中發送,新的包頭提供了路由信息,從而使封裝的負載數據能夠通過Internet傳送[3]。它的最大優點是可以使用統一的格式封裝多種協議、多種類型的報文,并在隧道中傳輸。雖然IPsec自身也可以實現隧道功能,但其隧道功能存在著不能傳遞動態路由協議信息的局限性,而GRE既可以實現隧道功能,又可支持靜態路由和IP組播流量,可承載RIP、EIGRP和OSPF等多種動態路由協議,所以GRE通常可用于需要在VPN隧道中傳遞動態路由信息的場合。
由于GRE協議只是用于實現數據報的封裝,并不能為傳輸的數據提供安全保護,故GRE隧道并不是一種安全的通道。而IPSec則可以為IP數據通信提供安全保護,然而,由于IPSec在實際應用中默認不支持組播,即不能夠對網絡中的組播報文進行封裝,而常用的路由協議報文又是通過組播進行協商和通信的,所以路由協議報文通常是無法在IPSec隧道中傳輸。因此,可以將GRE與IPSec兩種技術結合起來使用,即利用GRE對用戶數據和路由協議報文進行隧道封裝,因為有了GRE便可在VPN隧道內交換動態路由協議信息,然后通過IPSec提供的安全措施保護GRE隧道中的IP通信流量,二者結合即構成安全GRE隧道,共同實現構建Site-to-Site VPN。
基于安全GRE隧道的數據包在IPSec傳輸模式下具體的封裝格式見圖3,即最內層是原始IP包,表示穿越兩個站點的數據,然后是GRE層,即原始的IP包被封裝在GRE頭部之內,從而允許路由協議在GRE隧道內傳輸,然后是提供安全性的IPSec,這樣便可實現在兩個站點之間安全地交換路由信息和IP包。基于安全GRE隧道的VPN中IPSec運行模式既可以使用傳輸模式,也可以使用隧道模式,一般使用傳輸模式即可,這是因為GRE與IPsec的端點是一樣的,已經封裝了公網IP[4]。

圖3 基于IPsec傳輸模式的安全GRE隧道數據包封裝格式
IPSec VPN整個操作過程主要有五個步驟,首先在通信雙方路由器上使用擴展ACL定義感興趣的流量,即指定需要IPSec提供安全保護的流量,接下來由雙方路由器協商IKE第一階段的會話,主要用于協商IKE策略、交換密鑰以及認證對等體,在對等體之間建立一個已通過身份驗證和安全保護的通道[5],實現建立IKE SA,該SA將用于保護后面協議SA的協商過程;然后雙方路由器協商IKE第二階段的會話,通過使用IPSec轉換集協商數據傳輸過程中與加密和認證相關的IPSec安全參數,實現建立IPSec SA。這樣,路由器感興趣的流量便可以通過VPN安全隧道進行交換,結束之后VPN隧道終止。
為了真實地模擬Site-to-Site VPN網絡,通過在GNS3模擬器上搭建如圖4所示的實驗拓撲,其中R1和R3路由器分別模擬位于不同地點的兩個私有網絡的出口路由器,R2模擬位于Internet公網上的路由器,然后利用SecureCRT軟件分別連接三臺路由器,進行路由器的基本配置與GRE隧道配置,最后是IPSec的配置。用于通信測試的兩臺內網PC分別由VPCS軟件模擬實現。本實驗最終實現通過Internet連接的兩個私有網絡之間如同是直連網絡,雙方的內部主機可以直接以私網IP地址進行通信,其流量經過GRE隧道并受到IPSec的保護。另外,位于兩個私有網絡的內部主機也可以通過出口路由器上配置的路由策略,使用PAT地址轉換,實現與公網計算機的正常通信,這部分的流量一般不必經過VPN隧道的保護。
在R1和R3兩臺路由器上分別配置各接口的IP,并啟用相應接口。在路由器基本配置完成之后,此時還無法實現位于不同內網的兩臺主機之間的正常通信,接下來進行隧道口Tunnel 0的創建與配置,隧道口默認采用GRE協議進行數據包的封裝。由于GRE支持動態路由協議,所以可以分別在兩個路由器上配置動態路由協議,使得兩主機之間可以實現正常通信。

圖4 Site-to-Site VPN拓撲圖

R2作為公網上的路由器只要配置其接口即可,無須配置任何路由信息,這里除了配置其F0/0與F1/0接口IP地址之外,另外配置一個Loopback 0回環口(IP:200.1.1.1/32)用于模擬公網上的主機。R3路由器的配置方法與R1類似,具體配置如下:


在完成創建隧道與配置動態路由協議之后,R1與R3路由器之間的IP數據包便可以經由GRE隧道封裝后進行正常通信,此時必須要配置IKE的兩個階段以實現對GRE隧道所傳輸數據包的安全保護。首先,在IKE第一階段配置ISAKMP策略,可以分別指定完整性驗證的Hash算法、身份認證方法以及對稱加密算法和D-H算法等。在IKE第二階段配置轉換集,主要用于協商IPSec傳輸過程中數據加密和認證的相關參數,然后使用雙方用來建立GRE隧道的公網IP地址來定義路由器感興趣的流量,最后創建加密映射圖,并在路由器指定的物理接口上應用該加密圖。在IKE的兩個階段都可以指定加密算法和驗證算法,區別在于IKE第一階段指定的加密算法與驗證算法是用于通信雙方的身份鑒別與建立安全通道,并非用于對真正所要傳送的IP數據包的加密與驗證,而IKE第二階段指定的加密算法與驗證算法才是用于真正實現對ACL中所定義的路由器感興趣的IP數據包進行加密與完整性驗證,保護指定IP流量的安全傳輸。


當路由器R1與R3分別完成IKE兩階段的配置之后,雙方在通信過程中就會自動建立IKE SA與IPSec SA,并按照指定的安全協議和算法創建安全通道以實現保護路由器感興趣的流量。接下來使用VPCS軟件分別配置兩站點內網主機的IP地址(如圖5所示),并使用Ping命令分別測試兩臺內部主機能否直接以私網IP地址進行通信以及內部主機經PAT地址轉換訪問公網主機的連通情況,最后再通過命令測試SA的創建情況,顯示結果表明已經成功創建兩階段的SA,通信過程中的感興趣數據包也可以正常實現封裝與解封裝、加密與解密。由于PC1與PC2兩主機之間通信的數據包是屬于路由器感興趣的流量,在GNS3模擬器中可以通過Wireshark工具進行抓包驗證,二者之間所傳輸的流量均采用IKE第二階段所定義轉換集中指定的IPSec協議封裝方式、加密算法與驗證算法進行保護,而當PC1或PC2分別與公網主機進行通信時,其流量是不受保護的。

圖5 PC1與PC2、公網主機的連通測試
在基于Cisco路由器建立站點互連的IPSec VPN的過程中,通過利用GRE隧道可以支持IP組播流量和承載動態路由協議的特性,實現交換雙方站點內網網段的路由信息,同時使用IPSec提供的安全特性保護GRE隧道所傳輸IP數據包,有效地保證站點間所傳輸數據的安全性。結合GRE和IPSec技術構建的Siteto-Site VPN具有較好的靈活性,不僅可以解決IPSec VPN的擴展問題,而且極大地方便本地站點與遠程站點之間通過Internet實現VPN連接的正常和安全的通信,可以廣泛應用于需要在VPN隧道中傳遞動態路由協議信息的場合,由于GRE只可支持Cisco路由器,不支持PIX、ASA以及VPN集中器等其他Cisco設備,故該方案只限于在Cisco路由器中實現。
[1] Richard Deal.姚軍玲,郭稚暉譯.Cisco VPN完全配置指南[M].北京:人民郵電出版社,2007.
[2] 遲恩宇,劉天飛,楊建毅,等.網絡安全與防護[M].北京:電子工業出版社,2009.
[3] 雷震甲.網絡工程師教程 [M].3版.北京:清華大學出版社,2009.
[4] Brian Morgan Neil Lovering.夏俊杰譯.CCNP ISCW 認證考試指南[M].北京:人民郵電出版社,2008.
[5] 崔北亮,陳家遷.非常網管:網絡管理從入門到精通(修訂版)[M].北京:人民郵電出版社,2010.
Research and Implementation of Site-to-Site VPN Construction Scheme Based on Secure GRE Tunnel
LIU Jing-lin
(Department of Information Technology,Quanzhou Vocational and Technical College of Economics and Trade,Quanzhou 362000,China)
In order to realize the two private networks to mutually access to the local resources in private IP address by using tunnel technology of Internet,and transfer the dynamic routing protocol message in tunnel,during the process of Cisco router configuration,GRE and IPSec techniques are used to establish Site-to-Site VPN.Firstly,the GRE protocol is used to encapsulate the user data and the message of router protocol.Secondly,to transmit the sensitive data in GRE tunnel safely under the protection of IPSec,which can guarantee data confidentiality,data integrity verification,and data origin authentication function to realize the safe transmission of data.The Site-to-Site VPN is constructed by GRE,which can support IP multicast traffic and the safety feature of the IPSec.It not only solves the normal notice problems of dynamic routing protocol in IPSec VPN tunnel,but also protects the security of sensitive data through unsafe channels.
GRE;IPsec;Site-to-Site VPN
TP393.08
A
1009-3907(2012)08-0949-07
2012-05-12
劉景林(1971-),男,福建泉州人,講師,碩士,主要從事網絡設備配置與管理、網絡安全技術研究。
責任編輯:吳旭云