7、IP隧道

FLy_鵬程萬里發表於2018-06-09

隧道技術

隧道技術是一種通過使用網際網路絡的基礎設施在網路之間傳遞資料的方式。使用隧道傳遞的資料(或負載)可以是不同協議的資料楨(此字不正確)或包。隧道協議將這些其它協議的資料楨或包重新封裝在新的包頭中傳送。新的包頭提供了路由資訊,從而使封裝的負載資料能夠通過網際網路絡傳遞。

被封裝的資料包在隧道的兩個端點之間通過公共網際網路絡進行路由。被封裝的資料包在公共網際網路絡上傳遞時所經過的邏輯路徑稱為隧道。一旦到達網路終點,資料將被解包並轉發到最終目的地。注意隧道技術是指包括資料封裝,傳輸和解包在內的全過程。

隧道所使用的傳輸網路可以是任何型別的公共網際網路絡,本文主要以目前普遍使用Internet為例進行說明。此外,在企業網路同樣可以建立隧道。

隧道技術在經過一段時間的發展和完善之後,目前較為成熟的技術包括:

IP網路上的SNA隧道技術 
當系統網路結構(System Network Architecture)的資料流通過企業IP網路傳送時,SNA資料楨將被封裝在UDP和IP協議包頭中。

IP網路上的NovellNetWareIPX隧道技術 
當一個IPX資料包被髮送到NetWare伺服器或IPX路由器時,伺服器或路由器用UDP和IP包頭封裝IPX資料包後通過IP網路傳送。另一端的IP-TO-IPX路由器在去除UDP和IP包頭之後,把資料包轉發到IPX目的地。

近幾年不斷出現了一些新的隧道技術,本文將主要介紹這些新技術。具體包括:

1.點對點隧道協議(PPTP) 
   PPTP協議允許對IP,IPX或NetBEUI資料流進行加密,然後封裝在IP包頭中通過企業IP網路或公共網際網路絡傳送。

2.第2層隧道協議(L2TP) 
   L2TP協議允許對IP,IPX或NetBEUI資料流進行加密,然後通過支援點對點資料包傳遞的任意網路傳送,如IP,X.25,楨中繼或ATM。

3.安全IP(IPSec)隧道模式 
   IPSec隧道模式允許對IP負載資料進行加密,然後封裝在IP包頭中通過企業IP網路或公共IP網際網路絡如Internet傳送。

隧道協議

  為建立隧道,隧道的客戶機和伺服器雙方必須使用相同的隧道協議。

  隧道技術可以分別以第2層或第3層隧道協議為基礎。上述分層按照開放系統互聯(OSI)的參考模型劃分。第2層隧道協議對應OSI模型中的資料鏈路層,使用楨作為資料交換單位。PPTP,L2TP和L2F(第2層轉發)都屬於第2層隧道協議,都是將資料封裝在點對點協議(PPP)楨中通過網際網路絡傳送。第3層隧道協議對應OSI模型中的網路層,使用包作為資料交換單位。IP overIP以及IPSec隧道模式都屬於第3層隧道協議,都是將IP包封裝在附加的IP包頭中通過IP網路傳送。

隧道技術的實現

 對於像PPTP和L2TP這樣的第2層隧道協議,建立隧道的過程類似於在雙方之間建立會話;隧道的兩個端點必須同意建立隧道並協商隧道各種配置變數,如地址分配,加密或壓縮等引數。絕大多數情況下,通過隧道傳輸的資料都使用基於資料包的協議傳送。隧道維護協議被用來作為管理隧道的機制。

 第3層隧道技術通常假定所有配置問題已經通過手工過程完成。這些協議不對隧道進行維護。與第3層隧道協議不同,第2層隧道協議(PPTP和L2TP)必須包括對隧道的建立,維護和終止。

 隧道一旦建立,資料就可以通過隧道傳送。隧道客戶端和伺服器使用隧道資料傳輸協議準備傳輸資料。例如,當隧道客戶端向伺服器端傳送資料時,客戶端首先給負載資料加上一個隧道資料傳送協議包頭,然後把封裝的資料通過網際網路絡傳送,並由網際網路絡將資料路由到隧道的伺服器端。隧道伺服器端收到資料包之後,去除隧道資料傳輸協議包頭,然後將負載資料轉發到目標網路。

隧道協議和基本隧道要求

因為第2層隧道協議(PPTP和L2TP)以完善的PPP協議為基礎,因此繼承了一整套的特性。

  1. 使用者驗證 
    第2層隧道協議繼承了PPP協議的使用者驗證方式。許多第3層隧道技術都假定在建立隧道之前,隧道的兩個端點相互之間已經瞭解或已經經過驗證。一個例外情況是IPSec協議的ISAKMP協商提供了隧道端點之間進行的相互驗證。 

  2. 令牌卡(Tokencard)支援 
    通過使用擴充套件驗證協議(EAP),第2層隧道協議能夠支援多種驗證方法,包括一次性口令(one-timepassword),加密計算器(cryptographic calculator)和智慧卡等。第3層隧道協議也支援使用類似的方法,例如,IPSec協議通過ISAKMP/Oakley協商確定公共金鑰證書驗證。 

  3. 動態地址分配 
    第2層隧道協議支援在網路控制協議(NCP)協商機制的基礎上動態分配客戶地址。第3層隧道協議通常假定隧道建立之前已經進行了地址分配。目前IPSec隧道模式下的地址分配方案仍在開發之中。 

  4. 資料壓縮 
    第2層隧道協議支援基於PPP的資料壓縮方式。例如,微軟的PPTP和L2TP方案使用微軟點對點加密協議(MPPE)。IETP正在開發應用於第3層隧道協議的類似資料壓縮機制。 

  5. 資料加密 
    第2層隧道協議支援基於PPP的資料加密機制。微軟的PPTP方案支援在RSA/RC4演算法的基礎上選擇使用MPPE。第3層隧道協議可以使用類似方法,例如,IPSec通過ISAKMP/Oakley協商確定幾種可選的資料加密方法。微軟的L2TP協議使用IPSec加密保障隧道客戶端和伺服器之間資料流的安全。 

  6. 金鑰管理 
    作為第2層協議的MPPE依靠驗證使用者時生成的金鑰,定期對其更新。IPSec在ISAKMP交換過程中公開協商公用金鑰,同樣對其進行定期更新。 

  7. 多協議支援 
    第2層隧道協議支援多種負載資料協議,從而使隧道客戶能夠訪問使用IP,IPX,或NetBEUI等多種協議企業網路。相反,第3層隧道協議,如IPSec隧道模式只能支援使用IP協議的目標網路。

資料傳輸階段

一旦完成上述 4階段的協商,PPP就開始在連線對等雙方之間轉發資料。每個被傳送的資料包都被封裝在PPP包頭內,該包頭將會在到達接收方之後被去除。如果在階段1選擇使用資料壓縮並且在階段4完成了協商,資料將會在被傳送之間進行壓縮。類似的,如果如果已經選擇使用資料加密並完成了協商,資料(或被壓縮資料)將會在傳送之前進行加密。 

點對點隧道協議(PPTP)

PPTP是一個第2層的協議,將PPP資料楨封裝在IP資料包內通過IP網路,如Internet傳送。PPTP還可用於專用區域網路之間的連線。RFC草案“點對點隧道協議”對PPTP協議進行了說明和介紹。該草案由PPTP論壇的成員公司,包括微軟,Ascend,3Com,和ECI等公司在1996年6月提交至IETF。可在如下站點 http://www.ietf.org 參看草案的線上拷...桓鯬PTP資料包。

第2層轉發(L2F)

L2F是Cisco公司提出隧道技術,作為一種傳輸協議L2F支援撥號接入伺服器將撥號資料流封裝在PPP楨內通過廣域網鏈路傳送到L2F伺服器(路由器)。L2F伺服器把資料包解包之重新注入(inject)網路。與PPTP和L2TP不同,L2F沒有確定的客戶方。應當注意L2F只在強制隧道中有效。(自願和強制隧道的介紹參看“隧道型別”)。

第2層隧道協議(L2TP)

