構建穿越NAT裝置的IPSec隧道

2021-05-22 20:50:18 字數 3612 閱讀 8974

金融行業對資訊保安的要求強度高,除了網上銀行,很少通過網際網路採取ipsec vpn方式開展業務和辦公。但在金融行業網路內部,完全可以利用ipsec vpn在資料傳輸、身份認證與審計等功能方面所具備的優勢,實現多種應用。例如,利用ipsec vpn技術,實現通過cdma構建安全的atm業務傳輸網路,以及解決金融行業內部伺服器系統管理所存在的安全問題。

一、網路技術——nat與ipsec

nat網路位址翻譯(network address translation)是目前使用比較廣泛的一種網路技術,它的基本功能是進行ip資料報網路位址的轉換,主要用來解決ipv4位址緊張的問題。其工作原理為:當內部網路流量流經nat伺服器時,由nat裝置將內部網路的ip源位址替換為internet網路源位址,然後在internet網路上進行傳送。

nat技術的實現方式有3種:靜態nat方式,內部網路中的每個主機都被永久對映成外部網路中的某個合法位址;nat池方式,採用動態分配的方法將外部網路中定義的一系列合法位址對映到內部網路;埠nat方式,內部位址被對映到外部網路的乙個ip位址的不同埠上。通過上述3種方式,可使公共ip位址緊張的矛盾得到一定程度的緩解,而擁有有限ip資源的isp(入侵防禦系統)服務商也能盡可能地為更多使用者提供網路服務。

當nat裝置轉換的是源位址時,我們稱其為snat(源位址nat)。簡單過程如下:當內網乙個外出的資料報經過nat裝置時,資料報的源位址就會被nat裝置的公網位址所替代,同時nat裝置會記錄內外位址的對映資訊,資料報被路由後在internet上就可以傳輸了。當資料報返回到nat裝置時,nat裝置通過記錄下的位址對映資訊將網路目標位址轉為原來的內部網路源位址,我們稱其為dnat(目標位址nat)。

由於通過nat裝置實現了內部ip位址資訊的對外隱藏,形成內外網的隔離,使得外網無法訪問內部主機,所以nat技術在一定程度上提高了內部網路的安全性。

早期對internet安全的需求非常少,在ip協議設計之初並沒有考慮其安全性。隨著基於internet的商業發展,安全問題日益突出,必須建立新的安全協議標準來滿足這種需求。由此,ipsec(ip security)協議應運而生,它主要用於提供網路層上的資料保護,提供透明的安全通訊,保證企業內部資訊能夠在internet上進行安全交換。ipsec通過對資料加密、認證、完整性檢查提供資料的保密性、完整性、可靠性,同時,通過安全策略配置還可抵抗重放攻擊。

ipsec的安全結構包括3個基本協議:ah(頭部認證)協議、esp(封裝安全載荷)協議、金鑰管理協議。ah協議為ip包提供資訊源驗證和完整性保證;esp協議提供加密保證;金鑰管理協議提供雙方交流時的共享安全資訊。ipsec通過以上3個基本協議在ip包頭後增加新的字段以保證安全。

ah協議為ip資料報提供無連線的資料完整驗證、資料來源身份認證和防重放攻擊3種服務。esp協議除了為ip資料報提供ah已有的3種服務,還提供資料報加密和資料流加密。對於esp協議,加密是其基本功能,而資料來源身份的認證、資料完整性驗證以及防重放攻擊則是可選的。

ipsec協議有兩種工作模式:隧道模式和傳輸模式。在隧道模式下,ipsec將整個原始ip資料報放入乙個新的ip資料報中,這樣每乙個ip資料報都有兩個ip包頭:外部ip包頭和內部ip包頭。外部ip包頭指定將對ip資料報進行ipsec處理的目的位址,內部ip包頭指定原始ip資料報最終的目的位址。ip包的源位址和目的位址都被隱藏起來,使ip包能安全地在網上傳送。其最大優點在於終端系統不必為了適應ip安全而作任何改動。隧道模式既可以用於兩個主機之間的ip通訊,又可以用於兩個安全閘道器之間或乙個主機與乙個安全閘道器之間的ip通訊。

在傳輸模式下,要保護的內容是ip包的載荷,在ip包頭之後和傳輸層資料字段之前插入ipsec包頭(ah或esp或二者同時),原始的ip包頭未作任何修改,只對包中的淨荷(資料)部分進行加密。由於傳輸模式的ip包頭暴露在外,因而容易遭到攻擊。傳輸模式常用於兩個終端節點間的連線,如客戶機和伺服器之間。

傳輸模式資料報封裝格式:

隧道模式資料報封裝格式:

ipsec的優點:它定義了一套用於認證、保護私有性和完整性的標準協議。 ipsec支援一系列加密演算法如des、3des。它檢查傳輸資料報的完整性,以確保資料沒有被修改。ipsec可用來在多個防火牆和伺服器之間提供安全性,確保執行在tcp/ip協議上的vpn之間的互操作性。

二、nat與ipsec的衝突

三、解決方案

現在有許多的解決方案來解決nat 和ipsec共存問題,這裡我們主要討論一種最主要的解決方法:nat-t。

nat-t設計簡單,不需要改動已有的裝置或者協議,只需要邊界裝置支援即可。這個技術的基本思路是在ipsec封裝好的資料報外再進行一次udp的資料封裝。這樣,當此資料報穿過nat閘道器時,被修改的只是最外層的ip/udp資料,而對其內部真正的ipsec 資料沒有進行改動;在目的主機處再把外層的ip/udp封裝去掉,就可以獲得完整的ipsec資料報。nat-t在實際運作時,第一步是探測通訊雙方是否支援nat-t,這主要通過ike協商時彼此傳送的第乙個資料報來判斷。在判斷雙方均支援nat-t後,進入到第二步nat裝置的發現,即去發現在上方的鏈路中間是否存在nat裝置,通過判斷通訊雙發的ip位址或者埠是否發生了改變而得知。當發現上方的鏈路中存在nat裝置後,通訊雙方nat-t開始協商所採用的資料報封裝方式,至此完成協商過程。

udp的封裝格式:

標準ipv4

隧道esp模式

nat-t的協商和建立連線分為以下幾個獨特步驟,步驟執行時完全透明,無需管理員人為操作。

1)在ike協商過程中,隧道兩端的ipsec主機協商並同意在必要時使用nat-t功能。

2)隧道兩端的ipsec主機通過計算和比較出站/入站資料報頭中ip位址的雜湊數值檢查通訊鏈路中是否存在nat裝置。

3)如果發現存在nat裝置,nat-t模組自動對ipsec資料報進行再次封裝,封裝時使用udp包頭和附加的nat-t包頭作為額外的位址資訊。

4)完成nat-t封裝後的udp資料報被正確路由到遠端ipsec主機。

5)遠端ipsec主機在收到nat-t資料報後進行解包處理,並將還原後的ipsec資料報交給ipsec處理引擎。

nat-t功能使用ike 埠(udp 500)和udp 4500埠實現nat-t封裝資料報的傳遞。

四、nat-t解決衝突的辦法

nat-t採用以下方式解決通過 nat使用ipsec的問題。

1)nat無法更新上層校驗和的問題。

通過在nat-oa ike有效載荷中傳送原始位址,接收方擁有檢驗解密之後的上層校驗和(源和目標ip位址和埠)所需的所有資訊。

2)鑑定ike有效載荷中包含嵌入的ip位址問題。

通過在 nat-oaike有效載荷中傳送原始位址,接收方擁有了可用來在快速模式協商期間檢驗鑑定ike有效載荷內容的原始位址。

3)無法改變ike udp埠號問題。

ipsec nat-t對話方能夠接受來自500之外其他埠的ike訊息。為了防止ike敏感(ike-aware)的nat修改ike包,ipsec nat-t對話方在主模式協商期間把ike udp埠500改為udp埠4500。為允許ike流量使用這個新的udp埠,您可重新配置防火牆以允許udp埠4500。

4)nat無法多路傳輸ipsec資料流的問題。

通過使用udp報頭封裝esp pdu,nat能夠使用udp埠來多路傳輸ipsec資料流。不必要再跟蹤esp報頭中的spi。

5)ike udp埠對映的nat超時可能導致的問題。

通過定期傳送nat keepalive包,用於後續ike協商和udp封裝的esp pdu的udp 埠對映同時在nat中得到重新整理。

五、nat-t的侷限性

FreeSWITCH關於穿越NAT的那點事兒

nat的種類 full cone nat 全錐型nat restricted cone nat 限制錐型nat port restricted cone nat 埠限制錐型 symmetric nat 對稱型nat freeswitch幫助終端穿越nat的解決方案 1 sip穿越 freeswitc...

關於NAT穿越的那些事兒

將一台閘道器裝置設為內部網路和外部網路的分界線,在這台閘道器裝置上一般會設定nat和防火牆功能。實現內外連線的方式,一般是內部主機發起連線,和外部伺服器或者主機進行連線,如果是部署在公網上的伺服器當然沒有問題,但是如果涉及到同樣部署在nat裝置內部的主機該如何實現主機互聯?這樣的應用有很多,比如當下...

P2P網路「自由」穿越NAT的「秘密」

穿越nat的意義 nat是為了節省ip位址而設計的,但它隱藏了內網機器的位址,意外 起到了安全的作用。對外不可見,不透明的內部網路也與網際網路的 公平 應用,相互共享 的思想所不容,尤其是p2p網路中 相互服務 的宗旨,所以穿越nat,讓眾多內部網路的機器也參與到p2p網路中的大集體中來,一直是p2...