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