L2TP結合了PPTP和L2F協議。設計者希望L2TP能夠綜合PPTP和L2F的優勢。 
L2TP是一種網路層協議,支援封裝的PPP楨在IP,X.25,楨中繼或ATM等的網路上進行傳送。當使用IP作為L2TP的資料包傳輸協議時,可以使用L2TP作為Internet網路上的隧道協議。L2TP還可以直接在各種WAN媒介上使用而不需要使用IP傳輸層。草案RFC“第2層隧道協議”對L2TP進行了說明和介紹。該文件於1998年1月被提交至IETF。可以在以下網站http://www.ietf.org 獲得草案拷貝。

IP網上的L2TP使用UDP和一系列的L2TP訊息對隧道進行維護。L2TP同樣使用UDP將L2TP協議封裝的PPP楨通過隧道傳送。可以對封裝PPP楨中的負載資料進行加密或壓縮。圖8所示為如何在傳輸之前組裝一個L2TP資料包。

PPTP與L2TP

PPTP和L2TP都使用PPP協議對資料進行封裝,然後新增附加包頭用於資料在網際網路絡上的傳輸。儘管兩個協議非常相似,但是仍存在以下幾方面的不同:

  1. PPTP要求網際網路絡為IP網路。L2TP只要求隧道媒介提供面向資料包的點對點的連線。L2TP可以在IP(使用UDP),楨中繼永久虛擬電路(PVCs),X.25虛擬電路(VCs)或ATM VCs網路上使用。
  2. PPTP只能在兩端點間建立單一隧道。L2TP支援在兩端點間使用多隧道。使用L2TP,使用者可以針對不同的服務質量建立不同的隧道。
  3. L2TP可以提供包頭壓縮。當壓縮包頭時,系統開銷(overhead)佔用4個位元組,而PPTP協議下要佔用6個位元組。
  4. L2TP可以提供隧道驗證,而PPTP則不支援隧道驗證。但是當L2TP或PPTP與IPSEC共同使用時,可以由IPSEC提供隧道驗證,不需要在第2層協議上驗證隧道。

IPSec隧道模式

IPSEC是第3層的協議標準,支援IP網路上資料的安全傳輸。本文將在“高階安全”一部分中對IPSEC進行詳細的總體介紹,此處僅結合隧道協議討論IPSEC協議的一個方面。除了對IP資料流的加密機制進行了規定之外,IPSEC還制定了IPoverIP隧道模式的資料包格式,一般被稱作IPSEC隧道模式。一個IPSEC隧道由一個隧道客戶和隧道伺服器組成,兩端都配置使用IPSEC隧道技術,採用協商加密機制。

為實現在專用或公共IP網路上的安全傳輸,IPSEC隧道模式使用的安全方式封裝和加密整個IP包。然後對加密的負載再次封裝在明文IP包頭內通過網路傳送到隧道伺服器端。隧道伺服器對收到的資料包進行處理,在去除明文IP包頭,對內容進行解密之後,獲的最初的負載IP包。負載IP包在經過正常處理之後被路由到位於目標網路的目的地。

IPSEC隧道模式具有以下功能和侷限:

  1. 只能支援IP資料流
  2. 工作在IP棧(IPstack)的底層,因此,應用程式和高層協議可以繼承IPSEC的行為。
  3. 由一個安全策略(一整套過濾機制)進行控制。安全策略按照優先順序的先後順序建立可供使用的加密和隧道機制以及驗證方式。當需要建立通訊時,雙方機器執行相互驗證,然後協商使用何種加密方式。此後的所有資料流都將使用雙方協商的加密機制進行加密,然後封裝在隧道包頭內。 

隧道型別

  1. 自願隧道(Voluntarytunnel) 
    使用者或客戶端計算機可以通過傳送VPN請求配置和建立一條自願隧道。此時,使用者端計算機作為隧道客戶方成為隧道的一個端點。 

  2. 強制隧道(Compulsorytunnel) 
    由支援VPN的撥號接入伺服器配置和建立一條強制隧道。此時,使用者端的計算機不作為隧道端點,而是由位於客戶計算機和隧道伺服器之間的遠端接入伺服器作為隧道客戶端,成為隧道的一個端點。

目前,自願隧道是最普遍使用的隧道型別。以下,將對上述兩種隧道型別進行詳細介紹。

自願隧道

當一臺工作站或路由器使用隧道客戶軟體建立到目標隧道伺服器的虛擬連線時建立自願隧道。為實現這一目的,客戶端計算機必須安裝適當的隧道協議。自願隧道需要有一條IP連線(通過區域網或撥號線路)。使用撥號方式時,客戶端必須在建立隧道之前建立與公共網際網路絡的撥號連線。一個最典型的例子是Internet撥號使用者必須在建立Internet隧道之前撥通本地ISP取得與Internet的連線。

對企業內部網路來說,客戶機已經具有同企業網路的連線,由企業網路為封裝負載資料提供到目標隧道伺服器路由。

大多數人誤認為VPN只能使用撥號連線。其實,VPN只要求支援IP的網際網路絡。一些客戶機(如家用PC)可以通過使用撥號方式連線Internet建立IP傳輸。這只是為建立隧道所做的初步準備,並不屬於隧道協議。

強制隧道

目前,一些商家提供能夠代替撥號客戶建立隧道的撥號接入伺服器。這些能夠為客戶端計算機提供隧道的計算機或網路裝置包括支援PPTP協議的前端處理器(FEP),支援L2TP協議的L2TP接入集線器(LAC)或支援IPSec的安全IP閘道器。本文將主要以FEP為例進行說明。為正常的發揮功能,FEP必須安裝適當的隧道協議,同時必須能夠當客戶計算機建立起連線時建立隧道。

以Internet為例,客戶機向位於本地ISP的能夠提供隧道技術的NAS發出撥號呼叫。例如,企業可以與某個ISP簽定協議,由ISP為企業在全國範圍內設定一套FEP。這些FEP可以通過Internet網際網路絡建立一條到隧道伺服器的隧道,隧道伺服器與企業的專用網路相連。這樣,就可以將不同地方合併成企業網路端的一條單一的Internet連線。

因為客戶只能使用由FEP建立的隧道,所以稱為強制隧道。一旦最初的連線成功,所有客戶端的資料流將自動的通過隧道傳送。使用強制隧道,客戶端計算機建立單一的PPP連線,當客戶撥入NAS時,一條隧道將被建立,所有的資料流自動通過該隧道路由。可以配置FEP為所有的撥號客戶建立到指定隧道伺服器的隧道,也可以配置FEP基於不同的使用者名稱或目的地建立不同的隧道。

自願隧道技術為每個客戶建立獨立的隧道。FEP和隧道伺服器之間建立的隧道可以被多個撥號客戶共享,而不必為每個客戶建立一條新的隧道。因此,一條隧道中可能會傳遞多個客戶的資料資訊,只有在最後一個隧道使用者斷開連線之後才終止整條隧道。

高階安全功能

雖然Internet為建立VPN提供了極大的方便,但是需要建立強大的安全功能以確保企業內部網路不受到外來攻擊,確保通過公共網路傳送的企業資料的安全。

對稱加密與非對稱加密(專用金鑰與公用金鑰)

對稱加密,或專用金鑰(也稱做常規加密)由通訊雙方共享一個祕密金鑰。傳送方在進行數學運算時使用金鑰將明文加密成密文。接受方使用相同的金鑰將密文還原成明文。RSA RC4演算法,資料加密標準(DES),國際資料加密演算法(IDEA)以及Skipjack加密技術都屬於對稱加密方式。 

非對稱加密,或公用金鑰,通訊各方使用兩個不同的金鑰,一個是隻有傳送方知道的專用金鑰,另一個則是對應的公用金鑰,任何人都可以獲得公用金鑰。專用金鑰和公用金鑰在加密演算法上相互關聯,一個用於資料加密,另一個用於資料解密。

公用金鑰加密技術允許對資訊進行數字簽名。數字簽名使用傳送傳送一方的專用金鑰對所傳送資訊的某一部分進行加密。接受方收到該資訊後,使用傳送方的公用金鑰解密數字簽名,驗證傳送方身份。

