華 拓,臧紅波,周文卓
(無(wú)錫職業(yè)技術(shù)學(xué)院 江蘇 無(wú)錫 214121)
互聯(lián)網(wǎng)安全協(xié)議(internet protocol security,IPSec)是IETF 在1998 年11 月制定的,主要針對(duì)的是如何保證IP站點(diǎn)間的安全性。 該協(xié)議運(yùn)行在網(wǎng)絡(luò)層,能保障IP 數(shù)據(jù)包的高質(zhì)量性、保密性和可操作性[1]。
由于IPSec VPN 是網(wǎng)絡(luò)層的虛擬專用網(wǎng)絡(luò)(virtual private network,VPN)技術(shù)[2],是隨著IPv6 制定而產(chǎn)生的,鑒于IPv4 的應(yīng)用仍然很廣泛,所以在IPSec 制定中也增加了對(duì)IPv4 的支持,它獨(dú)立于應(yīng)用程序;通過(guò)使用現(xiàn)代密碼學(xué)方法支持保密和認(rèn)證服務(wù),使用戶能有選擇地使用。IPSec VPN 應(yīng)用場(chǎng)景有很多種,本文主要研究其中一種,即站點(diǎn)到站點(diǎn)的應(yīng)用場(chǎng)景。
下面以圖1 所示拓?fù)浣Y(jié)構(gòu)為例,說(shuō)明Site to Site IPSec VPN 封裝與解封的過(guò)程。
圖1 Site to Site IPSec VPN 封裝與解封拓?fù)?/p>
假設(shè)PC1 對(duì)PC2 發(fā)出訪問(wèn)請(qǐng)求,發(fā)出原始數(shù)據(jù)包,當(dāng)該數(shù)據(jù)包通過(guò)Fa0/0 進(jìn)入Router1 后,Router1 開始進(jìn)行路由處理,但內(nèi)網(wǎng)IP 無(wú)路由。 Router1 根據(jù)訪問(wèn)控制列表(access control lists,ACL)技術(shù)識(shí)別VPN 數(shù)據(jù),若是感興趣流,則交給IPSec 驅(qū)動(dòng)程序進(jìn)行封裝,IPSec 驅(qū)動(dòng)程序根據(jù)安全聯(lián)盟(Security Association,SA)中定義的安全協(xié)議、加密算法、驗(yàn)證算法對(duì)數(shù)據(jù)進(jìn)行封裝,之后建立VPN 隧道,建立成功后進(jìn)行數(shù)據(jù)傳輸,Router1 根據(jù)新IP 數(shù)據(jù)包目的地址進(jìn)行路由轉(zhuǎn)發(fā)。 R2 通過(guò)S0/0/0 收到隧道傳來(lái)的數(shù)據(jù)包后,發(fā)現(xiàn)數(shù)據(jù)包目的地址與接口地址相同,則接收并去除IP 頭,根據(jù)IP 包頭信息交與相應(yīng)IPSec 驅(qū)動(dòng)程序處理。 驅(qū)動(dòng)程序根據(jù)SA 中定義的參數(shù)對(duì)數(shù)據(jù)包進(jìn)行解密、驗(yàn)證。
本次任務(wù)使用的環(huán)境為windows 7 旗艦版SP1 操作系統(tǒng)、Packet Tracer 軟件版本為6.2.0.0052,交換機(jī)IOS 采用12.2(25) FX 版本,路由器IOS 采用15.1(4) M4版本[3]。
環(huán)境網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示,左側(cè)網(wǎng)絡(luò)包括一臺(tái)路由器、一臺(tái)交換機(jī)和兩個(gè)終端用戶,用于模擬內(nèi)部網(wǎng)絡(luò)1;右側(cè)網(wǎng)絡(luò)包含一臺(tái)路由器、一臺(tái)交換機(jī)和兩個(gè)終端用戶,用于模擬內(nèi)部網(wǎng)絡(luò)2;中間一臺(tái)路由器用于模擬網(wǎng)絡(luò)業(yè)務(wù)提供商(internet service provider,ISP)。
圖2 Site to Site IPSec VPN 配置拓?fù)?/p>
(1) 配置ACL、 網(wǎng)絡(luò)地址轉(zhuǎn)換(network address translation,NAT),切斷內(nèi)網(wǎng)用戶之間的直接通信;
(2)Router0、Router1 配置上Site to Site IPSec VPN,恢復(fù)內(nèi)網(wǎng)用戶之間的通信。
根據(jù)圖2 搭建網(wǎng)絡(luò)拓?fù)?,并按照?qǐng)D上標(biāo)明的IP 地址配置好所有網(wǎng)絡(luò)設(shè)備的地址,然后設(shè)置路由,搭建完畢后再測(cè)試下全網(wǎng)的連通性。
配置IPSec VPN,在Router0、Router1 上設(shè)置互聯(lián)網(wǎng)密鑰交換協(xié)議(internet key exchange,IKE)參數(shù),策略優(yōu)先級(jí)為1。 要求:雙方策略一致,預(yù)共享驗(yàn)證、用數(shù)據(jù)加密標(biāo)準(zhǔn)(data encryption standard,DES)加密、MD5 驗(yàn)證,預(yù)驗(yàn)證密鑰設(shè)置為wxit。 Router0 主要配置命令(部分命令為簡(jiǎn)寫)[4]如例1 所示:
例1 IKE 參數(shù)配置
運(yùn)行show crypto isakmp policy 命令后會(huì)顯示上述配置。 該配置要保證在兩端設(shè)備上保持一致。
在Router0、Router1 上開啟IPSec 隧道模式和感興趣數(shù)據(jù)。 配置如下:隧道名為wxitvpn,安全有效載荷(encapsulated security payload,ESP) 封裝,MD5 驗(yàn)證。Router0 主要配置命令[5](部分命令為簡(jiǎn)寫)如例2 所示。
例2 配置IPSec 隧道模式和感興趣數(shù)據(jù)在Router0、Router1 兩個(gè)設(shè)備上配置VPN 映射,并把VPN 映射設(shè)置在Router0、Router1 兩個(gè)設(shè)備的外網(wǎng)接口上。 Router0 主要配置命令(部分命令為簡(jiǎn)寫)如例3所示。
例3 設(shè)置VPN 映射并應(yīng)用
配置結(jié)束后,利用PING 命令測(cè)試PC0 和PC3 是否相通,結(jié)果顯示ping 不通,分析原因可能是網(wǎng)絡(luò)地址轉(zhuǎn)換(network address translation,NAT)和IPsec 產(chǎn)生了沖突。因?yàn)閿?shù)據(jù)包在傳輸?shù)倪^(guò)程中會(huì)先進(jìn)行網(wǎng)絡(luò)地址轉(zhuǎn)換,然后再添加IPSec 協(xié)議進(jìn)行封裝,所以想要成功地進(jìn)行IPSec通信必須先讓IPSec 封裝的數(shù)據(jù)流不進(jìn)行網(wǎng)絡(luò)地址轉(zhuǎn)換??梢岳肗AT 訪問(wèn)控制列表的命令對(duì)IPsec 數(shù)據(jù)流進(jìn)行“拒絕”設(shè)置,從而解決NAT 與IPSec 的沖突,實(shí)現(xiàn)的具體代碼如下;
access-list 101 deny ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
access-list 101 permit ip 192.168.1.0 0.0.0.255 any
配置結(jié)束測(cè)試PC0 和PC3 連通性、追蹤PC0 到PC3的路由,觀察顯示信息并記錄,并觀察VPN 隧道里是否有追蹤的數(shù)據(jù)通過(guò)。 圖3 顯示了追蹤PC0 到PC3 的路由的結(jié)果,運(yùn)營(yíng)商網(wǎng)絡(luò)的細(xì)節(jié)在結(jié)果中并未出現(xiàn),這證明了數(shù)據(jù)直接到達(dá)了目的地址并未經(jīng)過(guò)VPN 隧道。
圖3 Site to Site IPSec VPN Tracert 測(cè)試
圖4顯示了配置完成后路由器Router0 的show crypto isakmp sa 結(jié)果。 結(jié)果顯示state 狀態(tài)欄下顯示的是QM_IDLEVPN。 這表示VPN 連接已經(jīng)建立。
圖4 show crypto isakmp sa 命令測(cè)試
在Router0、Router1 上使用show crypto map 命令對(duì)VPN 的建立情況進(jìn)行查看。 圖5 顯示了配置完成后路由器Router0 的show crypto isakmp sa 命令的結(jié)果。 運(yùn)行Crypto map 命令后顯示如下: 對(duì)端(Peer) 地址為210.28.144.2,access-list 110 允許數(shù)據(jù)通過(guò)的網(wǎng)段為192.168.1.0 和192.168.2.0,交換集為wxitvpn,應(yīng)用的接口為Serial0/3/0。
圖5 show crypto map 命令測(cè)試
進(jìn)入仿真模式,測(cè)試PC0 與PC3 連通性,單步運(yùn)行,直到在“Simulation Panel”面板中的“Last Device”項(xiàng)為“Switch0”,“At Device”項(xiàng)為“Router0”的數(shù)據(jù)包。 查看該數(shù)據(jù)包的“Inbound PDU Details” 和“Outbound PDU Details”參數(shù),顯示結(jié)果如圖6 所示。
圖6 查看PDU Details
觀察可知,進(jìn)入Router0 的數(shù)據(jù)包協(xié)議號(hào)為0x1,出Router0 的數(shù)據(jù)包協(xié)議號(hào)為0x32。 十六進(jìn)制0x32 換算成十進(jìn)制為50,協(xié)議號(hào)50 代表的就是ESP 封裝。
觀察圖6(a),可知封裝前的數(shù)據(jù)包源IP 地址為192.168.1.1,目的IP 地址為192.168.2.2。 觀察圖6(b),封裝后在原IP 頭之前增加了新的IP 頭和ESP 頭,在新的IP 頭中源IP 地址為58.1.1.1,目的IP 地址為210.28.144.2,IPSec 封裝已經(jīng)完成。 ESP 頭中的信息顯示:ESP 的安全參數(shù)索引為427645417,ESP 序號(hào)為10,ESP 加密方法為DES,ESP 認(rèn)證方法為MD5。
解封過(guò)程與封裝過(guò)程相同,繼續(xù)跟蹤仿真模式下的數(shù)據(jù)包即可[6]。
綜上所述,當(dāng)下越來(lái)越多的企業(yè)在異地建立分支機(jī)構(gòu),各個(gè)分支機(jī)構(gòu)可以使用各地網(wǎng)關(guān)相互建立VPN 隧道,企業(yè)內(nèi)網(wǎng)之間的數(shù)據(jù)通過(guò)這些網(wǎng)關(guān)建立的IPSec VPN 隧道就可以實(shí)現(xiàn)安全互聯(lián)。 這樣既解決了統(tǒng)一管理資源的問(wèn)題,又使得企業(yè)資源的安全性很大程度上得到了保障。