曾麗娟,楊平,徐涢基,吳雙
(南昌交通學(xué)院,江西 南昌 330100)
實(shí)驗(yàn)中總部防火墻工作在網(wǎng)絡(luò)層,上下行連接路由器,防火墻與路由器OSPF連通??偛糠阑饓μ幱谥鱾鋫浞莨ぷ髂J降碾p機(jī)熱備。利用防火墻的Tunnel接口與分部出口防火墻穿越總部NAT設(shè)備建立IPsec VPN隧道,PC1、PC2可以正常訪問公網(wǎng),同時(shí)PC1與PC2之間通過IPsec VPN實(shí)現(xiàn)加密通信。當(dāng)設(shè)備或鏈路故障時(shí)可以自動進(jìn)行主備流量切換,不影響VPN隧道兩端用戶的正常通信。
IPsec(Internet Protocol Security)是一個(gè)保護(hù)IP協(xié)議的網(wǎng)絡(luò)傳輸協(xié)議族,其功能是對IP協(xié)議的分組進(jìn)行加密和認(rèn)證。IPsec安全框架是網(wǎng)絡(luò)層使用的一組安全I(xiàn)P協(xié)議集,提供訪問控制、對等體身份驗(yàn)證、無連接數(shù)據(jù)包完整性校驗(yàn)、數(shù)據(jù)加密與抗重放的安全通信服務(wù)。
VPN(Virtual Private Network)是在公共網(wǎng)絡(luò)中搭建專用的加密虛擬網(wǎng)絡(luò)進(jìn)行通信,主要采用隧道(Tunnel)、封裝(Encapsulation)、加密(Encryption)和解密(Decryption)、驗(yàn)證(Authentication)和授權(quán)(Authorization)四個(gè)方面的安全技術(shù)來保障數(shù)據(jù)傳輸?shù)耐暾浴?/p>
IPsec協(xié)議族包含了3個(gè)最重要的協(xié)議[5,6]:認(rèn)證頭AH(Authentication Header)、密鑰交換協(xié)議IKE(Internet Key Exchange)以及封裝安全載荷ESP(Encapsulating Security Payload)。
AH協(xié)議是確認(rèn)所提供數(shù)據(jù)的完整性,但是不能對其進(jìn)行加密。ESP協(xié)議可以同時(shí)對數(shù)據(jù)的完整性進(jìn)行確認(rèn)和對數(shù)據(jù)進(jìn)行加密。AH協(xié)議會對整個(gè)IP報(bào)文進(jìn)行完整性檢驗(yàn),穿越NAT設(shè)備后原HASH值被破壞,所以AH報(bào)文無法穿越NAT設(shè)備。ESP協(xié)議只對IP報(bào)文的數(shù)據(jù)部分進(jìn)行完整性檢驗(yàn),IP報(bào)文在穿越NAT設(shè)備時(shí),內(nèi)部源端口號和源IP地址已經(jīng)被加密無法被修改,不會造成HASH值改變導(dǎo)致IPsec SA建立失敗。根據(jù)上文中的闡述,所以ESP協(xié)議更適合NAT穿越。
傳輸模式只是對數(shù)據(jù)部分進(jìn)行封裝,不會改變原有的IP包頭。所以在穿越NAT設(shè)備時(shí),報(bào)文原本的IP頭部會被修改,到達(dá)隧道對端時(shí)被更改的IP頭部不能被驗(yàn)證,導(dǎo)致IPsec SA建立失敗。傳輸模式一般用在主機(jī)到主機(jī)之間的加密傳輸,也就是點(diǎn)到點(diǎn)的模式。傳輸模式AH報(bào)文格式如圖1所示,傳輸模式ESP報(bào)文格式如圖2所示。
圖1 傳輸模式AH報(bào)文格式
圖2 傳輸模式ESP報(bào)文格式
隧道模式會生成一個(gè)新的IP包頭添加到原始包頭前。在穿越NAT設(shè)備時(shí),即使新封裝的IP頭部被修改,ESP報(bào)文內(nèi)部的原始IP頭部也不會被修改,到達(dá)隧道對端解封裝后,IP地址可以被正確驗(yàn)證。隧道模式應(yīng)用場景是路由器或防火墻上對某個(gè)網(wǎng)段的數(shù)據(jù)進(jìn)行封裝,其中VPN就是其一種典型應(yīng)用。
根據(jù)上述闡述,所以隧道封裝模式更加適合穿越NAT設(shè)備。隧道模式AH報(bào)文格式如圖3所示。隧道模式ESP報(bào)文格式如圖4所示。
圖3 隧道模式AH報(bào)文格式
圖4 隧道模式ESP報(bào)文格式
IKEv1雖說近乎完美,但還是有很多缺點(diǎn),例如建立連接時(shí)間較長,建立IPsec SA時(shí)主模式需要9條ISAKMP報(bào)文,野蠻模式需要6條ISAKMP報(bào)文。
IKEv2不分階段,只需要4條報(bào)文就可以建立IPsec SA,且IKEv2兼容IKEv1,通過抓包軟件可以查看到IKEv2中的詳細(xì)信息,如圖5所示。
圖5 IKEv2報(bào)文抓包
較路由器不同的是,防火墻無論是IKEv1還是IKEv2,都是默認(rèn)開啟NAT穿越功能,在NAT穿越時(shí)第一個(gè)和第二個(gè)報(bào)文會攜帶兩個(gè)Notify載荷,一個(gè)是對本端IP地址和端口的Hash值,一個(gè)是IKE對等體IP地址和端口的Hash值。Notify載荷使用通用的ISAKMP載荷頭,載荷的值是SPIs,IP地址、發(fā)送數(shù)據(jù)包的端口號的Hash值(IKEv2規(guī)定使用SHA-1),Hash值的計(jì)算為:Hash=SHA-1(SPIs|IP|Port)。
ESP報(bào)文會以UDP報(bào)文為承載,防火墻間在建立隧道時(shí)會檢測接收到的報(bào)文中的Hash值,如果與NAT_DETECTION_SOURCE_IP不匹配,則說明發(fā)起端在NAT設(shè)備之后,如果與NAT_DETECTION_DESTINATION_IP不匹配,則說明接收端在NAT設(shè)備之后。通過抓包軟件,可以查看報(bào)文字段中的Hash值,如圖6所示。
圖6 報(bào)文字段中的Hash值
在檢測到設(shè)備處于NAT設(shè)備后時(shí),IKE_AUTH報(bào)文會將原本協(xié)商時(shí)的端口號為500的UDP端口改為4500,且此報(bào)文標(biāo)識會變?yōu)镹on-ESP Marker,通過抓包軟件可以觀察到報(bào)文標(biāo)識會變?yōu)镹on-ESP Marker,如圖7所示。
圖7 報(bào)文字段的標(biāo)識變化
在仿真器中,防火墻上使用命令display firewall session table可以查看防火墻上的會話記錄,如圖8所示。
圖8 防火墻會話列表
總部NAT設(shè)備將其內(nèi)部FW的Tunnel接口的地址的UDP 500端口和4500端口映射到NAT設(shè)備R1的G0/0/2接口,分部FW3此時(shí)配置IKE對等體的對端IP地址是10.1.1.1映射到公網(wǎng)的地址,即101.1.1.3。用來認(rèn)證的IP地址為對端防火墻的Tunnel 0接口地址,如圖9所示。
圖9 NAT Server配置
防火墻FW3是IPsec協(xié)議和NAT協(xié)議共存設(shè)備,因此在FW3上還需要配置一條不轉(zhuǎn)換192.168.2.0/24網(wǎng)段去往192.168.1.0/24網(wǎng)段的報(bào)文的NAT策略轉(zhuǎn)換規(guī)則,作用同利用ACL匹配感興趣流,且此規(guī)則的優(yōu)先級要高于其他的規(guī)則。在轉(zhuǎn)發(fā)報(bào)文時(shí),流量會優(yōu)先觸發(fā)此規(guī)則,防火墻NAT策略配置如圖10所示。
圖10 配置防火墻NAT策略
在協(xié)商前,防火墻需要配置untrust區(qū)域和local區(qū)域之間的域間流量策略,放行icmp協(xié)議,esp協(xié)議和端口號為500和4500的UDP協(xié)議的流量。
雙機(jī)熱備主要是在出口出部署兩臺防火墻實(shí)現(xiàn)主備備份,雙機(jī)通信包含的內(nèi)容指主備服務(wù)器之間通過專用通信線路進(jìn)行雙機(jī)信息交互,雙機(jī)同步是確保雙機(jī)熱備份主備服務(wù)器平滑切換的前提,雙機(jī)切換是雙機(jī)熱備份實(shí)現(xiàn)的關(guān)鍵。通過它實(shí)現(xiàn)備份服務(wù)器接手主服務(wù)器的工作,網(wǎng)絡(luò)不會因設(shè)備單點(diǎn)故障而癱瘓。
兩臺防火墻處于主備備份方式的雙機(jī)熱備,F(xiàn)W1為主設(shè)備,F(xiàn)W2為備用設(shè)備。上下行連接路由器,這個(gè)實(shí)驗(yàn)的拓?fù)鋱D如圖11所示。
圖11 實(shí)驗(yàn)拓?fù)鋱D
防火墻的G1/0/0和G1/0/1端口加入link-group組中形成邏輯組,link-group組會同步組中接口的狀態(tài),當(dāng)組中有接口狀態(tài)為Down時(shí),其他的接口也會轉(zhuǎn)變?yōu)镈own狀態(tài)。同時(shí)link-group組會加快鏈路故障時(shí)的路由收斂速度。防火墻配置VGMP組對上下行鏈路的鏈路狀態(tài)進(jìn)行直接監(jiān)控,如圖12所示。
圖12 查看link-group狀態(tài)
配置HRP,主設(shè)備可以通過心跳線將設(shè)備關(guān)鍵配置與會話狀態(tài)傳遞給備份設(shè)備。如果備份防火墻沒有主防火墻的會話數(shù)據(jù),報(bào)文則無法繼續(xù)轉(zhuǎn)發(fā),造成網(wǎng)絡(luò)中斷。VGMP組對防火墻上下行鏈路直接監(jiān)控,HRP配置為:
防火墻工作在三層,上下行連接的都是路由器的情況,不能像上下行連接交換機(jī)時(shí),利用VRRP提供的虛擬IP實(shí)現(xiàn)IPsec隧道備份。使用接口地址可以建立IPsec隧道,但因IP地址不同無法實(shí)現(xiàn)IPsec隧道備份。
此時(shí)在內(nèi)網(wǎng)互通的前提下,需要利用Tunnel口建立IPSec隧道。在FW1和FW2上創(chuàng)建虛擬接口Tunnel 0,并配置相同地址10.1.1.1,Tunnel接口使用IPsec協(xié)議封裝。Tunnel接口配置為:
防火墻的路由表沒有去往192.168.2.0/24網(wǎng)段的路由條目,需要在防火墻上配置靜態(tài)路由引導(dǎo)去往192.168.2.0/24網(wǎng)段的流量進(jìn)入Tunnel 0接口,以觸發(fā)IPsec VPN。靜態(tài)路由配置為:
路由器R1和R2的路由表中沒有去往防火墻的Tunnel 0接口的路由,Tunnel 0接口和防火墻之間是直連關(guān)系,可以在防火墻的OSPF進(jìn)程中引入直連,但是這種方法會將心跳接口的路由條目一并引入到OSPF路由表中造成次優(yōu)路徑。
為了避免這種情況,可以在引入直連路由時(shí)配合路由策略,只引入10.1.1.0/24網(wǎng)段作為Tunnel接口地址。路由策略配置如下面代碼所示:
主備設(shè)備配置hrp adjust ospf-cost enable(默認(rèn)開啟)控制主備設(shè)備OSPF鏈路開銷,備用設(shè)備鏈路開銷會自動增加65500。
本端和對端防火墻的IPsec提議,IKE提議和IKE對等體的配置需要一致,否則協(xié)商失敗,具體配置的對比如表1所示。
表1 防火墻IPsec提議與對等體對比
傳統(tǒng)的IPSecVPN隧道的建立是在兩個(gè)網(wǎng)關(guān)型設(shè)備上,穿越公網(wǎng)進(jìn)行端對端的建立,若某一設(shè)備出現(xiàn)單點(diǎn)故障或鏈路損壞,則VPN隧道會斷開,影響業(yè)務(wù)的正常通信。
采用雙機(jī)熱備無疑是解決此問題的絕佳方法,可以避免因設(shè)備接口、鏈路或整機(jī)故障引起的單點(diǎn)癱瘓導(dǎo)致網(wǎng)絡(luò)不同。
在《IPsecVPN雙機(jī)熱備系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)》和《基于eNSP的IPSec VPN場景教學(xué)設(shè)計(jì)——分支使用VRRP虛地址與總部建立IPSec VPN》中,防火墻上下行連接交換機(jī)時(shí),配置VRRP組實(shí)現(xiàn)IPSecVPN的會話備份,VRRP備份組會根據(jù)優(yōu)先級確定設(shè)備的主備狀態(tài),在Master設(shè)備故障時(shí),備份設(shè)備接替主設(shè)備位置完成報(bào)文轉(zhuǎn)發(fā)。
若企業(yè)網(wǎng)絡(luò)結(jié)構(gòu)為雙防火墻直連網(wǎng)關(guān)設(shè)備,且規(guī)模較大,防火墻下行鏈路需連接路由器進(jìn)行路由尋址,則無法使用VRRP虛擬地址進(jìn)行IPSecVPN隧道的建立。
在模擬器中,通過display ipsecsa檢查此時(shí)總部防火墻的IPsec安全聯(lián)盟,IKE聯(lián)盟狀態(tài)如圖13、圖14所示,VGMP組狀態(tài)如圖15、圖16所示。
圖13 IPSec SA狀態(tài)
圖14 IKE SA狀態(tài)
圖15 主設(shè)備VGMP狀態(tài)
圖16 備設(shè)備VGMP狀態(tài)
通過Wireshark抓包軟件對公網(wǎng)路由器抓包觀察兩端PC通過IPSecVPN進(jìn)行通信時(shí),報(bào)文是否被IPSec隧道保護(hù),對FW3公網(wǎng)端口抓包,觀察在總部PC正常訪問公網(wǎng)時(shí)是否為ICMP報(bào)文。根據(jù)設(shè)計(jì)的實(shí)驗(yàn)環(huán)境可以得出總部與分部的PC可以進(jìn)行正常的通信,如圖17所示;通過抓包可以得到總部PC可以正常訪問公網(wǎng),如圖18所示。
圖17 總部PC與分部PC通信
圖18 PC訪問公網(wǎng)報(bào)文正常
通過抓包軟件,實(shí)驗(yàn)結(jié)果還顯示總部與分部的PC進(jìn)行通信時(shí)報(bào)文被加密增加了安全性,如圖19所示。
圖19 PC間報(bào)文被ESP加密
本實(shí)驗(yàn)成功驗(yàn)證基于防火墻雙機(jī)熱備下的IPsec VPN的隧道備份,PC之間通信時(shí),若主用設(shè)備的鏈路故障或者設(shè)備故障,流量會平滑的自動切換到備用設(shè)備,備用設(shè)備會自動搶占成為主用設(shè)備,流量不會長時(shí)間中斷,待主用設(shè)備狀態(tài)恢復(fù)正常,會進(jìn)行自動搶占,重新恢復(fù)成為主用設(shè)備,有效解決了因單點(diǎn)故障和鏈路故障引起的網(wǎng)絡(luò)不可靠,實(shí)現(xiàn)設(shè)備冗余,提高了網(wǎng)絡(luò)的可用性和安全性