IPSec以及GRE原理


企業對網絡安全性的需求日益提升,而傳統的TCP/IP協議缺乏有效的安全認證和保密機制。IPSec(Internet Protocol Security)作為一種開放標准的安全框架結構,可以用來保證IP數據報文在網絡上傳輸的機密性、完整性和防重放。
機密性(Confidentiality)指對數據進行加密保護,用密文的形式傳送數據。
完整性(Data integrity)指對接收的數據進行認證,以判定報文是否被篡改。
防重放(Anti-replay)指防止惡意用戶通過重復發送捕獲到的數據包所進行的攻擊,即接收方會拒絕舊的或重復的數據包。
企業遠程分支機構可以通過使用IPSec VPN建立安全傳輸通道,接入到企業總部網絡
IPSec是網絡層加密
SSL是應用層加密(web服務器)SSL更安全、容易實現、控制更精細,但是對C/S結構支持度不高,通常在B/S結構使用.
IPSec由三個協議組成
AH ESP IKE
AH協議:主要提供的功能有數據源驗證、數據完整性校驗和防報文重放功能。然而,AH並不加密所保護的數據報。
ESP協議:提供AH協議的所有功能外(但其數據完整性校驗不包括IP頭),還可提供對IP報文的加密功能。
IKE協議:用於自動協商AH和ESP所使用的密碼算法。(不一定用到,可以手工指定)
SA安全聯盟定義了IPSec通信對等體間將使用的數據封裝模式、認證和加密算法、秘鑰等參數。SA是單向的,兩個對等體之間的雙向通信,至少需要兩個SA。如果兩個對等體希望同時使用AH和ESP安全協議來進行通信,則對等體針對每一種安全協議都需要協商一對SA。
SA由一個三元組來唯一標識,這個三元組包括安全參數索引SPI(Security Parameter Index)、目的IP地址、安全協議(AH或ESP)。

建立SA的方式有以下兩種:

手工方式:安全聯盟所需的全部信息都必須手工配置。手工方式建立安全聯盟比較復雜,但優點是可以不依賴IKE而單獨實現IPSec功能。當對等體設備數量較少時,或是在小型靜態環境中,手工配置SA是可行的。

IKE動態協商方式:只需要通信對等體間配置好IKE協商參數,由IKE自動協商來創建和維護SA。動態協商方式建立安全聯盟相對簡單些。對於中、大型的動態網絡環境中,推薦使用IKE協商建立SA。

IKE協議提供密鑰協商,建立和維護安全聯盟SA等服務。
IPSec協議有兩種封裝模式:傳輸模式和隧道模式
IPSec傳輸模式的IP頭部是不加密的,數據是隱藏的
AH必定在高層協議前面,ESP頭部在高層協議前,尾部及認證字段在數據后
傳輸模式中,在IP報文頭和高層協議之間插入AH或ESP頭。傳輸模式中的AH或ESP主要對上層協議數據提供保護。
傳輸模式中的AH:在IP頭部之后插入AH頭,對整個IP數據包進行完整性校驗。
傳輸模式中的ESP:在IP頭部之后插入ESP頭,在數據字段后插入尾部以及認證字段。對高層數據和ESP尾部進行加密,對IP數據包中的ESP報文頭,高層數據和ESP尾部進行完整性校驗。
傳輸模式中的AH+ESP:在IP頭部之后插入AH和ESP頭,在數據字段后插入尾部以及認證字段。

IPSec歲的模式是生成一個新的IP頭部
AH與ESP頭部在原IP頭部前面,ESP尾部及認證字段在數據后
隧道模式中,AH或ESP頭封裝在原始IP報文頭之前,並另外生成一個新的IP頭封裝到AH或ESP之前。隧道模式可以完全地對原始IP數據報進行認證和加密,而且,可以使用IPSec對等體的IP地址來隱藏客戶機的IP地址。
隧道模式中的AH:對整個原始IP報文提供完整性檢查和認證,認證功能優於ESP。但AH不提供加密功能,所以通常和ESP聯合使用。
隧道模式中的ESP:對整個原始IP報文和ESP尾部進行加密,對ESP報文頭、原始IP報文和ESP尾部進行完整性校驗。
隧道模式中的AH+ESP:對整個原始IP報文和ESP尾部進行加密,AH、ESP分別會對不同部分進行完整性校驗。
上面這段建議看ppt的圖
興趣流:特定用戶的數據流
配置的步驟
1、配置網絡通暢
2、定義數據流 可以通過配置ACL來定義和區分不同的數據流
3、創建IPSec安全提議 IPSec提議定義了保護數據流所用的安全協議、認證算法、加密算法和封裝模式
4、配置IPSec安全策略 IPSec策略中會應用IPSec提議中定義的安全協議、認證算法、加密算法和封裝模式。每一個IPSec安全策略都使用唯一的名稱和序號來標識。IPSec策略可分成兩類:手工建立SA的策略和IKE協商建立SA的策略。
5、在接口上應用

