溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

CIsco路由器實現(xiàn)IPSec 虛擬專用網(wǎng)原理及配置詳解

發(fā)布時間:2020-08-05 09:52:22 來源:網(wǎng)絡(luò) 閱讀:1159 作者:筱振 欄目:安全技術(shù)

博文大綱:
一、虛擬專用網(wǎng)概述;
1.虛擬專用網(wǎng)的定義;
2.虛擬專用網(wǎng)的模型與類型;
(1)虛擬專用網(wǎng)的連接模式;
(2)虛擬專用網(wǎng)的類型;
二、虛擬專用網(wǎng)技術(shù);
1.加密技術(shù);
(1)對稱加密算法;
(2)非對稱加密算法;
(3)密鑰交換;
2.數(shù)據(jù)報文驗證;
(1)HMAC功能實現(xiàn)驗證功能;
(2)MD5和SHA;
三、IPSec 虛擬專用網(wǎng);
1.IPsec連接;
2.ISAKMP/IKE階段1;
3.ISAKMP/IKE階段2;
四、配置實現(xiàn)IPSec 虛擬專用網(wǎng);
五、常用排錯的命令;

關(guān)于虛擬專用網(wǎng)理論知識較多,看一次、兩次的,可能不能完全掌握,建議沒事多看看!

一、虛擬專用網(wǎng)概述

虛擬專用網(wǎng)技術(shù)期初是為了解決明文數(shù)據(jù)在網(wǎng)絡(luò)上傳輸所帶來的安全隱患而產(chǎn)生的。TCP/IP協(xié)議族中的很多協(xié)議都是采用明文方式傳輸?shù)?。比如:Telnet、FTP、TFTP等。一些非法用戶可能為了獲取利益,通過一系列非法手段可以截獲明文數(shù)據(jù),使企業(yè)和個人蒙受損失。

虛擬專用網(wǎng)技術(shù)可以從某種程度上解決這種問題。它可以對公網(wǎng)上傳輸?shù)臄?shù)據(jù)進行加密,及時非法用戶通過某種手段獲取到數(shù)據(jù),也無法了解數(shù)據(jù)信息的真正含義;也可以實現(xiàn)數(shù)據(jù)傳輸雙方的身份驗證,避免非法用戶偽裝成網(wǎng)絡(luò)中的合法用戶***網(wǎng)絡(luò)資源。

1.虛擬專用網(wǎng)的定義

虛擬專用網(wǎng)就是在兩個網(wǎng)絡(luò)實體之間建立的一種受保護的連接,這兩個實體可以通過點到點的鏈路直接相連,通常情況下,他們會相隔較遠的距離。

對于“受保護”一詞,可以從以下方面理解:

  • 通過使用加密技術(shù)防止數(shù)據(jù)被竊聽;
  • 通過數(shù)據(jù)完整性驗證數(shù)據(jù)被破壞、篡改;
  • 通過認證機制實現(xiàn)通信方身份確認,來防止通信數(shù)據(jù)被截獲和回放;

此外,虛擬專用網(wǎng)還定義了一下功能:

  • 何種流量需要被保護;
  • 數(shù)據(jù)被保護的機制;
  • 數(shù)據(jù)的封裝過程;

實際工作環(huán)境中的虛擬專用網(wǎng)不一定包含上述的所有功能,這要結(jié)合實際情況,而且很多企業(yè)可能采用不止一種的虛擬專用網(wǎng)解決方案。

2.虛擬專用網(wǎng)的模型與類型

(1)虛擬專用網(wǎng)的連接模式

虛擬專用網(wǎng)有兩種基本的連接模式:傳輸模式和隧道模式;

1)傳輸模式

如圖:
CIsco路由器實現(xiàn)IPSec 虛擬專用網(wǎng)原理及配置詳解
傳輸模式一個最顯著的特點就是,在整個虛擬專用網(wǎng)的傳輸過程中,IP包頭并沒有被封裝進去,這就意味著從源端到目的端數(shù)據(jù)始終使用原有的IP地址進行通信。而傳輸?shù)膶嶋H數(shù)據(jù)載荷被封裝在虛擬專用網(wǎng)報文中,對于大多數(shù)虛擬專用網(wǎng)傳輸來說,虛擬專網(wǎng)網(wǎng)的報文封裝過程就是數(shù)據(jù)的加密過程,因此,非法用戶即時截獲數(shù)據(jù)后也無法破解數(shù)據(jù)內(nèi)容,卻可清晰的知道通信雙反的地址信息。

由于傳輸模式封裝結(jié)構(gòu)相對簡單(每個數(shù)據(jù)報文比隧道模式結(jié)構(gòu)節(jié)省20字節(jié)),因此傳輸效率較高,多用于通信雙方在用一個局域網(wǎng)內(nèi)的情況。

2)隧道模式

如圖:
CIsco路由器實現(xiàn)IPSec 虛擬專用網(wǎng)原理及配置詳解
隧道模式與傳輸模式的區(qū)別顯而易見,虛擬專用網(wǎng)設(shè)備將整個三層數(shù)據(jù)報文封裝在虛擬專用網(wǎng)數(shù)據(jù)內(nèi),再為封裝后的數(shù)據(jù)報文添加新的IP包頭。由于在新IP包頭中封裝的是虛擬專用網(wǎng)設(shè)備的IP地址信息,所以當非法用戶截獲數(shù)據(jù)后,不但無法了解實際載荷數(shù)據(jù)的內(nèi)容,同時也無法知道實際通信雙方的地址信息。

由于隧道模式的虛擬專用網(wǎng)在安全性和靈活性方面有很大地優(yōu)勢,在企業(yè)環(huán)境中應(yīng)用十分廣泛,總公司與分公司跨廣域網(wǎng)的通信,移動用戶在公網(wǎng)訪問公司內(nèi)部資源等很多情況,都會應(yīng)用隧道模式的虛擬專用網(wǎng)對數(shù)據(jù)傳輸進行加密。

(2)虛擬專用網(wǎng)的類型

通信情況下,虛擬專用網(wǎng)的類型分為站點到站點虛擬專用網(wǎng)和遠程訪問虛擬專用網(wǎng)。

1)站點到站點虛擬專用網(wǎng)

站點到站點虛擬專用網(wǎng)就是通過隧道模式在虛擬專用網(wǎng)網(wǎng)關(guān)之間保護兩個或更多的站點之間的流量,站點間的流量通常是指局域網(wǎng)之間(L2L)的通信流量。L2L虛擬專用網(wǎng)多用于總公司域分公司、分公司之間在公網(wǎng)上傳輸重要業(yè)務(wù)數(shù)據(jù)。

如圖:
CIsco路由器實現(xiàn)IPSec 虛擬專用網(wǎng)原理及配置詳解
對于兩個局域網(wǎng)的終端用戶來說,在虛擬專用網(wǎng)網(wǎng)關(guān)中間的網(wǎng)絡(luò)是同名的,就好像通過一臺路由器連接兩個局域網(wǎng)。總公司的終端設(shè)備通過虛擬專用網(wǎng)訪問分公司的網(wǎng)絡(luò)資源,數(shù)據(jù)包封裝的IP地址都是公司內(nèi)網(wǎng)地址(一般是私有地址),而虛擬專用網(wǎng)網(wǎng)關(guān)對數(shù)據(jù)包進行的再次封裝過程,客戶端是全然不知的。

2)遠程訪問虛擬專用網(wǎng)

遠程訪問虛擬專用網(wǎng)通常用于單用戶設(shè)備與虛擬專用網(wǎng)網(wǎng)關(guān)之間的通信連接,單用戶設(shè)備一般為一臺PC或小型辦公網(wǎng)絡(luò)等。虛擬專用網(wǎng)連接的一端為PC,可能會讓很多人誤解遠程訪問虛擬專用網(wǎng)使用傳輸模式,但因為該種虛擬專用網(wǎng)往往也是從公網(wǎng)傳輸關(guān)鍵數(shù)據(jù),而且單一用戶更容易成為非法用戶的目標,所以遠程訪問虛擬專用網(wǎng)對于安全性的要求較高,更適用于隧道模式。

要想實現(xiàn)隧道模式的通信,就需要給遠程客戶端分配兩個IP地址,一個是它自己的NIC地址,另一個是內(nèi)網(wǎng)地址,也就是說遠程客戶端在虛擬專用網(wǎng)建立過程中同時充當虛擬專用網(wǎng)網(wǎng)關(guān)(使用NIC地址)和終端用戶(使用內(nèi)網(wǎng)地址)。

如圖:
CIsco路由器實現(xiàn)IPSec 虛擬專用網(wǎng)原理及配置詳解
當遠端的移動用戶與總公司的網(wǎng)絡(luò)實現(xiàn)遠程訪問***連接后,就好像稱為總公司局域網(wǎng)中一個普通用戶,不僅使用總公司網(wǎng)段內(nèi)的地址訪問公司資源,而且因為其使用隧道模式,真是的IP地址將被隱藏起來,實際公司通信的一段鏈路對于遠端移動用戶而言就像是透明的。

二、虛擬專用網(wǎng)技術(shù)

1.加密技術(shù)

加密就是一種將數(shù)據(jù)轉(zhuǎn)換成另一種形式的過程,如果不了解用于加密的算法,解密幾乎是可能的。

實際虛擬專用網(wǎng)設(shè)備所使用的算法是相當復(fù)雜的,一般會涉及一些較為復(fù)雜的數(shù)學(xué)算法,利用這些短發(fā)可以實現(xiàn)數(shù)據(jù)加密、數(shù)據(jù)完整性驗證、身份驗證等虛擬專用網(wǎng)的基本功能。一般來說,可以將這些加密算法分為兩大類:對稱加密和非對稱加密。

(1)對稱加密算法

對稱加密算法使用統(tǒng)一密鑰對信息提供安全的保護,對稱加密算法數(shù)據(jù)加密、解密過程如圖:
CIsco路由器實現(xiàn)IPSec 虛擬專用網(wǎng)原理及配置詳解

目前最常用的加密算法有DES、3DES、AES等。

1)DES算法

DES算法曾經(jīng)在虛擬專用網(wǎng)領(lǐng)域應(yīng)用很廣,屬于IBM公司的研發(fā)產(chǎn)品,其密鑰長度為64位,其中8位用于奇偶校驗,所以實際有效長度為56位。雖然該算法目前沒有找到更好的方法破解,但是通過一些技術(shù)手段已經(jīng)可以在較短的時間內(nèi)破解DES算法,所以在實際工程實施過程中已經(jīng)不建議使用該種算法。

2)3DES算法

理論上將3DES算法就是DES算法的增強版本,因為3DES使用了三個階段的DES,即同時使用三個不同的56位密鑰,所以相當于產(chǎn)生了一個168位的有效密鑰長度,這種級別的密鑰目前還沒有計算機有能力在較短時間內(nèi)破解,而且其執(zhí)行效率雖然在軟件環(huán)境中比較慢,但是在硬件環(huán)境中并不明顯。

3)AES算法

3DES算法雖然目前為止是安全的,但隨著計算機硬件的更新,總有一天也會變的不安全。AES算法比3DES算法更安全,它支持128、192和256為密鑰程度,有效的密鑰長度可達千位。更重要的是,AES算法那采用更為高效的編寫方法,對CPU的占有l(wèi)v較少,所以諸如IPSec 虛擬專用網(wǎng)等實際工程的實施過程中趨向于使用AES來提供更好的加密功能。

(2)非對稱加密算法

1)算法原理

非對稱算法使用公鑰和私鑰兩個不同的密鑰進行加密和解密。用一個密鑰加密的數(shù)據(jù)僅能被另一個密鑰解密,且不能從一個密鑰推算出另一個密鑰。非對稱加密算法數(shù)據(jù)加密、解密過程如圖:
CIsco路由器實現(xiàn)IPSec 虛擬專用網(wǎng)原理及配置詳解

2)算法的優(yōu)、缺點

非對稱加密算法最大的優(yōu)勢就在于其安全性。目前為止,還沒有任何一種方式可以在合理的時間范圍內(nèi)破解該算法。

非對稱加密的算法也不是完美的,由于其計算過程復(fù)雜,它的計算效率要比對稱加密算法低很多。

3)DH算法

常用的非對稱算法有RSA、DSA、DH。前兩種算法常用于驗證功能,而DH算法一般被用來實現(xiàn)IPSec中的internet密鑰交換(IKE)協(xié)議。

DH算法的原理與傳統(tǒng)意義上的非對稱加密算法有一點區(qū)別:通信雙方交換公鑰后,會用自己的密鑰和對方的密鑰通過DH算法計算出一個共享密鑰,然后雙方會使用這個共享密鑰加密傳輸數(shù)據(jù)。從算法原理上看,可以說DH算法已經(jīng)將對稱加密算法與非對稱加密算法結(jié)合到了一起。

DH算法支持可變的密鑰長度,由于公鑰和私鑰的長度不同,因此通過DH算法計算出的共享密鑰的有效長度也就不同。這些都是通過DH算法的密鑰組定義的。密鑰的有效長度越長,安全性也就越強,同時CPU的資源占用率也就越高。因此,選擇合適的DH組要從網(wǎng)絡(luò)的安全需求和設(shè)備本身的性能兩方面考慮。

(3)密鑰交換

解決密鑰交換的方法有:

  • 帶外共享:即通信雙方通過一個磁盤、一張紙或一個電話等方式實現(xiàn)密鑰的共享。這種方案最大的缺陷就是事實過程花費的時間較長,如果管理的虛擬專用網(wǎng)設(shè)備數(shù)量較多,或者公司對于密鑰的安全要求較高,需要一小時更換一次密鑰,這種方式基本就不會使用了;
  • 帶內(nèi)管理:即通過Telnet、SSH等連接方式通過網(wǎng)絡(luò)傳輸密鑰,這種方法可以提高共享密鑰的效率,但前提是必須要保證傳輸密鑰的通道絕對安全,而傳輸密鑰本身就是為了建立一條安全的通道,這似乎陷入一種死循環(huán)中;

其實解決這個問題可以通過非對稱加密算法那加密對稱加密的密鑰,再用對稱加密算法加密實際要傳輸?shù)臄?shù)據(jù)即可!

2.數(shù)據(jù)報文驗證

數(shù)據(jù)報文驗證包括兩個方面:數(shù)據(jù)庫來源驗證(身份驗證)和報文完整性驗證。

(1)HMAC功能實現(xiàn)驗證功能

在虛擬專用網(wǎng)領(lǐng)域,對數(shù)據(jù)進行來源和完整性驗證通常是借助三列算法實現(xiàn)的,HMAC(散列消息驗證碼)功能專門用來處理數(shù)據(jù)及數(shù)據(jù)包相關(guān)的驗證問題,它使用一個共享的對稱密鑰來產(chǎn)生固定的輸出結(jié)果——數(shù)字簽名。HMAC屬于單向散列算法的一個子集,散列算法是不可逆的,即散列后的數(shù)據(jù)是無法還原的。

傳統(tǒng)意義上的散列函數(shù)對于保障數(shù)據(jù)傳輸?shù)陌踩源嬖谌毕荩淳W(wǎng)上的竊聽者可以截獲傳輸?shù)臄?shù)據(jù),然后篡改數(shù)據(jù)內(nèi)容,并通過散列算法得到固定的輸出,這樣接收方就不可能知道有人篡改過數(shù)據(jù)。而HMAC功能讓密鑰稱為散列函數(shù)其中的一個變量,通過計算的到固定的輸出——數(shù)字簽名,這樣即使竊聽者截獲數(shù)據(jù),由于沒有共享密鑰,他無法在篡改數(shù)據(jù)后得到正確的數(shù)字簽名,所以HMAC可以防篡改(完整性驗證)。同樣,由于共享密鑰只有真正的通信雙方具有,所有HMAC功能也可實現(xiàn)身份驗證。

如圖:
CIsco路由器實現(xiàn)IPSec 虛擬專用網(wǎng)原理及配置詳解

HMAC算法的原理如下:
(1)雙方共享執(zhí)行Hash算法的密鑰key;
(2)路由器A的用戶數(shù)據(jù)與共享密鑰key通過Hash算法得到數(shù)字簽名;
(3)路由器A將數(shù)字簽名和用戶數(shù)據(jù)一同傳送會給路由器B;
(4)路由器B執(zhí)行相同的算法過程得到數(shù)字簽名;
(5)路由B比對數(shù)字簽名是否一致;

如果數(shù)據(jù)在傳輸過程被篡改或損壞,接收方通過Hash算法計算出來的數(shù)字簽名就會和發(fā)送方的數(shù)字簽名不同,于是便可以得知數(shù)據(jù)的內(nèi)容在傳輸過程中被篡改。同理,如果竊聽者冒充其中一個通信方,它雖然可以偽造通信方的身份信息,但絕對無法偽造身份信息和共享密鑰計算后的數(shù)字簽名。

(2)MD5和SHA

MD5(信息——摘要算法)在REC 1321中有明確規(guī)定,它創(chuàng)建了一個128位的數(shù)字簽名,是目前HMAC功能中最為廣泛的一種算法。

SHA(安全散列算法)是由NIST開發(fā)的,且已稱為美國國家標磚,一般稱為SHA-1,它可以產(chǎn)生160為的簽名(20字節(jié)的長度)。

目前,已有人證明不同的輸入數(shù)值可以通過MD5計算可以得到相同的數(shù)字簽名,說明MD5的簽名可能具有一定程度的虛假性。SHA也出現(xiàn)類似問題,并且有人宣稱數(shù)字簽名理論上是可以偽造的。因為存在這種安全隱患,現(xiàn)在已經(jīng)開發(fā)了SHA-256和SHA-512等。它們具有更長的簽名長度。對于目前的計算水平來說,可以消除上述安全隱患。

三、IPSec 虛擬專用網(wǎng)

IPSec技術(shù)實現(xiàn)虛擬專用網(wǎng)是目前較為廣泛的一種應(yīng)用。

1.IPsec連接

對等體之間建立IPSec 虛擬專用網(wǎng)的連接需要三個步驟。

1)流量觸發(fā)IPSec

一般來說,IPSec建立過程是由對等體之間發(fā)送的流量觸發(fā)的,一旦有虛擬專用網(wǎng)流量經(jīng)過虛擬專用網(wǎng)網(wǎng)關(guān),連接過程便開始建立,當然,手動配置也可以實現(xiàn)這一過程,在配置設(shè)備實現(xiàn)此步驟前,網(wǎng)絡(luò)工程師需要明確哪些流量需要被“保護”。

2)建立管理連接

IPSec使用ISAKMP/IKE階段1來構(gòu)建一個安全的管理連接,這里需要注意的是,這個管理連接只是一個準備工作,它不被用來傳輸實際的數(shù)據(jù)。在配置設(shè)備實現(xiàn)此步驟前,網(wǎng)絡(luò)工程師需要明確設(shè)備如何實現(xiàn)驗證,使用何種加密機認證算法,使用哪種DH組等問題。

3)建立數(shù)據(jù)連接

IPSec基于安全的管理連接協(xié)商建立安全的數(shù)據(jù)連接,而ISAKMP/IKE階段2就是用來完成這個任務(wù)的,數(shù)據(jù)連接用于傳輸真正的用戶數(shù)據(jù)。在配置設(shè)備實現(xiàn)此步驟前,網(wǎng)絡(luò)工程師需要明確使用何種安全協(xié)議,針對具體的安全協(xié)議應(yīng)使用加密或驗證算法,以及數(shù)據(jù)的傳輸模式(隧道模式或傳輸模式)等問題。

經(jīng)過IPSec建立的三部曲后,虛擬專用網(wǎng)流量便可以按照協(xié)商的結(jié)果被加密/解密了,但是虛擬專用網(wǎng)連接并不是一次性的,無論是管理連接還是數(shù)據(jù)庫連接都有一個生存周期與之關(guān)聯(lián),一旦到期連接便會被中止。如果需要繼續(xù)傳輸虛擬專用網(wǎng)數(shù)據(jù),連接還需要重新被構(gòu)建,這種設(shè)計主要是處于安全性的考慮。

2.ISAKMP/IKE階段1

ISAKMP描述了密鑰管理的框架,它定義了消息的格式和密鑰交換協(xié)議的機制,以及構(gòu)建連接的協(xié)商過程;而IKE(因特網(wǎng)密鑰交換)是一個混合型協(xié)議,它定義了密鑰的產(chǎn)生、共享和管理。IKE使用UDP端口500。一般來說,ISAKMP和IKE關(guān)鍵字可互換使用。

ISAKMP/IKE階段1的交換過程有兩個模式:主模式和積極模式。積極模式比主模式快、主模式比積極模式安全。

無論虛擬專用網(wǎng)的類型是站點到站點還是遠程訪問,都需要完成三個任務(wù):

  • 協(xié)商采用何種方式建立管理連接;
  • 通過DH算法共享密鑰信息;
  • 對等體彼此進行身份驗證;

在主模式中,這三個任務(wù)是通過6個數(shù)據(jù)報文來完成的:

  • 前兩個數(shù)據(jù)包用于協(xié)商對等體間的管理連接使用何種安全策略(交換ISAKMP/IKE傳輸集);
  • 中間的兩個數(shù)據(jù)包通過DH算法產(chǎn)生并交換加密算法和HMAC功能所需的密鑰;
  • 最后兩個數(shù)據(jù)包使用預(yù)共享密鑰等方式執(zhí)行對等體間的身份驗證;

需要注意的是,前四個報文為明文傳輸,從第五個數(shù)據(jù)報文開始為密文傳輸,而前四個數(shù)據(jù)包通過各種算法最終產(chǎn)生的密鑰用于第5、第6個數(shù)據(jù)包及后續(xù)數(shù)據(jù)的加密。

(1)ISAKMP/IKE階段1建立過程

1)交換ISAKMP/IKE傳輸集

ISAKMP/IKE傳輸集就是一組用來保護管理連接的安全措施,主要包括以下幾個方面:

  • 加密算法:DES、3DES和AES;
  • HMAC算法:MD5或SHA-1;
  • 設(shè)備驗證的類型:預(yù)共享密鑰;
  • DH密鑰組:Cisco支持1、2、5、7(Cisco路由器不支持密鑰組7);
  • 管理連接的生存周期;

設(shè)備可能會有不止一個傳輸集,如果設(shè)備發(fā)起連接,它會將傳輸集列表(包括所有的傳輸集)發(fā)送到遠端對等體設(shè)備并進行以此對比,直到找到匹配的結(jié)果。如果對比所有傳輸集后沒有發(fā)現(xiàn)匹配的傳輸集,管理連接將無法建立,IPSec連接失敗。

如果使用Cisco產(chǎn)品實現(xiàn)虛擬專用網(wǎng)連接,在ISAKMP/IKE傳輸集中除了生存周期,其他項必須匹配才能建立連接。乳溝對等體之間的生存周期不同,對等體會使用雙方生存周期數(shù)值較小的一個。這同樣是IPSec的規(guī)則,但有些廠商沒有遵循這一規(guī)則,因此如果遇到Cisco與其他廠商設(shè)備構(gòu)建IPSec連接時,應(yīng)注意確保ISAKMP/IKE傳輸集中所有參數(shù)的匹配。

2)通過DH算法實現(xiàn)密鑰交換

DH算法屬于非對稱加密算法,因此它將產(chǎn)生公鑰/私鑰對的組合,且彼此共享公鑰。虛擬專用網(wǎng)對等體用對方的公鑰和自己的私鑰通過一種功能運算產(chǎn)生一個安全的共享密鑰。及時有人截獲數(shù)據(jù),也會因為沒有私鑰而無法推導(dǎo)出共享密鑰。

3)實現(xiàn)設(shè)備間的身份驗證

設(shè)備身份驗證最常用的方法就是預(yù)共享密鑰,即在對等體之間通過帶外的方式共享密鑰,并存儲子啊設(shè)備的本地。設(shè)備驗證的過程可以通過加密算法或HMAC功能兩種方法實現(xiàn)。而加密算法很少用于身份驗證,多數(shù)情況都會通過HMAC功能實現(xiàn)。

(2)ISAKMP/IKE階段1相關(guān)配置命令

本篇博文以Cisco的路由器為例!

1)配置安全策略

ISAKMP/IKE策略包含以下參數(shù):策略的序列號、加密算法、散列算法、驗證方法、DH組、生存周期等。命令如下:

R1(config)#crypto isakmp policy 1
//用于建立建立ISAKMP/IKE的管理連接策略;
//每個策略對應(yīng)一個序列號,范圍從1~10000,數(shù)值越低,優(yōu)先級越高;
R1(config-isakmp)#encryption des
//用于指定管理連接建立的最后兩個報文(身份驗證)采用何種加密算法(des、3des、aes)
R1(config-isakmp)#hash sha
//指定了驗證過程采用的散列算法(sha、md5)
R1(config-isakmp)#authentication pre-share
//指定設(shè)備身份驗證的方式{pre-shara(預(yù)共享密鑰)| rsa-encr | rsa-sig}
R1(config-isakmp)#group 1
//用于指定DH密鑰組,默認使用DH1;
//組號也大,算法越安全,占用設(shè)備的資源也就越多。范圍(1、2、5、14、15、16)
R1(config-isakmp)#lifetime 86400  
//指定管理連接的生存周期,默認值為86400s(24小時)
R1#show crypto isakmp policy
//查看配置安全策略的相關(guān)配置
Global IKE policy
Protection suite of priority 1      //這里都是策略1指定的各項參數(shù)
        encryption algorithm:   DES - Data Encryption Standard (56 bit keys).
        hash algorithm:         Secure Hash Standard
        authentication method:  Pre-Shared Key
        Diffie-Hellman group:   #1 (768 bit)
        lifetime:               86400 seconds, no volume limit
Default protection suite             //這里則顯示了設(shè)備默認的配置參數(shù)
        encryption algorithm:   DES - Data Encryption Standard (56 bit keys).
        hash algorithm:         Secure Hash Standard
        authentication method:  Rivest-Shamir-Adleman Signature
        Diffie-Hellman group:   #1 (768 bit)
        lifetime:               86400 seconds, no volume limit
2)配置預(yù)共享密鑰
R1(config)#crypto isakmp key 0 123456 address 192.168.1.1
//其中0表示明文,6表示密文
//123456就是密鑰的具體內(nèi)容
//192.168.1.1就是對端與之共享密鑰的對等體設(shè)備地址
//IP地址后面如果不加子網(wǎng)掩碼的話,默認使用32位掩碼
R1#show crypto isakmp key                   //查看預(yù)共享密鑰的配置
Keyring               Hostname/Address                   Preshared Key
//明文狀態(tài)下,如果是密文狀態(tài)下,密鑰內(nèi)容將不會顯示
default               192.168.1.1                        123456

通過“show run”也只能看到明文的密鑰信息

為了增強安全性,在IOS 12.3(2)T版本中,增加了一個選項來加密密鑰,但是要求設(shè)備的IOS鏡像必須支持AES加密,命令如下:

R1(config)#key config-key password-encrypt
New key: 
Confirm key:                    //密碼不得小于8個字符
R1(config)#password encryption aes

R1#show run
!
crypto isakmp policy 1
 authentication pre-share
