鄒 潔, 伍 飛
(1.石家莊職業(yè)技術(shù)學(xué)院 信息工程系,河北 石家莊 050081;2. 中國人民解放軍陸軍步兵學(xué)院石家莊校區(qū) 通信指揮教研室,河北 石家莊 050081)
VPN被定義為通過公用網(wǎng)絡(luò)(通常是因特網(wǎng))建立的一個(gè)臨時(shí)的、安全的連接,是一條通過不安全的公用網(wǎng)絡(luò)建立的安全的、專用的數(shù)據(jù)隧道,是一個(gè)“相當(dāng)專用”的網(wǎng)絡(luò)[1].IPSec VPN(基于IPSec協(xié)議進(jìn)行VPN搭建)是基于隧道(Tunnel)技術(shù)、加密模塊技術(shù)搭建的VPN,它能夠在兩個(gè)不同的地理位置間安全地傳輸數(shù)據(jù)[2].IKE(Internet Key Exchange,譯為互聯(lián)網(wǎng)密鑰交換協(xié)議)作為IPSec VPN建立過程中最為重要的協(xié)議,以協(xié)商的方式完成通信雙方的認(rèn)證和密鑰交換.該協(xié)商分為兩個(gè)階段,IKE協(xié)商第一階段可采用主模式(main mode)和積極模式(aggressive mode)兩種方式完成,IKE協(xié)商第二階段則采用快速模式(quick mode)來完成.IKE協(xié)商第一階段中的兩種模式存在配置方法、數(shù)據(jù)包交換數(shù)量等方面的區(qū)別[3].IPSec VPN的默認(rèn)配置模式為主模式,積極模式常常被忽略.要準(zhǔn)確運(yùn)用兩種模式則需要了解兩者的適用場合,為此,本文通過仿真實(shí)驗(yàn)的方法,實(shí)現(xiàn)IKE協(xié)商第一階段兩種模式的配置,并對(duì)其細(xì)節(jié)進(jìn)行對(duì)比分析,以明確兩種模式的應(yīng)用場景.
GNS3是一款具有圖形化界面并可以運(yùn)行在多種平臺(tái)(包括Windows, Linux,MacOS等)的網(wǎng)絡(luò)虛擬軟件[4],具有強(qiáng)大的網(wǎng)絡(luò)拓?fù)浜瓦壿嬆M仿真能力,可以模擬和配置各種網(wǎng)絡(luò)設(shè)備,包括普通工作站及功能強(qiáng)大的路由器.由該軟件集成的Wireshark軟件可以抓取數(shù)據(jù)包并完成數(shù)據(jù)分析.
實(shí)驗(yàn)由3臺(tái)路由器分別模擬總部(Hub)邊界路由器、分支機(jī)構(gòu)(Spoke)邊界路由器和運(yùn)營商(ISP)設(shè)備.公網(wǎng)網(wǎng)段為202.206.80.0/24與202.208.81.0/24,通過IPSec VPN配置完成私網(wǎng)192.168.1.0/24與192.168.2.0/24的通信.圖1為GNS3模擬仿真實(shí)驗(yàn)拓?fù)鋱D.
圖1 模擬仿真實(shí)驗(yàn)拓?fù)鋱D
1.3.1 第一階段
在主模式中,由于雙方邊界路由器的出口均配置固定的IP地址(address),所以可以使用IP地址來完成對(duì)等體(peer)的識(shí)別.在積極模式中,通常分支機(jī)構(gòu)的IP地址不固定,所以需要分支機(jī)構(gòu)使用域名(fqdn)主動(dòng)發(fā)起協(xié)商,來完成對(duì)等體的識(shí)別并建立連接.主動(dòng)發(fā)起協(xié)商的一方通常稱為SA(Security Association,譯為安全關(guān)聯(lián))發(fā)起者,另一方則稱為SA接受者.
(1)主模式配置
總部(Hub):
crypto isakmp key cisco address <分支機(jī)構(gòu)公網(wǎng)口地址> /按照固定IP地址(address)/
分支機(jī)構(gòu)(Spoke):
crypto isakmp key cisco address <總部公網(wǎng)口地址>
(2)積極模式配置
SA接受者(Hub):
crypto isakmp key cisco hostname <主機(jī)名> /按照從主機(jī)名(hostname)ccie來查找密鑰/
SA發(fā)起者(Spoke):
crypto isakmp peer address <總部公網(wǎng)口地址>
set aggressive-mode password cisco/分支機(jī)構(gòu)配置積極模式/
set aggressive-mode client-endpoint fqdn <主機(jī)名> /通過全域名(fqdn)主動(dòng)發(fā)起協(xié)商/
1.3.2 第二階段
在第二階段配置過程中,主模式使用靜態(tài)映射表(map)進(jìn)行配置,直接關(guān)聯(lián)對(duì)等體地址、轉(zhuǎn)換集(transform-set)和訪問控制列表(access-list);而積極模式因?yàn)閷?duì)等體地址不確定,因此只能通過動(dòng)態(tài)映射表配置實(shí)現(xiàn)轉(zhuǎn)換集的關(guān)聯(lián).由于總部為SA接受者,只能被動(dòng)等待連接建立,故由SA發(fā)起者為SA接受者反向注入路由(reverse-route),實(shí)現(xiàn)動(dòng)態(tài)映射表與靜態(tài)映射表的關(guān)聯(lián).
(1)主模式配置
總部(Hub):
crypto map mymap 1 ipsec-isakmp
set transform-set <轉(zhuǎn)換集名字>
set peer <分支機(jī)構(gòu)公網(wǎng)口地址>
match add
分支機(jī)構(gòu)(Spoke):
crypto map mymap 1 ipsec-isakmp
set transform-set <轉(zhuǎn)換集名字>
set peer <總部公網(wǎng)口地址>
match add
(2)積極模式配置
SA接受者(Hub):
crypto dynamic-map dy 1
set transform-set tfs
reverse-route/反向注入路由:由分支機(jī)構(gòu)向總部注入路由/
crypto map mymap 1 ipsec-isakmp dynamic dy /動(dòng)態(tài)映射表與靜態(tài)映射表關(guān)聯(lián)/
SA發(fā)起者(Spoke):
crypto map mymap 1 ipsec-isakmp
set transform-set <轉(zhuǎn)換集名字>
set peer <總部公網(wǎng)口地址>
match add
積極模式需要從分支機(jī)構(gòu),即從SA的發(fā)起者主動(dòng)發(fā)起數(shù)據(jù),而主模式并不需要考慮這種情況.完成協(xié)商并存在數(shù)據(jù)流動(dòng)后,積極模式中的SA接受者可以看到反向注入路由的內(nèi)容,如圖2的路由信息表截圖中,去往分支機(jī)構(gòu)私網(wǎng)192.168.2.0/24的靜態(tài)路由就是由SA的發(fā)起者反向注入的.由于主模式為默認(rèn)配置模式,故對(duì)于主模式的實(shí)驗(yàn)結(jié)果本文不討論.
圖2 積極模式下查看到的路由信息
為驗(yàn)證主模式與積極模式的數(shù)據(jù)包交互在細(xì)節(jié)方面的區(qū)別,使用Wireshark軟件進(jìn)行數(shù)據(jù)包抓取分析.圖3為Wireshark軟件抓包結(jié)果,可以看到,主模式下IKE第一階段協(xié)商中交互6個(gè)數(shù)據(jù)包.而積極模式只有3個(gè)數(shù)據(jù)包,如圖4所示.二者在結(jié)構(gòu)形式上也有所區(qū)別.
圖3 IPSec主模式下抓包內(nèi)容
圖4 IPSec積極模式下抓包內(nèi)容
在主模式中,由于對(duì)等體要分別向?qū)Ψ桨l(fā)送相同類型字段的消息,因此從結(jié)構(gòu)上看每兩條消息都是對(duì)稱的,這樣對(duì)稱結(jié)構(gòu)的消息交換共有3次,因此一共是6條,如圖3所示.通過發(fā)送第一、二條信息,雙方交換必要的協(xié)商信息,如加密算法、認(rèn)證算法、DH(Diffie-Hellman)組、認(rèn)證機(jī)制等.通過第三、四條信息,交換由DH算法得到的共享密鑰.在DH算法中,會(huì)用到雙方共同定義的預(yù)共享密鑰(Pre-Share key).當(dāng)一個(gè)設(shè)備含有多個(gè)對(duì)等體時(shí),設(shè)備之間需要使用ID信息(如域名信息)來判定對(duì)應(yīng)對(duì)等體的預(yù)共享密鑰,而這個(gè)ID信息是在第五、六條信息中才進(jìn)行交換的,因此設(shè)備在此時(shí)只能使用IP地址進(jìn)行對(duì)等體預(yù)共享密鑰的匹配.基于此,在主模式下,無法使用域名信息來進(jìn)行對(duì)等體標(biāo)識(shí)[5].
在積極模式下,兩端的設(shè)備即SA發(fā)起者和SA接受者采用以下方式進(jìn)行信息交換:首先,由SA發(fā)起者發(fā)送一條消息給SA接受者;其次,SA接受者收到第一條消息后,將自己的SA協(xié)商消息附上簽名認(rèn)證信息后發(fā)回給SA發(fā)起者;再次,第三條信息由SA發(fā)起者附上簽名認(rèn)證信息發(fā)送給SA接受者.此過程與TCP的3次握手十分相似.在積極模式下,由于信息交換的數(shù)量較少,因此協(xié)商速度較主模式更快,但其協(xié)商能力遜于主模式.
通過上述配置及協(xié)商過程的分析可知,主模式適用于站點(diǎn)對(duì)站點(diǎn)(Site-to-Site)VPN.當(dāng)IPSec VPN雙方對(duì)等體有固定IP地址時(shí),可使用主模式完成配置,例如某單位內(nèi)部站點(diǎn)之間的正常連接,也就是說客戶必須在單位內(nèi)部才能使用這種技術(shù)來連接其他站點(diǎn)[6].而積極模式適用于遠(yuǎn)程接入VPN,這種連接方式下,IPSec VPN的一端為SA發(fā)起者(沒有固定IP),另一端為SA接受者(無法指定對(duì)端IP,以及無法通過IP作為ID標(biāo)識(shí)對(duì)端Pre-Share key的情況),在配置結(jié)束后, SA發(fā)起者須主動(dòng)向SA接受者發(fā)起數(shù)據(jù),例如需要撥號(hào)上網(wǎng)的用戶或者出差在外的用戶通過外網(wǎng)連接到單位內(nèi)部網(wǎng)絡(luò)時(shí)就屬此種情況.
IKE作為IPSec VPN技術(shù)的關(guān)鍵環(huán)節(jié), 其協(xié)商模式的選擇對(duì)于能否高效、合理地建立連接有著重要的意義.本文通過GNS3模擬仿真實(shí)驗(yàn)完成了主模式和積極模式的配置,并結(jié)合Wireshark抓包軟件分析了兩種協(xié)商模式的區(qū)別,提出了兩種協(xié)商模式的應(yīng)用場景,這對(duì)于更深刻地理解IPSec VPN技術(shù)有著重要的意義.