• 產品與解決方案
  • 行業解決方案
  • 服務
  • 支持
  • 合作夥伴
  • 關於我們

11-安全配置指導

目錄

08-IPsec配置

本章節下載 08-IPsec配置  (546.78 KB)

08-IPsec配置

1.1  目  錄

1.1 目  錄

2 IPsec

2.1 IPsec簡介

2.1.1 IPsec基本概念

2.1.2 使用IPsec保護IPv6路由協議

2.1.3 IPsec反向路由注入功能

2.1.4 協議規範

2.2 建立IPsec隧道的配置方式

2.3 IPsec隧道限製說明

2.4 基於ACL建立IPsec安全隧道

2.4.1 IPsec配置任務簡介

2.4.2 配置訪問控製列表

2.4.3 配置安全提議

2.4.4 配置安全策略

2.4.5 在接口上應用安全策略組

2.4.6 配置會話空閑超時時間

2.4.7 使能解封裝後IPsec報文的ACL檢查功能

2.4.8 配置IPsec抗重放功能

2.4.9 配置報文信息預提取功能

2.4.10 配置IPsec無效SPI恢複功能

2.4.11 配置IPsec反向路由注入功能

2.5 配置IPsec保護IPv6路由協議

2.6 IPsec顯示和維護

2.7 IPsec典型配置舉例

2.7.1 采用手工方式建立保護IPv4報文的IPsec安全隧道

2.7.2 采用IKE方式建立保護IPv4報文的IPsec安全隧道

2.7.3 配置IPsec保護RIPng報文

3 IKE

3.1 IKE簡介

3.1.1 IKE的安全機製

3.1.2 IKE的交換過程

3.1.3 IKE在IPsec中的作用

3.1.4 IPsec與IKE的關係

3.1.5 協議規範

3.2 IKE配置任務簡介

3.3 配置本端安全網關的名字

3.4 配置IKE安全提議

3.5 配置IKE對等體

3.6 配置Keepalive定時器

3.7 配置NAT Keepalive定時器

3.8 配置對等體存活檢測

3.9 配置取消對next payload域的檢查

3.10 IKE顯示和維護

3.11 IKE典型配置舉例

3.12 常見錯誤配置舉例

3.12.1 非法用戶身份信息

3.12.2 提議不匹配

3.12.3 無法建立安全隧道

3.12.4 ACL配置錯誤

 


2 IPsec

說明

·     本文所涉及的路由器和路由器圖標,代表了一般意義下的路由器或運行了路由協議的三層交換機。

·     僅以太網接口板支持IPsec功能。

 

2.1  IPsec簡介

IPsec(IP Security)是IETF製定的三層隧道加密協議,它為Internet上傳輸的數據提供了高質量的、可互操作的、基於密碼學的安全保證,是一種傳統的實現三層VPN(Virtual Private Network,虛擬專用網)的安全技術。特定的通信方之間通過建立IPsec隧道來傳輸用戶的私有數據,並在IP層提供了以下安全服務:

·     數據機密性(Confidentiality):IPsec發送方在通過網絡傳輸包前對包進行加密。

·     數據完整性(Data Integrity):IPsec接收方對發送方發送來的包進行認證,以確保數據在傳輸過程中沒有被篡改。

·     數據來源認證(Data Authentication):IPsec在接收端可以認證發送IPsec報文的發送端是否合法。

·     防重放(Anti-Replay):IPsec接收方可檢測並拒絕接收過時或重複的報文。

IPsec具有以下優點:

·     支持IKE(Internet Key Exchange,因特網密鑰交換),可實現密鑰的自動協商功能,減少了密鑰協商的開銷。可以通過IKE建立和維護SA(Security Association,安全聯盟)的服務,簡化了IPsec的使用和管理。

·     所有使用IP協議進行數據傳輸的應用係統和服務都可以使用IPsec,而不必對這些應用係統和服務本身做任何修改。

·     對數據的加密是以數據包為單位的,而不是以整個數據流為單位,這不僅靈活而且有助於進一步提高IP數據包的安全性,可以有效防範網絡攻擊。

IPsec協議不是一個單獨的協議,它給出了應用於IP層上網絡數據安全的一整套體係結構,包括網絡認證協議AH(Authentication Header,認證頭)、ESP(Encapsulating Security Payload,封裝安全載荷)、IKE(Internet Key Exchange,因特網密鑰交換)和用於網絡認證及加密的一些算法等。其中,AH協議和ESP協議用於提供安全服務,IKE協議用於密鑰交換。關於IKE的詳細介紹請參見“3 IKE”,本節不做介紹。

IPsec提供了兩種安全機製:認證和加密。認證機製使IP通信的數據接收方能夠確認數據發送方的真實身份以及數據在傳輸過程中是否遭篡改。加密機製通過對數據進行加密運算來保證數據的機密性,以防數據在傳輸過程中被竊聽。

設備可支持IPsec對IPv4報文和IPv6報文的保護。

2.1.1  IPsec基本概念

1. 安全協議

AH協議和ESP協議的功能及工作原理如下:

·     AH協議(IP協議號為51)定義了認證的應用方法,提供數據源認證、數據完整性校驗和防報文重放功能,它能保護通信免受篡改,但不能防止竊聽,適合用於傳輸非機密數據。AH的工作原理是在每一個數據包上添加一個身份驗證報文頭,此報文頭插在標準IP包頭後麵,對數據提供完整性保護。可選擇的認證算法有MD5(Message Digest)、SHA-1(Secure Hash Algorithm)等。

·     ESP協議(IP協議號為50)定義了加密和可選認證的應用方法,提供加密、數據源認證、數據完整性校驗和防報文重放功能。ESP的工作原理是在每一個數據包的標準IP包頭後麵添加一個ESP報文頭,並在數據包後麵追加一個ESP尾。與AH協議不同的是,ESP將需要保護的用戶數據進行加密後再封裝到IP包中,以保證數據的機密性。常見的加密算法有DES、3DES、AES等。同時,作為可選項,用戶可以選擇MD5、SHA-1算法保證報文的完整性和真實性。

在實際進行IP通信時,可以根據實際安全需求同時使用這兩種協議或選擇使用其中的一種。AH和ESP都可以提供認證服務,不過,AH提供的認證服務要強於ESP。同時使用AH和ESP時,設備支持的AH和ESP聯合使用的方式為:先對報文進行ESP封裝,再對報文進行AH封裝,封裝之後的報文從內到外依次是原始IP報文、ESP頭、AH頭和外部IP頭。

2. 安全聯盟(Security Association,SA)

IPsec在兩個端點之間提供安全通信,端點被稱為IPsec對等體。

SA是IPsec的基礎,也是IPsec的本質。SA是通信對等體間對某些要素的約定,例如,使用哪種協議(AH、ESP還是兩者結合使用)、協議的封裝模式(傳輸模式和隧道模式)、加密算法(DES、3DES和AES)、特定流中保護數據的共享密鑰以及密鑰的生存周期等。建立SA的方式有手工配置和IKE自動協商兩種。

SA是單向的,在兩個對等體之間的雙向通信,最少需要兩個SA來分別對兩個方向的數據流進行安全保護。同時,如果兩個對等體希望同時使用AH和ESP來進行安全通信,則每個對等體都會針對每一種協議來構建一個獨立的SA。

SA由一個三元組來唯一標識,這個三元組包括SPI(Security Parameter Index,安全參數索引)、目的IP地址、安全協議號(AH或ESP)。

SPI是用於唯一標識SA的一個32比特數值,它在AH和ESP頭中傳輸。在手工配置SA時,需要手工指定SPI的取值。使用IKE協商產生SA時,SPI將隨機生成。

通過IKE協商建立的SA具有生存周期,手工方式建立的SA永不老化。IKE協商建立的SA的生存周期有兩種定義方式:

·     基於時間的生存周期,定義了一個SA從建立到失效的時間;

·     基於流量的生存周期,定義了一個SA允許處理的最大流量。

生存周期到達指定的時間或指定的流量,SA就會失效。SA失效前,IKE將為IPsec協商建立新的SA,這樣,在舊的SA失效前新的SA就已經準備好。在新的SA開始協商而沒有協商好之前,繼續使用舊的SA保護通信。在新的SA協商好之後,則立即采用新的SA保護通信。

3. 封裝模式

IPsec有如下兩種工作模式:

·     隧道(tunnel)模式:用戶的整個IP數據包被用來計算AH或ESP頭,AH或ESP頭以及ESP加密的用戶數據被封裝在一個新的IP數據包中。通常,隧道模式應用在兩個安全網關之間的通訊。

·     傳輸(transport)模式:隻是傳輸層數據被用來計算AH或ESP頭,AH或ESP頭以及ESP加密的用戶數據被放置在原IP包頭後麵。通常,傳輸模式應用在兩台主機之間的通訊,或一台主機和一個安全網關之間的通訊。

不同的安全協議在tunnel和transport模式下的數據封裝形式如圖2-1所示。

圖2-1 安全協議數據封裝格式

 

4. 認證算法與加密算法

(1)     認證算法

認證算法的實現主要是通過雜湊函數。雜湊函數是一種能夠接受任意長的消息輸入,並產生固定長度輸出的算法,該輸出稱為消息摘要。IPsec對等體計算摘要,如果兩個摘要是相同的,則表示報文是完整未經篡改的。IPsec使用兩種認證算法:

·     MD5:MD5通過輸入任意長度的消息,產生128bit的消息摘要。

·     SHA-1:SHA-1通過輸入長度小於2的64次方bit的消息,產生160bit的消息摘要。

MD5算法的計算速度比SHA-1算法快,而SHA-1算法的安全強度比MD5算法高。

(2)     加密算法

加密算法實現主要通過對稱密鑰係統,它使用相同的密鑰對數據進行加密和解密。目前設備的IPsec實現三種加密算法:

·     DES(Data Encryption Standard):使用56bit的密鑰對一個64bit的明文塊進行加密。

·     3DES(Triple DES):使用三個56bit的DES密鑰(共168bit密鑰)對明文進行加密。

·     AES(Advanced Encryption Standard):使用128bit、192bit或256bit密鑰長度的AES算法對明文進行加密。

這三個加密算法的安全性由高到低依次是:AES、3DES、DES,安全性高的加密算法實現機製複雜,運算速度慢。對於普通的安全要求,DES算法就可以滿足需要。

5. 協商方式

有如下兩種協商方式建立SA:

·     手工方式(manual)配置比較複雜,創建SA所需的全部信息都必須手工配置,而且不支持一些高級特性(例如定時更新密鑰),但優點是可以不依賴IKE而單獨實現IPsec功能。

·     IKE自動協商(isakmp)方式相對比較簡單,隻需要配置好IKE協商安全策略的信息,由IKE自動協商來創建和維護SA。

當與之進行通信的對等體設備數量較少時,或是在小型靜態環境中,手工配置SA是可行的。對於中、大型的動態網絡環境中,推薦使用IKE協商建立SA。

說明

僅FIPS模式下支持IKE協商方式。

 

6. 安全隧道

安全隧道是建立在本端和對端之間可以互通的一個通道,它由一對或多對SA組成。

2.1.2  使用IPsec保護IPv6路由協議

使用IPsec保護IPv6路由協議是指,使用AH/ESP協議對IPv6路由協議報文進行加/解封裝處理,並為其提供認證和加密的安全服務,目前支持OSPFv3、IPv6 BGP、RIPng路由協議。

IPsec對IPv6路由協議報文進行保護的處理方式和目前基於接口的IPsec處理方式不同,是基於業務的IPsec,即IPsec保護某一業務的所有報文。該方式下,設備產生的所有需要IPsec保護的IPv6路由協議報文都要被進行加封裝處理,而設備接收到的不受IPsec保護的以及解封裝(解密或驗證)失敗的IPv6路由協議報文都要被丟棄。

在基於接口的IPsec處理方式下,設備對配置了IPsec安全功能的接口上發送的每個報文都要判斷是否進行IPsec處理。目前,隻要到達接口的報文與該接口的IPsec安全策略中的ACL規則匹配,就會受到IPsec保護。

相對於基於接口的IPsec,基於業務的IPsec既不需要ACL來限定要保護的流的範圍,也不需要指定IPsec隧道的起點與終點,IPsec安全策略僅與具體的業務綁定,不管業務報文從設備的哪個接口發送出去都會被IPsec保護。

由於IPsec的密鑰交換機製僅僅適用於兩點之間的通信保護,在廣播網絡一對多的情形下,IPsec無法實現自動交換密鑰,因此必須使用手工配置密鑰的方式。同樣,由於廣播網絡一對多的特性,要求各設備對於接收、發送的報文均使用相同的SA參數(相同的SPI及密鑰)。因此,目前僅支持手工安全策略生成的SA對IPv6路由協議報文進行保護。

2.1.3  IPsec反向路由注入功能

反向路由注入簡稱RRI(Reverse Route Injection),是一種自動添加到達IPsec VPN私網或IPsec隧道網關靜態路由的機製,可實現為受IPsec保護的流量自動添加靜態路由的功能。

通過RRI創建的路由表項可以在路由表中查詢到,其目的地址為受保護的對端網絡,下一跳地址為IPsec隧道對端地址或指定的地址,它使得發往對端的流量將被強製通過IPsec加密後轉發。

RRI創建的靜態路由和手工配置的靜態路由一樣,可以向內網設備進行廣播,允許內網設備選擇合適的路由對IPsec VPN流量進行轉發。該功能在企業總部有多台網關設備的組網應用中,如進行負載均衡、雙機熱備的情況下,甚至是IPsec VPN流量通過默認網關無法到達對端網關設備的時候,都能及時生成新的路由來轉發IPsec VPN流量,因此非常有用。

在MPLS L3VPN組網環境中,配置了RRI的IPsec VPN網關設備能夠依據應用IPsec策略的接口所綁定的VPN實例,在相應VPN實例的IP路由表中添加靜態路由。

在大規模組網中,這種自動添加靜態路由的機製可以簡化用戶配置,減少在企業總部網關上配置靜態路由的工作量,並且可以根據IPsec SA的創建和刪除進行靜態路由的動態增加和刪除,大大增強VPN網絡的可擴展性。

2.1.4  協議規範

與IPsec相關的協議規範有:

·     RFC2401:Security Architecture for the Internet Protocol

·     RFC2402:IP Authentication Header

·     RFC2406:IP Encapsulating Security Payload

·     RFC4552:Authentication/Confidentiality for OSPFv3

2.2  建立IPsec隧道的配置方式

IPsec隧道的建立有多種配置方式,請根據實際組網中對IPsec隧道的使用需求來選擇配置方式:

·     基於ACL方式:由ACL來指定要保護的數據流範圍,通過配置安全策略並將安全策略綁定在實際的物理接口上來完成IPsec的配置。這種方式可以利用ACL的豐富配置功能,結合實際的組網環境靈活製定IPsec安全策略。具體配置請參見“2.4  基於ACL建立IPsec安全隧道”。

·     基於業務方式:IPsec安全策略直接與具體的業務綁定,保護某一業務的所有報文,無需ACL或者路由來指定要保護的數據流。目前,支持對IPv6路由協議的保護。通過配置手工方式的IPsec安全策略,並在IPv6路由協議上應用安全策略來完成IPsec的配置。具體配置請參見“2.5  配置IPsec保護IPv6路由協議”。

在IPv4網絡和IPv6網絡中,建立IPsec隧道的配置步驟是相同的,可支持基於ACL方式。

2.3  IPsec隧道限製說明

目前,設備通過ACL來識別由IPsec隧道保護的流量時,建議僅將源地址或目的地址為本機的報文配置為受保護的流量。例如:可配置IPsec隧道對設備發送給日誌服務器的日誌信息進行保護。對於設備轉發的報文(例如:用戶通過設備轉發的數據和語音流量),不建議配置為受保護的流量,否則其轉發性能會受到影響。關於IPsec中ACL規則的定義請參見2.4.2  配置訪問控製列表

2.4  基於ACL建立IPsec安全隧道

說明

本功能僅在FIPS模式下支持。

 

2.4.1  IPsec配置任務簡介

基於ACL建立IPsec安全隧道的基本配置思路如下:

(1)     通過配置訪問控製列表,用於匹配需要保護的數據流;

(2)     通過配置安全提議,指定安全協議、認證算法和加密算法、封裝模式等;

(3)     通過配置安全策略,將要保護的數據流和安全提議進行關聯(即定義對何種數據流實施何種保護),並指定SA的協商方式、對等體IP地址(即保護路徑的起/終點)、所需要的密鑰和SA的生存周期等;

(4)     最後在設備接口上應用安全策略即可完成IPsec隧道的配置,在接口上應用安全策略即可。

表2-1 IPsec配置任務簡介

配置任務

說明

詳細配置

IPsec基本配置

配置訪問控製列表

必選

2.4.2 

配置安全提議

2.4.3 

配置安全策略

2.4.4 

在接口上應用安全策略組

2.4.5 

配置會話空閑超時時間

可選

2.4.6 

使能解封裝後IPsec報文的ACL檢查開關

可選

2.4.7 

配置IPsec抗重放功能

可選

2.4.8 

配置報文信息預提取功能

可選

2.4.9 

配置IPsec無效SPI恢複功能

可選

2.4.10 

配置IPsec反向路由注入功能

可選

2.4.11 

 

注意

通常情況下,由於IKE協議采用UDP的500端口進行通信,IPsec的AH和ESP協議分別使用51或50號協議來工作,因此為保障IKE和IPsec的正常運行,需要確保應用了IKE和IPsec配置的接口上沒有禁止掉屬於以上端口和協議的流量。

 

2.4.2  配置訪問控製列表

ACL(Access Control List,訪問控製列表)是用來實現流識別功能的。網絡設備為了過濾報文,需要配置一係列的匹配條件對報文進行分類,當設備的端口接收到報文後,即根據當前端口上應用的ACL規則對報文進行分析、識別之後,根據預先設定的策略對報文進行不同的處理。

1. ACL規則中關鍵字的使用

IPsec通過配置ACL來定義需要過濾的數據流。在IPsec的應用中,ACL規則中的permit關鍵字表示與之匹配的流量需要被IPsec保護,而規則中的deny關鍵字則表示與之匹配的那些流量不需要保護。一個ACL中可以配置多條規則,首個與數據流匹配上的規則決定了對該數據流的處理方式,如果該規則為permit,則該規則就定義了需要建立SA來保護的數據流量的範圍。

在IPsec策略中定義的ACL既可用於過濾接口入方向數據流,也可用於過濾接口出方向數據流。

·     設備出入方向的數據流都使用IPsec策略中定義的ACL規則來做匹配依據。具體是,出方向的數據流正向匹配ACL規則,入方向的數據流反向匹配ACL規則。

·     在出方向上,與ACL的permit規則匹配的報文將被IPsec保護,未匹配上任何規則或與deny規則匹配上的報文將不被IPsec保護。

·     在入方向上,與ACL的permit規則匹配上的未被IPsec保護的報文將被丟棄,目的地址為本機的IPsec報文將被進行解封裝處理,解封裝後的IP報文若能與ACL的permit規則匹配上則采取後續處理,否則丟棄。

需要注意的是:

·     僅對確實需要IPsec保護的數據流配置permit規則,避免盲目地使用關鍵字any。這是因為,在一個permit規則中使用any關鍵字就代表所有指定範圍上出方向的流量都需要被IPsec保護,所有對應入方向上被保護的IPsec報文將被接收並處理,入方向上未被保護的IPsec報文將被丟棄。這種情況下,一旦入方向收到的某流量是未被IPsec保護的,那麼該流量就會被丟棄,這會造成一些本不需要IPsec處理的流量丟失,影響正常的業務流傳輸。

·     合理使用deny規則,尤其是在一個安全策略下有多條優先級不同的子安全策略時,避免本應該與優先級較低的子安全策略的ACL permit規則匹配而被IPsec保護的出方向報文,因為先與優先級較高的子安全策略的ACL deny規則匹配上,而在接收端被當作未被IPsec保護的報文丟棄。

·     在IPsec安全策略下,設備不支持配置多條ACL,隻支持一條ACL配置多條規則。

2. ACL規則的配置

為保證SA的成功建立,建議將IPsec對等體上的訪問控製列表鏡像配置,即保證兩端要保護的數據流範圍是鏡像的。

 

若IPsec對等體上的訪問控製列表配置非鏡像,那麼隻有一種情況下,SA的協商是可以建立的。這種情況就是,一端的訪問控製列表規則定義的範圍是另外一端的子集。但需要注意的是,在這種ACL配置下,並不是任何一端發起的SA協商都可以成功,僅當保護範圍小(細粒度)的一端向保護範圍大(粗粒度)的一端發起的協商才能成功,反之則協商失敗。這是因為,協商響應方要求協商發起方發送過來的數據必須在響應方可以接受的範圍之內。其結果就是,從細粒度一端向粗粒度一端發起的協商是可以成功的;從粗粒度一方向細粒度一方發起的協商是不能成功的。

3. 數據流的保護方式

目前,設備支持的數據流的保護方式為標準方式,即一條隧道保護一條數據流。ACL中的每一個規則對應的數據流都會由一條單獨創建的隧道來保護;

說明

·     僅FIPS模式下支持本功能。

·     ACL的具體配置請參見“ACL和QoS配置指導”中的“ACL”。

·     若在接口上同時使能IPsec和QoS,同一個IPsec安全聯盟的數據流如果被QoS分類進入不同隊列,會導致部分報文發送亂序。由於IPsec具有防重放功能,IPsec入方向上對於防重放窗口之外的報文會進行丟棄,從而導致丟包現象。因此當IPsec與QoS結合使用時,必須保證IPsec分類與QoS分類規則配置保持一致。IPsec的分類規則完全由引用的ACL規則確定,QoS分類規則的配置請參考“ACL和QoS配置指導”中的“QoS配置方式”。

 

2.4.3  配置安全提議

安全提議是安全策略或者安全框架的一個組成部分,它用於保存IPsec需要使用的特定安全協議、加密/認證算法以及封裝模式,為IPsec協商SA提供各種安全參數。

表2-2 配置安全提議

操作

命令

說明

進入係統視圖

system-view

-

創建安全提議,並進入安全提議視圖

ipsec proposal proposal-name

必選

缺省情況下,沒有任何安全提議存在

配置安全提議采用的安全協議

transform { ah | ah-esp | esp }

可選

缺省情況下,采用ESP協議

配置安全算法

配置ESP協議采用的加密算法

esp encryption-algorithm { 3des | aes [ key-length ] | des }

可選

非FIPS模式的缺省情況下,ESP協議采用DES加密算法。

FIPS模式的缺省情況下,ESP協議采用AES-128加密算法

FIPS模式下不支持參數3desdes

配置ESP協議采用的認證算法

esp authentication-algorithm { md5 | sha1 }

可選

非FIPS模式的缺省情況下,ESP協議采用MD5認證算法。

FIPS模式的缺省情況下,ESP協議采用SHA1認證算法

FIPS模式下不支持參數md5

配置AH協議采用的認證算法

ah authentication-algorithm { md5 | sha1 }

可選

非FIPS模式的缺省情況下,AH協議采用MD5認證算法。

FIPS模式的缺省情況下,AH協議采用SHA1認證算法

FIPS模式下不支持參數md5

配置安全協議對IP報文的封裝形式

encapsulation-mode { transport | tunnel }

可選

缺省情況下,安全協議采用隧道模式對IP報文進行封裝

傳輸模式必須應用於數據流的源地址和目的地址與安全隧道兩端地址相同的情況下

若要配置應用於IPv6路由協議的手工安全策略,則該安全策略引用的安全提議僅支持傳輸模式的封裝模式

 

說明

·     可對安全提議進行修改,但對已協商成功的SA,新修改的安全提議並不起作用,即SA仍然使用原來的安全提議(除非使用reset ipsec sa命令重置),隻有新協商的SA將使用新的安全提議。

·     隻有選擇了相應的安全協議後,該安全協議所需的安全算法才可配置。例如,如果使用transform命令選擇了esp,那麼隻有ESP所需的安全算法才可配置,而AH所需的安全算法則不能配置。非FIPS模式下,ESP協議允許對報文同時進行加密和認證,或隻加密,或隻認證;FIPS模式下,ESP協議必須同時使用加密算法和認證算法。

·     最多可以創建10000個安全提議。

 

2.4.4  配置安全策略

安全策略規定了對什麼樣的數據流采用什麼樣的安全提議。一條安全策略由“名字”和“順序號”共同唯一確定。

安全策略分為手工安全策略和IKE協商安全策略:

·     手工配置方式:需要用戶手工配置密鑰、SPI等參數,在隧道模式下還需要手工配置安全隧道兩個端點的IP地址;

·     IKE協商方式:由IKE自動協商生成各參數。

1. 手工配置安全策略

(1)     配置準備

手工配置安全策略時,除完成該安全策略需要引用的訪問控製列表及安全提議的配置之外,為保證SA的協商成功,安全隧道兩端的配置必須符合以下要求:

·     安全策略引用的安全提議應采用相同的安全協議、安全算法和報文封裝形式;

·     當前端點的對端地址與對端的本端地址應保持一致;

·     應分別設置inboundoutbound兩個方向SA的參數,且保證SA的唯一性,即不同SA必須對應不同的SPI;

·     本端和對端SA的SPI及密鑰必須是完全匹配的。即,本端的入方向SA的SPI及密鑰必須和對端的出方向SA的SPI及密鑰相同;本端的出方向SA的SPI及密鑰必須和對端的入方向SA的SPI及密鑰相同;

·     兩端SA使用的密鑰應當以相同的方式輸入。即,一端以字符串方式輸入密鑰,另一端必須也以字符串方式輸入密鑰。而且,任何一端出入方向的SA使用的密鑰也應當以相同的方式輸入。

對於要應用於IPv6路由協議的安全策略,無需配置訪問控製列表和隧道地址,但是應該符合以下要求:

·     本端出方向SA的SPI及密鑰必須和本端入方向SA的SPI及密鑰保持一致;

·     同一個範圍內的,所有設備上的安全策略所引用的安全提議采用的安全協議、安全算法和報文封裝形式要相同,而且所有設備上的SA的SPI及密鑰均要保持一致。該範圍與協議相關:對於OSPFv3,它是OSPFv3鄰居之間或一個OSPFv3區域內;對於RIPng,它是RIPng直連鄰居之間或一個RIPng進程內;對於IPv6 BGP,它是IPv6 BGP鄰居之間或一個對等體組內。

(2)     手工配置安全策略

表2-3 手工配置安全策略

操作

命令

說明

進入係統視圖

system-view

-

用手工方式創建一條安全策略,並進入安全策略視圖

ipsec policy policy-name seq-number manual

必選

缺省情況下,沒有任何安全策略存在

配置安全策略引用的訪問控製列表

security acl acl-number

若安全策略要應用於IPv6路由協議,則無需此配置,其它情況必選

缺省情況下,安全策略沒有指定訪問控製列表

可支持保護VPN間的數據流

配置安全策略所引用的安全提議

proposal proposal-name

必選

缺省情況下,安全策略沒有引用任何安全提議

配置隧道的起點與終點

配置安全隧道的本端地址

tunnel local ip-address

若安全策略要應用於IPv6路由協議,則無需此配置,其它情況必選

缺省情況下,沒有配置安全隧道的本端地址和對端地址

僅FIPS模式下支持配置隧道的起點和終點

配置安全隧道的對端地址

tunnel remote ip-address

配置SA的安全參數索引參數

sa spi { inbound | outbound } { ah | esp } spi-number

必選

配置SA使用的密鑰

配置AH協議的認證密鑰(以16進製方式輸入)

sa authentication-hex { inbound | outbound } ah [ cipher string-key | simple hex-key ]

二者必選其一

FIPS模式下不支持sa string-key命令

配置AH協議的認證密鑰(以字符串方式輸入)

sa string-key { inbound | outbound } ah [ cipher | simple ] string-key

配置ESP協議的認證密鑰和加密密鑰(以字符串方式輸入)

sa string-key { inbound | outbound } esp [ cipher | simple ] string-key

至少選其一

以字符串方式輸入密鑰時,係統會自動地同時生成認證算法的密鑰和加密算法的密鑰

FIPS模式下不支持sa string-key命令

配置ESP協議的認證密鑰(以16進製方式輸入)

sa authentication-hex { inbound | outbound } esp [ cipher string-key | simple hex-key ]

配置ESP協議的加密密鑰(以16進製方式輸入)

sa encryption-hex { inbound | outbound } esp [ cipher string-key | simple hex-key ]

 

說明

·     一條安全策略隻能引用一條訪問控製列表,如果設置安全策略引用了多於一個訪問控製列表,最後引用的那條訪問控製列表才有效。

·     通過手工方式建立SA,一條安全策略隻能引用一個安全提議,並且如果已經引用了安全提議,必須先取消原先的安全提議才能引用新的安全提議。

·     如果先後以不同的方式輸入了密鑰,則最後設定的密鑰有效。

·     對於手工方式創建的安全策略,不能直接修改它的創建方式,而必須先刪除該安全策略然後再重新創建。

 

2. 配置使用IKE協商方式的安全策略

在采用IKE方式配置安全策略時,有以下兩種方式:

·     直接配置安全策略,在安全策略視圖中定義需要協商的各參數;

·     引用安全策略模板創建安全策略,在安全策略模板中定義需要協商的各參數。應用了該類安全策略的設備不能發起協商,僅可以響應遠端設備的協商請求。由於策略模板中未定義的可選參數由發起方來決定,而響應方會接受發起方的建議,因此這種方式適用於通信對端(例如對端的IP地址)未知的情況下,允許這些對端設備向本端設備主動發起協商。

(1)     配置準備

在配置IKE協商安全策略之前,需要完成以下配置:

·     配置所引用的訪問控製列表和安全提議。

·     配置IKE對等體。具體配置請參見“3.5  配置IKE對等體”。

為保證IKE協商成功,安全策略中所有配置的參數必須在本端和對端相匹配。

(2)     配置使用IKE協商方式的安全策略

·     直接配置使用IKE協商方式的安全策略

表2-4 直接配置使用IKE協商方式的安全策略

操作

命令

說明

進入係統視圖

system-view

-

創建一條安全策略,並進入安全策略視圖

ipsec policy policy-name seq-number isakmp

必選

缺省情況下,沒有安全策略存在

僅FIPS模式下支持isakmp

配置用於描述安全策略的IPsec連接名

connection-name name

可選

缺省情況下,無IPsec連接名

僅FIPS模式下支持本命令

配置安全策略引用的訪問控製列表

security acl acl-number [ aggregation ]

必選

缺省情況下,安全策略沒有指定訪問控製列表

僅FIPS模式下支持本命令

配置安全策略所引用的安全提議

proposal proposal-name&<1-6>

必選

缺省情況下,安全策略沒有引用任何提議

在安全策略中引用IKE對等體

ike-peer peer-name

必選

安全策略中不能引用已經被安全框架引用的IKE對等體,反之亦然

僅FIPS模式下支持本命令

配置使用此安全策略發起協商時使用PFS特性

pfs { dh-group2 | dh-group5 | dh-group14 }

可選

缺省情況下,安全策略發起協商時沒有使用PFS特性

PFS(Perfect Forward Secrecy,完善的前向安全性)特性請參見“3.1.1  IKE的安全機製

本命令僅FIPS模式下支持

配置SA的生存周期

sa duration { time-based seconds | traffic-based kilobytes }

可選

缺省情況下,安全策略的SA生存周期為當前全局的SA生存周期值

僅FIPS模式下支持本命令

使能安全策略

policy enable

可選

缺省情況下,安全策略處於使能狀態

僅FIPS模式下支持本命令

退回係統視圖

quit

-

配置全局SA的生存周期

ipsec sa global-duration { time-based seconds | traffic-based kilobytes }

可選

缺省情況下,SA基於時間的生存周期為3600秒,基於流量的生存周期為1843200千字節

僅FIPS模式下支持本命令

 

2.4.5  在接口上應用安全策略組

安全策略組是所有具有相同名字、不同順序號的安全策略的集合。在同一個安全策略組中,順序號越小的安全策略,優先級越高。

為使定義的SA生效,應在每個要加密的數據流和要解密的數據流所在接口(邏輯的或物理的)上應用一個安全策略組,以對數據進行保護。當取消安全策略組在接口上的應用後,此接口便不再具有IPsec的安全保護功能。

當從一個接口發送數據時,將按照從小到大的順序號查找安全策略組中每一條安全策略。如果數據匹配了一條安全策略引用的訪問控製列表,則使用這條安全策略對數據進行處理;如果數據沒有匹配安全策略引用的訪問控製列表,則繼續查找下一條安全策略;如果數據與所有安全策略引用的訪問控製列表都不匹配,則直接被發送(IPsec不對數據加以保護)。

表2-5 在接口上應用安全策略組

操作

命令

說明

進入係統視圖

system-view

-

進入接口視圖

interface interface-type interface-number

-

應用指定的安全策略組

ipsec policy policy-name

必選

 

說明

·     一個接口隻能應用一個安全策略組。通過IKE方式創建的安全策略可以應用到多個接口上,通過手工創建的安全策略隻能應用到一個接口上。

·     僅FIPS模式下支持本功能。

·     僅VLAN接口和三層以太網接口上支持安全策略組。

 

2.4.6  配置會話空閑超時時間

數據包首次匹配IPsec策略後創建IPsec會話,並根據匹配結果創建IPsec會話表項,會話表項中記錄了報文的五元組(源IP地址、目的IP地址、協議號、源端口、目的端口)和匹配的IPsec隧道。

IPsec會話的刪除由IPsec會話的空閑超時時間決定。IPsec會話在超過它的空閑超時時間之後,被自動刪除。

屬於該會話的後續數據流根據報文的五元組,來查找會話表項。如果找到匹配的會話表項,則根據會話表項中的隧道信息來處理;如果沒有找到匹配的會話表項,則按照IPsec原來的處理流程來處理,即從接口下查找策略組、策略,最後查找匹配的隧道來處理。

IPsec流程中增加的會話處理機製,節省了大量的中間匹配過程,提高了IPsec的轉發效率。

表2-6 配置會話空閑超時時間

操作

命令

說明

進入係統視圖

system-view

-

配置IPsec會話的空閑超時時間

ipsec session idle-time seconds

可選

缺省情況下,IPsec會話的空閑超時時間為300秒

僅FIPS模式下支持本命令

 

2.4.7  使能解封裝後IPsec報文的ACL檢查功能

在隧道模式下,對於解封裝之後的入方向IPsec報文,有可能出現報文的內部IP頭不在當前安全策略配置的ACL保護範圍內的情況,如網絡中惡意構造的攻擊報文頭可能不在此範圍,所以需要重新檢查報文內部IP頭是否在ACL保護範圍內。使能該功能後可以保證ACL檢查不通過的報文被丟棄,從而提高網絡安全性。

表2-7 使能解封裝後IPsec報文的ACL檢查功能

操作

命令

說明

進入係統視圖

system-view

-

使能解封裝後IPsec報文的ACL檢查功能

ipsec decrypt check

可選

缺省情況下,解封裝後IPsec報文的ACL檢查功能處於使能狀態

僅FIPS模式下支持本命令

 

2.4.8  配置IPsec抗重放功能

說明

僅FIPS模式下支持本功能。

 

通常,重放報文是指已經處理過的報文。IPsec通過滑動窗口(抗重放窗口)機製檢測重放報文。AH和ESP協議報文中帶有序列號,如果收到報文的序列號與已經解封裝過的報文序列號相同,或報文的序列號出現得較早,即已經超過了抗重放窗口的範圍,則認為該報文為重放報文。

由於對重放報文的解封裝無實際作用,並且解封裝過程涉及密碼學運算,會消耗設備大量的資源,導致業務可用性下降,實際上構成了拒絕服務攻擊。通過使能IPsec抗重放檢測功能,將檢測到的重放報文在解封裝處理之前丟棄,可以降低設備資源的消耗。

另外,在某些特定環境下,業務數據報文的序列號順序可能與正常的順序差別較大,雖然並非有意的重放攻擊,但會被抗重放檢測認為是重放報文,導致業務數據報文被丟棄,影響業務的正常運行。因此,這種情況下就可以通過關閉IPsec抗重放檢測功能來避免業務數據報文的錯誤丟棄,也可以通過適當地增大抗重放窗口的寬度,來適應業務正常運行的需要。

表2-8 配置IPsec抗重放功能

操作

命令

說明

進入係統視圖

system-view

-

使能IPsec抗重放檢測功能

ipsec anti-replay check

可選

缺省情況下,IPsec抗重放檢測功能處於使能狀態

僅FIPS模式下支持本命令

配置IPsec抗重放窗口寬度

ipsec anti-replay window width

可選

缺省情況下,IPsec抗重放窗口寬度為32

僅FIPS模式下支持本命令

 

注意

·     IPsec抗重放檢測功能缺省是使能的,是否關閉該功能請根據實際需求慎重使用。

·     使用較大的抗重放窗口寬度會引起係統開銷增大,導致係統性能下降,與抗重放檢測用於降低係統在接收重放報文時的開銷的初衷不符,因此建議在能夠滿足業務運行需要的情況下,使用較小的抗重放窗口寬度。

 

說明

按照IPsec協議,隻有IKE協商的IPsec SA才能夠支持抗重放檢測,手工方式生成的IPsec SA不支持抗重放檢測。因此該功能使能與否與對手工方式生成的IPsec SA沒有影響。

 

2.4.9  配置報文信息預提取功能

當在接口上同時應用了IPsec策略與QoS策略時,缺省情況下,QoS使用被封裝報文的外層IP頭信息來對報文進行分類。但如果希望QoS基於被封裝報文的原始IP頭信息對報文進行分類,則需要配置報文信息預提取功能來實現。

關於QoS策略及QoS分類的相關介紹請參見“ACL和QoS配置指導”中的“QoS配置方式”。

表2-9 配置報文信息預提取功能

操作

命令

說明

進入係統視圖

system-view

-

進入安全策略視圖視圖

ipsec policy policy-name seq-number [ isakmp | manual ]

必選

僅FIPS模式下支持isakmp參數

配置報文信息預提取功能

qos pre-classify

必選

缺省情況下,報文信息預提取功能處於關閉狀態

僅FIPS模式下支持本命令

 

2.4.10  配置IPsec無效SPI恢複功能

當IPsec隧道一端的安全網關出現問題(例如安全網關重啟)導致本端IPsec SA丟失時,會造成IPsec流量黑洞現象:一端(接收端)的IPsec SA已經完全丟失,而另一端(發送端)還持有對應的IPsec SA且不斷地向對端發送報文,當接收端收到發送端使用此IPsec SA封裝的IPsec報文時,就會因為找不到對應的SA而持續丟棄報文,形成流量黑洞。該現象造成IPsec通信鏈路長時間得不到恢複(隻有等到發送端舊的IPsec SA生命周期超時,並重建IPsec SA後,兩端的IPsec流量才能得以恢複),因此需要采取有效的IPsec SA恢複手段來快速恢複中斷的IPsec通信鏈路。

SA由SPI唯一標識,接收方根據IPsec報文中的SPI在SA數據庫中查找對應的SA,若接收方找不到處理該報文的SA,則認為此報文的SPI無效。使能了IPsec無效SPI恢複功能的接收端收到無效SPI的IPsec報文後,就觸發本端IKE向對端發送INVALID SPI NOTIFY消息。發送端IKE接收到此通知消息後,就會立即刪除此無效SPI對應的IPsec SA。之後,當發送端需要繼續向接收端發送報文時,就會觸發兩端重建IPsec SA,使得中斷的IPsec通信鏈路得以恢複。

由於IKE向對方發送INVALID SPI NOTIFY消息有可能會給設備帶來發生DoS(Denial of Sevice)攻擊的風險,因此缺省情況下的IPsec無效SPI恢複功能是關閉的,接收端將默認丟棄無效SPI的IPsec報文。

表2-10 配置IPsec無效SPI恢複功能

操作

命令

說明

進入係統視圖

system-view

-

使能IPsec無效SPI恢複功能

ipsec invalid-spi-recovery enable

可選

缺省情況下,IPsec無效SPI恢複功能處於關閉狀態

僅FIPS模式下支持本命令

 

2.4.11  配置IPsec反向路由注入功能

說明

僅FIPS模式下支持本命令。

 

RRI隻需要在企業總部網關設備上的IPsec策略視圖或者IPsec安全策略模板視圖下配置。

RRI有靜態和動態兩種工作機製,配置了RRI的設備采用哪種工作機製,由reverse-route命令中是否指定了參數static決定。

·     靜態工作機製(指定static參數):RRI基於IPsec安全策略引用的ACL中各規則的目的配置信息來靜態生成靜態路由(對ACL規則中的不同目的信息會生成不同的路由)。該靜態路由的下一跳地址可以通過reverse-route命令中的參數remote-peer ip-address來指定,不指定該參數的情況下為配置的隧道對端的IP地址。當IPsec策略中的RRI功能被關閉,或者策略中引用的ACL、對端安全網關的IP地址配置被刪除時,該IPsec策略下由RRI生成的所有靜態路由表項會被刪除。當企業分支網絡結構基本不變時,可以配置此類型的RRI添加到達分支的靜態路由。

·     動態工作機製(未指定static參數):RRI基於與分支通信的IPsec SA的建立而動態生成靜態路由。該靜態路由的目的地址為本端學習到的被保護的分支網絡地址,下一跳地址可通過reverse-route命令中的參數remote-peer ip-address來指定,不指定該參數的情況下為本端在IPsec SA協商過程中學習到的隧道的對端地址。當IPsec SA被刪除時,相應的靜態路由表項也會同時被刪除。當企業分支結構容易發生變化時,如分支用戶使用撥號方式動態獲取IP地址接入Internet,則可以配置此類型的RRI動態添加到達分支的靜態路由,可減少因分支變動而對總部網關配置的頻繁調整。

對於RRI生成的靜態路由,可以為其配置優先級,從而更靈活地應用路由管理策略。例如:當設備上還有其它方式配置的到達相同目的地的路由時,如果為它們指定相同優先級,則可實現負載分擔,如果指定不同優先級,則可實現路由備份。同時,還可以通過修改靜態路由的Tag屬性值,使得設備能夠在路由策略中根據Tag值對這些RRI生成的靜態路由進行靈活的控製。

表2-11 配置IPsec反向路由注入功能

操作

命令

說明

進入係統視圖

system-view

-

進入安全策略視圖視圖

ipsec policy policy-name seq-number [ isakmp | manual ]

必選

僅FIPS模式下支持isakmp參數

開啟IPsec反向路由注入功能

reverse-route [ remote-peer ip-address [ gateway | static ] | static ]

必選

缺省情況下,IPsec反向路由注入功能處於關閉狀態

配置IPsec反向路由注入生成的靜態路由的優先級

reverse-route preference preference-value

可選

缺省情況下,IPsec反向路由注入功能生成的靜態路由的優先級為60

僅FIPS模式下支持本命令

配置IPsec反向路由注入生成的靜態路由的Tag值

reverse-route tag tag-value

可選

缺省情況下,IPsec反向路由注入功能生成的靜態路由的Tag值為0

僅FIPS模式下支持本命令

 

說明

·     IPsec反向路由注入功能在隧道模式和傳輸模式下都支持。

·     若對IPsec反向路由注入靜態路由屬性進行修改,則在靜態工作機製下的RRI會根據新的路由屬性重新生成靜態路由,而在動態工作機製下的RRI不會修改已生成的靜態路由的路由屬性,修改後的靜態路由屬性僅對新增的靜態路由有效。

 

2.5  配置IPsec保護IPv6路由協議

使用IPsec安全策略建立IPsec安全隧道保護IPv6路由協議的基本配置思路如下:

(1)     配置安全提議:指定安全協議、認證算法和加密算法、封裝模式等;

(2)     配置手工方式的安全策略:指定SA的SPI和密鑰;

(3)     在路由協議上應用安全策略。

表2-12 IPsec虛擬隧道接口配置任務簡介

配置任務

說明

詳細配置

配置安全提議

必選

2.4.3 

配置手工方式的安全策略

必選

無需配置訪問控製列表和隧道地址

2.4.4  1.

在路由協議上應用安全策略

必選

分別參考“三層技術-IP路由配置指導”中的“IPv6 BGP”、“OSPFv3”和“RIPng”

 

提示

請不要將一個保護IPv6路由協議的安全策略同時應用到接口上。如果同時應用,則接口收到經IPsec保護的IPv6路由協議報文後,會因ACL檢測失敗而將其丟棄。

 

2.6  IPsec顯示和維護

在完成上述配置後,在任意視圖下執行display命令可以顯示配置後IPsec的運行情況,通過查看顯示信息認證配置的效果。

在用戶視圖下執行reset命令可以清除IPsec統計信息。

表2-13 IPsec顯示和維護

操作

命令

說明

顯示安全策略的信息

display ipsec policy [ brief | name policy-name [ seq-number ] ] [ | { begin | exclude | include } regular-expression ]

-

顯示安全提議的信息

display ipsec proposal [ proposal-name ] [ | { begin | exclude | include } regular-expression ]

-

顯示SA的相關信息

display ipsec sa [ brief | duration | policy policy-name [ seq-number ] | remote ip-address ] [ | { begin | exclude | include } regular-expression ]

-

顯示IPsec會話的信息

display ipsec session [ tunnel-id integer ] [ | { begin | exclude | include } regular-expression ]

僅FIPS模式下支持本命令

顯示IPsec處理報文的統計信息

display ipsec statistics [ tunnel-id integer ] [ | { begin | exclude | include } regular-expression ]

-

顯示IPsec隧道的信息

display ipsec tunnel [ | { begin | exclude | include } regular-expression ]

-

清除已經建立的SA

reset ipsec sa [ parameters dest-address protocol spi | policy policy-name [ seq-number ] | remote ip-address ]

僅FIPS模式下支持parametersremote參數

清除設備上IPsec隧道的會話

reset ipsec session [ tunnel-id integer ]

僅FIPS模式下支持本命令

清除IPsec的報文統計信息

reset ipsec statistics

 

 

2.7  IPsec典型配置舉例

2.7.1  采用手工方式建立保護IPv4報文的IPsec安全隧道

說明

僅FIPS模式下支持本配置舉例。

 

1. 組網需求

·     在Switch A和Switch B之間建立一個安全隧道,對Switch A與Switch B之間的數據流進行安全保護。

·     安全協議采用ESP協議,加密算法采用AES 128,認證算法采用SHA1-HMAC-96。

2. 組網圖

圖2-2 IPsec配置組網圖

 

3. 配置步驟

(1)     配置Switch A

# 配置Vlan-interface1接口的IP地址。

<SwitchA> system-view

[SwitchA] interface vlan-interface 1

[SwitchA-Vlan-interface1] ip address 2.2.2.1 255.255.255.0

[SwitchA-Vlan-interface1] quit

# 配置一個訪問控製列表,定義Switch A和Switch B之間的數據流。

[SwitchA] acl number 3101

[SwitchA-acl-adv-3101] rule 0 permit ip source 2.2.2.1 0 destination 2.2.3.1 0

[SwitchA-acl-adv-3101] rule 5 permit ip source 2.2.3.1 0 destination 2.2.2.1 0

[SwitchA-acl-adv-3101] quit

# 創建名為tran1的安全提議。

[SwitchA] ipsec proposal tran1

# 報文封裝形式采用隧道模式。

[SwitchA-ipsec-proposal-tran1] encapsulation-mode tunnel

# 安全協議采用ESP協議。

[SwitchA-ipsec-proposal-tran1] transform esp

# 選擇算法。

[SwitchA-ipsec-proposal-tran1] esp encryption-algorithm aes 128

[SwitchA-ipsec-proposal-tran1] esp authentication-algorithm sha1

[SwitchA-ipsec-proposal-tran1] quit

# 創建一條安全策略,協商方式為manual。

[SwitchA] ipsec policy map1 10 manual

# 引用訪問控製列表。

[SwitchA-ipsec-policy-manual-map1-10] security acl 3101

# 引用安全提議。

[SwitchA-ipsec-policy-manual-map1-10] proposal tran1

# 配置對端地址。

[SwitchA-ipsec-policy-manual-map1-10] tunnel remote 2.2.3.1

# 配置本端地址。

[SwitchA-ipsec-policy-manual-map1-10] tunnel local 2.2.2.1

# 配置SPI。

[SwitchA-ipsec-policy-manual-map1-10] sa spi outbound esp 12345

[SwitchA-ipsec-policy-manual-map1-10] sa spi inbound esp 54321

# 配置密鑰。

[SwitchA-ipsec-policy-manual-map1-10] sa encryption-hex outbound esp abcdefabcdefabcdefabcdefabcdefab

[SwitchA-ipsec-policy-manual-map1-10] sa encryption-hex inbound esp bafedcbafedcbafedcbafedcbafedcba

[SwitchA-ipsec-policy-manual-map1-10] sa authentication-hex outbound esp 0123456789012345678901234567890123456789

[SwitchA-ipsec-policy-manual-map1-10] sa authentication-hex inbound esp 9876543210987654321098765432109876543210

[SwitchA-ipsec-policy-manual-map1-10] quit

# 在Vlan-interface1接口上應用安全策略組。

[SwitchA] interface vlan-interface 1

[SwitchA-Vlan-interface1] ipsec policy map1

(2)     配置Switch B

# 配置Vlan-interface1接口的IP地址。

<SwitchB> system-view

[SwitchB] interface vlan-interface 1

[SwitchB-Vlan-interface1] ip address 2.2.3.1 255.255.255.0

[SwitchB-Vlan-interface1] quit

# 配置一個訪問控製列表,定義Switch B和Switch A之間的數據流。

[SwitchB] acl number 3101

[SwitchB-acl-adv-3101] rule 0 permit ip source 2.2.3.1 0 destination 2.2.2.1 0

[SwitchB-acl-adv-3101] rule 5 permit ip source 2.2.2.1 0 destination 2.2.3.1 0

[SwitchB-acl-adv-3101] quit

# 創建名為tran1的安全提議。

[SwitchB] ipsec proposal tran1

# 報文封裝形式采用隧道模式。

[SwitchB-ipsec-proposal-tran1] encapsulation-mode tunnel

# 安全協議采用ESP協議。

[SwitchB-ipsec-proposal-tran1] transform esp

# 選擇算法。

[SwitchB-ipsec-proposal-tran1] esp encryption-algorithm aes 128

[SwitchB-ipsec-proposal-tran1] esp authentication-algorithm sha1

[SwitchB-ipsec-proposal-tran1] quit

# 創建一條安全策略,協商方式為manual。

[SwitchB] ipsec policy use1 10 manual

# 引用訪問控製列表。

[SwitchB-ipsec-policy-manual-use1-10] security acl 3101

# 引用安全提議。

[SwitchB-ipsec-policy-manual-use1-10] proposal tran1

# 配置對端地址。

[SwitchB-ipsec-policy-manual-use1-10] tunnel remote 2.2.2.1

# 配置本端地址。

[SwitchB-ipsec-policy-manual-use1-10] tunnel local 2.2.3.1

# 配置SPI。

[SwitchB-ipsec-policy-manual-use1-10] sa spi outbound esp 54321

[SwitchB-ipsec-policy-manual-use1-10] sa spi inbound esp 12345

# 配置密鑰。

[SwitchB-ipsec-policy-manual-use1-10] sa encryption-hex outbound esp bafedcbafedcbafedcbafedcbafedcba

[SwitchB-ipsec-policy-manual-use1-10] sa encryption-hex inbound esp abcdefabcdefabcdefabcdefabcdefab

[SwitchB-ipsec-policy-manual-use1-10] sa authentication-hex outbound esp 9876543210987654321098765432109876543210

[SwitchB-ipsec-policy-manual-use1-10] sa authentication-hex inbound esp 0123456789012345678901234567890123456789

[SwitchB-ipsec-policy-manual-use1-10] quit

# 在Vlan-interface1接口上應用安全策略組。

[SwitchB] interface vlan-interface 1

[SwitchB-Vlan-interface1] ipsec policy use1

4. 驗證配置結果

以上配置完成後,Switch A和Switch B之間的安全隧道就建立好了,Switch A和Switch B之間的數據流將被加密傳輸。

2.7.2  采用IKE方式建立保護IPv4報文的IPsec安全隧道

說明

僅FIPS模式下支持本配置舉例。

 

1. 組網需求

·     如圖2-2所示,在Switch A和Switch B之間建立一個安全隧道,對Switch A與Switch B之間的數據流進行安全保護。

·     安全協議采用ESP協議,加密算法采用AES 128,認證算法采用SHA1-HMAC-96。

2. 組網圖

圖2-2

3. 配置步驟

(1)     配置Switch A

# 配置Vlan-interface1接口的IP地址。

<SwitchA> system-view

[SwitchA] interface vlan-interface 1

[SwitchA-Vlan-interface1] ip address 2.2.2.1 255.255.255.0

[SwitchA-Vlan-interface1] quit

# 配置一個訪問控製列表,定義Switch A和Switch B之間的數據流。

[SwitchA] acl number 3101

[SwitchA-acl-adv-3101] rule 0 permit ip source 2.2.2.1 0 destination 2.2.3.1 0

[SwitchA-acl-adv-3101] rule 5 permit ip source 2.2.3.1 0 destination 2.2.2.1 0

[SwitchA-acl-adv-3101] quit

# 創建名為tran1的安全提議。

[SwitchA] ipsec proposal tran1

# 報文封裝形式采用隧道模式。

[SwitchA-ipsec-proposal-tran1] encapsulation-mode tunnel

# 安全協議采用ESP協議。

[SwitchA-ipsec-proposal-tran1] transform esp

# 選擇算法。

[SwitchA-ipsec-proposal-tran1] esp encryption-algorithm aes 128

[SwitchA-ipsec-proposal-tran1] esp authentication-algorithm sha1

[SwitchA-ipsec-proposal-tran1] quit

# 配置IKE對等體。

[SwitchA] ike peer peer

[SwitchA-ike-peer-peer] pre-shared-key Ab12<><>

[SwitchA-ike-peer-peer] remote-address 2.2.3.1

[SwitchA-ike-peer-peer] quit

# 創建一條安全策略,協商方式為isakmp。

[SwitchA] ipsec policy map1 10 isakmp

# 引用安全提議。

[SwitchA-ipsec-policy-isakmp-map1-10] proposal tran1

# 引用訪問控製列表。

[SwitchA-ipsec-policy-isakmp-map1-10] security acl 3101

# 引用IKE對等體。

[SwitchA-ipsec-policy-isakmp-map1-10] ike-peer peer

[SwitchA-ipsec-policy-isakmp-map1-10] quit

# 在Vlan-interface1接口上應用安全策略組。

[SwitchA] interface vlan-interface 1

[SwitchA-Vlan-interface1] ipsec policy map1

(2)     配置Switch B

# 配置Vlan-interface1接口的IP地址。

<SwitchB> system-view

[SwitchB] interface vlan-interface 1

[SwitchB-Vlan-interface1] ip address 2.2.3.1 255.255.255.0

[SwitchB-Vlan-interface1] quit

# 配置一個訪問控製列表,定義Switch B和Switch A之間的數據流。

[SwitchB] acl number 3101

[SwitchB-acl-adv-3101] rule 0 permit ip source 2.2.3.1 0 destination 2.2.2.1 0

[SwitchB-acl-adv-3101] rule 5 permit ip source 2.2.2.1 0 destination 2.2.3.1 0

[SwitchB-acl-adv-3101] quit

# 創建名為tran1的安全提議。

[SwitchB] ipsec proposal tran1

# 報文封裝形式采用隧道模式。

[SwitchB-ipsec-proposal-tran1] encapsulation-mode tunnel

# 安全協議采用ESP協議。

[SwitchB-ipsec-proposal-tran1] transform esp

# 選擇算法。

[SwitchB-ipsec-proposal-tran1] esp encryption-algorithm aes 128

[SwitchB-ipsec-proposal-tran1] esp authentication-algorithm sha1

[SwitchB-ipsec-proposal-tran1] quit

# 配置IKE對等體。

[SwitchB] ike peer peer

[SwitchB-ike-peer-peer] pre-shared-key Ab12<><>

[SwitchB-ike-peer-peer] remote-address 2.2.2.1

[SwitchB-ike-peer-peer] quit

# 創建一條安全策略,協商方式為isakmp。

[SwitchB] ipsec policy use1 10 isakmp

# 引用訪問控製列表。

[SwitchB-ipsec-policy-isakmp-use1-10] security acl 3101

# 引用安全提議。

[SwitchB-ipsec-policy-isakmp-use1-10] proposal tran1

# 引用IKE對等體。

[SwitchB-ipsec-policy-isakmp-use1-10] ike-peer peer

[SwitchB-ipsec-policy-isakmp-use1-10] quit

# 在Vlan-interface1接口上應用安全策略組。

[SwitchB] interface vlan-interface 1

[SwitchB-Vlan-interface1] ipsec policy use1

4. 驗證配置結果

以上配置完成後,Switch A和Switch B之間如果有報文發送,將觸發IKE進行協商建立SA。IKE協商成功並創建了SA後,Switch A和Switch B之間的數據流將被加密傳輸。

2.7.3  配置IPsec保護RIPng報文

說明

IPsec保護其它IPv6路由協議(OSPFv3、IPv6 BGP)的具體配置與本例類似,具體內容請參考“三層技術-IP路由配置指導”中的“OSPFv3”和“IPv6 BGP”。

 

1. 組網需求

圖2-3所示,Switch A、Switch B和Switch C相連,並通過RIPng來學習網絡中的IPv6路由信息。具體組網要求如下:

·     在各設備之間建立IPsec安全隧道,對它們收發的RIPng報文進行安全保護;

·     安全協議采用ESP協議,加密算法采用AES 128,認證算法采用SHA1-HMAC-96。

配置思路:

·     配置RIPng的基本功能

·     配置手工方式的IPsec安全策略

·     在RIPng進程下或接口上應用IPsec安全策略(進程下配置的IPsec安全策略對該進程的所有報文有效,接口下的IPsec安全策略隻對接口下的報文有效)

2. 組網圖

圖2-3 配置IPsec保護RIPng報文組網圖

3. 配置步驟

說明

RIPng配置的詳細介紹請參考“三層技術-IP路由配置指導”中的“RIPng”。

 

(1)     配置Switch A

·     配置各接口的IPv6地址(略)

·     配置RIPng的基本功能

<SwitchA> system-view

[SwitchA] ripng 1

[SwitchA-ripng-1] quit

[SwitchA] interface vlan-interface 100

[SwitchA-Vlan-interface100] ripng 1 enable

[SwitchA-Vlan-interface100] quit

·     配置IPsec安全策略

# 創建並配置名為tran1的安全提議(報文封裝形式采用傳輸模式,安全協議采用ESP協議,加密算法采用AES 128,認證算法采用SHA1-HMAC-96)。

[SwitchA] ipsec proposal tran1

[SwitchA-ipsec-proposal-tran1] encapsulation-mode transport

[SwitchA-ipsec-proposal-tran1] transform esp

[SwitchA-ipsec-proposal-tran1] esp encryption-algorithm aes 128

[SwitchA-ipsec-proposal-tran1] esp authentication-algorithm sha1

[SwitchA-ipsec-proposal-tran1] quit

# 創建並配置名為policy001的安全策略(協商方式為manual,出入方向SA的SPI均為123456,出入方向SA的密鑰均為abcdefg)。

[SwitchA] ipsec policy policy001 10 manual

[SwitchA-ipsec-policy-manual-policy001-10] proposal tran1

[SwitchA-ipsec-policy-manual-policy001-10] sa spi outbound esp 123456

[SwitchA-ipsec-policy-manual-policy001-10] sa spi inbound esp 123456

[SwitchA-ipsec-policy-manual-policy001-10] sa string-key outbound esp abcdefg

[SwitchA-ipsec-policy-manual-policy001-10] sa string-key inbound esp abcdefg

[SwitchA-ipsec-policy-manual-policy001-10] quit

·     在RIPng進程上應用IPsec安全策略

[SwitchA] ripng 1

[SwitchA-ripng-1] enable ipsec-policy policy001

[SwitchA-ripng-1] quit

(2)     配置Switch B

·     配置各接口的IPv6地址(略)

·     配置RIPng的基本功能

<SwitchB> system-view

[SwitchB] ripng 1

[SwitchB-ripng-1] quit

[SwitchB] interface vlan-interface 200

[SwitchB-Vlan-interface200] ripng 1 enable

[SwitchB-Vlan-interface200] quit

[SwitchB] interface vlan-interface 100

[SwitchB-Vlan-interface100] ripng 1 enable

[SwitchB-Vlan-interface100] quit

·     配置IPsec安全策略

# 創建並配置名為tran1的安全提議(報文封裝形式采用傳輸模式,安全協議采用ESP協議,加密算法采用AES 128,認證算法采用SHA1-HMAC-96)。

[SwitchB] ipsec proposal tran1

[SwitchB-ipsec-proposal-tran1] encapsulation-mode transport

[SwitchB-ipsec-proposal-tran1] transform esp

[SwitchB-ipsec-proposal-tran1] esp encryption-algorithm aes128

[SwitchB-ipsec-proposal-tran1] esp authentication-algorithm sha1

[SwitchB-ipsec-pr oposal-tran1] quit

# 創建並配置名為policy001的安全策略(協商方式為manual,出入方向SA的SPI均為123456,出入方向SA的密鑰均為abcdefg)。

[SwitchB] ipsec policy policy001 10 manual

[SwitchB-ipsec-policy-manual-policy001-10] proposal tran1

[SwitchB-ipsec-policy-manual-policy001-10] sa spi outbound esp 123456

[SwitchB-ipsec-policy-manual-policy001-10] sa spi inbound esp 123456

[SwitchB-ipsec-policy-manual-policy001-10] sa string-key outbound esp abcdefg

[SwitchB-ipsec-policy-manual-policy001-10] sa string-key inbound esp abcdefg

[SwitchB-ipsec-policy-manual-policy001-10] quit

·     在RIPng進程上應用IPsec安全策略

[SwitchB] ripng 1

[SwitchB-ripng-1] enable ipsec-policy policy001

[SwitchB-ripng-1] quit

(3)     配置Switch C

·     配置各接口的IPv6地址(略)

·     配置RIPng的基本功能

<SwitchC> system-view

[SwitchC] ripng 1

[SwitchC-ripng-1] quit

[SwitchC] interface vlan-interface 200

[SwitchC-Vlan-interface200] ripng 1 enable

[SwitchC-Vlan-interface200] quit

·     配置IPsec安全策略

# 創建並配置名為tran1的安全提議(報文封裝形式采用傳輸模式,安全協議采用ESP協議,加密算法采用AES 128,認證算法采用SHA1-HMAC-96)。

[SwitchC] ipsec proposal tran1

[SwitchC-ipsec-proposal-tran1] encapsulation-mode transport

[SwitchC-ipsec-proposal-tran1] transform esp

[SwitchC-ipsec-proposal-tran1] esp encryption-algorithm aes 128

[SwitchC-ipsec-proposal-tran1] esp authentication-algorithm sha1

[SwitchC-ipsec-proposal-tran1] quit

# 創建並配置名為policy001的安全策略(協商方式為manual,出入方向SA的SPI均為123456,出入方向SA的密鑰均為abcdefg)。

[SwitchC] ipsec policy policy001 10 manual

[SwitchC-ipsec-policy-manual-policy001-10] proposal tran1

[SwitchC-ipsec-policy-manual-policy001-10] sa spi outbound esp 123456

[SwitchC-ipsec-policy-manual-policy001-10] sa spi inbound esp 123456

[SwitchC-ipsec-policy-manual-policy001-10] sa string-key outbound esp abcdefg

[SwitchC-ipsec-policy-manual-policy001-10] sa string-key inbound esp abcdefg

[SwitchC-ipsec-policy-manual-policy001-10] quit

·     在RIPng進程上應用IPsec安全策略

[SwitchC] ripng 1

[SwitchC-ripng-1] enable ipsec-policy policy001

[SwitchC-ripng-1] quit

4. 驗證配置結果

以上配置完成後,Switch A、Switch B和Switch C將通過RIPng協議學習到網絡中的IPv6路由信息,且分別產生用於保護RIPng報文的SA。

可以通過如下display命令查看Switch A上RIPng的配置信息。如下顯示信息表示RIPng進程1上已成功應用了IPsec策略,且攜帶了有效的SPI值。

<SwitchA> display ripng 1

    RIPng process : 1

       Preference : 100

       Checkzero : Enabled

       Default Cost : 0

       Maximum number of balanced paths : 8

       Update time   :   30 sec(s)  Timeout time         :  180 sec(s)

       Suppress time :  120 sec(s)  Garbage-Collect time :  120 sec(s)

       Number of periodic updates sent : 186

       Number of trigger updates sent : 1

       IPsec policy name: policy001, SPI: 123456

 

可以通過如下display命令查看Switch A上生成的SA。

<SwitchA> display ipsec sa

===============================

Protocol: RIPng

===============================

 

  -----------------------------

  IPsec policy name: "policy001"

  sequence number: 10

  mode: manual

  -----------------------------

    connection id: 1

    encapsulation mode: transport

    perfect forward secrecy:

    tunnel:

    flow:

 

    [inbound ESP SAs]

      spi: 123456 (0x3039)

      proposal: ESP-ENCRYPT-DES ESP-AUTH-SHA1

      No duration limit for this sa

 

    [outbound ESP SAs]

      spi: 123456 (0x3039)

      proposal: ESP-ENCRYPT-DES ESP-AUTH-SHA1

      No duration limit for this sa

Switch B和Switch C上也會生成相應的SA來保護RIPng報文,查看方式與Switch A同,此處略。


3 IKE

說明

·     僅FIPS模式下支持IKE協商方式。

·     隧道接口與聚合接口上不能配置IKE自動協商方式。

 

3.1  IKE簡介

在實施IPsec的過程中,可以使用IKE(Internet Key Exchange,因特網密鑰交換)協議來建立SA,該協議建立在由ISAKMP(Internet Security Association and Key Management Protocol,互聯網安全聯盟和密鑰管理協議)定義的框架上。IKE為IPsec提供了自動協商交換密鑰、建立SA的服務,能夠簡化IPsec的使用和管理,大大簡化IPsec的配置和維護工作。

IKE不是在網絡上直接傳輸密鑰,而是通過一係列數據的交換,最終計算出雙方共享的密鑰,並且即使第三方截獲了雙方用於計算密鑰的所有交換數據,也不足以計算出真正的密鑰。

3.1.1  IKE的安全機製

IKE具有一套自保護機製,可以在不安全的網絡上安全地認證身份、分發密鑰、建立IPsec SA。

1. 數據認證

數據認證有如下兩方麵的概念:

·     身份認證:身份認證確認通信雙方的身份。支持兩種認證方法:預共享密鑰(pre-shared-key)認證和基於PKI的數字簽名(rsa-signature)認證。

·     身份保護:身份數據在密鑰產生之後加密傳送,實現了對身份數據的保護。

2. DH

DH(Diffie-Hellman,交換及密鑰分發)算法是一種公共密鑰算法。通信雙方在不傳輸密鑰的情況下通過交換一些數據,計算出共享的密鑰。即使第三方(如黑客)截獲了雙方用於計算密鑰的所有交換數據,由於其複雜度很高,也不足以計算出真正的密鑰。所以,DH交換技術可以保證雙方能夠安全地獲得公有信息。

3. PFS

PFS(Perfect Forward Secrecy,完善的前向安全性)特性是一種安全特性,指一個密鑰被破解,並不影響其他密鑰的安全性,因為這些密鑰間沒有派生關係。對於IPsec,是通過在IKE階段2協商中增加一次密鑰交換來實現的。PFS特性是由DH算法保障的。

3.1.2  IKE的交換過程

IKE使用了兩個階段為IPsec進行密鑰協商並建立SA:

(1)     第一階段,通信各方彼此間建立了一個已通過身份認證和安全保護的通道,即建立一個ISAKMP SA。第一階段采用主模式的IKE交換方法。

(2)     第二階段,用在第一階段建立的安全隧道為IPsec協商安全服務,即為IPsec協商具體的SA,建立用於最終的IP數據安全傳輸的IPsec SA。

圖3-1 主模式交換過程

 

圖3-1所示,第一階段主模式的IKE協商過程中包含三對消息:

·     第一對叫SA交換,是協商確認有關安全策略的過程;

·     第二對消息叫密鑰交換,交換Diffie-Hellman公共值和輔助數據(如:隨機數),密鑰材料在這個階段產生;

·     最後一對消息是ID信息和認證數據交換,進行身份認證和對整個第一階段交換內容的認證。

3.1.3  IKE在IPsec中的作用

·     因為有了IKE,IPsec很多參數(如:密鑰)都可以自動建立,降低了手工配置的複雜度。

·     IKE協議中的DH交換過程,每次的計算和產生的結果都是不相關的。每次SA的建立都運行DH交換過程,保證了每個SA所使用的密鑰互不相關。

·     IPsec使用AH或ESP報文頭中的序列號實現防重放。此序列號是一個32比特的值,此數溢出後,為實現防重放,SA需要重新建立,這個過程需要IKE協議的配合。

·     對安全通信的各方身份的認證和管理,將影響到IPsec的部署。IPsec的大規模使用,必須有CA(Certificate Authority,證書頒發機構)或其他集中管理身份數據的機構的參與。

·     IKE提供端與端之間動態認證。

3.1.4  IPsec與IKE的關係

圖3-2 IPsec與IKE的關係圖

 

圖3-2中我們可以看出IKE和IPsec的關係:

·     IKE是UDP之上的一個應用層協議,是IPsec的信令協議;

·     IKE為IPsec協商建立SA,並把建立的參數及生成的密鑰交給IPsec;

·     IPsec使用IKE建立的SA對IP報文加密或認證處理。

3.1.5  協議規範

與IKE相關的協議規範有:

·     RFC2408:Internet Security Association and Key Management Protocol (ISAKMP)

·     RFC2409:The Internet Key Exchange (IKE)

·     RFC2412:The OAKLEY Key Determination Protocol

3.2  IKE配置任務簡介

進行IKE配置之前,用戶需要確定以下幾個因素,以便配置過程的順利進行。

·     確定IKE交換過程中算法的強度,即確定安全保護的強度(包括身份認證方法、加密算法、認證算法、DH組):不同的算法的強度不同,算法強度越高,受保護數據越難被破解,但消耗的計算資源越多。一般來說,密鑰越長的算法強度越高。

·     確定通信雙方預先約定的預共享密鑰或所屬的PKI域。關於PKI的配置,請參見“安全配置指導”中的“PKI”。

表3-1 IKE配置任務簡介

配置任務

說明

詳細配置

配置本端安全網關的名字

可選

3.3 

配置IKE安全提議

可選

若IKE對等體中需要指定IKE安全提議,則必配

3.4 

配置IKE對等體

必選

3.5 

配置Keepalive定時器

可選

3.6 

配置NAT Keepalive定時器

可選

3.7 

配置對等體存活檢測

可選

3.8 

配置取消對next payload域的檢查

可選

3.9 

 

3.3  配置本端安全網關的名字

當IKE協商的發起端使用FQDN (Fully Qualified Domain Name,完全合格域名)或者User FQDN類型的安全網關名字進行協商時(即配置了id-type nameid-type user-fqdn),本端需要配置本端安全網關的名字,該名字既可以在係統視圖下進行配置,也可以在IKE對等體視圖下配置,若兩個視圖下都配置了本端安全網關的名字,則采用IKE對等體視圖下的配置。

表3-2 配置本端安全網關名字

操作

命令

說明

進入係統視圖

system-view

-

配置本端安全網關的名字

ike local-name name

可選

缺省情況下,使用設備名作為本端安全網關的名字

 

3.4  配置IKE安全提議

IKE安全提議定義了一套屬性數據來描述IKE協商怎樣進行安全通信。用戶可以創建多條不同優先級的IKE提議,優先級由IKE提議的序號表示,數值越小,優先級越高。

協商雙方必須至少有一條匹配的IKE提議才能協商成功。在進行IKE協商時,協商發起方會將自己的安全提議發送給對端,由對端進行匹配,協商響應方則從自己優先級最高(序號最小)的IKE提議開始,按照優先級順序與對端發送的安全提議進行匹配,直到找到一個匹配的安全提議來使用。匹配的IKE提議將被用來建立安全隧道。

以上IKE安全提議的匹配原則是:協商雙方具有相同的加密算法、認證方法、認證算法和DH組標識。匹配的IKE提議的ISAKMP SA存活時間則取兩端的最小值。

缺省情況下,係統提供一條缺省的IKE提議。此缺省的IKE提議具有最低的優先級,具有缺省的加密算法、認證方法、認證算法、DH組標識和ISAKMP SA存活時間。

表3-3 配置IKE安全提議

操作

命令

說明

進入係統視圖

system-view

-

創建IKE提議,並進入IKE提議視圖

ike proposal proposal-number

必選

指定一個供IKE提議使用的加密算法

encryption-algorithm aes-cbc [ key-length ]

可選

缺省情況下,IKE提議使用CBC模式的128-bit AES加密算法

指定一個供IKE提議使用的認證方法

authentication-method { pre-share | rsa-signature }

可選

缺省情況下,IKE提議使用預共享密鑰的認證方法

指定一個供IKE提議使用的認證算法

authentication-algorithm sha

可選

缺省情況下,IKE提議使用SHA1認證算法

配置IKE階段1密鑰協商時所使用的DH密鑰交換參數

dh { group2 | group5 | group14 }

可選

缺省情況下,IKE階段1密鑰協商時所使用的DH密鑰交換參數為group2,即1024-bit的Diffie-Hellman組

指定一個IKE提議的ISAKMP SA存活時間

sa duration seconds

可選

缺省情況下,IKE提議的ISAKMP SA存活時間為86400秒

 

說明

如果存活時間超時,ISAKMP SA將自動更新。因為IKE協商需要進行DH計算,在低端設備上需要經過較長的時間,為使ISAKMP SA的更新不影響安全通信,建議設置存活時間大於10分鍾。

 

3.5  配置IKE對等體

在采用IKE方式配置安全策略時,需要指定IKE對等體。IKE對等體中主要包括以下配置:

·     本端作為發起方時所使用的協商模式(主模式)。本端作為響應方時,將自動適配發起方的協商模式。

·     本端作為發起方時可以使用的IKE安全提議(可指定多個)。本端作為響應方時,將使用係統視圖下已經配置的安全提議與對端發送的安全提議進行協商。

·     根據IKE提議使用的認證方法不同,選擇所使用的預共享密鑰或者PKI域。

·     本端在IKE第一階段協商時,所使用的ID類型(IP地址、FQDN名、User FQDN名)。在預共享密鑰認證的主模式下,隻能使用IP地址類型的ID。

·     本端安全網關的名字或IP地址。一般情況下本端安全網關的IP地址不需要配置,隻有要指定特殊的本端安全網關地址時(如指定loopback接口地址)才需要配置。

·     對端安全網關的名字或IP地址。若本端作為發起方,則需要配置對端安全網關名字或對端安全網關IP地址,它們用於發起方在協商過程中尋找對端。

·     NAT穿越功能。當IPsec/IKE隧道中存在NAT設備時,導致隧道一端為公網地址,另一端為私網地址,則必須在隧道兩端均配置NAT穿越功能,保證隧道能夠正常協商建立。

·     用於IKE對等體存活狀態檢測的DPD名稱。

表3-4 配置IKE對等體

操作

命令

說明

進入係統視圖

system-view

-

創建一個IKE對等體,並進入IKE-Peer視圖

ike peer peer-name

必選

配置IKE第一階段的協商模式

exchange-mode main

可選

缺省情況下,IKE階段的協商模式使用主模式

配置IKE對等體引用的IKE安全提議

proposal proposal-number&<1-6>

可選

缺省情況下,IKE對等體未引用任何IKE安全提議,使用係統視圖下已配置的IKE安全提議進行IKE協商

配置采用預共享密鑰認證時,所使用的預共享密鑰

pre-shared-key [ cipher | simple ] key

二者必選其一

根據IKE提議使用的認證方法選擇其中一個配置

配置采用數字簽名認證時,證書所屬的PKI域

certificate domain domain-name

選擇IKE第一階段的協商過程中使用ID的類型

id-type { ip | name | user-fqdn }

可選

缺省情況下,使用IP地址作為IKE協商過程中使用的ID

配置本端及對端安全網關的名字

配置本端安全網關的名字

local-name name

可選

對端使用remote-name配置的網關名字應與IKE協商發起端所配置的本端安全網關名字保持一致

缺省情況下,未定義本端安全網關的名字,使用係統視圖下本端安全網關的名字

配置對端安全網關的名字

remote-name name

配置本端及對端安全網關的IP地址

配置本端安全網關的IP地址

local-address ip-address

可選

對端使用remote-address配置的IP地址應與IKE協商發起端使用local-address命令所配的安全網關IP地址保持一致

缺省情況下,IKE協商時的本端安全網關IP地址使用應用安全策略的接口的主IP地址

配置對端安全網關的IP地址

remote-address { hostname | low-ip-address [ high-ip-address ] }

配置IKE/IPsec的NAT穿越功能

nat traversal

可選

在IPsec/IKE組建的VPN隧道中,若存在NAT安全網關設備,則必須配置IPsec/IKE的NAT穿越功能

缺省情況下,沒有配置NAT穿越功能

配置本端及對端安全網關的子網類型

配置本端安全網關子網類型

local { multi-subnet | single-subnet }

可選

缺省情況下,為單子網類型。這兩條命令僅在與NETSCREEN的設備互通時使用

配置對端安全網關子網類型

peer { multi-subnet | single-subnet }

為IKE對等體應用一個DPD

dpd dpd-name

可選

缺省情況下,IKE對等體沒有應用DPD

關於DPD的配置請參見“3.8  配置對等體存活檢測

 

說明

修改IKE對等體配置之後,要執行命令reset ipsec sareset ike sa來清除原有的IPsec SA與IKE SA,否則重新協商SA會失敗。

 

3.6  配置Keepalive定時器

IKE通過Keepalive報文維護ISAKMP SA的鏈路狀態。一般在對端配置了等待Keepalive報文的超時時間後,必須在本端配置此Keepalive報文發送時間間隔。當對端在配置的超時時間內未收到此Keepalive報文時,如果該ISAKMP SA帶有TIMEOUT標記,則刪除該ISAKMP SA以及由其協商的IPsec SA;否則,將其標記為TIMEOUT。

表3-5 配置Keepalive定時器

操作

命令

說明

進入係統視圖

system-view

-

配置ISAKMP SA向對端發送Keepalive報文的時間間隔

ike sa keepalive-timer interval seconds

必選

缺省情況下,ISAKMP SA不向對端發送Keepalive報文

配置ISAKMP SA等待對端發送Keepalive報文的超時時間

ike sa keepalive-timer timeout seconds

必選

缺省情況下,ISAKMP SA不向對端發送Keepalive報文

 

說明

本端配置的Keepalive報文的等待超時時間要大於對端發送的時間間隔。由於網絡中一般不會出現超過連續三次的報文丟失,所以,本端的超時時間可以配置為對端配置的Keepalive報文發送時間間隔的三倍。

 

3.7  配置NAT Keepalive定時器

在IPsec/IKE組建的VPN隧道中,若存在NAT安全網關設備,需配置NAT穿越功能來實現NAT穿越,但由於在NAT網關上的NAT映射會話有一定存活時間,因此一旦安全隧道建立後如果長時間沒有報文穿越,NAT會話表項會被刪除,這樣將導致在NAT網關外側的隧道無法繼續傳輸數據。為防止NAT表項老化,NAT網關內網側的ISAKMP SA會以一定的時間間隔向對端發送NAT Keepalive報文,以維持NAT會話的存活。

表3-6 配置NAT Keepalive定時器

操作

命令

說明

進入係統視圖

system-view

-

配置ISAKMP SA向對端發送NAT Keepalive報文的時間間隔

ike sa nat-keepalive-timer interval seconds

必選

缺省情況下,ISAKMP SA向對端發送NAT Keepalive報文的時間間隔為20秒

 

3.8  配置對等體存活檢測

DPD(Dead Peer Detection,對等體存活檢測)用於IKE對等體存活狀態檢測。啟動DPD功能後,當本端需要向對端發送IPsec報文時,若判斷當前距離最後一次收到對端IPsec報文已經超過觸發DPD的時間間隔(interval-time interval-time),則觸發DPD查詢,本端主動向對端發送DPD請求報文,對IKE對等體是否存活進行檢測。如果本端在DPD報文的重傳時間間隔(time-out time-out)內未收到對端發送的DPD回應報文,則重傳DPD請求,缺省重傳兩次之後,若仍然沒有收到對端的DPD回應報文,則刪除該IKE SA和對應的IPsec SA。

DPD和Keepalive的區別:

·     Keepalive定期發送查詢;

·     DPD隻在要發送加密報文前並且長時間(觸發DPD的時間間隔)未收到對端IPsec報文時發送查詢。

表3-7 配置對等體存活檢測

操作

命令

說明

進入係統視圖

system-view

-

創建一個DPD,並進入DPD視圖

ike dpd dpd-name

必選

配置觸發DPD的時間間隔

interval-time interval-time

可選

缺省情況下,觸發DPD的時間間隔為10秒

配置DPD報文的重傳時間間隔

time-out time-out

可選

缺省情況下,DPD報文的重傳時間間隔為5秒

 

3.9  配置取消對next payload域的檢查

next payload域是在IKE協商報文(由幾個payload組裝而成)的最後一個payload的通用頭中的一個域。按協議規定如果當前載荷處於消息的最後,該域必須為0,但某些公司的設備會將該域賦其它值,為增強設備的互通性,可以通過下麵的配置取消IKE協商過程對該域的檢查。

表3-8 配置取消對next payload域的檢查

操作

命令

說明

進入係統視圖

system-view

-

配置在IKE協商過程中取消對next payload域的檢查

ike next-payload check disabled

必選

缺省情況下,在IPsec協商過程中對next payload域進行檢查

 

3.10  IKE顯示和維護

在完成上述配置後,在任意視圖下執行display命令可以顯示配置後IKE的運行情況,通過查看顯示信息驗證配置的效果。

在用戶視圖下執行reset命令可以刪除IKE建立的安全隧道。

表3-9 IKE顯示和維護

操作

命令

顯示DPD配置的參數

display ike dpd [ dpd-name ] [ | { begin | exclude | include } regular-expression ]

顯示IKE對等體配置的參數

display ike peer [ peer-name ] [ | { begin | exclude | include } regular-expression ]

顯示當前IKE SA的信息

display ike sa [ verbose [ connection-id connection-id | remote-address remote-address ] ] [ | { begin | exclude | include } regular-expression ]

顯示每個IKE提議配置的參數

display ike proposal  [ | { begin | exclude | include } regular-expression ]

清除IKE建立的安全隧道

reset ike sa [ connection-id ]

 

3.11  IKE典型配置舉例

說明

本舉例僅FIPS模式下支持。

 

1. 組網需求

·     在Switch A和Switch B之間建立一個安全隧道,對Switch A與Switch B之間的數據流進行安全保護。

·     在Switch A上配置一條IKE提議,其提議號為10,使用的認證算法為SHA1。Switch B使用缺省的IKE提議。

·     為使用預共享密鑰認證方法的提議配置預共享密鑰。

2. 組網圖

IKE配置舉例組網圖

 

3. 配置步驟

說明

請保證Switch A與Switch B之間路由可達。

 

(1)     配置安全網關Switch A

# 配置Vlan-interface1的IP地址。

<SwitchA> system-view

[SwitchA] interface vlan-interface 1

[SwitchA-vlan-interface1] ip address 1.1.1.1 255.255.255.0

[SwitchA-vlan-interface1] quit

# 配置ACL 3101,定義Switch A和Switch B之間的數據流。

[SwitchA] acl number 3101

[SwitchA-acl-adv-3101] rule 0 permit ip source 1.1.1.1 0 destination 2.2.2.2 0

[SwitchA-acl-adv-3101] rule 1 permit ip source 2.2.2.2 0 destination 1.1.1.1 0

[SwitchA-acl-adv-3101] quit

# 配置安全提議tran1。

[SwitchA] ipsec proposal tran1

# 報文封裝形式采用隧道模式。

[SwitchA-ipsec-proposal-tran1] encapsulation-mode tunnel

# 安全協議采用ESP協議。

[SwitchA-ipsec-proposal-tran1] transform esp

# 選擇ESP協議采用的加密算法和認證算法。

[SwitchA-ipsec-proposal-tran1] esp encryption-algorithm aes 128

[SwitchA-ipsec-proposal-tran1] esp authentication-algorithm sha1

[SwitchA-ipsec-proposal-tran1] quit

# 創建一條IKE提議10。

[SwitchA] ike proposal 10

# 指定IKE提議使用的認證算法為SHA1。

[SwitchA-ike-proposal-10] authentication-algorithm sha

# 使用預共享密鑰認證方法。

[SwitchA-ike-proposal-10] authentication-method pre-share

# 配置ISAKMP SA的存活時間為5000秒。

[SwitchA-ike-proposal-10] sa duration 5000

[SwitchA-ike-proposal-10] quit

# 創建IKE對等體。

[SwitchA] ike peer peer

# 配置IKE對等體引用IKE安全提議10

[SwitchA-ike-peer-peer] proposal 10

# 配置預共享密鑰。

[SwitchA-ike-peer-peer] pre-shared-key Ab12<><>

# 配置對端安全網關的IP地址。

[SwitchA-ike-peer-peer] remote-address 2.2.2.2

[SwitchA-ike-peer-peer] quit

# 創建一條安全策略,協商方式為isakmp

[SwitchA] ipsec policy map1 10 isakmp

# 引用安全提議。

[SwitchA-ipsec-policy-isakmp-map1-10] proposal tran1

# 引用訪問控製列表。

[SwitchA-ipsec-policy-isakmp-map1-10] security acl 3101

# 引用IKE對等體。

[SwitchA-ipsec-policy-isakmp-map1-10] ike-peer peer

[SwitchA-ipsec-policy-isakmp-map1-10] quit

# 在Vlan-interface1上應用安全策略組。

[SwitchA] interface vlan-interface 1

[SwitchA-Vlan-interface1] ipsec policy map1

(2)     配置安全網關Switch B

# 配置Vlan-interface1的IP地址。

<SwitchB> system-view

[SwitchB] interface Vlan-interface1

[SwitchB-Vlan-interface1] ip address 2.2.2.2 255.255.255.0

[SwitchB-Vlan-interface1] quit

# 配置ACL 3101,定義Switch B和Switch A之間的數據流。

[SwitchB] acl number 3101

[SwitchB-acl-adv-3101] rule 0 permit ip source 2.2.2.2 0 destination 1.1.1.0 0

[SwitchB-acl-adv-3101] rule 1 permit ip source 1.1.1.1 0 destination 2.2.2.2 0

[SwitchB-acl-adv-3101] quit

 # 創建安全提議tran1。

[SwitchB] ipsec proposal tran1

# 報文封裝形式采用隧道模式。

[SwitchB-ipsec-proposal-tran1] encapsulation-mode tunnel

# 安全協議采用ESP協議。

[SwitchB-ipsec-proposal-tran1] transform esp

# 選擇ESP協議采用的加密算法和認證算法。

[SwitchB-ipsec-proposal-tran1] esp encryption-algorithm aes 128

[SwitchB-ipsec-proposal-tran1] esp authentication-algorithm sha1

[SwitchB-ipsec-proposal-tran1] quit

# 創建一條IKE提議10。

[SwitchB] ike proposal 10

# 指定IKE提議使用的認證算法為SHA1。

[SwitchB-ike-proposal-10] authentication-algorithm sha

# 使用預共享密鑰認證方法。

[SwitchB-ike-proposal-10] authentication-method pre-share

# 配置ISAKMP SA的存活時間為5000秒。

[SwitchB-ike-proposal-10] sa duration 5000

[SwitchB-ike-proposal-10] quit

# 創建IKE對等體。

[SwitchB] ike peer peer

# 配置IKE對等體引用IKE安全提議10

[SwitchB-ike-peer-peer] proposal 10

# 配置預共享密鑰。

[SwitchB-ike-peer-peer] pre-shared-key Ab12<><>

# 配置對端安全網關的IP地址。

[SwitchB-ike-peer-peer] remote-address 1.1.1.1

[SwitchB-ike-peer-peer] quit

# 創建一條安全策略,協商方式為isakmp。

[SwitchB] ipsec policy use1 10 isakmp

# 引用安全提議。

[SwitchB-ipsec-policy-isakmp-use1-10] proposal tran1

# 引用訪問控製列表。

[SwitchB-ipsec-policy-isakmp-use1-10] security acl 3101

# 引用IKE對等體。

[SwitchB-ipsec-policy-isakmp-use1-10] ike-peer peer

[SwitchB-ipsec-policy-isakmp-use1-10] quit

# 在Vlan-interface1上應用安全策略組。

[SwitchB] interface Vlan-interface1

[SwitchB-Vlan-interface1] ipsec policy use1

4. 驗證配置結果

以上配置完成後,Switch A和Switch B之間如果有報文發送,將觸發IKE協商。在進行IKE提議匹配的時候,從優先級最高的提議開始匹配,在進行提議匹配的時候,存活時間是不用進行匹配的,它由IKE協商雙方決定。

3.12  常見錯誤配置舉例

配置參數建立IPsec安全隧道時,可以打開IKE的Error調試開關,幫助我們查找配置問題。其命令是:

<Switch> debugging ike error

3.12.1  非法用戶身份信息

1. 故障現象

非法用戶身份信息

2. 故障分析

用戶身份信息是發起IPsec通信的用戶用來標識自己的數據。在實際應用中我們可以通過用戶身份標識實現對不同的數據流建立不同的安全隧道進行保護。目前我們是通過用戶的IP地址和名字來標識用戶。

可以看到調試信息:

got NOTIFY of type INVALID_ID_INFORMATION

或者

drop message from A.B.C.D due to notification type INVALID_ID_INFORMATION

3. 處理過程

檢查協商兩端接口上配置的安全策略中的ACL內容是否相容。建議用戶將兩端的ACL配置成互為鏡像的。ACL鏡像的含義請參考IPsec配置中“配置訪問控製列表”內容。

3.12.2  提議不匹配

1. 故障現象

提議不匹配

2. 故障分析

可以看到調試信息:

got NOTIFY of type NO_PROPOSAL_CHOSEN

或者:

drop message from A.B.C.D due to notification type NO_PROPOSAL_CHOSEN

協商雙方沒有可以匹配的提議。

3. 處理過程

對於階段1,檢查IKE proposal是否有與對方匹配的。對於階段2協商,檢查雙方接口上應用的IPsec安全策略的參數是否匹配,引用的IPsec安全提議的協議、加密算法和認證算法是否有匹配的。

3.12.3  無法建立安全隧道

1. 故障現象

無法建立安全隧道

2. 故障分析

實際應用中有時會發現在不穩定的網絡狀態下,安全隧道無法建立或者存在安全隧道卻無法通信,而且檢查雙方的ACL的配置正確,也有匹配的提議。

這種情況一般是安全隧道建立好以後,有一方的設備重啟造成的。

3. 處理過程

·     使用display ike sa命令檢查雙方是否都已建立階段1的SA。

·     使用display ipsec sa policy命令查看接口上的安全策略是否已建立了IPsec SA。

·     根據以上兩步的結果查看,如果有一方存在的SA在另一方上不存在,請先使用reset ipsec sa命令清除雙方不對稱存在的IPsec SA,再使用reset ike sa命令清除雙方不對稱存在的IKE SA,並重新發起協商。

3.12.4  ACL配置錯誤

1. 故障現象

ACL配置錯誤,導致協商成功之後數據流不通

2. 故障分析

多台設備之間先後建立不同的安全隧道,出現同一設備有不同對端的情況。若此設備不配置ACL規則,則分別由對端發起報文來與之建立保護粒度不同的安全隧道。由於安全隧道的優先級由它們創建的順序決定,當這一設備的出方向報文首先匹配到較粗粒度的安全隧道時,將導致此設備無法與其它較細粒度對端互通。

3. 處理過程

為避免這種情況發生,當同一設備有不同對端時,建議用戶在此設備上配置ACL來區別數據流,且與不同對端盡量避免配置有重複範圍的ACL子規則。若需要有重複範圍的子規則,應該將細粒度的子規則配置為較高的優先級。

不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!

BOB登陆
官網
聯係我們