VPN技術(IPsec

常見的VPN技術

  • IPsec VPN: 多機房互聯(即一般在GW與GW之間建立隧道)
  • L2TP/IPsec VPN: 支持多隧道,配置IPsec使用
  • PPTP VPN: 只能兩端點間建立單一隧道,可選配合IPsec使用
  • SSL VPN: 數據私密性、端點驗證、信息完整性,自協議:握手協議、記錄協議

SSL VPN

SSL VPN是無需安裝客戶端軟件,通過遠程建立的SSL隧道訪問內部服務器的代理技術,並對服務器內容提供基於用戶認證、遠程站點檢查的資源訪問控制。

SSL VPN現已成為遠程訪問VPN的新寵。除了具備與IPsec VPN相當的安全性外,認證功能更強,還增加了基於內容的訪問控制機制。客戶端只需要擁有支持SSL的瀏覽器即可

SSL VPN由於處在TCP層,所以可以進行豐富的業務控制,如行為審計,可以記錄每名用戶的所有操作,為更好地管理VPN提供了有效統計數據。

當使用者退出SSL VPN登陸頁面時,所有會話會全部釋放。


SSLVPN的技術分為以下四種

  • Web代理(proxying)
  • 應用轉換(application translation)
  • 端口轉發(port forwarding)
  • 網絡擴展(network extension)

每種技術支持的應用與控制粒度會有所不同。


Web代理(proxying)

來自客戶端的發往SSL VPN Server得頁面請求在VPN Server內部替換,發往VPN後面的真正Web服務器,然後再將Web服務器的響應回傳給終端用戶.

WEB代理是最為簡單的應用,也是控制粒度最細的SSL VPN應用,可以精確地控制每個鏈接。


應用轉換(application translation)

有些通過HTML、Java程序,有些通過HTTPS頁面中的客戶端下載實現

  • 對於非Web頁面的文件訪問,要藉助於應用轉換。
  • 在瀏覽器中用HTML或JAVA來實現模擬客戶端程序。通過SSL VPN的協議連接器,訪問指定資源。
  • 應用:文件共享、telnet、ssh、遠程桌面、ftp。


端口轉發(port forwarding)

端口映射是粒度僅次於WEB代理的應用,它通過TCP端口映射的方式(原理上類似於NAT內部服務器應用),為使用者提供遠程接入TCP的服務,它需要專門的、與服務器配套的SSL VPN客戶端程序幫忙(在頁面中一般提供下載方式)或是通過HTML代碼實現。

  • 端口轉發用於端口定義明確的應用(如FTP,SSH等)。
  • 終端系統上運行一個非常小的Java或ActiveX程序作為端口轉發器,監聽某個端口上的連接。當數據包進入 這個端口時,它們通過SSL連接中的隧道被傳送到SSL VPN網關,SSL VPN網關解開封裝的數據包,將它們轉發給目的應用服務器。
  • 使用端口轉發器,需要終端用戶指向他希望運行的本地應用程序(127.0.0.1),而不必指向真正的應用服務器。


網絡擴展(network extension)

網絡擴展是SSL VPN中粒度最粗的服務,但也是使用最廣泛的,它實現了類似於L2TP的特性,所有客戶端都可以從服務器獲得一個VPN地址,然後直接訪問內部服務器,它也需要專門的SSL VPN客戶端程序幫忙.

  • 遠程端點可以具有完全的網絡連接,並動態獲取內部地址。
  • 在用法上和IPsec等同。
  • 需要插件和網絡驅動的支持。
  • 優點:適應性好,所有的IP應用都可以。
  • 缺點:控制的粒度太粗,跟IPsec非常相似。


L2TP/IPsec VPN

實際上是,終端與接入服務器之間先建立IPsec隧道,然後再進行L2TP協商(UDP端口1701)。依靠Internet協議安全性(IPsec)技術提供加密服務,在建立的IPsec加密通道上承載L2TP的控制和數據協商並傳輸通過L2TP封裝的用戶報文。 L2TP與IPsec的結合產物稱為L2TP/IPsec。VPN客戶端與VPN服務器都必須支持L2TP和IPsec。L2TP將隨同路由與遠程訪問服務一道自動進行安裝。

在IPsec數據包基礎上所進行的L2TP封裝由兩個層次組成:

  • L2TP封裝:PPP幀(IP或IPX數據包)將通過L2TP報頭和UDP報頭進行封裝。
  • IPsec封裝:上述封裝後所得到的L2TP報文將通過IPsec封裝安全性有效載荷(ESP)報頭、用以提供消息完整性與身份驗證的IPsec身份驗證報尾以及IP報頭再次進行封裝。IP報頭中將提供與VPN客戶端和VPN服務器相對應的源IP地址和目標IP地址。IPsec加密機制將通過由IPsec身份驗證過程所生成的加密密鑰對L2TP報文進行加密。


L2TP控制報文封裝格式:(UDP 1701)

VPN技術(IPsec/L2TP/SSLVPN/PPTP)學習筆記

# L2TP Control Message

若經過IPsec NAT穿越,則在外層IP與ESP Header之間再增加一個UDP頭(端口為4500)

L2TP數據報文封裝(UDP 1701):

VPN技術(IPsec/L2TP/SSLVPN/PPTP)學習筆記

# L2TP Data encapsulation

若經過IPsec NAT穿越,則在外層IP與ESP Header之間再增加一個UDP頭(端口為4500)


L2TP/IPsec Tunnel的不足之處:

  1. 使用Windows終端(Win10/Win8等),進行L2TP/IPsec第一次撥號時,必須先添加如下注冊表項,否則無法順利接入
<code>Windows Registry Editor Version 5.00/<code>
<code>[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\PolicyAgent]/<code>
<code>"AssumeUDPEncapsulationContextOnSendRule"=dword:00000002/<code>

2. L2TP/IPsec接入時,無法自動下發路由信息,終端用戶必須手動添加路由才能訪問Server提供的子網訪問路勁

3. L2TP/IPsec配置複雜,且性能很低下,大多不會採用這個隧道方式


PPTP VPN

PPTP(Point to Point Tunneling Protocol),即點對點隧道協議。該協議是在PPP協議的基礎上開發的一種新的增強型安全協議,支持多協議虛擬專用網,可以通過密碼驗證協議,可擴展認證協議等方法增強安全性。遠程用戶可以通過ISP、直接連接Internet或者其他網絡安全地訪問企業網;

PPTP實現需要完成2個動作:協商PPTP/GRE隧道和協商建立PPTP虛擬鏈路,PPTP和FTP類似,是一種多通道協議,具體而言,即PPTP存在控制通道和數據通道。控制通道建立在PPTP客戶端和服務器之間,PPTP客戶機使用動態分配的TCP端口號,而PPTP則使用保留TCP端口號1723。控制通道用於PPTP隧道的協商和維護。PPTP控制通道協商數據包包括一個IP包頭,一個TCP報頭和PPTP控制消息:

PPTP控制報文格式:

VPN技術(IPsec/L2TP/SSLVPN/PPTP)學習筆記

# PPTP Control message

PPTP數據報文封裝:

VPN技術(IPsec/L2TP/SSLVPN/PPTP)學習筆記

# PPTP data encapsulation

由MS-CHAP、MS-CHAP v2或EAP-TLS身份驗證過程所生成的加密密鑰對PPP幀進行加密


PPTP控制連接的建立流程分析

PPTP控制連接建立過程可以分為以下幾步:

  1. 建立TCP連接
  2. PPTP控制連接和GRE隧道建立
VPN技術(IPsec/L2TP/SSLVPN/PPTP)學習筆記

3. PPP協議的LCP協商

VPN技術(IPsec/L2TP/SSLVPN/PPTP)學習筆記

4. PPP協議的身份驗證

VPN技術(IPsec/L2TP/SSLVPN/PPTP)學習筆記

5. PPP協議的NCP協商

NCP協議是PPP協議的網絡控制協議,主要用來協商雙方網絡層接口參數,配置虛擬端口,分配IP,DNS等信息。圖中的IPCP是NCP基於TCP/IP的接口協商協議。Server和Client都要把自己的Miniport信息發送給對方

VPN技術(IPsec/L2TP/SSLVPN/PPTP)學習筆記

6. PPP協議的CCP協商

CCP協議協商PPP通訊中數據加密的協議


L2TP和PPTP區別:

  • L2TP:公有協議、UDP1701、支持隧道驗證,支持多個協議,多個隧道,壓縮字節
  • PPTP:私有協議、TCP1723、不支持隧道驗證,只支持IP、只支持點到點

PPTP只能在兩端間建立單一隧道,L2TP支持在兩端點間使用多隧道,這樣可以針對不同的用戶創建不同的服務質量

L2TP可以提供隧道驗證機制,而PPTP不能提供這樣的機制,但當L2TP或PPTP與IPsec共同使用時,可以由IPsec提供隧道驗證,不需要在第二層協議上提供隧道驗證機制

PPTP要求互聯網絡為IP網絡,而L2TP只要求隧道媒介提供面向數據包的點對點連接,L2TP可以在IP(使用UDP),FR,ATM,x.25網絡上使用

L2TP可以提供包頭壓縮。當壓縮包頭時,系統開銷(overhead)佔用4個字節,而PPTP協議下要佔用6個字節


IPsec VPN

IPsec協議的設計目標:是在IPV4和IPV6環境中為網絡層流量提供靈活的安全服務。

IPsec VPN:是基於IPsec協議族構建的在IP層實現的安全虛擬專用網。通過在數據包中插入一個預定義頭部的方式,來保障OSI上層協議數據的安全,主要用於保護TCP、UDP、ICMP和隧道的IP數據包。


分享到:


相關文章: