歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> Linux業界

IPsec與NAT和平共處的解決之道

  現在,網絡安全和網絡地址轉換的應用已經十分廣泛。單就其中任何一種技術來說,都是很不錯的。如何將兩個好技術共用但又使它們相安無事,是很多人正在思考的問題。

  網絡安全IPsec(IP Security)和網絡地址轉換NAT(Net Address Translation)應用已經十分廣泛了,但是要使它們運行在一起,卻不是一件容易的事。從IP的角度來看,NAT對IP的低層進行了修改,對IP是一種背叛;而從應用的角度來看,網絡管理人員必須要處理網絡地址的問題,NAT使用戶可以采取多種方式把自己的網絡和主機對外部公共網絡隱藏起來,是一種好的工具,現在,無論是大企業還是中小企業都在使用它。與NAT類似,IPsec也是一種好工具,它使用戶可以安全地通過Internet聯接到遠程終端。然而,由於IPsec協議架構本身以及缺乏支持IPsec的NAT設備,當IPsec和NAT在一起運行時就會出現很多問題。解決這些問題最簡單的辦法,就是再增加一個路由器來運行NAT和虛擬專用網VPN。可是,對於多數情況來說並沒有多余的路由器來執行這一功能,因此,要解決兩者共存的問題,就必須對IPsec和NAT有一定的了解。

  ■NAT的基本原理和類型
  NAT能解決令人頭痛的IP地址緊缺的問題,而且能使得內外網絡隔離,提供一定的網絡安全保障。它解決問題的辦法是:在內部網絡中使用內部地址,通過NAT把內部地址翻譯成合法的IP地址在Internet上使用,其具體的做法是把IP包內的地址域用合法的IP地址來替換。

  NAT功能通常被集成到路由器、防火牆、ISDN路由器或者單獨的NAT設備中。NAT設備維護一個狀態表,用來把非法的IP地址映射到合法的IP地址上去。每個包在NAT設備中都被翻譯成正確的IP地址,發往下一級,這意味著給處理器帶來了一定的負擔。但對於一般的網絡來說,這種負擔是微不足道的。

  NAT有三種類型:靜態NAT、動態地址NAT、網絡地址端口轉換NAPT。其中靜態NAT設置起來最為簡單,內部網絡中的每個主機都被永久映射成外部網絡中的某個合法的地址。而動態地址NAT則是在外部網絡中定義了一系列的合法地址,采用動態分配的方法映射到內部網絡。NAPT則是把內部地址映射到外部網絡的一個IP地址的不同端口上。根據不同的需要,三種NAT方案各有利弊。

  動態地址NAT只是轉換IP地址,它為每一個內部的IP地址分配一個臨時的外部IP地址,主要應用於撥號,對於頻繁的遠程聯接也可以采用動態NAT。當遠程用戶聯接上之後,動態地址NAT就會分配給他一個IP地址,用戶斷開時,這個IP地址就會被釋放而留待以後使用。

  網絡地址端口轉換NAPT(Network Address Port Translation)是人們比較熟悉的一種轉換方式。NAPT普遍應用於接入設備中,它可以將中小型的網絡隱藏在一個合法的IP地址後面。NAPT與動態地址NAT不同,它將內部連接映射到外部網絡中的一個單獨的IP地址上,同時在該地址上加上一個由NAT設備選定的TCP端口號。

  在Internet中使用NAPT時,所有不同的TCP和UDP信息流看起來好像來源於同一個IP地址。這個優點在小型辦公室內非常實用,通過從ISP處申請的一個IP地址,將多個連接通過NAPT接入Internet。實際上,許多SOHO遠程訪問設備支持基於PPP的動態IP地址。這樣,ISP甚至不需要支持NAPT,就可以做到多個內部IP地址共用一個外部IP地址上Internet,雖然這樣會導致信道的一定擁塞,但考慮到節省的ISP上網費用和易管理的特點,用NAPT還是很值得的。(如圖示)

  ■IPsec的工作模式
  IPsec是一個能在Internet上保證通道安全的開放標准。在不同的國度中,跨國企業面臨不同的密碼長度進出口限制。IPSec能使網絡用戶和開發商采用各自不同的加密算法和關鍵字長,從而解決令跨國機構頭痛的安全問題。

  IPsec生成一個標准平台,來開發安全網絡和兩台機器之間的電子隧道。通過IPsec的安全隧道,在數據包可以傳送的網絡中生成像電路那樣的連接。IPsec在遠地用戶之間和在本地網中生成這樣的隧道,它也把每個數據包包封在一個新的包中,該新包包含了建立、維持和不再需要時拆掉隧道所必需的信息。

  經常利用IPsec來確保數據網絡的安全。通過使用數字證明和自動認證設備,來驗證兩個來回發送信息的用戶身份。對需要在很多設備之間安全連接的大型網絡中確保數據安全,IPsec是一個理想的方法。

  部署了IPsec的用戶能確保其網絡基礎設施的安全,而不會影響各台計算機上的應用程序。此套協議是用作對網絡基礎設施的純軟件升級。這既允許實現安全性,又沒有花什麼錢對每台計算機進行改造。最重要的是,IPsec允許不同的網絡設備、PC機和其他計算系統之間實現互通。

  IPsec有兩種模式—─傳輸模式和隧道模式。傳輸模式只對IP分組應用IPsec協議,對IP報頭不進行任何修改,它只能應用於主機對主機的IPsec虛擬專用網VPN中。隧道模式中IPsec將原有的IP分組封裝成帶有新的IP報頭的IPsec分組,這樣原有的IP分組就被有效地隱藏起來了。隧道主要應用於主機到網關的遠程接入的情況。

  IPsec協議中有兩點是我們所關心的:鑒定報頭AH(Authentication Header)和封裝安全載荷ESP(Encapsulation Security Payload)。

  鑒定報頭AH可與很多各不相同的算法一起工作。AH應用得很少,它要校驗源地址和目的地址這些標明發送設備的字段是否在路由過程中被改變過,如果校驗沒通過,分組就會被拋棄。通過這種方式AH就為數據的完整性和原始性提供了鑒定。

  封裝安全載荷(ESP)信頭提供集成功能和IP數據的可靠性。集成保證了數據沒有被惡意網客破壞,可靠性保證使用密碼技術的安全。對IPv4和IPv6,ESP信頭都列在其它IP信頭後面。注意兩種可選擇的IP信頭,段到段信頭在每個段被路由器等立即系統處理,而終端信頭只被接收端處理。ESP編碼只有在不被任何IP信頭擾亂的情況下才能正確發送包。ESP協議非常靈活,可以在兩種加密算法下工作。建立IPSec的兩個或者更多系統之間可以使用其他轉換方式。現在,可選擇算法包括Triple-DES、RC5、IDEA、CAST、BLOWFISH和RC4。

  ■NAT和IPsec之間的“矛盾”
  NAT和AH IPsec無法一起運行,因為根據定義,NAT會改變IP分組的IP地址,而IP分組的任何改變都會被AH標識所破壞。當兩個IPsec邊界點之間采用了NAPT功能但沒有設置IPsec流量處理的時候,IPsec和NAT同樣無法協同工作;另外,在傳輸模式下,ESP IPsec不能和NAPT一起工作,因為在這種傳輸模式下,端口號受到ESP的保護,端口號的任何改變都會被認為是破壞。在隧道模式的ESP情況下,TCP/UDP報頭是不可見的,因此不能被用於進行內外地址的轉換,而此時靜態NAT和ESP IPsec可以一起工作,因為只有IP地址要進行轉換,對高層協議沒有影響。

  ■解決爭端,和平共處
  為了解決ESP IPsec和NAPT共用的問題,設備生產商提出了多種解決方法。簡單的辦法是專門用一個工作站來運行IKE,以處理所有的IPsec分組,但這樣只允許一個IPsec VPN通過NAPT。客戶端可以一開始通過端口號500傳送數據進行協商,將所有進入到NAPT設備的IPsec分組傳送到指定的主機,同時使NAPT設備將所需的IPsec數據送回到客戶端。為了使NAPT正常工作,必須保證內部網絡和外部網絡之間轉換的源端口號是惟一的。因此,我們可以使用IKE來進行協商,IKE采用UDP的500端口,所以不需要任何的特殊處理。為了在兩個主機之間傳送IPsec流量,我們需要使用SPI。每個SA都有SPI,在VPN安裝過程中進行IKE協商時,它們互相交換SPI。NAPT設備將這一對SPI數字映射到NAT內的相關的VPN終端。IPsec 客戶端選擇的SPI要映射到一個內部IP地址,因為NAPT設備要通過它來確定將流入的流量傳送到哪裡。

  幾點值得注意:1.這種解決爭端的方法只適用於位於NAPT設備之外的IPsec 客戶端來初始化IPsec VPN;2.必須要設置IPsec網關,用NAPT網關給出的某個IP地址進行IKE協商。ESP用SPI、目的地址和協議號來查找IPsec分組所屬的SA,因為IPsec網關只是通過NAPT地址來確定IPsec客戶端,它必須使用這個地址進行協商;3.許多IKE鑒定是通過IP地址相關的預先設定或者與密碼來進行處理的,因此必須設置IPsec網關與NAPT IP地址之間的協商。




Copyright © Linux教程網 All Rights Reserved