證書

使用對稱加密時,傳送和接收方都使用共享的加密金鑰。必須在進行加密通訊之前,完成金鑰的分佈。使用非對稱加密時,傳送方使用一個專用金鑰加密資訊或數字簽名,接收方使用公用金鑰解密資訊。公用金鑰可以自由分佈給任何需要接收加密資訊或數字簽名資訊的一方,傳送方只要保證專用金鑰的安全性即可。

為保證公用金鑰的完整性,公用金鑰隨證書一同釋出。證書(或公用金鑰證書)是一種經過證書籤發機構(CA)數字簽名的資料結構。CA使用自己的專用金鑰對證書進行數字簽名。如果接受方知道CA的公用金鑰,就可以證明證書是由CA簽發,因此包含可靠的資訊和有效的公用金鑰。

總之,公用金鑰證書為驗證傳送方的身份提供了一種方便,可靠的方法。IPSec可以選擇使用該方式進行端到端的驗證。RAS可以使用公用金鑰證書驗證使用者身份。

擴充套件驗證協議(EAP)

如前文所述,PPP只能提供有限的驗證方式。EAP是由IETF提出的PPP協議的擴充套件,允許連線使用任意方式對一條PPP連線的有效性進行驗證。EAP支援在一條連線的客戶和伺服器兩端動態加入驗證外掛模組。

交易層安全協議(EAP-TLS)

EAP-TLS已經作為提議草案提交給IETF,用於建立基於公用金鑰證書的強大的驗證方式。使用EAP-TLS,客戶向撥入伺服器傳送一份使用者方證書,同時,伺服器把伺服器證書傳送給客戶。使用者證書向伺服器提供了強大的使用者識別資訊;伺服器證書保證使用者已經連線到預期的伺服器。

使用者方證書可以被存放在撥號客戶PC中,或存放在外部智慧卡。無論那種方式,如果使用者不能提供沒有一定形式的使用者識別資訊(PIN號或使用者名稱和口令),就無法訪問證書。

IPSEC

IPSEC是一種由IETF設計的端到端的確保基於IP通訊的資料安全性的機制。IPSEC支援對資料加密,同時確保資料的完整性。按照IETF的規定,不採用資料加密時,IPSEC使用驗證包頭(AH)提供驗證來源驗證(source authentication),確保資料的完整性;IPSEC使用封裝安全負載(ESP)與加密一道提供來源驗證,確保資料完整性。IPSEC協議下,只有傳送方和接受方知道祕密金鑰。如果驗證資料有效,接受方就可以知道資料來自傳送方,並且在傳輸過程中沒有受到破壞。

可以把IPSEC想象成是位於TCP/IP協議棧的下層協議。該層由每臺機器上的安全策略和傳送、接受方協商的安全關聯(security association)進行控制。安全策略由一套過濾機制和關聯的安全行為組成。如果一個資料包的IP地址,協議,和埠號滿足一個過濾機制,那麼這個資料包將要遵守關聯的安全行為。

協商安全關聯(NegotiatedSecurityAssociation)

上述第一個滿足過濾機制的資料包將會引發傳送和接收方對安全關聯進行協商。ISAKMP/OAKLEY是這種協商採用的標準協議。在一個ISAKMP/OAKLEY交換過程中,兩臺機器對驗證和資料安全方式達成一致,進行相互驗證,然後生成一個用於隨後的資料加密的個共享金鑰。

驗證包頭

通過一個位於IP包頭和傳輸包頭之間的驗證包頭可以提供IP負載資料的完整性和資料驗證。驗證包頭包括驗證資料和一個序列號,共同用來驗證傳送方身份,確保資料在傳輸過程中沒有被改動,防止受到第三方的攻擊。IPSEC驗證包頭不提供資料加密;資訊將以明文方式傳送。

封裝安全包頭

為了保證資料的保密性並防止資料被第3方竊取,封裝安全負載(ESP)提供了一種對IP負載進行加密的機制。另外,ESP還可以提供資料驗證和資料完整性服務;因此在IPSEC包中可以用ESP包頭替代AH包頭。

使用者管理