crypto isakmp key 6 GZF]iBbT^d_eBMHQT^HIhZ`XFJhAAB address 192.168.1.1
!   
//也只能看到密鑰加密后的效果
R1(config)#no key config-key password-encrypt 
//可以導(dǎo)致共享密鑰不可用
WARNING: All type 6 encrypted keys will become unusable
Continue with master key deletion ? [yes/no]: yes

3.ISAKMP/IKE階段2

ISAKMP/IKE階段2主要是在兩個IPSec對等體間建立數(shù)據(jù)連接,其主要完成以下任務(wù):

  • 定義對等體間需要保護何種流量;
  • 定義用來保護數(shù)據(jù)的安全協(xié)議;
  • 定義傳輸模式;
  • 定義數(shù)據(jù)連接的生存周期及密鑰刷新的方式;

其中,IPSec對等體一般是通過ACL來匹配那些需要加密傳輸?shù)奶摂M專用網(wǎng)流量。

(1)ISAKMP/IKE階段2建立過程

1)安全關(guān)聯(lián)

IPSec需要在對等體之間建立一條邏輯連接,這就要使用一個被稱為安全關(guān)聯(lián)(SA)的信令協(xié)議,這是因為IPSec需要無連接的IP協(xié)議在安全運行之前要成為面向連接的協(xié)議。SA的連接是在源點和終點之間的單向連接,如果需要雙向連接,就需要兩個SA連接,每個方向一個。

SA連接由三個要素定義:

  • 安全參數(shù)索引(SPI):用于唯一標識每條SA連接;
  • 安全協(xié)議的類型:IPSec定義了兩種安全協(xié)議,即AH(認證頭協(xié)議)和ESP(封裝安全載荷協(xié)議);
  • 目的IP地址;

ISAKMP/IKE階段2具有這種特性,即ISAKMP/IKE的數(shù)據(jù)連接實際時通過兩個單向連接建立的,而兩個連接采用的加密或認證方式都是相同的,這就使ISAKMP/IKE階段2的這個特性不易被觀察到。

2)ISAKMP/IKE階段2的傳輸集

數(shù)據(jù)連接的傳輸集定義了數(shù)據(jù)連接時如何被保護的。與管理連接的傳輸集類似,對等體設(shè)備可以保存一個或多個傳輸集,但其具體內(nèi)容不同:

  • 安全協(xié)議:AH協(xié)議、ESP協(xié)議;
  • 連接模式:隧道模式、傳輸模式;
  • 加密方式:對于ESP而言,有DES、3DES、AES-128、AES-192、AES-256或不可使用加密算法;
  • 驗證方式:MD5或SHA-1;
3)ISAKMP/IKE階段2的安全協(xié)議

IPSec的數(shù)據(jù)連接可以通過安全協(xié)議實現(xiàn)對數(shù)據(jù)連接的保護:AH協(xié)議和ESP協(xié)議,可以通過其中的一個協(xié)議來實現(xiàn)數(shù)據(jù)的加密和驗證,如使用ESP協(xié)議;也可以使用兩個協(xié)議一起來實現(xiàn)。AH使用IP協(xié)議號51,ESP使用IP協(xié)議號50。

1.AH協(xié)議

AH協(xié)議在RFC 2402中有明確的定義,它提供了以下安全功能:

  • 數(shù)據(jù)完整服務(wù);
  • 數(shù)據(jù)驗證;
  • 保護數(shù)據(jù)回放非法行為;

AH協(xié)議保護整個數(shù)據(jù)報文,但易變的字段除外,如IP包頭中的TTL和TOS字段。如圖:
CIsco路由器實現(xiàn)IPSec 虛擬專用網(wǎng)原理及配置詳解

  • 下一個頭:這個八位字段定義了IP數(shù)據(jù)報文攜帶的有效載荷類型(TCP、UDP、ICMP、OSPF等),它與封裝前IP首部中的協(xié)議字段功能一樣;
  • 有效載荷長度:這個八位字段的功能與字面意思不同,它并不定義有效載荷的長度,實際只定義了AH頭部的長度;
  • 安全參數(shù)索引(SPI):這個32位字段是由接收端設(shè)備分配的一個數(shù)字,用來唯一標識一個單向連接,可以提供超過1億中標識號碼;
  • 序列號:這個32位字段對于數(shù)據(jù)報文提供排序信息,用來防止重放***。即使數(shù)據(jù)報文重傳。該序列號也不會重復(fù),而且當序號達到2的32次方也不會回繞,而必須重新建立新的連接;
  • 完整性校驗和(ICV):這個字段提供驗證功能,它就是MD5或SHA等HMAC功能產(chǎn)生的數(shù)字簽名。AH的ICV值是完整的IP數(shù)據(jù)報文產(chǎn)生的數(shù)字簽名,也就是說,它對整個IP數(shù)據(jù)報文進行完整性驗證;

從報文結(jié)果中可以看出,AH協(xié)議只實現(xiàn)驗證功能,而并未提供任何形式的數(shù)據(jù)加密,而且正因為其對于整個IP數(shù)據(jù)報文實現(xiàn)驗證功能,所以它與NAT或PAt不能一起使用。

2.ESP協(xié)議

ESP在RFC 2406中有明確的定義,它與AH的區(qū)別如下:

  • ESP對用戶數(shù)據(jù)實現(xiàn)加密功能;
  • ESP只對IP數(shù)據(jù)的有效載荷進行驗證,不包括外部的IP包頭;

因此,如果有非法用戶對IP包頭內(nèi)容進行篡改的話,ESP是無法檢測到的。而NAT也會修改外部的IP信息,所以ESP可以和NAT共用。所以,AH無論如何也不能和NAT共用,而ESP卻可以,再配合NAT-T技術(shù),ESP甚至可以和PAT共用。

ESP默認情況下不能穿越PAT設(shè)備,因為PAT會修改傳輸層頭部的端口信息。而傳輸層的頭部在ESP的封裝中是被加密的,所以PAT無法修改端口信息。而NAT-T技術(shù)就是通過額外增加一個傳輸層頭部讓PAT可以工作。

如圖:
CIsco路由器實現(xiàn)IPSec 虛擬專用網(wǎng)原理及配置詳解

  • ESP頭部:SPI字段、序列號與AH報文結(jié)構(gòu)中對應(yīng)字段的功能類似;
  • ESP尾部:補丁用于減少有效載荷被竊聽并被猜測的可能性;
  • 補丁長度定義了補丁的字節(jié)數(shù);
  • 下一個頭與AH報文結(jié)構(gòu)中對應(yīng)字段的功能類似;
  • ICV依然提供驗證功能,但是ICV只是IP數(shù)據(jù)報文的有效載荷通過HMAC功能產(chǎn)生的數(shù)字簽名;

(2)ISAKMP/IKE階段2相關(guān)配置命令

ISAKMP/IKE階段2的配置過程由三部分組成:

1)配置Crypto ACL

定義何種流量需要保護的一中方法就是建立一個Crypto ACL,通過ACL匹配IPSec 虛擬專用網(wǎng)流量。配置命令如下:

access-list 100 permit ip  192.168.10.0 0.0.0.255 192.168.20.0 0.0.0.255
//定義一個擴展ACL,允許源地址192.168.10.0網(wǎng)段訪問192.168.20.0網(wǎng)段
//通常情況下,兩端對等體設(shè)備上的Crypto ACL互為鏡像
2)配置階段2的傳輸集

在IPSec對等體之間可以配置多個數(shù)據(jù)連接的傳輸集,必須保證兩端至少有一對匹配的傳輸集,這樣ISAKMP/IKE階段2的數(shù)據(jù)SA連接才能協(xié)商成功。設(shè)備的傳輸集由設(shè)備性能決定,如果所有對等體設(shè)備的性能相近,則共同使用一種傳輸集即可;如果設(shè)備間性能差異較為明顯,通常就需要多個傳輸集。配置命令如下:

R1(config)#crypto ipsec transform-set accp-set esp-des ah-sha-hmac
//定義傳輸集名稱(名稱必須是唯一的),后面就是一些選項
//使用esp-des加密,使用AH協(xié)議中的 ah-sha-hmac
R1(cfg-crypto-trans)#mode tunnel
//采用隧道模式
R1#show crypto ipsec transform-set 
//查看路由器上的傳輸集
Transform set accp-set: { ah-sha-hmac  } 
   will negotiate = { Tunnel,  }, 
   { esp-des  } 
   will negotiate = { Tunnel,  }, 

傳輸集選項,如圖:
CIsco路由器實現(xiàn)IPSec 虛擬專用網(wǎng)原理及配置詳解

如果在數(shù)據(jù)連接建立之后修改傳輸集的配置,并不會影響現(xiàn)有的SA設(shè)置,只有連接的生存周期到期,SA才會重新建立連接或被手動清除(通過“clear crypto sa” 或“clear crypto ipsec sa”命令)。

3)配置Crypto Map

Crypto Map的功能就是將所有信息組織在一起構(gòu)建IPSec會話。通常路由器的接口上只對應(yīng)一個Crypto Map,一條路由器可以在多個接口上實現(xiàn)流量保護,這是可能就需要多個Crypto Map了。

Crypto Map 有兩種類型:靜態(tài)的Crypto Map和動態(tài)的Crypto Map。在構(gòu)建L2L會話時通常會使用講臺的Crypto Map。配置命令如下:

R1(config)#crypto map benet-map 1 ipsec-isakmp 
//創(chuàng)建一個名稱為benet-map的Map,序列號為1
//序列號范圍1~65535,數(shù)值越小,優(yōu)先級越高
% NOTE: This new crypto map will remain disabled until a peer
        and a valid access list have been configured.
                //這是正常提示,就是說這個Map中并沒有包含配置           
R1(config-crypto-map)#match address 100
//調(diào)用ACL名稱或編號
R1(config-crypto-map)#set peer 192.168.2.1
//設(shè)置對等體設(shè)備
R1(config-crypto-map)#set transform-set accp-set
//指定傳輸集的名稱,最多可以指定6個
R1(config-crypto-map)#set pfs group1
//用于啟動這項功能并執(zhí)行使用哪個DH密鑰組,這是一條可選命令
//剛才定義的DH組是1
R1(config-crypto-map)#set security-association lifetime seconds 1800 
//指定SA的生存周期,默認情況下,Cisco設(shè)備已經(jīng)設(shè)定數(shù)據(jù)連接的生命周期為3600s或4608000KB,相當于一小時內(nèi)10MB/s速率傳輸?shù)牧髁俊?R1(config-crypto-map)#set security-association idle-time 60
//用于設(shè)定空閑超時計時器,范圍是60~86400s
//默認情況下,空閑超時計時器是關(guān)閉的

四、配置實現(xiàn)IPSec 虛擬專用網(wǎng)

(1)案例拓補

CIsco路由器實現(xiàn)IPSec 虛擬專用網(wǎng)原理及配置詳解

(2)案例需求

PC1通過虛擬專用網(wǎng)訪問PC3;
PC1訪問PC2;

(3)案例實施

1)配置PC、路由器的IP地址

PC1的配置:

PC1(config)#int f0/0
PC1(config-if)#ip add 192.168.1.100 255.255.255.0
PC1(config-if)#no sh
PC1(config-if)#ip route 0.0.0.0 0.0.0.0 192.168.1.1

PC2的配置:

PC2(config)#int f0/0
PC2(config-if)#ip add 50.0.0.100 255.255.255.0
PC2(config-if)#no sh
PC2(config-if)#ip route 0.0.0.0 0.0.0.0 50.0.0.1

PC3的配置:

PC3(config)#int f0/0
PC3(config-if)#ip add 192.168.2.100 255.255.255.0
PC3(config-if)#no sh
PC3(config-if)#ip route 0.0.0.0 0.0.0.0 192.168.2.1

R1的配置:

R1(config)#int f0/0
R1(config-if)#ip add 192.168.1.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#int f1/0
R1(config-if)#ip add 20.0.0.1 255.255.255.0
R1(config-if)#no sh 
R1(config-if)#ip route 0.0.0.0 0.0.0.0 20.0.0.2

R2的配置:

R2(config)#int f1/0
R2(config-if)#ip add 20.0.0.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#int f0/0
R2(config-if)#ip add 50.0.0.1 255.255.255.0
R2(config-if)#no sh
R2(config-if)#int f2/0
R2(config-if)#ip add 30.0.0.1 255.255.255.0
R2(config-if)#no sh
//R2只配置IP地址即可

R3的配置:

R3(config)#int f2/0
R3(config-if)#ip add 30.0.0.2 255.255.255.0
R3(config-if)#no sh
R3(config-if)#int f0/0
R3(config-if)#ip add 192.168.2.1 255.255.255.0
R3(config-if)#no sh
R3(config-if)#ip route 0.0.0.0 0.0.0.0 30.0.0.1
2)配置ISAKMP策略

R1的配置:

R1(config)#crypto isakmp policy 1
//配置ISAKMP/IKE策略,序列號為1,數(shù)值越小越優(yōu)先
R1(config-isakmp)#encryption 3des
//指定用于身份驗證采用3des加密算法
R1(config-isakmp)#hash sha
//用于驗證數(shù)據(jù)完整性(散列算法)使用sha算法
R1(config-isakmp)#authentication pre-share
//設(shè)備身份驗證的方式使用pre-sha(預(yù)共享密鑰)
R1(config-isakmp)#group 2 
//指定DH密鑰組,組號越大,越安全
R1(config-isakmp)#lifetime 10000
//管理連接的生存周期為10000s
R1(config)#crypto isakmp key 0 123456 address 30.0.0.2
//與30.0.0.2建立對等體關(guān)系,使用明文密鑰123456

R3的配置:

R3(config)#crypto isakmp policy 1
R3(config-isakmp)#encryption 3des
R3(config-isakmp)#hash sha
R3(config-isakmp)#authentication pre-share
R3(config-isakmp)#group 2
R3(config-isakmp)#lifetime 10000
R3(config)#crypto isakmp key 0 123456 address 20.0.0.1
//對等體之間的配置幾乎是一樣的
3)配置ACL

為什么要配置ACL?注意:當路由器上既存在NAT也存在虛擬專用網(wǎng)流量時,默認先進行NAT!

R1的配置:

R1(config)#access-list 100 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
//配置ACL,允許192.168.1.0網(wǎng)段訪問192.168.2.0網(wǎng)段

R3的配置:

R3(config)#access-list 100 permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255  
//配置ACL,允許192.168.2.0網(wǎng)段訪問192.168.1.0網(wǎng)段
4)配置IPSec傳輸集

R1的配置:

R1(config)#crypto ipsec transform-set R1-set esp-des ah-sha-hmac 
//建立傳輸集,名稱為R1-set,加密使用esp-des算法,解密使用ah-sha-hmac 算法
R1(cfg-crypto-trans)#mode tunnel                 //選擇隧道模式,默認就是隧道模式
R1(cfg-crypto-trans)#exit
R1(config)#crypto ipsec security-association lifetime seconds 1800
//全局模式下也可設(shè)置生存周期

R3的配置:

R3(config)#crypto ipsec transform-set R3-set esp-des ah-sha-hmac 
R3(cfg-crypto-trans)#mode tunnel
R3(cfg-crypto-trans)#exit
R3(config)##crypto ipsec security-association lifetime seconds 1800
5)配置加密映射

R1的配置:

R1(config)#crypto map R1-map 1 ipsec-isakmp
//創(chuàng)建Crypto-Map,名稱為R1-map,序列號為1,數(shù)值越小,越優(yōu)先
% NOTE: This new crypto map will remain disabled until a peer
        and a valid access list have been configured.
R1(config-crypto-map)#set peer 30.0.0.2                 //設(shè)置對等體為30.0.0.2
R1(config-crypto-map)#set transform-set R1-set      //指定傳輸集
R1(config-crypto-map)#match address 100                //調(diào)用剛才創(chuàng)建的ACL

R3的配置:

R3(config)#crypto map R3-map 1 ipsec-isakmp
% NOTE: This new crypto map will remain disabled until a peer
        and a valid access list have been configured.
R3(config-crypto-map)#set peer 20.0.0.1
R3(config-crypto-map)#set transform-set R3-set
R3(config-crypto-map)#match address 100 
6)將映射應(yīng)用到接口上

R1的配置:

R1(config)#int f1/0
R1(config-if)#crypto map R1-map
//在連接公網(wǎng)接口上調(diào)用Crypto-Map

R3的配置:

R3(config)#int f2/0
R3(config-if)#crypto map R3-map

現(xiàn)在驗證PC1是否可以訪問PC3:

PC1#ping 192.168.2.100

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.2.100, timeout is 2 seconds:
!!!!!                   //訪問成功(使用虛擬專用網(wǎng)訪問)
Success rate is 100 percent (5/5), round-trip min/avg/max = 124/136/156 ms
7)設(shè)置PAT

R1的配置:

R1(config)#access-list 110 deny ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
R1(config)#access-list 110 permit ip any any
//設(shè)置ACL,拒絕虛擬專用網(wǎng)的流量
R1(config)#ip nat inside source list 110 int f1/0 overload 
//將ACL 110列表中的流量轉(zhuǎn)換為外部接口地址
R1(config)#int f0/0
R1(config-if)#ip nat inside
R1(config-if)#int f1/0     
R1(config-if)#ip nat outside
//設(shè)置內(nèi)外接口

PC1測試訪問PC2:

PC1#ping 50.0.0.100

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 50.0.0.100, timeout is 2 seconds:
!!!!!           //訪問成功(使用路由器外部接口地址訪問)
Success rate is 100 percent (5/5), round-trip min/avg/max = 92/105/124 ms

實驗完成!

五、常用排錯的命令

R1#show crypto isakmp policy     //查看ISAKMP協(xié)商策略的配置結(jié)果
R1#show crypto isakmp sa            //查看管理連接SA的狀態(tài)
R1#show crypto ipsec transform-set        //查看IPSec傳輸集
R1#show crypto ipsec security-association lifetime    //查看數(shù)據(jù)連接建立的生存周期
R1#show crypto ipsec sa    //查看數(shù)據(jù)連接SA的細節(jié)信息
R1#show crypto map    //查看crypto  Map的信息,這個命令可以查看到crypto  map的名稱、
//ACL、對等體的IP地址、應(yīng)用Crypto  map的接口等。

別忘了,在Cisco設(shè)備上“show run”命令幾乎就是萬能的!

———————— 本文至此結(jié)束,感謝閱讀 ————————

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI