業務資料在Internet中一般都是透明傳輸的,這樣就會存在很多潛在的危險,比如:密碼、銀行帳戶的資訊被竊取、篡改,使用者的身份被冒充,遭受網路惡意攻擊等。網路中部署IPSec後,可對傳輸的資料進行保護處理,降低資訊洩露的風險。IPSec(Internet Protocol Security)是IETF(Internet Engineering Task Force)制定的一組開放的網路安全協議,在IP層透過資料來源認證、資料加密、資料完整性和抗重放功能來保證通訊雙方Internet上傳輸資料的安全性。資料來源認證:接收方認證傳送方身份是否合法。資料加密:傳送方對資料進行加密,以密文的形式在Internet上傳送,接收方對接收的加密資料進行解密後處理或直接轉發。資料完整性:接收方對接收的資料進行認證,以判定報文是否被篡改。抗重放:接收方會拒絕舊的或重複的資料包,防止惡意使用者透過重複傳送捕獲到的資料包所進行的攻擊。如圖1所示,IPSec利用Internet構建VPN的方式,允許使用者以任意方式接入VPN,並且不受地理因素的限制,無論使用者在外地或海外,只需要從當地接入Internet即可。IPSec VPN不僅適用於移動辦公使用者、商業夥伴接入,而且適用於企業分支機構之間互連互通。圖1 IPSec VPN基本組網應用
通常情況下,分支與總部採用ACL方式建立IPSec隧道。當分支較為龐大時,有大量需要IPSec保護的資料流,建議分支與總部採用虛擬隧道介面方式建立IPSec隧道,對Tunnel介面下的流量進行保護,不需使用ACL定義待保護的流量特徵。注意事項不同廠商裝置的IPSec業務所需引數的預設值可能不一致,需要根據裝置實際情況調整配置,保證建立IPSec隧道的兩端裝置的配置一致。Cisco裝置支援的DPD報文格式和AR路由器預設的DPD報文格式不同,如果開啟DPD探測功能,需要將AR路由器的DPD報文格式設定為seq-hash-notify。AR路由器與其他廠商裝置對接,且兩端裝置的IPSec安全協議中都使用SHA-2演算法時,如果裝置之間能建立IPSec隧道,但裝置之間的流量不通,則可能是兩端裝置的SHA-2加密解密方式不一致導致裝置之間的流量不通。此時,建議在AR路由器上執行命令ipsec authentication sha2 compatible enable,使兩端裝置使用相同的SHA-2加密解密方式。若Tunnel介面的源地址為某介面動態獲取的IP地址,建議配置source時指定為源介面,避免當該地址變化時影響IPSec配置。組網需求如圖2所示,AR路由器RouterA為企業分支閘道器,Cisco路由器RouterB為企業總部閘道器,分支與總部透過公網建立通訊。企業希望對分支與總部之間相互訪問的流量進行安全保護。分支與總部透過公網建立通訊,可以在分支閘道器與總部閘道器之間建立一個IPSec隧道來實施安全保護。由於分支較為龐大,有大量需要IPSec保護的資料流,可基於虛擬隧道介面方式建立IPSec隧道,對Tunnel介面下的流量進行保護,不需使用ACL定義待保護的流量特徵。圖2配置企業分支閘道器AR路由器透過虛擬隧道介面與總部閘道器Cisco路由器建立IPSec隧道組網圖
配置RouterA(AR路由器)配置思路配置介面的IP地址和到對端的靜態路由,保證兩端路由可達。配置IPSec安全提議,定義IPSec的保護方法。配置IKE對等體,定義對等體間IKE協商時的屬性。配置安全框架,並引用安全提議和IKE對等體,確定對何種資料流採取何種保護方法。在Tunnel介面上應用安全框架,使介面具有IPSec的保護功能。操作步驟配置介面的IP地址和到對端的靜態路由,保證兩端公網路由可達<Huawei> system-view[Huawei] sysname RouterA[RouterA] interface gigabitethernet 1/0/0[RouterA-GigabitEthernet1/0/0] ip address 1.1.2.10 255.255.255.0[RouterA-GigabitEthernet1/0/0] quit[RouterA] interface gigabitethernet 2/0/0[RouterA-GigabitEthernet2/0/0] ip address 10.1.1.1 255.255.255.0[RouterA-GigabitEthernet2/0/0] quit[RouterA] ip route-static 0.0.0.0 0.0.0.0 1.1.2.1配置Tunnel介面,Tunnel型別為IPSec[RouterA] interface Tunnel0/0/0[RouterA-Tunnel0/0/0] ip address 10.2.1.2 255.255.255.0[RouterA-Tunnel0/0/0] tunnel-protocol ipsec[RouterA-Tunnel0/0/0] source gigabitethernet 1/0/0[RouterA-Tunnel0/0/0] destination 1.1.1.10[RouterA-Tunnel0/0/0] quit由於分支較為龐大,可以配置到對端私網地址的動態路由[RouterA] ospf 2[RouterA-ospf-2] area 0.0.0.0[RouterA-ospf-2-area-0.0.0.0] network 10.1.1.0 0.0.0.255[RouterA-ospf-2-area-0.0.0.0] network 10.2.1.0 0.0.0.255配置IKE安全提議、對等體和IPSec安全提議,定義IPSec協商的屬性# 配置IKE安全提議。[RouterA] ike proposal 5[RouterA-ike-proposal-5] encryption-algorithm aes-cbc-128 [RouterA-ike-proposal-5] authentication-algorithm sha1 [RouterA-ike-proposal-5] dh group5[RouterA-ike-proposal-5] authentication-method pre-share[RouterA-ike-proposal-5] quit# 配置IKE對等體。[RouterA] ike peer RouterA v1[RouterA-ike-peer-RouterA] ike-proposal 5[RouterA-ike-peer-RouterA] pre-shared-key cipher huawei@123[RouterA-ike-peer-RouterA] dpd type periodic [RouterA-ike-peer-RouterA] dpd msg seq-hash-notify[RouterA-ike-peer-RouterA] quit# 配置IPSec安全提議。[RouterA] ipsec proposal RouterA[RouterA-ipsec-proposal-RouterA] transform esp[RouterA-ipsec-proposal-RouterA] encapsulation-mode tunnel[RouterA-ipsec-proposal-RouterA] esp authentication-algorithm sha1[RouterA-ipsec-proposal-RouterA] esp encryption-algorithm aes-128配置安全框架,並引用IPSec安全提議和IKE對等體[RouterA] ipsec profile profile1[RouterA-ipsec-profile-profile1] ike-peer RouterA[RouterA-ipsec-profile-profile1] proposal RouterA[RouterA-ipsec-profile-profile1] quit在Tunnel介面上應用安全框架,使Tunnel介面具有IPSec的保護功能[RouterA] interface tunnel 0/0/0[RouterA-Tunnel0/0/0] ipsec profile profile1配置RouterB(Cisco路由器)配置思路配置介面的IP地址和到對端的靜態路由,保證兩端路由可達。配置IPSec安全提議,定義IPSec的保護方法。配置IKE對等體,定義對等體間IKE協商時的屬性。配置安全框架,並引用安全提議和IKE對等體,確定對何種資料流採取何種保護方法。在Tunnel介面上應用安全框架,使介面具有IPSec的保護功能。操作步驟配置介面的IP地址和到對端的靜態路由,保證兩端公網路由可達RouterB#configureRouterB(config)#interface gigabitethernet 0/1RouterB(config-if)#ip address 1.1.1.10 255.255.255.0RouterB(config-if)#exitRouterB(config)#interface gigabitethernet 0/2RouterB(config-if)#ip address 10.3.1.1 255.255.255.0RouterB(config-if)#exitRouterB(config)#ip route 0.0.0.0 0.0.0.0 1.1.1.1配置Tunnel介面,Tunnel型別為IPSecRouterB(config)#interface tunnel 0RouterB(config-if)#ip address 10.2.1.1 255.255.255.0RouterB(config-if)#tunnel mode ipsec ipv4RouterB(config-if)#tunnel source gigabitethernet0/1RouterB(config-if)#tunnel destination 1.1.2.10RouterB(config-if)#exit由於分支較為龐大,可以配置到對端私網地址的動態路由RouterB(config)#RouterB ospf 2RouterB(config-RouterB)#network 10.2.1.0 0.0.0.255 area 0RouterB(config-RouterB)#network 10.3.1.0 0.0.0.255 area 0RouterB(config-RouterB)#exit配置IKE安全提議、對等體和IPSec安全提議,定義IPSec協商的屬性# 配置IKE安全提議。RouterB(config)#crypto isakmp policy 10 RouterB(config-isakmp)#hash shaRouterB(config-isakmp)#encryption aes 128RouterB(config-isakmp)#group 5RouterB(config-isakmp)#authentication pre-shareRouterB(config-isakmp)#exit# 配置IPSec第一階段協商其它相關引數。RouterB(config)#crypto isakmp key huawei@123 address 0.0.0.0 no-xauthRouterB(config)#crypto isakmp keepalive 10 periodic# 配置IPSec安全提議。RouterB(config)#crypto ipsec transform-set tran1 esp-sha-hmac esp-aes 128RouterB(cfg-crypto-trans)#mode tunnelRouterB(cfg-crypto-trans)#exit配置安全框架,並引用IPSec安全提議RouterB(config)#crypto ipsec profile profile1RouterB(ipsec-profile)#set transform-set tran1RouterB(ipsec-profile)#exit在Tunnel介面上應用安全框架,使Tunnel介面具有IPSec的保護功能RouterB(config)#interface tunnel 0RouterB(config-if)#tunnel protection ipsec profile profile1RouterB(config-if)#exit結果驗證在RouterA與RouterB上分別執行命令display ike sa和show crypto isakmp sa,可以看到第一階段和第二階段SA都已建立成功,以RouterA為例。[RouterA] display ike sa Conn-ID Peer VPN Flag(s) Phase --------------------------------------------------------- 8 1.1.1.10 0 RD|ST 2 6 1.1.1.10 0 RD|ST 1 Flag Description: RD--READY ST--STAYALIVE RL--REPLACED FD--FADING TO--TIMEOUT HRT--HEARTBEAT LKG--LAST KNOWN GOOD SEQ NO. BCK--BACKED UP可以看出,RouterA與RouterB成功建立IPSec隧道,他們之間的通訊會被IPSec加密保護。在分支主機上執行Ping操作可以ping通總部主機,執行命令display ipsec statistics esp檢視IPSec處理報文的統計資訊,“Inpacket decap count”和“Outpacket encap count”欄位的計數值不為0,表明分支和總部之間的資料傳輸被加密。