歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 基於IPsec的虛擬專用網在Unix上的組建--原理篇

基於IPsec的虛擬專用網在Unix上的組建--原理篇

日期:2017/2/27 9:47:27   编辑:更多Linux
  1. 前言 隨著Internet的不斷發展,由於其方便快捷,很多大公司和政府部門或民間組織都用它來傳輸數據,這些單位的各個部門往往都是跨地區的,相隔很遠,如果全部用自己的專線,其價格非常昂貴。於是利用Internet這樣的公共網絡來傳輸私有數據就可以節省大量費用。但是這樣的後果就是非常不安全,在Internet上,數據隨時可能會被不懷好意的網絡入侵者竊取或修改,因此,數據在傳輸過程中必須被加密,接收方和發送方通過一個虛擬的安全隧道來傳輸信息,這就是虛擬專用網技術。如果是在TCP或UDP層加密,那麼通過截取IP層的數據同樣可以獲得機密信息,在IP層使用加密和認證就非常安全了,這就是IPsec(IP安全體系結構)技術。目前利用IPsec來實現VPN(虛擬專用網)成為一種發展趨勢。 2. IP協議的安全體系結構 IPv4的包本身沒有提供任何安全保護,黑客可以通過信息包探測、IP電子欺騙、連接截獲、replay攻擊(是一種不斷發相同序列號的包使系統崩潰的攻擊方法)等方法來攻擊。因此,我們收到的數據包存在著以下危險:並非來自合法的發送者; 數據在傳輸過程中被人修改; 數據內容已被人竊取(想想如果是軍事機密等重要信息的話,這是致命的)。IPsec的目的就是為了實現數據傳輸的完整性(源地址驗證和保證數據沒有被修改)和機密性(沒有被人看過)以及提供一定程度的對replay攻擊的保護。IPsec可用它為IP及其上層協議(TCP和UDP等)提供安全保護。 RFC2401規定了IPsec的基本結構,它利用認證頭標(AH)和封裝化安全淨荷(ESP)來實現數據的認證和加密。前者用來實現數據的完整性,後者用來實現數據的機密性。同時對數據的傳輸規定了兩種模式:傳送模式和通道模式。在傳送模式中,IP頭與上層協議頭之間嵌入一個新的IPsec頭(AH或ESP); 在通道模式中,要保護的整個IP包都封裝到另一個IP數據包裡,同時在外部與內部IP頭之間嵌入一個新的IPsec頭。兩種IPsec頭都可以同時以傳送模式和通道模式工作。圖1 說明了分別在兩種模式下的IP包。 原始的數據包 傳送模式受保護的數據包 通道模式受保護的數據包 圖1 IPsec是由四大組件組成,它們是因特網密鑰交換進程、IPsec進程本身、安全聯盟數據庫和安全策略數據庫。 IPsec中有兩個重要的數據庫,分別是安全聯盟數據庫SAD和安全策略數據庫SPD。SAD中的每一個元組是一個安全聯盟SA,它是構成IPsec的基礎,是兩個通信實體經協商建立起來的一種協定,它決定了用來保護數據包安全的IPsec協議、轉碼方式、密鑰以及密鑰的有效存在時間等。SPD中的每一個元組是一條策略,策略是指應用於數據包的安全服務以及如何對數據包進行處理,是人機之間的安全接口,包括策略定義、表示、管理以及策略與IPsec系統各組件間的交互。兩個數據庫聯合使用。對於發送方,每個SPD的元組都有指針指向相關的SAD的元組。如果一個SPD的元組沒有指向適合發送包的SA,那麼將會創建新的SA或SA束,並將SPD的元組和新的SA元組鏈接起來。對於接收方,通過包頭信息包含的IP目的地址、IP安全協議類型(AH或ESP)和SPI(安全參數索引)在SAD中查找對應的SA。SA中其他字段為序列號、序列號溢出標志、Anti-replay 窗口、AH認證算法和密鑰、ESP加密算法和密鑰及初始化矩陣、ESP認證算法及密鑰等等。 因特網密鑰交換(IKE)是IPsec最為重要的部分,在用IPsec保護一個IP包之前,必須先建立一個SA,IKE用於動態建立SA。IKE代表IPsec對SA進行協商,並對SAD數據庫進行填充。RFC2409所描述的IKE是一個混合型的協議,它建立在由Internet安全聯盟和密鑰管理協議(ISAKMP)定義的一個框架上,見RFC2408。IKE使用了兩個階段的ISAKMP。第一階段建立IKE安全聯盟,第二階段利用這個既定的安全聯盟,為IPsec協商具體的安全聯盟。 IPsec進程本身就是用來實現整個IPsec的守護進程,用戶可以通過和這個進程打交道來管理自己的安全策略,實現適合自己需要的網絡安全。當然,每個開發組織的源代碼不一樣,用戶管理的界面和方式就不一樣,但是它們都必須遵守RFC的規范,最終的目的都應該是差不多的。通常,IPsec的源代碼是嵌入到內核IP層源代碼中的,也有人提出在其層次在IP之上,TCP之下,兩種方式都可以。 3. 虛擬專用網 虛擬專用網(VPN)是專用網的擴展,它的通信兩端之間通過的是公用傳輸介質如Internet。VPN允許你在兩台計算機之間通過公共傳輸介質通信,就好像是自己的端到端的專用網一樣。為了模擬端到端的專用網,數據必須被加上一個路由信息頭,以便能夠在Internet上找到正確的路徑; 同時為了數據的安全,數據包在傳輸過程中必須被加密。圖2說明了VPN的邏輯概念,VPN連接使用戶可以在家工作或者在出差的旅途中利用公用介質如Internet來和公司總部的機器連接。從用戶的角度來看,VPN是一個VPN的客戶端與服務器端的端到端的的連接,Internet等公共介質的網絡結構是無關緊要的,因為從邏輯上看,數據是在專用網上傳輸。VPN也可以使公司在地域上分割的各個分部之間通過Internet傳輸信息,信息必須在一個安全的通道中傳播,從邏輯上看就像一個WAN上的專用網。


VPN的一個重要的特征就是安全性,通過VPN通信的兩台主機必須通過一個安全的通道(tunnel)。這個tunnel是邏輯上的,並不真正存在,因此通過數據的加密和認證使得數據包即使被截獲也不容易破譯。如何實現這一點,以前的VPN很多的采用SSL等方法對數據進行加密,但是缺點是配置安全策略不夠靈活,另外,需要在高層協議上開發大量的代碼,唯一的優點就是能夠對DOS(服務拒絕)攻擊由較好的防御。 圖2 VPN的邏輯概念圖 4.基於IPsec的虛擬專用網 當IPsec用於路由器時,就可以建立虛擬專用網。在路由器的連內部網的一端,如圖2 所示,是一個受保護的網絡,另一端則是不安全的公共網絡。兩個這樣的路由器建立 起一個安全通道,通信就可以通過這個通道從一個本地的保護子網發送到一個遠程的保護子網,這就形成了一個VPN。 在這個VPN中,每一個具有IPsec的路由器都是一個網絡聚合點,試圖對VPN進行通信分析將會失敗。目的地是VPN的所有通信都經過路由器上的SA來定義加密或認證的算法和密鑰等參數,即從VPN的一個路由器出來的數據包只要符合安全策略,就會用相應的SA來加密或認證(加上AH或ESP報頭)。整個安全傳輸過程由IKE控制,密鑰自動生成,保護子網內的用戶根本不需要考慮安全,所有的加密和解密由兩端的路由器全權代理。 我們來看看數據包的處理過程,先看看數據包的外出處理: (1)源主機TCP層通過調用ip_output()函數,調用IP層, 令其發送一個數據包給路由器; (2)路由器針對目的主機的數據包,查詢策略引擎,根據安全策略強制加上AH或ESP頭; (3)IKE處理,對沒有SA的安全策略建立新的SA; (4)SA處理, 增加序列號字段; (5)通道模式處理,通常VPN用的是通道模式,因此加上一個額外的IP頭; (6)路由器發送這個安全的數據包。 接收方的處理過程: (1)另一端的路由器收到這個包,剝去額外的IP頭,並利用數據包的AH或ESP頭調用 IPsec層; (2)IPsec層從AH或ESP頭摘錄出SPI,從IP頭中選出源和目的地址及協議; (3)IPsec層用以上的參數從SAD中取出所需的SA,如果沒找到,就丟棄這個包; (4)SAD返回SA,IPsec將會根據AH和ESP定義的規則對這個包進行處理; (5)驗證和這個包對應的策略,進而決定IPsec處理的應用是否正確,策略是通過SA中的指針獲得或利用選擇符查詢SPD得來; (6)如果驗證正確,那麼解密並把這個包轉發到真正的目的主機。 5.在Linux上的例子 我們實現的基於IPsec的VPN選用的Linux操作系統作為兩端的路由器,其結構如圖2所示,是一個典型的VPN結構。兩邊的路由器定義了相同的安全策略,也就是說,兩端的通信都遵守相同的安全規則,例如都使用HMAC-MD5算法對WWW服務進行驗證,都使用TRI-DES算法對telnet進行加密等等。IPsec的四大部分都在作為路由器的Linux機器上。 兩端的路由器的IP地址分別是202.38.64.185和202.38.75.75,我們的測試方案是從64.185內的主機host1和75.75內的主機host2的FTP通信,host1和host2的有相應的域名解析,分別對應各自內部的IP地址。公共網絡是校園上的Internet網,如圖3所示 圖3 基於IPsec的VPN在Linux上的實現環境 經過測試表明,從host1到host2的IP包全部被封裝了一個額外的IP頭,所有的上層協議都是經過加密的亂碼,無法分析其內容,黑客獲得的唯一信息就是這個包是64.185和75.75之間的通信(ESP應用TRI-DES算法)。另外,應用TRI-DES的結果使得網絡吞吐量下降了25%左右,這是由於在路由器上所做的加密和解密過程都需要耗費一定的時間。 基於IPsec的VPN實現有以下優點: (1)在IP層增加AH或ESP頭實現網絡安全使得通信安全可靠; (2)IKE協議可以自動產生需要的SA,並且SA的生存期非常短,使得破譯更加困難; (3)定義安全策略方便靈活,只需要在配置文件裡進行編輯,就可以實現安全策略,例如如果一種算法被破解,立刻換另一種算法。 (目前AH支持HAMC-MD5、HAMC-SHA1; ESP支持DES-CBC、TRI-DES-CBC、BLOWFISH-CBC、CAST128-CBC)

6.小結 IPsec的提出使得VPN有了更好的解決方案,這是因為在網絡層就進行安全服務,使得密鑰協商的開銷被大大削減了,這是由於多種傳送協議和應



6.小結 IPsec的提出使得VPN有了更好的解決方案,這是因為在網絡層就進行安全服務,使得密鑰協商的開銷被大大削減了,這是由於多種傳送協議和應



Copyright © Linux教程網 All Rights Reserved