IPSec VPN用於在兩個端點之間提供安全的IP通信,但只能加密並傳播單播數據,無法加密和傳輸語音、視頻、動態路由協議信息等組播數據流量。
通用路由封裝協議GRE(Generic Routing Encapsulation)提供了將一種協議的報文封裝在另一種協議報文中的機制,是一種隧道封裝技術。GRE可以封裝組播數據,並可以和IPSec結合使用,從而保證語音、視頻等組播業務的安全。
GRE本身不能加密所以常常與IPSec一起使用
GRE支持將一種協議的報文封裝在另一種協議報文中。GRE用來對某些網絡層協議如IPX(Internet Packet Exchange)的報文進行封裝,使這些被封裝的報文能夠在另一網絡層協議(如IP)中傳輸。GRE可以解決異種網絡的傳輸問題。
GRE可以解決異種網絡的傳輸問題。IPSec VPN技術可以創建一條跨越共享公網的隧道,從而實現私網互聯。IPSec VPN能夠安全傳輸IP報文,但是無法在隧道的兩個端點之間運行RIP和OSPF等路由協議。GRE可以將路由協議信息封裝在另一種協議報文(例如IP)中進行傳輸。
GRE隧道擴展了受跳數限制的路由協議(最多十五個,第十六個就學不到了)的工作范圍,支持企業靈活設計網絡拓撲。使用GRE可以克服IGP協議的一些局限性。例如,RIP路由協議是一種距離矢量路由協議,最大跳數為15。如果網絡直徑超過15,設備將無法通信。這種情況下,可以使用GRE技術在兩個網絡節點之間搭建隧道,隱藏它們之間的跳數,擴大網絡的工作范圍。

報文結構:
凈荷:封裝前的報文稱為凈荷
乘客協議:封裝前的報文協議稱為乘客協議
GRE封裝協議/運載協議:以上兩者封裝后會封裝GRE頭部,GRE成為封裝協議,也叫運載協議
傳輸協議:最后負責對封裝后的報文進行轉發的協議稱為傳輸協議。

封裝和解封裝過程:
設備從連接私網的接口接收到報文后,檢查報文頭中的目的IP地址字段,在路由表查找出接口,如果發現出接口是隧道接口,則將報文發送給隧道模塊進行處理。
隧道模塊接收到報文后首先根據乘客協議的類型和當前GRE隧道配置的校驗和參數,對報文進行GRE封裝,即添加GRE報文頭。
然后,設備給報文添加傳輸協議報文頭,即IP報文頭。該IP報文頭的源地址就是隧道源地址,目的地址就是隧道目的地址。(這里配完后就會自動去找目標IP地址,是直連網段然后直接傳輸)
最后,設備根據新添加的IP報文頭目的地址,在路由表中查找相應的出接口,並發送報文。之后,封裝后的報文將在公網中傳輸。
接收端設備從連接公網的接口收到報文后,首先分析IP報文頭,如果發現協議類型字段的值為47,表示協議為GRE,於是出接口將報文交給GRE模塊處理。GRE模塊去掉IP報文頭和GRE報文頭,並根據GRE報文頭的協議類型字段,發現此報文的乘客協議為私網中運行的協議,於是將報文交給該協議處理。

C:校驗和驗證,發送方用GRE頭和payload進行校驗計算,並把值發送給接收方,接收方同樣進行計算並進行對比校驗和。啟用該功能則進行校驗,不啟動則不進行校驗,不要求雙方校驗狀態必須一致。
Recursion:記錄對報文進行GRE封裝次數,一個數據報文最多封裝3次,3次以上則丟棄,防止報文被無限封裝。
關鍵字(Key)驗證是指對隧道接口進行校驗,這種安全機制可以防止錯誤接收到來自其他設備的報文。關鍵字字段是一個四字節長的數值,若GRE報文頭中的K位為1,則在GRE報文頭中會插入關鍵字字段。只有隧道兩端設置的關鍵字完全一致時才能通過驗證,否則報文將被丟棄。

Keepalive
GRE協議本身不具備檢測鏈路狀態功能
Keepalive檢測功能用於檢測隧道對端是否可達
我們要明確我們談的是TCP的 KeepAlive 還是HTTP的 Keep-Alive。TCP的KeepAlive和HTTP的Keep-Alive是完全不同的概念,不能混為一談。實際上HTTP的KeepAlive寫法是Keep-Alive,跟TCP的KeepAlive寫法上也有不同。
Keepalive檢測功能用於在任意時刻檢測隧道鏈路是否處於Keepalive狀態,即檢測隧道對端是否可達。如果對端不可達,隧道連接就會及時關閉,避免形成數據空洞。使能Keepalive檢測功能后,GRE隧道本端會定期向對端發送Keepalive探測報文。若對端可達,則本端會收到對端的回應報文;若對端不可達,則收不到對端的回應報文。如果在隧道一端配置了Keepalive功能,無論對端是否配置Keepalive,配置的Keepalive功能在該端都生效。隧道對端收到Keepalive探測報文,無論是否配置Keepalive,都會給源端發送一個回應報文。(心跳包)
使能Keepalive檢測功能后,GRE隧道的源端會創建一個計數器,並周期性地發送Keepalive探測報文,同時進行不可達計數。每發送一個探測報文,不可達計數加1。
如果源端在計數器值達到預先設置的值之前收到回應報文,則表明對端可達。如果計數器值達到預先設置的重試次數,源端還是沒有收到回應報文,則認為對端不可達。此時,源端將關閉隧道連接。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM