21-IPsec配置
本章節下載: 21-IPsec配置 (478.97 KB)
· 本節所涉及的路由器和路由器圖標,代表了一般意義下的路由器或運行了路由協議的交換機。
· 設備僅在FIPS模式下,支持IPsec。關於FIPS模式的介紹,請參見“安全配置指導”中的“FIPS”。
· 處於IRF狀態的交換機不支持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協議用於密鑰交換。
IPsec提供了兩種安全機製:認證和加密。認證機製使IP通信的數據接收方能夠確認數據發送方的真實身份以及數據在傳輸過程中是否遭篡改。加密機製通過對數據進行加密運算來保證數據的機密性,以防數據在傳輸過程中被竊聽。
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頭。
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保護通信。
IPsec有如下兩種工作模式:
· 隧道(tunnel)模式:用戶的整個IP數據包被用來計算AH或ESP頭,AH或ESP頭以及ESP加密的用戶數據被封裝在一個新的IP數據包中。通常,隧道模式應用在兩個安全網關之間的通訊。
· 傳輸(transport)模式:隻是傳輸層數據被用來計算AH或ESP頭,AH或ESP頭以及ESP加密的用戶數據被放置在原IP包頭後麵。通常,傳輸模式應用在兩台主機之間的通訊,或一台主機和一個安全網關之間的通訊。
不同的安全協議在tunnel和transport模式下的數據封裝形式如圖1-1所示。
(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算法就可以滿足需要。
有如下兩種協商方式建立SA:
· 手工方式(manual)配置比較複雜,創建SA所需的全部信息都必須手工配置,而且不支持一些高級特性(例如定時更新密鑰),但優點是可以不依賴IKE而單獨實現IPsec功能。
· IKE自動協商(isakmp)方式相對比較簡單,隻需要配置好IKE協商安全策略的信息,由IKE自動協商來創建和維護SA。
當與之進行通信的對等體設備數量較少時,或是在小型靜態環境中,手工配置SA是可行的。對於中、大型的動態網絡環境中,推薦使用IKE協商建立SA。
安全隧道是建立在本端和對端之間可以互通的一個通道,它由一對或多對SA組成。
與IPsec相關的協議規範有:
· RFC2401:Security Architecture for the Internet Protocol
· RFC2402:IP Authentication Header
· RFC2406:IP Encapsulating Security Payload
目前,設備僅支持基於ACL建立IPsec隧道的配置方式:即,由ACL來指定要保護的數據流範圍,通過配置安全策略並將安全策略綁定在實際的物理接口上來完成IPsec的配置。這種方式可以利用ACL的豐富配置功能,結合實際的組網環境靈活製定IPsec安全策略。
目前,設備通過ACL來識別由IPsec隧道保護的流量時,受保護的流量隻能是源地址或目的地址為本機的報文。例如:可配置IPsec隧道對設備發送給日誌服務器的日誌信息進行保護。ACL中定義的匹配轉發流量的規則不生效,IPsec不會對設備轉發的任何數據流和語音流進行保護。關於IPsec中ACL規則的定義請參見“1.3.3 配置訪問控製列表”。
基於ACL建立IPsec安全隧道的基本配置思路如下:
(1) 通過配置訪問控製列表,用於匹配需要保護的數據流;
(2) 通過配置安全提議,指定安全協議、認證算法和加密算法、封裝模式等;
(3) 通過配置安全策略,將要保護的數據流和安全提議進行關聯(即定義對何種數據流實施何種保護),並指定SA的協商方式、對等體IP地址(即保護路徑的起/終點)、所需要的密鑰和SA的生存周期等;
(4) 最後在設備接口上應用安全策略即可完成IPsec隧道的配置。
表1-1 IPsec配置任務簡介
配置任務 |
說明 |
詳細配置 |
|
IPsec基本配置 |
配置訪問控製列表 |
必選 |
|
配置安全提議 |
|||
配置安全策略 |
|||
在接口上應用安全策略組 |
|||
配置會話空閑超時時間 |
可選 |
||
使能解封裝後IPsec報文的ACL檢查開關 |
可選 |
||
配置IPsec抗重放功能 |
可選 |
||
配置報文信息預提取功能 |
可選 |
通常情況下,由於IKE協議采用UDP的500端口進行通信,IPsec的AH和ESP協議分別使用51或50號協議來工作,因此為保障IKE和IPsec的正常運行,需要確保應用了IKE和IPsec配置的接口上沒有禁止掉屬於以上端口和協議的流量。
ACL(Access Control List,訪問控製列表)是用來實現流識別功能的。網絡設備為了過濾報文,需要配置一係列的匹配條件對報文進行分類,當設備的端口接收到報文後,即根據當前端口上應用的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中的規則要對稱,否則某些情況下IPsec隻能保護單一方向的數據流。
為保證SA的成功建立,建議將IPsec對等體上的訪問控製列表鏡像配置,即保證兩端要保護的數據流範圍是鏡像的。
若IPsec對等體上的訪問控製列表配置非鏡像,那麼隻有一種情況下,SA的協商是可以建立的。這種情況就是,一端的訪問控製列表規則定義的範圍是另外一端的子集。但需要注意的是,在這種ACL配置下,並不是任何一端發起的SA協商都可以成功,僅當保護範圍小(細粒度)的一端向保護範圍大(粗粒度)的一端發起的協商才能成功,反之則協商失敗。這是因為,協商響應方要求協商發起方發送過來的數據必須在響應方可以接受的範圍之內。其結果就是,從細粒度一端向粗粒度一端發起的協商是可以成功的;從粗粒度一方向細粒度一方發起的協商是不能成功的。
目前,設備支持的數據流的保護方式為標準方式:即一條隧道保護一條數據流。ACL中的每一個規則對應的數據流都會由一條單獨創建的隧道來保護。
· ACL的具體配置請參見“ACL和QoS配置指導”中的“ACL”。
· 若在接口上同時使能IPsec和QoS,同一個IPsec安全聯盟的數據流如果被QoS分類進入不同隊列,會導致部分報文發送亂序。由於IPsec具有防重放功能,IPsec入方向上對於防重放窗口之外的報文會進行丟棄,從而導致丟包現象。因此當IPsec與QoS結合使用時,必須保證IPsec分類與QoS分類規則配置保持一致。IPsec的分類規則完全由引用的ACL規則確定,QoS分類規則的配置請參考“ACL和QoS配置指導”中的“QoS配置方式”。
安全提議是安全策略的一個組成部分,它用於保存IPsec需要使用的特定安全協議、加密/認證算法以及封裝模式,為IPsec協商SA提供各種安全參數。
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
創建安全提議,並進入安全提議視圖 |
ipsec proposal proposal-name |
必選 缺省情況下,沒有任何安全提議存在 |
|
配置安全提議采用的安全協議 |
transform { ah | ah-esp | esp } |
可選 缺省情況下,采用ESP協議 |
|
配置安全算法 |
配置ESP協議采用的加密算法 |
esp encryption-algorithm aes [ key-length ] |
可選 缺省情況下,ESP協議缺省采用AES-128加密算法 |
配置ESP協議采用的認證算法 |
esp authentication-algorithm sha1 |
可選 缺省情況下, ESP協議缺省采用SHA1認證算法 |
|
配置AH協議采用的認證算法 |
ah authentication-algorithm sha1 |
可選 缺省情況下,AH協議缺省采用SHA1認證算法 |
|
配置安全協議對IP報文的封裝形式 |
encapsulation-mode { transport | tunnel } |
可選 缺省情況下,安全協議采用隧道模式對IP報文進行封裝 傳輸模式必須應用於數據流的源地址和目的地址與安全隧道兩端地址相同的情況下 |
· 可對安全提議進行修改,但對已協商成功的SA,新修改的安全提議並不起作用,即SA仍然使用原來的安全提議(除非使用reset ipsec sa命令重置),隻有新協商的SA將使用新的安全提議。
· 隻有選擇了相應的安全協議後,該安全協議所需的安全算法才可配置。例如,如果使用transform命令選擇了esp,那麼隻有ESP所需的安全算法才可配置,而AH所需的安全算法則不能配置。ESP必須同時使用加密和認證。
安全策略規定了對什麼樣的數據流采用什麼樣的安全提議。一條安全策略由“名字”和“順序號”共同唯一確定。
安全策略分為手工安全策略和IKE協商安全策略:
· 手工配置方式:需要用戶手工配置密鑰、SPI等參數,在隧道模式下還需要手工配置安全隧道兩個端點的IP地址;
· IKE協商方式:由IKE自動協商生成各參數。
(1) 配置準備
手工配置安全策略時,除完成該安全策略需要引用的訪問控製列表及安全提議的配置之外,為保證SA的協商成功,安全隧道兩端的配置必須符合以下要求:
· 安全策略引用的安全提議應采用相同的安全協議、安全算法和報文封裝形式;
· 當前端點的對端地址與對端的本端地址應保持一致;
· 應分別設置出方向SA和入方向SA的參數,且保證SA的唯一性,即不同SA必須對應不同的SPI;
· 本端和對端SA的SPI及密鑰必須是完全匹配的。即,本端的入方向SA的SPI及密鑰必須和對端的出方向SA的SPI及密鑰相同;本端的出方向SA的SPI及密鑰必須和對端的入方向SA的SPI及密鑰相同;
· 兩端SA使用的密鑰應當以相同的方式輸入。而且,任何一端出入方向的SA使用的密鑰也應當以相同的方式輸入。
操作 |
命令 |
說明 |
||
進入係統視圖 |
system-view |
- |
||
用手工方式創建一條安全策略,並進入安全策略視圖 |
ipsec policy policy-name seq-number manual |
必選 缺省情況下,沒有任何安全策略存在 |
||
配置安全策略引用的訪問控製列表 |
security acl acl-number |
必選 缺省情況下,安全策略沒有指定訪問控製列表 |
||
配置安全策略所引用的安全提議 |
proposal proposal-name |
必選 缺省情況下,安全策略沒有引用任何安全提議 |
||
配置隧道的起點與終點 |
配置安全隧道的本端地址 |
tunnel local ip-address |
必選 缺省情況下,沒有配置安全隧道的本端地址和對端地址 |
|
配置安全隧道的對端地址 |
tunnel remote ip-address |
|||
配置SA的安全參數索引參數 |
sa spi { inbound | outbound } { ah | esp } spi-number |
必選 缺省情況下,不存在SA的安全參數索引 |
||
配置SA使用的密鑰 |
配置AH協議的認證密鑰(以16進製方式輸入) |
sa authentication-hex { inbound | outbound } ah [ cipher string-key | simple hex-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,一條安全策略隻能引用一個安全提議,並且如果已經引用了安全提議,必須先取消原先的安全提議才能引用新的安全提議。
· 在為係統配置SA時,必須分別設置inbound和outbound兩個方向SA的參數。同時,為保證SA的唯一性,不同SA必須對應不同的SPI,且設備上同一個方向上的SPI必須不同。
· 如果先後以不同的方式輸入了密鑰,則最後設定的密鑰有效。
· 對於手工方式創建的安全策略,不能直接修改它的創建方式,而必須先刪除該安全策略然後再重新創建。
在采用IKE方式配置安全策略時,目前僅支持直接配置安全策略,即:在安全策略視圖中定義需要協商的各參數。
(1) 配置準備
在配置IKE協商安全策略之前,需要完成以下配置:
· 配置所引用的訪問控製列表和安全提議。
· 配置IKE對等體。具體配置請參見“2.5 配置IKE對等體”。
為保證IKE協商成功,安全策略中所有配置的參數必須在本端和對端相匹配。
(2) 直接配置使用IKE協商方式的安全策略
表1-4 直接配置使用IKE協商方式的安全策略
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建一條安全策略,並進入安全策略視圖 |
ipsec policy policy-name seq-number isakmp |
必選 缺省情況下,沒有安全策略存在 |
配置用於描述安全策略的IPsec連接名 |
connection-name name |
可選 缺省情況下,無IPsec連接名 |
配置安全策略引用的訪問控製列表 |
security acl acl-number |
必選 缺省情況下,安全策略沒有指定訪問控製列表 |
配置安全策略所引用的安全提議 |
proposal proposal-name&<1-6> |
必選 缺省情況下,安全策略沒有引用任何提議 |
在安全策略中引用IKE對等體 |
ike-peer peer-name |
必選 |
配置使用此安全策略發起協商時使用PFS特性 |
pfs { dh-group2 | dh-group5 | dh-group14 } |
可選 缺省情況下,安全策略發起協商時沒有使用PFS特性 |
配置SA的生存周期 |
sa duration { time-based seconds | traffic-based kilobytes } |
可選 缺省情況下,安全策略的SA生存周期為當前全局的SA生存周期值 |
使能安全策略 |
policy enable |
可選 缺省情況下,安全策略處於使能狀態 |
退回係統視圖 |
quit |
- |
配置全局SA的生存周期 |
ipsec sa global-duration { time-based seconds | traffic-based kilobytes } |
可選 缺省情況下,SA基於時間的生存周期為3600秒,基於流量的生存周期為1843200千字節 |
· 一條安全策略隻能引用一條訪問控製列表,如果設置安全策略引用了多於一個訪問控製列表,最後配置的那條訪問控製列表才有效。
· 通過IKE協商建立SA,一條安全策略最多可以引用六個安全提議,IKE協商將在安全隧道的兩端搜索能夠完全匹配的安全提議。如果IKE在兩端找不到完全匹配的安全提議,則SA不能建立,需要被保護的報文將被丟棄。
· IKE在使用安全策略發起一個協商時,可以進行一個PFS交換。如果本端配置了PFS特性,則發起協商的對端也必須配置PFS特性,而且本端和對端指定的DH組必須一致,否則協商會失敗。
· 所有在安全策略視圖下沒有單獨配置生存周期的SA,都采用全局生存周期。IKE為IPsec協商建立SA時,采用本地設置的和對端提議的生存周期中較小的一個。
· 對於IKE方式創建的安全策略,不能直接修改它的創建方式,而必須先刪除該安全策略然後再重新創建。
安全策略組是所有具有相同名字、不同順序號的安全策略的集合。在同一個安全策略組中,順序號越小的安全策略,優先級越高。
為使定義的SA生效,應在每個要加密的數據流和要解密的數據流所在接口(邏輯的或物理的)上應用一個安全策略組,以對數據進行保護。當取消安全策略組在接口上的應用後,此接口便不再具有IPsec的安全保護功能。
當從一個接口發送數據時,將按照從小到大的順序號查找安全策略組中每一條安全策略。如果數據匹配了一條安全策略引用的訪問控製列表,則使用這條安全策略對數據進行處理;如果數據沒有匹配安全策略引用的訪問控製列表,則繼續查找下一條安全策略;如果數據與所有安全策略引用的訪問控製列表都不匹配,則直接被發送(IPsec不對數據加以保護)。
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
應用指定的安全策略組 |
ipsec policy policy-name |
必選 |
· 目前,設備上的安全策略隻支持在Vlan接口下配置。
· 一個接口隻能應用一個安全策略組。交換機上同一個安全策略不建議應用到多個接口上,通過手工創建的安全策略隻能應用到一個接口上。
數據包首次匹配IPsec策略後創建IPsec會話,並根據匹配結果創建IPsec會話表項,會話表項中記錄了報文的五元組(源IP地址、目的IP地址、協議號、源端口、目的端口)和匹配的IPsec隧道。
IPsec會話的刪除由IPsec會話的空閑超時時間決定。IPsec會話在超過它的空閑超時時間之後,被自動刪除。
屬於該會話的後續數據流根據報文的五元組,來查找會話表項。如果找到匹配的會話表項,則根據會話表項中的隧道信息來處理;如果沒有找到匹配的會話表項,則按照IPsec原來的處理流程來處理,即從接口下查找策略組、策略,最後查找匹配的隧道來處理。
IPsec流程中增加的會話處理機製,節省了大量的中間匹配過程,提高了IPsec的轉發效率。
表1-6 配置會話空閑超時時間
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置IPsec會話的空閑超時時間 |
ipsec session idle-time seconds |
可選 缺省情況下,IPsec會話的空閑超時時間為300秒 |
在隧道模式下,對於解封裝之後的入方向IPsec報文,有可能出現報文的內部IP頭不在當前安全策略配置的ACL保護範圍內的情況,如網絡中惡意構造的攻擊報文頭可能不在此範圍,所以需要重新檢查報文內部IP頭是否在ACL保護範圍內。使能該功能後可以保證ACL檢查不通過的報文被丟棄,從而提高網絡安全性。
表1-7 使能解封裝後IPsec報文的ACL檢查功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
使能解封裝後IPsec報文的ACL檢查功能 |
ipsec decrypt check |
可選 缺省情況下,解封裝後IPsec報文的ACL檢查功能處於使能狀態 |
通常,重放報文是指已經處理過的報文。IPsec通過滑動窗口(抗重放窗口)機製檢測重放報文。AH和ESP協議報文中帶有序列號,如果收到報文的序列號與已經解封裝過的報文序列號相同,或報文的序列號出現得較早,即已經超過了抗重放窗口的範圍,則認為該報文為重放報文。
由於對重放報文的解封裝無實際作用,並且解封裝過程涉及密碼學運算,會消耗設備大量的資源,導致業務可用性下降,實際上構成了拒絕服務攻擊。通過使能IPsec抗重放檢測功能,將檢測到的重放報文在解封裝處理之前丟棄,可以降低設備資源的消耗。
另外,在某些特定環境下,業務數據報文的序列號順序可能與正常的順序差別較大,雖然並非有意的重放攻擊,但會被抗重放檢測認為是重放報文,導致業務數據報文被丟棄,影響業務的正常運行。因此,這種情況下就可以通過關閉IPsec抗重放檢測功能來避免業務數據報文的錯誤丟棄,也可以通過適當地增大抗重放窗口的寬度,來適應業務正常運行的需要。
表1-8 配置IPsec抗重放功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
使能IPsec抗重放檢測功能 |
ipsec anti-replay check |
可選 缺省情況下,IPsec抗重放檢測功能處於使能狀態 |
配置IPsec抗重放窗口寬度 |
ipsec anti-replay window width |
可選 缺省情況下,IPsec抗重放窗口寬度為32 |
· IPsec抗重放檢測功能缺省是使能的,是否關閉該功能請根據實際需求慎重使用。
· 使用較大的抗重放窗口寬度會引起係統開銷增大,導致係統性能下降,與抗重放檢測用於降低係統在接收重放報文時的開銷的初衷不符,因此建議在能夠滿足業務運行需要的情況下,使用較小的抗重放窗口寬度。
按照IPsec協議,隻有IKE協商的IPsec SA才能夠支持抗重放檢測,手工方式生成的IPsec SA不支持抗重放檢測。因此該功能使能與否與對手工方式生成的IPsec SA沒有影響。
當在接口上同時應用了IPsec策略與QoS策略時,缺省情況下,QoS使用被封裝報文的外層IP頭信息來對報文進行分類。但如果希望QoS基於被封裝報文的原始IP頭信息對報文進行分類,則需要配置報文信息預提取功能來實現。
關於QoS策略及QoS分類的相關介紹請參見“ACL和QoS配置指導”中的“QoS配置方式”。
表1-9 配置報文信息預提取功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入安全策略視圖 |
ipsec policy policy-name seq-number [ isakmp | manual ] |
二者必選其一 |
配置報文信息預提取功能 |
qos pre-classify |
必選 缺省情況下,報文信息預提取功能處於關閉狀態 |
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後IPsec的運行情況,通過查看顯示信息認證配置的效果。
在用戶視圖下執行reset命令可以清除IPsec統計信息。
表1-10 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 | 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 ] |
顯示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 ] |
清除設備上IPsec隧道的會話 |
reset ipsec session [ tunnel-id integer ] |
清除IPsec的報文統計信息 |
reset ipsec statistics |
· 如圖1-2所示,在Switch A和Switch B之間建立一個安全隧道,對Switch A與Switch B之間的數據流進行安全保護。
· 安全協議采用ESP協議,加密算法采用AES-CBC-128,認證算法采用HMAC-SHA1-96。
圖1-2 IPsec配置組網圖
(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
以上配置完成後,Switch A和Switch B之間如果有報文發送,將觸發IKE進行協商建立SA。IKE協商成功並創建了SA後,Switch A和Switch B之間的數據流將被加密傳輸。
設備僅在FIPS模式下,支持IKE。關於FIPS模式的介紹,請參見“安全配置指導”中的“FIPS”。
在實施IPsec的過程中,可以使用IKE(Internet Key Exchange,因特網密鑰交換)協議來建立SA,該協議建立在由ISAKMP(Internet Security Association and Key Management Protocol,互聯網安全聯盟和密鑰管理協議)定義的框架上。IKE為IPsec提供了自動協商交換密鑰、建立SA的服務,能夠簡化IPsec的使用和管理,大大簡化IPsec的配置和維護工作。
IKE不是在網絡上直接傳輸密鑰,而是通過一係列數據的交換,最終計算出雙方共享的密鑰,並且即使第三方截獲了雙方用於計算密鑰的所有交換數據,也不足以計算出真正的密鑰。
IKE具有一套自保護機製,可以在不安全的網絡上安全地認證身份、分發密鑰、建立IPsec SA。
數據認證有如下兩方麵的概念:
· 身份認證:身份認證確認通信雙方的身份。支持兩種認證方法:預共享密鑰(pre-shared-key)認證和基於PKI的數字簽名(rsa-signature)認證。
· 身份保護:身份數據在密鑰產生之後加密傳送,實現了對身份數據的保護。
DH(Diffie-Hellman,交換及密鑰分發)算法是一種公共密鑰算法。通信雙方在不傳輸密鑰的情況下通過交換一些數據,計算出共享的密鑰。即使第三方(如黑客)截獲了雙方用於計算密鑰的所有交換數據,由於其複雜度很高,也不足以計算出真正的密鑰。所以,DH交換技術可以保證雙方能夠安全地獲得公有信息。
PFS(Perfect Forward Secrecy,完善的前向安全性)特性是一種安全特性,指一個密鑰被破解,並不影響其他密鑰的安全性,因為這些密鑰間沒有派生關係。對於IPsec,是通過在IKE階段2協商中增加一次密鑰交換來實現的。PFS特性是由DH算法保障的。
IKE使用了兩個階段為IPsec進行密鑰協商並建立SA:
(1) 第一階段,通信各方彼此間建立了一個已通過身份認證和安全保護的通道,即建立一個ISAKMP SA。
(2) 第二階段,用在第一階段建立的安全隧道為IPsec協商安全服務,即為IPsec協商具體的SA,建立用於最終的IP數據安全傳輸的IPsec SA。
如圖2-1所示,第一階段主模式的IKE協商過程中包含三對消息:
· 第一對叫SA交換,是協商確認有關安全策略的過程;
· 第二對消息叫密鑰交換,交換Diffie-Hellman公共值和輔助數據(如:隨機數),密鑰材料在這個階段產生;
· 最後一對消息是ID信息和認證數據交換,進行身份認證和對整個第一階段交換內容的認證。
· 因為有了IKE,IPsec很多參數(如:密鑰)都可以自動建立,降低了手工配置的複雜度。
· IKE協議中的DH交換過程,每次的計算和產生的結果都是不相關的。每次SA的建立都運行DH交換過程,保證了每個SA所使用的密鑰互不相關。
· IPsec使用AH或ESP報文頭中的序列號實現防重放。此序列號是一個32比特的值,此數溢出後,為實現防重放,SA需要重新建立,這個過程需要IKE協議的配合。
· 對安全通信的各方身份的認證和管理,將影響到IPsec的部署。IPsec的大規模使用,必須有CA(Certificate Authority,證書頒發機構)或其他集中管理身份數據的機構的參與。
· IKE提供端與端之間動態認證。
圖2-2 IPsec與IKE的關係圖
從圖2-2中我們可以看出IKE和IPsec的關係:
· IKE是UDP之上的一個應用層協議,是IPsec的信令協議;
· IKE為IPsec協商建立SA,並把建立的參數及生成的密鑰交給IPsec;
· IPsec使用IKE建立的SA對IP報文加密或認證處理。
與IKE相關的協議規範有:
· RFC2408:Internet Security Association and Key Management Protocol (ISAKMP)
· RFC2409:The Internet Key Exchange (IKE)
· RFC2412:The OAKLEY Key Determination Protocol
進行IKE配置之前,用戶需要確定以下幾個因素,以便配置過程的順利進行。
· 確定IKE交換過程中算法的強度,即確定安全保護的強度(包括身份認證方法、加密算法、認證算法、DH組):不同的算法的強度不同,算法強度越高,受保護數據越難被破解,但消耗的計算資源越多。一般來說,密鑰越長的算法強度越高。
· 確定通信雙方預先約定的預共享密鑰或所屬的PKI域。關於PKI的配置,請參見“安全配置指導”中的“PKI”。
表2-1 IKE配置任務簡介
配置任務 |
說明 |
詳細配置 |
配置本端安全網關的名字 |
可選 |
|
配置IKE安全提議 |
可選 若IKE對等體中需要指定IKE安全提議,則必配 |
|
配置IKE對等體 |
必選 |
|
配置Keepalive定時器 |
可選 |
|
配置對等體存活檢測 |
可選 |
|
配置取消對next payload域的檢查 |
可選 |
當IKE協商的發起端使用安全網關名字進行協商時(即配置了id-type name或id-type user-fqdn),本端需要配置本端安全網關的名字,該名字既可以在係統視圖下進行配置,也可以在IKE對等體視圖下配置,若IKE對等體視圖下未配置本端安全網關的名字,則采用係統視圖下的配置。
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置本端安全網關的名字 |
ike local-name name |
可選 缺省情況下,使用設備名作為本端安全網關的名字 |
IKE安全提議定義了一套屬性數據來描述IKE協商怎樣進行安全通信。用戶可以創建多條不同優先級的IKE提議,優先級由IKE提議的序號表示,數值越小,優先級越高。
協商雙方必須至少有一條匹配的IKE提議才能協商成功。在進行IKE協商時,協商發起方會將自己的安全提議發送給對端,由對端進行匹配,協商響應方則從自己優先級最高(序號最小)的IKE提議開始,按照優先級順序與對端發送的安全提議進行匹配,直到找到一個匹配的安全提議來使用。匹配的IKE提議將被用來建立安全隧道。
以上IKE安全提議的匹配原則是:協商雙方具有相同的加密算法、認證方法、認證算法和DH組標識。匹配的IKE提議的ISAKMP SA存活時間則取兩端的最小值。
缺省情況下,係統提供一條缺省的IKE提議。此缺省的IKE提議具有最低的優先級,具有缺省的加密算法、認證方法、認證算法、DH組標識和ISAKMP SA存活時間。
表2-3 配置IKE安全提議
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建IKE提議,並進入IKE提議視圖 |
ike proposal proposal-number |
必選 |
指定一個供IKE提議使用的加密算法 |
encryption-algorithm aes-cbc [ key-length ] |
可選 缺省情況下,IKE缺省提議使用AES-CBC-128加密算法 |
指定一個供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存活時間 |
可選 缺省情況下,IKE提議的ISAKMP SA存活時間為86400秒 |
如果存活時間超時,ISAKMP SA將自動更新。因為IKE協商需要進行DH計算,在低端設備上需要經過較長的時間,為使ISAKMP SA的更新不影響安全通信,建議設置存活時間大於10分鍾。
在采用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名稱。
表2-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 [ dynamic ] | low-ip-address [ high-ip-address ] } |
||
為IKE對等體應用一個DPD |
dpd dpd-name |
可選 缺省情況下,IKE對等體沒有應用DPD |
修改IKE對等體配置之後,要執行命令reset ipsec sa、reset ike sa來清除原有的IPsec SA與IKE SA,否則重新協商SA會失敗。
IKE通過Keepalive報文維護ISAKMP SA的鏈路狀態。一般在對端配置了等待Keepalive報文的超時時間後,必須在本端配置此Keepalive報文發送時間間隔。當對端在配置的超時時間內未收到此Keepalive報文時,如果該ISAKMP SA帶有TIMEOUT標記,則刪除該ISAKMP SA以及由其協商的IPsec SA;否則,將其標記為TIMEOUT。
操作 |
命令 |
說明 |
進入係統視圖 |
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報文發送時間間隔的三倍。
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報文時發送查詢。
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建一個DPD,並進入DPD視圖 |
ike dpd dpd-name |
必選 |
配置觸發DPD的時間間隔 |
interval-time interval-time |
可選 缺省情況下,觸發DPD的時間間隔為10秒 |
配置DPD報文的重傳時間間隔 |
time-out time-out |
可選 缺省情況下,DPD報文的重傳時間間隔為5秒 |
next payload域是在IKE協商報文(由幾個payload組裝而成)的最後一個payload的通用頭中的一個域。按協議規定如果當前載荷處於消息的最後,該域必須為0,但某些公司的設備會將該域賦其它值,為增強設備的互通性,可以通過下麵的配置取消IKE協商過程對該域的檢查。
表2-7 配置取消對next payload域的檢查
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置在IKE協商過程中取消對next payload域的檢查 |
ike next-payload check disabled |
必選 缺省情況下,在IPsec協商過程中對next payload域進行檢查 |
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後IKE的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下執行reset命令可以刪除IKE建立的安全隧道。
表2-8 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 ] |
· 在Switch A和Switch B之間建立一個安全隧道,對Switch A與Switch B之間的數據流進行安全保護。
· 在Switch A上配置一條IKE提議,其提議號為10,使用的認證算法為SHA1。Switch B使用缺省的IKE提議。
· 使用預共享密鑰的認證方法。
圖2-3 IKE主模式及預共享密鑰認證典型組網圖
請保證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
以上配置完成後,Switch A和Switch B之間如果有報文發送,將觸發IKE協商。在進行IKE提議匹配的時候,從優先級最高的提議開始匹配,在進行提議匹配的時候,存活時間是不用進行匹配的,它由IKE協商雙方決定。
配置參數建立IPsec安全隧道時,可以打開IKE的Error調試開關,幫助我們查找配置問題。其命令是:
<Switch> debugging ike error
非法用戶身份信息
用戶身份信息是發起IPsec通信的用戶用來標識自己的數據。在實際應用中我們可以通過用戶身份標識實現對不同的數據流建立不同的安全隧道進行保護。目前我們是通過用戶的IP地址和名字來標識用戶。
可以看到調試信息:
got NOTIFY of type INVALID_ID_INFORMATION
或者
drop message from A.B.C.D due to notification type INVALID_ID_INFORMATION
檢查協商兩端接口上配置的安全策略中的ACL內容是否相容。建議用戶將兩端的ACL配置成互為鏡像的。ACL鏡像的含義請參考IPsec配置中“配置訪問控製列表”內容。
提議不匹配
可以看到調試信息:
got NOTIFY of type NO_PROPOSAL_CHOSEN
或者:
drop message from A.B.C.D due to notification type NO_PROPOSAL_CHOSEN
協商雙方沒有可以匹配的提議。
對於階段1,檢查IKE proposal是否有與對方匹配的。對於階段2協商,檢查雙方接口上應用的IPsec安全策略的參數是否匹配,引用的IPsec安全提議的協議、加密算法和認證算法是否有匹配的。
無法建立安全隧道
實際應用中有時會發現在不穩定的網絡狀態下,安全隧道無法建立或者存在安全隧道卻無法通信,而且檢查雙方的ACL的配置正確,也有匹配的提議。
這種情況一般是安全隧道建立好以後,有一方的設備重啟造成的。
· 使用display ike sa命令檢查雙方是否都已建立階段1的SA。
· 使用display ipsec sa policy命令查看接口上的安全策略是否已建立了IPsec SA。
· 根據以上兩步的結果查看,如果有一方存在的SA在另一方上不存在,請先使用reset ipsec sa命令清除雙方不對稱存在的IPsec SA,再使用reset ike sa命令清除雙方不對稱存在的IKE SA,並重新發起協商。
ACL配置錯誤,導致協商成功之後數據流不通
多台設備之間先後建立不同的安全隧道,出現同一設備有不同對端的情況。若此設備不配置ACL規則,則分別由對端發起報文來與之建立保護粒度不同的安全隧道。由於安全隧道的優先級由它們創建的順序決定,當這一設備的出方向報文首先匹配到較粗粒度的安全隧道時,將導致此設備無法與其它較細粒度對端互通。
為避免這種情況發生,當同一設備有不同對端時,建議用戶在此設備上配置ACL來區別數據流,且與不同對端盡量避免配置有重複範圍的ACL子規則。若需要有重複範圍的子規則,應該將細粒度的子規則配置為較高的優先級。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!