在選擇VPN技術時,一定要考慮到管理上的要求。一些大型網路都需要把每個使用者的目錄資訊存放在一臺中央資料儲存裝置中(目錄服務)便於管理人員和應用程式對資訊進行新增,修改和查詢。每一臺接入或隧道伺服器都應當能夠維護自己的內部資料庫,儲存每一名使用者的資訊,包括使用者名稱,口令,以及撥號接入的屬性等。但是,這種由多臺伺服器維護多個使用者帳號的作法難以實現及時的更新,給管理帶來很大的困難。因此,大多數的管理人員採用在目錄伺服器,主域控制器或RADIUS伺服器上建立一個主帳號資料庫的方法,進行有效管理。

RAS支援

微軟的遠端接入伺服器(RAS)使用域控制器或RADIUS伺服器儲存每名使用者的資訊。因為管理員可以在單獨的資料庫中管理使用者資訊中的撥號許可資訊,所以使用一臺域控制器能夠簡化系統管理。

微軟的RAS最初被用作撥號使用者的接入伺服器。現在,RAS可以作為PPTP和L2TP協議的隧道伺服器(NT5將支援L2TP)。這些第2層的VPN方案繼承了已有的撥號網路全部的管理基礎。

擴充套件性

通過使用迴圈DNS在同屬一個安全地帶(securityperimeter)的VPN隧道伺服器之間進行請求分配,可以實現容餘和負荷平衡。一個安全地帶只具有一個對外域名,但擁有多個IP地址,負荷可以在所有的IP地址之間進行任意的分配。所有的伺服器可以使用一個共享資料庫,如NT域控制器驗證訪問請求。

RADIUS

遠端驗證使用者撥入服務(RADIUS)協議是管理遠端使用者驗證和授權的常用方法。RADIUS是一種基於UDP協議的超輕便(lightweight)協議。RADIUS伺服器可以被放置在Internet網路的任何地方為客戶NAS提供驗證(包括PPP PAP,CHAP,MSCHAP和EAP)。另外,RADIUS伺服器可以提供代理服務將驗證請求轉發到遠端的RADIUS伺服器。例如,ISP之間相互合作,通過使用RADIUS代理服務實現漫遊使用者在世界各地使用本地ISP提供的撥號服務連線Internet和VPN。如果ISP發現使用者名稱不是本地註冊使用者,就會使用RADIUS代理將接入請求轉發給使用者的註冊網路。這樣企業在掌握授權權利的前提下,有效的使用ISP的網路基礎設施,使企業的網路費用開支實現最小化。

記費,審計和報警

為有效的管理VPN系統,網路管理人員應當能夠隨時跟蹤和掌握以下情況:系統的使用者,連線數目,異常活動,出錯情況,以及其它可能預示出現裝置故障或網路受到攻擊的現象。日誌記錄和實時資訊對記費,審計和報警或其它錯誤提示具有很大幫助。例如,網路管理人員為了編制帳單資料需要知道何人在使用系統以及使用了多長時間。異常活動可能預示著存在對系統的不正確使用或系統資源出現不足。對裝置進行實時的監測可以在系統出現問題時及時向管理員發出警告。一臺隧道伺服器應當能夠提供以上所有資訊以及對資料進行正確處理所需要的事件日誌,報告和資料儲存裝置。 

NT4.0在RAS中提供了對記費,審計和報警的支援。RADIUS協議對呼叫-記費請求(call-accountingrequest)進行了規定。當RAS向RADIUS傳送呼叫-記費請求後由後者建立記費記錄分別記錄呼叫開始,結束以及預定中斷的情況。

結論

如本文所述,Windows系統自帶的VPN服務允許使用者或企業通過公共或專用網路與遠端伺服器,分支機構,或其他公司建立安全和可靠的連線。雖然上述通訊過程發生公共網際網路絡上,但是使用者端如同使用專用網路進行通訊一樣建立起安全的連線。使用Windows系統的VPN技術可以解決在當今遠端通訊量日益增大,企業全球運作分佈廣泛的情況下,員工需要訪問中央資源,企業相互之間必須能夠進行及時和有效的通訊的問題。


相關文章