李春平 張淑榮 王 東 韋立梅 肖亞光
(廣東白云學(xué)院,廣東 廣州 510000)
疫情期間,網(wǎng)上辦公、居家辦公成為常態(tài)。如何在現(xiàn)有基礎(chǔ)設(shè)施上解決用戶個人與公司、分支機(jī)構(gòu)與總部之間的通信,同時保證安全性和可靠性,是企業(yè)網(wǎng)絡(luò)工程師們需要解決的問題。一方面,用戶需要通過遠(yuǎn)程方式隨時隨地訪問公司網(wǎng)絡(luò),同時需要保證通信安全。另一方面,公司總部也需要和分支機(jī)構(gòu)通信,而總部和分支機(jī)構(gòu)可能相距遙遠(yuǎn),不在同一個地理位置。目前比較經(jīng)濟(jì)的接入方式是通過互聯(lián)網(wǎng)。由于互聯(lián)網(wǎng)是公共開放的平臺,如果沒有相應(yīng)的安全保護(hù)機(jī)制,將導(dǎo)致數(shù)據(jù)被竊取、篡改或冒充等安全問題[1]。VPN是解決此類問題最常用的方案。在VPN的實施中,遠(yuǎn)程訪問部署方式用來解決單個用戶訪問公司網(wǎng)絡(luò)的問題,而站點(diǎn)間的VPN通常用來解決總部和分支機(jī)構(gòu)之間的安全通信問題。
VPN實施通常有兩種方式,一種是遠(yuǎn)程訪問連接方式,一種是總部與分支機(jī)構(gòu)之間的連接。遠(yuǎn)程訪問方式既可以采用安裝VPN客戶端的方式,也可以采用無客戶端的SSL方式進(jìn)行。總部與分支機(jī)構(gòu)之間的安全通信,可以采用基于IPsec的站點(diǎn)間VPN實現(xiàn)[2]。VPN實施方式示意圖如圖1所示。
圖1 VPN示意圖
IPsec可以在互聯(lián)網(wǎng)中提供端到端的數(shù)據(jù)報通信安全,通過加密和認(rèn)證方式保護(hù)IP數(shù)據(jù)報及其封裝的數(shù)據(jù)。IPsec是一個框架協(xié)議,包括AH、ESP、SA、IKE等協(xié)議[3]。
IPsec可以采用直接傳輸和隧道封裝兩種模式工作,在通過互聯(lián)網(wǎng)承載的站點(diǎn)間VPN中通常采用隧道模式。隧道模式是將原始IP數(shù)據(jù)報作為有效載荷封裝在IPsec報頭里,封裝格式如圖2所示。
圖2 IPsec隧道模式封裝格式
當(dāng)組織架構(gòu)位于不同地理位置,例如總部和分支機(jī)構(gòu)之間的網(wǎng)絡(luò)連接和保密通信時,可以在公司總部和分支機(jī)構(gòu)之間采用站點(diǎn)間的VPN部署方式。站點(diǎn)間IPsec采用隧道模式,通過公共開放的互聯(lián)網(wǎng)傳輸數(shù)據(jù),利用現(xiàn)有資源節(jié)約成本,同時通過IPsec加密和認(rèn)證實現(xiàn)站點(diǎn)間的安全通信。采用Packet Tracer進(jìn)行仿真,拓?fù)淙鐖D3所示[4]。
圖3 VPN Tunnel拓?fù)鋱D
拓?fù)鋱D中的IP地址規(guī)劃如表1所示。
按照表1中的地址規(guī)劃,分別在R1-LEE、R2-LEE、R3-LEE路由器設(shè)備上配置好接口IP地址,并配置好路由,保證網(wǎng)絡(luò)連通。在實施路由時,可以采用動態(tài)路由的方式進(jìn)行部署,采用動態(tài)路由的好處是可以自動適應(yīng)網(wǎng)絡(luò)拓?fù)涞淖兓?,自動更新和維護(hù)路由,缺點(diǎn)是占用路由器資源,另外在進(jìn)行路由更新時容易產(chǎn)生安全性問題。靜態(tài)路由占用資源較少,安全性也較高。因此這里路由均采用靜態(tài)路由,方便檢驗測試。
表1 IP地址規(guī)劃
為了有效節(jié)約IP地址資源,在串行鏈路1和串行鏈路2中,均采用30位的地址掩碼。由于是點(diǎn)對點(diǎn)鏈路,因此鏈路中端點(diǎn)只需要2個IP地址即可,30位掩碼剛好滿足。
(1)路由配置
R1-LEE上的靜態(tài)路由配置:
R1-LEE(config)#ip route 0.0.0.0 0.0.0.0 172.22.69.2
R2-LEE上的靜態(tài)路由配置:
R2-LEE(config)#ip route 0.0.0.0 0.0.0.0 172.22.70.2
為了實現(xiàn)VPN,檢驗網(wǎng)絡(luò)通信是否由VPN工作實現(xiàn)的安全保密通信,在本實例中,R3-LEE路由器并不知道外部網(wǎng)絡(luò)情況,因此不必在上面部署路由。這樣,R1-LEE和R2-LEE路由器上連接的內(nèi)部網(wǎng)絡(luò)對R3-LEE路由器來說不可見,PC1到PC2的通信在VPN隧道內(nèi)進(jìn)行。
(2)許可證檢查
在使用模擬器進(jìn)行仿真時,需要注意路由器設(shè)備系統(tǒng)是否安裝有支持DES、3DES、AES等加密解密的模塊,這些模塊需要許可證支持。在R1-LEE、R2-LEE上分別檢查是否安裝有securityk9許可證,可通過show version命令檢查安全技術(shù)包許可證信息。如果沒有,則需要通過下列命令進(jìn)行安裝。
R1-LEE(config)# license boot module c1900 technologypackage securityk9
R2-LEE(config)# license boot module c1900 technologypackage securityk9
安裝完畢后需要保存并重啟。
(3)定義需要關(guān)注的流量
為了防止不必要的流量通過VPN,減少帶寬占用以及非授權(quán)訪問,需要定義需要關(guān)注的流量,即允許授權(quán)的流量通過VPN隧道。通過在全局模式下配置訪問控制列表來定義需要關(guān)注的流量,這里需要關(guān)注的流量指來自內(nèi)部網(wǎng)絡(luò)192.168.69.0和192.168.70.0的流量。使用擴(kuò)展的訪問控制列表,編號采用111。
R2- LEE(config)# access- list 111 permit ip 192.168.70.0 0.0.0.255 192.168.69.0 0.0.0.255
注意R2-LEE上的流量方向和R1-LEE上的流量方向正好相反。
IPsec工作過程可分為兩個階段:第一階段主要是IKE的ISAKMP協(xié)商[5],主要包括加密策略定義、密鑰算法、認(rèn)證方式、密鑰分配等策略;第二階段是IKE的IPsec策略。
(1)R1-LEE的配置
在R1-LEE上配置IKE第1階段ISAKMP策略。參照表2的配置參數(shù),加密ISAKMP配置為策略10,加密算法采用增強(qiáng)的AES算法,密鑰長度為256,可增強(qiáng)安全性,身份驗證采用預(yù)共享密鑰,密鑰設(shè)置為sitevpn99,采用DH密鑰分配方法[6],DH組設(shè)置為5。
表2 IPsec第1階段策略參數(shù)
R1-LEE(config)# crypto isakmp policy 10 //定義isakmp策略
①采用拜安康血糖儀型血糖儀,分別于餐前、餐后2 h采指血測患者血糖并記錄;采用乳膠免疫凝集法測定HbA1c;②心理狀態(tài)采用漢密頓焦慮量表(HAMA)、漢密頓抑郁量表(HAMD)評定患者心理狀態(tài),得分越低說明心理狀態(tài)越好,反之得分越高,說明心理狀態(tài)差。③觀察并記錄兩組并發(fā)癥發(fā)生率。
R1-LEE(config-isakmp)# encryption aes 256 //定義加密算法
R1-LEE(config-isakmp)# authentication pre-share //定義預(yù)共享密鑰身份驗證方式
R1-LEE(config-isakmp)# group 5 //DH組號設(shè)置為5
R1-LEE(config-isakmp)# exit
R1- LEE(config)# crypto isakmp key sitevpn99 address 172.22.70.1 //設(shè)置密鑰及對等體IP地址
(2)R2-LEE的配置
R1-LEE上配置好ISAKMP屬性后,需要在VPN對等體上進(jìn)行鏡像,即在R2-LEE上配置同樣的ISAKMP策略參數(shù)。R2-LEE上配置IKE第1階段ISAKMP參數(shù)如下,注意對等體IP地址需要設(shè)置為對方的IP地址。
R2-LEE(config)# crypto isakmp policy 10 //定義isakmp策略
R2-LEE(config-isakmp)# encryption aes 256 //定義加密算法
R2-LEE(config-isakmp)# authentication pre-share //定義預(yù)共享密鑰身份驗證方式
R2-LEE(config-isakmp)# group 5 //DH組號設(shè)置為5
R2-LEE(config-isakmp)# exit
R2- LEE(config)# crypto isakmp key sitevpn99 address 172.22.69.1 //設(shè)置密鑰及對等體IP地址
IKE第二階段的IPsec策略主要包括定義轉(zhuǎn)換集、數(shù)據(jù)加密、完整性驗證、對等體設(shè)置、加密映射等。
(1)R1-LEE的配置
根據(jù)表3,配置IPsec第2階段的策略參數(shù)。在R1-LEE上配置IKE第2階段IPsec策略,創(chuàng)建轉(zhuǎn)換集SITE-VPNSET,采用esp-aes 256加密數(shù)據(jù),使用esp-sha-hmac[7]進(jìn)行完整性檢查。
表3 IPsec第2階段的策略參數(shù)
R1-LEE(config)# crypto ipsec transform-set SITE-VPNSET esp-aes 256 esp-sha-hmac
創(chuàng)建加密映射SITE-VPN-MAP,序號為10,定義為ipsecisakmp映射,將第2階段所有策略參數(shù)綁定在一起。
R1-LEE(config)# crypto map SITE-VPN-MAP 10 ipsecisakmp //定義加密映射集
R1-LEE(config-crypto-map)# set peer 172.22.70.1 //配置對等體IP地址
R1- LEE(config- crypto- map)# set transform- set SITEVPN-SET //配置轉(zhuǎn)換集
R1-LEE(config-crypto-map)# match address 111 //綁定ACL定義的流量
R1-LEE(config-crypto-map)# exit
在傳出接口上配置加密映射。將SITE-VPN-MAP加密映射綁定到傳出串行接口s0/0/0。
R1-LEE(config)# interface s0/0/0
R1-LEE(config-if)# crypto map SITE-VPN-MAP //綁定加密映射
(2)R2-LEE的配置
和第一階段一樣,同樣需要設(shè)置好VPN鏡像。R2-LEE的配置可參照R1-LEE進(jìn)行,在R2-LEE上配置IKE第2階段IPsec策略如下:
R2-LEE(config)# crypto ipsec transform-set SITE-VPNSET esp-aes 256 esp-sha-hmac //創(chuàng)建轉(zhuǎn)換集SITE-VPN-SET
R2-LEE(config)# crypto map SITE-VPN-MAP 10 ipsecisakmp //定義加密映射集
R2-LEE(config-crypto-map)# set peer 172.22.69.1 //配置對等體IP地址
R2- LEE(config- crypto- map)# set transform- set SITEVPN-SET //配置轉(zhuǎn)換集
R2-LEE(config-crypto-map)# match address 111 //綁定ACL定義的流量
R2-LEE(config-crypto-map)# exit
在傳出接口上配置加密映射。將SITE-VPN-MAP加密映射綁定到傳出串行接口s0/0/1。
R2-LEE(config)# interface s0/0/1
R2-LEE(config-if)# crypto map SITE-VPN-MAP //綁定加密映射
VPN是否正常工作,可通過對無關(guān)注流量時的隧道情況和有關(guān)注流量時的隧道情況進(jìn)行檢驗。在沒有流量通過VPN隧道時,VPN中封裝、解封、加密、解密的數(shù)據(jù)流量應(yīng)為空。而在有關(guān)注流量通過VPN隧道時,可以通過VPN中封裝、解封、加密、解密的數(shù)據(jù)流量和實際發(fā)送的數(shù)據(jù)包是否匹配,來檢驗VPN的工作狀態(tài)是否正常。
(1)無關(guān)注流量時隧道情況
檢驗需要關(guān)注的流量之前的隧道。在R1-LEE上發(fā)出show crypto ipsec sa命令以檢查IPsec工作狀況。
R1-LEE#show crypto ipsec sa
interface: Serial0/0/0
Crypto map tag: SITE-VPN-MAP, local addr 172.22.69.1
protected vrf: (none)
local ident (addr/mask/prot/port): (192.168.69.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (192.168.70.0/255.255.255.0/0/0)
current_peer 172.22.70.1 port 500
PERMIT, flags={origin_is_acl,}
local crypto endpt.: 172.22.69.1, remote crypto endpt.:172.22.70.1
path mtu 1500, ip mtu 1500, ip mtu idb Serial0/0/0
current outbound spi: 0x0(0)
從以上顯示結(jié)果可以看出,在沒有發(fā)出IPsec VPN關(guān)注的流量之前,所有封裝、加密、解封和解密的數(shù)據(jù)包數(shù)量均為0。
(2)有關(guān)注流量時隧道情況
可以通過從PC1對PC2執(zhí)行ping操作創(chuàng)建需要關(guān)注的流量。執(zhí)行ping操作后,流量將通過隧道進(jìn)行安全傳輸。檢驗需要關(guān)注的流量之后的隧道。在R1-LEE上,再次發(fā)出show crypto ipsec sa命令,檢驗隧道工作狀況。
R1-LEE#show crypto ipsec sa
interface: Serial0/0/0
Crypto map tag: SITE-VPN-MAP, local addr 172.22.69.1
protected vrf: (none)
local ident (addr/mask/prot/port): (192.168.69.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (192.168.70.0/255.255.255.0/0/0)
current_peer 172.22.70.1 port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 7, #pkts encrypt: 7, #pkts digest: 0
#pkts decaps: 6, #pkts decrypt: 6, #pkts verify: 0
local crypto endpt.: 172.22.69.1, remote crypto endpt.:172.22.70.1
current outbound spi: 0x1ECE37AE(516831150)
inbound esp sas:
spi: 0x9E85E261(2659574369)
conn id: 2000, flow_id: FPGA:1, crypto map: SITE-VPNMAP
sa timing: remaining key lifetime (k/sec): (4525504/3565)
IV size: 16 bytes
replay detection support: N
Status: ACTIVE
outbound esp sas:
conn id: 2001, flow_id: FPGA:1, crypto map: SITE-VPNMAP
sa timing: remaining key lifetime (k/sec): (4525504/3565)
IV size: 16 bytes
replay detection support: N
Status: ACTIVE
從以上顯示結(jié)果可以看出,隧道狀態(tài)已變?yōu)榧せ顮顟B(tài),封裝、加密、解封和解密的數(shù)據(jù)包與實際情況是一致的,表明隧道正在工作。通過數(shù)據(jù)包分析工具[8]進(jìn)一步研究,不難發(fā)現(xiàn),數(shù)據(jù)包有效載荷部分已經(jīng)被加密,在沒有獲得解密密鑰的情況下,無法讀出密文所對應(yīng)的明文,從而保證了數(shù)據(jù)通信的保密性。由此可見,采用基于IPsec的站點(diǎn)間的VPN部署是正確的,工作狀態(tài)正常。
采用基于IPsec的框架協(xié)議,實現(xiàn)站點(diǎn)間的VPN通信。在部署模型中,將復(fù)雜的物理網(wǎng)絡(luò)抽象為簡單直觀的邏輯拓?fù)洌鶕?jù)IP地址規(guī)劃和定義好的IKE策略屬性,對網(wǎng)絡(luò)中的VPN設(shè)備進(jìn)行部署。將通信實體雙方身份驗證、密鑰參數(shù)、數(shù)據(jù)內(nèi)容加密、完整性檢查等屬性封裝在加密映射策略中,可以簡化VPN通信中對等實體和鏡像配置過程,保證VPN數(shù)據(jù)通信的可用性、可靠性和安全性。