您好,登錄后才能下訂單哦!
博文大綱:
- 一、虛擬專用網相關概念
- 二、IPSec 虛擬專用網的基本概念
- 三、ISAKMP/IKE階段1及階段2的建立過程
- 四、IPSec 虛擬專用網的配置實現
- 五、總結
前言:由于“Virtual Private Network”(請看首字母,就知道是什么咯)是敏\感詞匯,所以在博文中使用它的中文名字“虛擬專用網”來代替。
虛擬專用網就是在兩個網絡實體之間建立的一種受保護的連接,這兩個實體可以通過點到點的鏈路直接相連,但通常情況下他們會相隔較遠的距離。
對于定義中提到的“受保護”一詞,可以從以下幾個方面理解:
- 通過使用加密技術防止數據被竊聽。
- 通過數據完整性驗證防止數據被破壞、篡改。
- 通過認證機制實現通信方身份確認,來防止通信數據被截獲和回放。
此外,虛擬專用網技術還定義了以下功能:- 何種流量需要被保護。
- 數據被保護的機制。
- 數據的封裝過程。
實際生產環境中的虛擬專用網解決方案不一定包含上面所有功能,還要由具體的環境需求和實現方式決定,而且很多企業可能采用不止一種的虛擬專用網解決方案。
虛擬專用網的連接模式有兩種:傳輸模式和隧道模式。
在整個虛擬專用網的傳輸過程中,IP包頭并沒有被封裝進去,這就意味著從源端的數據始終使用原有的IP地址進行通信。而傳輸的實際數據載荷被封裝在虛擬專用網報文中,對大多數虛擬專用網傳輸而言,虛擬專用網的報文封裝過程就是數據的加密過程,因此,第三者無法破解數據內容,但卻可以清晰的知道通信雙方的地址信息。
由于傳輸模式封裝結構相對簡單,因此傳輸效率較高,多用于通信雙方在同一個局域網內的情況。
隧道模式下,虛擬專用網設備將整個三層數據報文封裝在虛擬專用網數據內,再為封裝后的數據報文添加新的IP包頭。由于在新IP包頭中封裝的是虛擬專用網設備的IP地址信息,所以當第三者截獲數據后,不但無法了解實際載荷數據的內容,同時也無法知道實際通信雙方的地址信息。數據包封裝后如下:
由于隧道模式的虛擬專用網在安全性和靈活性方面具有很大的優勢,在企業環境中應用非常廣泛,如:總公司和分公司跨廣域網的通信、移動用戶在公網訪問公司內部資源等。
通常情況下,虛擬專用網的類型分為站點到站點虛擬專用網和遠程訪問虛擬專用網。
站點到站點虛擬專用網就是通過隧道模式在虛擬專用網網關之間保護兩個或更多的站點之間的流量,站點間的流量通常是指局域網之間(L2L)的通信流量。L2L虛擬專用網多用于總公司與分公司、分公司之間在公網上傳輸重要的業務數據,主要針對某個網段的流量可以使用虛擬專用網。
遠程訪問虛擬專用網通常用于單用戶設備與虛擬專用網網關之間的通信連接,單用戶設備一般為一臺PC或小型辦公網絡等。遠程訪問虛擬專用網對安全性的要求較高,更適用于隧道模式。
要想實現隧道模式的通信,就需要給遠程訪問客戶端分配兩個IP地址:一個是它自己的網卡IP地址,另一個是內網地址,也就是說,遠程客戶端在虛擬專用網建立過程中同時充當虛擬專用網網關(使用本身的IP地址)和終端用戶(使用內網地址)。
虛擬專用網技術涉及到的概念及算法太多,這里不啰嗦了。
關于虛擬專用網技術涉及到的理論方面知識如下,感興趣的話可以自行查閱相關資料:
1、加密算法
- 對稱加密算法(DES、3DES、AES等)
- 非對稱加密算法(RSA、DSA、DH等,前兩種常用于驗證功能,
DH被用來實現IPSec中的Internet密鑰交換(IKE)協議)
2、數據報文驗證- 數據報文驗證包括的兩個方面:數據來源驗證(身份驗證)和報文完整性驗證。
- 虛擬專用網技術對數據進行來源驗證通常借助散列算法HMAC實現的。
- HMAC常用的兩種算法(MD5和SHA)。
IPSec技術實現虛擬專用網是目前最為廣泛的一種應用,為了可以在工作中快速的定位問題所在,所以了解IPSec的建立過程尤為重要。
1、IPSec連接過程:
IPSec的連接過程如下:
1、流量觸發IPSec;
2、建立管理連接;
3、建立數據連接。
(1)流量觸發IPSec
簡而言之,言而簡之就是通過ACL來明確哪些流量需要被“保護”。詳細來說,就是IPSec建立過程是由對等體之間發送的流量觸發的。一旦有虛擬專用網的流量經過虛擬專用網網關,連接過程便開始建立了,當然,手動配置也可以實現這一過程。在配置設備實現此步驟前,需要明確哪些流量需要被“保護”。
(2)建立管理連接
IPSec使用ISAKMP/IKE階段1來構建一個安全的管理連接。這里需要注意的是,這個管理連接只是一個準備工作,它不被用來傳輸實際的數據。在配置設備實現此步驟前,需要明確設備如何實現驗證,使用何種加密及認證算法,使用哪種DH組等問題。
(3)建立數據連接
IPSec基于安全的管理連接協商建立安全的數據連接,而ISAKMP/IKE階段2就是來完成這個任務的,數據連接用于傳輸真正的用戶數據。在配置設備實現此步驟前,需要明確使用何種安全協議,針對具體的安全協議應使用加密或驗證算法,以及數據傳輸的模式(隧道模式或傳輸模式)等問題。
經過IPSec建立的三部曲后,虛擬專用網流量就可以按照協商的結果被加密/解密了。但是虛擬專用網并不是一次性的,無論是管理連接還是數據連接都有一個生存周期與之關聯,一旦到期連接會被中止,如果需要繼續傳輸虛擬專用網數據,連接需要重新被構建,這種設計主要是處于安全考慮。
IPSec 虛擬專用網屬于安全技術,并非所有的Cisco設備都支持該功能,需要IOS名稱中的功能集中涵蓋K8或K9,如下:
(1)階段1(是雙向的)的相關概念:
階段1的交換過程有兩個模式:主模式和積極模式。積極模式比主模式快,主模式比積極模式安全,我下面的配置是基于主模式進行的。
無論虛擬專用網的類型是站點到站點還是遠程訪問,都需要完成三個任務:
- 協商采用何種方式建立管理連接。
- 通過DH算法共享密鑰信息。
- 對等體彼此進行身份驗證。
在主模式中,這三個任務是通過六個數據報文完成的:前兩個數據包用于協商對等體間的管理連接使用何種安全策略(交換ISAKMP/IKE傳輸集);中間兩個數據包通過DH算法產生并交換加密算法和HMAC功能所需的密鑰;最后兩個數據包使用預共享密鑰等方式執行對等體間的身份驗證。需要注意的是,前四個報文是明文傳輸的,后面兩個報文才是密文傳輸,前四個數據包通過各種算法最終產生的密鑰用于第5、和第6個數據包及后續數據的加密。
(2)ISAKMP/IKE階段1建立過程:
1)交換ISAKMP/IKE傳輸集
ISAKMP/IKE傳輸集就是一組用來保護管理連接的安全策略,也有人將它稱之為IKE策略或ISAKMP策略。
ISAKMP/IKE傳輸集主要包括以下幾個方面:
2)通過DH算法實現密鑰交換
上一步只是協商管理連接的安全策略,而共享密鑰的產生與交換就要通過DH算法來實現。
3)實現設備間的身份驗證
設備身份驗證時最常用的方法就是預共享密鑰,即在對等體之間通過帶外的方式共享密鑰,并存儲在設備的本地。設備驗證的過程可以通過加密算法或HMAC功能兩種方法實現,而加密算法很少用于身份驗證,多數情況都會通過HMAC功能實現。
(1)階段2(是單向的)的相關概念:
ISAKMP/IKE階段2主要是在兩個IPSec對等體間建立數據連接,其主要完成以下任務:
- 定義對等體間需要保護何種流量(通過ACL來匹配)。
- 定義用來保護數據的安全協議。
- 定義傳輸模式。
- 定義數據連接的生存周期及密鑰刷新的方式。
(2)ISAKMP/IKE階段1建立過程:
1)安全關聯
IPSec需要在兩個對等體之間建立一條邏輯連接,這就要使用一個被稱為安全關聯的信令協議,這是因為IPSec需要無連接的IP協議在安全運行之前就要稱為面向連接的協議。SA的連接是在源點和終點之間的單向連接,如果需要雙向連接,就需要兩個SA連接,每個方向一個。
SA連接由三個要素定義:
- 安全參數索引(SPI):用于唯一標識每條SA連接。
- 安全協議的類型:IPSec定義了兩種安全協議,即AH(認證頭協議)和ESP(封裝安全載荷協議)。
- 目的IP地址。
ISAKMP/IKE階段2具有上面這種特性,也就是說ISAKMP/IKE的數據連接實際是通過兩個單向連接建立的。而兩個連接采用的加密或認證方式都是相同的,這就使ISAKMP/IKE階段2這個特征不易被發現。
2)ISAKMP/IKE階段2的傳輸集:
數據連接的傳輸集定義了數據連接是如何被保護的。與管理連接的傳輸集類似,對等體設備可以保存一個或多個傳輸集,但其內容完全不同。
數據連接的傳輸集內容如下:
上述相關加密/驗證方式自己查閱其他資料吧,說起來太多了。關于連接模式就是文章開頭說的那兩種。
3)ISAKMP/IKE階段2的安全協議
IPSec的數據連接可以通過安全協議實現對數據連接的保護:AH協議和ESP協議。可以通過其中一個協議來實現數據的加密和驗證,如使用ESP協議;也可以使用兩個協議一起來實現。AH使用IP協議號51,ESP使用IP協議號50。
AH協議提供以下安全功能:
- 數據完整性;
- 數據驗證;
- 保護數據回放功能。
AH協議保護整個數據報文,但易變的字段除外,如IP包頭中的TTL值等。
AH協議只是實現驗證功能,而并未提供任何形式的數據加密;而且正因為其對于整個IP數據報文實現驗證功能,所以它與NAT或PAT不能一起使用。
ESP在RFC 2402中有明確的定義,它與AH的區別如下:
因此,如果有第三者對IP包頭內容進行更改,ESP是無法檢測到的。而NAT也會修改外層的IP信息,所以ESP可以和NAT共用,所以,AH無論如何也不能和NAT共用,而ESP卻可以,再配置NAT-T技術,ESP甚至還可以和PAT共用(ESP默認情況下不能穿越PAT設備,因為PAT會修改傳輸層頭部的端口信息,而傳輸層的頭部在ESP的封裝中是被加密的,所以PAT無法修改端口信息。而NAT-T技術就是通過額外增加一個傳輸層頭部讓PAT可以工作)。
上面啰嗦那么一大堆,好消耗耐心,還是來個實際配置吧!
網絡環境如下:
環境分析:
1、總公司內網使用192.168.1.0/24網段地址,分公司使用192.168.2.0/24網段地址。R2路由器為公網上的路由器。R1及R3分別為總公司及分公司的網關服務器,所以一定會存在默認路由指向公網的路由器。
2、總公司的內網及分公司的內網之間要建立虛擬專用網,但如果不配置別的東西,是會影響內網訪問Internet的,一般都是既可以建立虛擬專用網,也可以訪問Internet,所以這個問題也要解決。
需求如下:
1、要求實現總公司192.168.1.0/24和分公司的192.168.2.0/24網段通過虛擬專用網實現互通,并且不要影響這兩個網段訪問公網,也就是R2路由器(訪問公網路由器,通過端口復用的PAT技術實現,不要在R2路由器上配置任何路由)。
開始配置:
1、自己配置相關的接口地址,并且開啟接口,這里不詳細寫出來了,配置接口IP地址格式如下:
路由器配置接口IP地址
R1#conf t
R1(config)#in f0/0
R1(config-if)#ip add 200.0.0.1 255.255.255.0
R1(config-if)#no sh
GNS3模擬器中PC機配置IP地址
PC1> ip 192.168.1.1 192.168.1.254 #配置IP及網關
2、配置R1路由器:
R1(config)#ip route 0.0.0.0 0.0.0.0 200.0.0.2 #配置默認路由
#'以下是配置ISAKMP策略(也就是管理連接的配置)'
R1(config)#crypto isakmp policy 1 #策略序列號為“1”,范圍是1~10000,數值越小,優先級越高
R1(config-isakmp)#encryption aes #配置加密算法
R1(config-isakmp)#hash sha #hash命令指定驗證過程中采用的散列算法
R1(config-isakmp)#authentication pre-share #聲明設備認證方式為“預先共享密鑰”
R1(config-isakmp)#group 2 #采用DH算法的強度為group2
R1(config-isakmp)#lifetime 10000 #可選,管理連接生存周期,默認為86400s(24小時)
R1(config-isakmp)#exit
R1(config)#crypto isakmp key 6 2019.com address 201.0.0.2 #配置“預先共享密鑰”
#'下面是數據連接配置'
R1(config)#access-list 101 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255 #定義虛擬專用網保護的流量
R1(config)#crypto ipsec transform-set test-set ah-sha-hmac esp-aes #數據連接協商參數,“test-set”是自定義的名稱
R1(cfg-crypto-trans)#mode tunnel #可選,配置為隧道模式,默認就是隧道模式
R1(cfg-crypto-trans)#exit
R1(config)#crypto map test-map 1 ipsec-isakmp #將數據連接相關配置設定為MAP,“test-map”是自定義的名字
% 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 201.0.0.2 #虛擬專用網對端地址
R1(config-crypto-map)#set transform-set test-set #將數據連接關聯剛才創建的傳輸集
R1(config-crypto-map)#match address 101 #匹配的ACL
R1(config-crypto-map)#int f0/0 #進入外部接口
R1(config-if)#crypto map test-map #應用在外網接口
#'下面是要解決內部主機訪問互聯網問題'
R1(config-if)#access-list 102 deny ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255 #拒絕虛擬專用網的流量
R1(config)#access-list 102 permit ip any any #放行其他任何流量
R1(config)#ip nat inside source list 102 int f0/0 overload #采用端口復用的PAT方式,解決內網訪問互聯網的問題
#'下面是進入相關接口啟用NAT功能'。
R1(config)#int f0/0
R1(config-if)#ip nat outside
R1(config-if)#in f1/0
R1(config-if)#ip nat inside
注:由于當有NAT和虛擬專用網流量時,優先匹配NAT,后匹配虛擬專用網,所以要在上面做PAT時,拒絕虛擬專用網的流量。
3、配置R3路由器:
由于R3和R1路由器的配置大同小異(甚至很多配置必須一樣,比如共享密鑰、采用的算法,否則無法建立虛擬專用網),以下就不注釋了
R3(config)#ip route 0.0.0.0 0.0.0.0 201.0.0.1
R3(config)#crypto isakmp policy 1
R3(config-isakmp)#encryption aes
R3(config-isakmp)#hash sha
R3(config-isakmp)#authentication pre-share
R3(config-isakmp)#group 2
R3(config-isakmp)#lifetime 10000
R3(config-isakmp)#exit
R3(config)#crypto isakmp key 6 2019.com address 200.0.0.1
R3(config)#access-list 101 permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255
R3(config)#crypto ipsec transform-set test-set ah-sha-hmac esp-aes
R3(cfg-crypto-trans)#mode tunnel
R3(cfg-crypto-trans)#exit
R3(config)#crypto map test-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 200.0.0.1
R3(config-crypto-map)#set transform-set test-set
R3(config-crypto-map)#match address 101
R3(config-crypto-map)#int f0/0
R3(config-if)#crypto map test-map
R3(config-if)#
*Mar 1 00:51:55.511: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON
R3(config-if)#$ 102 deny ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255
R3(config)#access-list 102 permit ip any any
R3(config)#ip nat inside source list 102 int f0/0 overload
R3(config)#int f0/0
R3(config-if)#ip nat outside
R3(config-if)#in f1/0
R3(config-if)#ip nat inside
配置至此,就可以實現PC1及PC2互通了(虛擬專用網的作用),并且兩臺PC機都可以ping通R2路由器,要知道,雖然R1和R3路由器有默認路由指向R2路由器,但是R2路由器是沒有到192.168.1.0和2.0網段的路由的,這就是PAT的作用。可以自己進行ping測試。
4、附帶一些查看配置的命令:
R1#show crypto isakmp policy #查看ISAKMP協商策略的配置結果
R1#show crypto isakmp sa #查看管理連接SA的狀態
R1#show crypto ipsec transform-set #查看IPSec傳輸集
R1#show crypto ipsec security-association lifetime #查看數據連接建立的生存周期
R1#show crypto ipsec sa #查看數據連接SA的細節信息
R1#show crypto map #查看crypto Map的信息,這個命令可以查看到crypto map的名稱、
//ACL、對等體的IP地址、應用Crypto map的接口等。
- 由于涉及的技術、算法等一系列技術太多,所以進行故障排錯可能沒那么簡單,可以使用“show run”命令,查看所有配置,對照兩臺路由器上有哪些配置是不匹配的,然后進行重新配置。
- 一定要注意當NAT和虛擬專用網流量同時存在時,會優先匹配NAT,后匹配虛擬專用網,所以要在做PAT映射時,通過擴展ACL拒絕去往分公司內網的虛擬專用網的流量,否則會直接進行PAT,然后轉發,最后會導致因為R1路由器沒有去往192.168.2.0/24的路由而丟棄數據包。
———————— 本文至此結束,感謝閱讀 ————————
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。