王志輝
(湖南中醫藥大學信息科學與工程學院 湖南 長沙 410208)
VPN 技術是通過公用網絡建立一個臨時虛擬隧道,方便身份合法的遠程用戶安全地訪問內網資源。部分VPN技術支持加密算法和身份驗證,可以大大提高數據傳輸的安全性,目前常見的虛擬專用網絡(Virtual Private Network,VPN)協議有通用路由封裝協議(Generic Routing Encapsulation,GRE)、點對點隧道協議(Point-to-Point Tunneling Protocol,PPTP)、二層隧道協議(Layer 2 Tunneling Protocol,L2TP)、互聯網安全協議(Internet Protocol Security,IPSec)、安全套接協議(Secure Sockets Layer,SSL)、多協議標簽交換(Multi-Protocol Label Switching,MPLS)、基于光網絡的光虛擬專用網(Optical Virtual Private Network,OVPN)技術等[1]。本文重點對GRE、L2TP、IPSec、MPLS這4種VPN技術開展研究。
VPN是使用標準的協議在公用網絡的鏈路和設備上進行數據傳輸,根據協議將數據包重新封裝進行傳輸。各隧道協議在開放系統互連參考模型(Open System Interconnection Reference Model,OSI/RM)的層次位置如表1所示。

表1 各VPN協議在OSI模型的位置
OSI/RM模型中數據鏈路層對應實體為交換機,網絡層對應實體為路由器,大部分VPN協議集中在此兩層,通過對硬件網絡設備進行配置可以大大提高通信安全性。應用層對應的SSL 協議是Netscape 公司率先采用的網絡安全協議,采用公開密鑰技術,支持各種類型的網絡,在傳輸通信協議(TCP/IP)上提供基本的安全服務協議[2]。
1.1.1 通用路由封裝協議GRE
GRE 協議是封裝某些網絡層協議報文后生成新的GRE報文,由原數據包根據所到達目的地址需要用GRE 協議封裝后在公用網絡進行路由轉發。GRE 支持多種協議和多播、具備多點隧道功能,可搭配服務質量保障技術、擴大路由跳數,但不具備加密功能,而且采用GRE協議會消耗過多CPU等硬件資源,從而導致使用GRE 協議的網絡設備數據轉發效率有一定程度的降低。
1.1.2 第二層隧道協議L2TP
L2TP 協議是由微軟、思科等多家公司一起提出的,是一種對PPP報文進行隧道傳輸技術,允許數據鏈路層端點和PPP會話點駐留在通過分組交換網絡連接的不同設備上,從而擴使PPP 報文能在Internet 上傳輸。L2TP 使用控制消息和數據消息。在安全性考慮上,L2TP 僅定義了控制消息的加密傳輸方式,對傳輸中的數據并不加密[1]。
1.1.3 互聯網安全協議IPSec
IPSec協議族主要包括驗證頭部協議(Authentication Header,AH)、封裝安全載荷協議(Encapsulating Security Payload,ESP)和因特網密鑰交換協議(Internet Key Exchange,IKE)。AH不提供加密服務,而ESP提供加密服務。目前,IPSec VPN 技術采用基于傳統Linux協議棧方式進行數據捕獲,IPSec安全性良好但是服務效率不高[3]。IPSec協議的傳輸模式用來直接加密主機之間網絡通信,提供終端到終端的傳輸安全性;隧道模式用來在兩個子網之間建造“虛擬隧道”實現兩個網絡之間的安全通信,提供了網關到網關的傳輸安全性。
1.1.4 多協議標簽交換MPLS
MPLS協議是對IP數據包加上標簽從而實現快速轉發技術。MPLS 的體系結構由負責建立路由條目和標簽分配轉發的控制平面和負責對接收到的分組進行轉發的轉發平面構成[4]。在安全性方面,運營商可隱藏MPLS 骨干網絡拓撲圖,還可以用其他安全協議如IPSec封裝數據進行傳輸。
在VPN網絡中現代加密技術多為密鑰加密技術,可分為對稱加密和非對稱加密兩類。對稱加密所使用的加解密密鑰是同一對,如數據加密算法DES、三重加密算法3DES、國際數據加密算法IDEA、高級加密標準AES 等。非對稱加密是需要兩個密鑰:一個是公開密鑰,用于加密數據或解密被私鑰加密的數據;另一個是私有密鑰,用于解密被公鑰加密的數據或加密,成對使用,如RSA 算法、數字簽名算法DSA、橢圓曲線密碼學算法ECC等。
實體身份認證方式主要有口令認證、智能卡認證以及生物特征認證。基于密碼學的身份認證主要有PAP認證、SPAP認證、CHAP認證、MSCHAP認證、MSCHAP-V2認證、EAP認證、PEAP認證等。
PAP認證是利用PPP基礎上通過兩次握手進行認證,PAP使用明文傳輸,安全性很低。SPAP相對PAP而言可對傳輸密碼進行簡單加密,比PAP 安全性高。CHAP挑戰握手協議,是基于三次握手發送摘要信息來對對方進行身份驗證。CHAP在認證前,雙方要協商共同的密鑰,在認證中由一方發送隨機數給另一方計算摘要信息,并要求把摘要信息傳輸回來與自身的計算的摘要信息驗證。MSCHAP與CHAP不同的是,使用MD4散列標準,提供更為高級的功能。MSCHAP-V2與之前V1版本改變在于要求雙向驗證,即雙方都要驗證對方身份。EAP 允許使用的身份驗證方法不受限制,如令牌卡、智能卡、證書等。PEAP首先需要證書服務器發放證書給VPN服務端,再由服務端發送機器證書給客戶端,客戶端使用證書建立受保護隧道進行通信。
以我國某大型公司為例,在全國省會城市設有辦事處分支機構,總共有3 000 多名員工分布在全國各地。通過VPN虛擬專用網的搭建,實現各地員工遠程訪問公司內網資源而不受地理位置限制。
GRE VPN 提供簡潔高效的網絡傳輸,但不提供任何安全措施。利用GRE 隧道和動態路由協議,模擬總公司與分公司跨內網互相訪問或員工訪問公司內網,實現客戶端PC3 與PC4 的互訪。在GRE 隧道建立成功后,使用GRE 隧道進行對數據發封裝,然后進行傳輸,對端接收到封裝的數據后會根據此數據包的協議號為47 進而判別是GRE 協議封裝的數據,根據之前本文所寫的GRE 報頭格式查看此報頭的前5 位,尋找是否需要校驗和是否有分片。無則拆報頭進行轉發。
核心配置命令如下:
L2TP VPN 適用于用戶對網絡安全性要求不高的場景,采用靜態路由配置,只為用戶提供簡潔高效的傳輸服務和簡單的身份認證措施,但不提供傳輸數據加密。在分公司與總公司出口利用L2TP VPN隧道技術,實現出口防火墻FW1 與出口防火墻FW2 之間的信息互通。
首先由一方發起連接,共同協商L2TP 隧道,等對方同意后開始發起會話進入通信狀態。LAC會分配一個賬號密碼給用戶,用戶根據此賬號密碼可連入對方的內網。
核心配置命令如下:
IPsec VPN提供安全可靠傳輸,測試模擬分公司利用IPSec 隧道訪問總公司,FW1 為分公司出口網關,FW2 為總公司出口網關,實現總公司互通分公司。在通信前,先設定ACL感興趣流,這樣防火墻會允許此興趣流設定的IP 地址的數據包通過防火墻。此后雙方通過IKE 協商建立安全聯盟,隨后建立IPSec 隧道,但在通信前需配置防火墻,防止有效信息被防火墻過濾或者攔截[5]。
核心配置命令如下:
在眾多VPN技術中,MPLS VPN有傳輸效率高、成本低、靈活易擴展、安全可靠、保證服務質量等諸多優勢[6]。公司A 和公司B 分別通過公網訪問在不同地點的部門訪問內網,保證兩個公司不能互相訪問,采用了MPLS VPN進行網絡搭建。在通信之前,先由MPLS對網絡中的路由器進行標記,標記完后當有數據包經過標記的路由器時會根據數據包的目的地址進行分組,打上標簽,然后轉發。
核心配置命令如下:
每種VPN都有自身適應的環境,也有自身的不足。本文使用了華為公司的ENSP 模擬器,實現了GRE VPN、L2TP VPN隧道、IPSec VPN和MPLS VPN,主要是對GRE VPN、L2TP VPN 隧道、IPSec VPN 和MPLS VPN原理的實現,各VPN性能對比如表2所示。

表2 各VPN技術性能對比表
隨著互聯網的普及與科技進步加快,國家大部分地區已經聯網,這使遠程辦公成為可能,但用戶急劇增多同時使信息在網絡中傳輸的安全性大大降低。對于VPN 技術復雜且多種多樣,除了本文中介紹的C/S 模式的VPN 技術之外,還有采用簡單快捷B/S 模式SSL VPN 等。市場需求千差萬別,需要根據自身需求選擇合適類型的VPN進行遠程接入和資源訪問。