秦 燊 勞翠金
柳州城市職業(yè)學(xué)院信息工程系
當(dāng)今社會,人們的工作、生活都離不開計算機網(wǎng)絡(luò)系統(tǒng),要想組建安全、可靠的計算機網(wǎng)絡(luò)系統(tǒng),就需要復(fù)雜的實驗環(huán)境的支持,包括:交換機、路由器、防火墻等網(wǎng)絡(luò)設(shè)備和運行各種操作系統(tǒng)及應(yīng)用軟件的服務(wù)器。這需要足夠的設(shè)備、場所和資金的支持。為在有限的場所和資金的基礎(chǔ)上達(dá)到同樣的實驗效果,可采用虛擬化技術(shù)進(jìn)行仿真,并在此基礎(chǔ)上進(jìn)一步研究如何組建出安全、可靠的計算機網(wǎng)絡(luò)系統(tǒng)。通過EVE-NG虛擬化技術(shù),可實現(xiàn)仿真的網(wǎng)絡(luò)設(shè)備與真實設(shè)備的零距離對接。本文首先探討虛擬專用網(wǎng)技術(shù),然后通過EVE-NG搭建好網(wǎng)絡(luò)拓?fù)洌芯縄PSec虛擬專用網(wǎng)絡(luò)的原理與應(yīng)用。
將分處兩地的總公司與分公司的局域網(wǎng)安全連接,可以采用專線,也可采用虛擬專用網(wǎng)的方式。其中,專線連接雖然安全,但布署成本高、變更不靈活;而虛擬專用網(wǎng)技術(shù)費用低、安全且靈活性高。
虛擬專用網(wǎng)絡(luò)是利用因特網(wǎng)或其他公共互聯(lián)網(wǎng)絡(luò)的基礎(chǔ)設(shè)施,創(chuàng)建一條虛擬專用網(wǎng)絡(luò)通道,將不同地點的局域網(wǎng)安全地連接在一起的。傳輸通道是因特網(wǎng)的共享資源,所以費用低;利用加密技術(shù)和隧道技術(shù),為不同地點的網(wǎng)絡(luò)節(jié)點構(gòu)建出安全的專用隧道,能實現(xiàn)傳輸數(shù)據(jù)的源認(rèn)證、私密性和完整性等安全特性;另外,其靈活性高,只需通過簡單的軟件配置,就可以方便地增刪虛擬專用網(wǎng)用戶,擴充分支接入點。
虛擬專用網(wǎng)絡(luò)離不開加密技術(shù)和安全隧道技術(shù)。加密技術(shù)是虛擬專用網(wǎng)絡(luò)的基礎(chǔ),安全隧道技術(shù)是虛擬專用網(wǎng)絡(luò)的核心,是一個加密、封裝、傳輸和拆封、解密的過程。根據(jù)實現(xiàn)虛擬專用網(wǎng)技術(shù)所處的OSI模型的層次,其可分為:(1)二層技術(shù),如PPTP技術(shù)、L2TP技術(shù);(2)三層技術(shù),如IPSec技術(shù);(3)四層技術(shù),如SSL技術(shù)。
IPSec(即IP Security)是IPV6的一個重要組成部分,也能被IPv4使用。通過IPSec可以選擇所需的安全協(xié)議、算法、定義密鑰的生成與交換方法,為通信節(jié)點間提供安全的IP傳輸通道。
IPSec虛擬專用網(wǎng)技術(shù)使用兩種安全協(xié)議提供服務(wù),一種是驗證頭(Authentication Header,AH),只提供源認(rèn)證和完整性校驗,不提供加密保護(hù);另一種是封裝安全載荷(Encapsulating Security Payload,ESP),除了提供源認(rèn)證和完整性校驗,還能提供加密服務(wù)。
不論是AH安全協(xié)議還是ESP安全協(xié)議,都有兩種工作模式,一種是傳輸模式(Transport Mode),另一種是隧道模式(Tunnel Mode)。
在傳輸模式中,源IP地址、目的IP地址和IP包頭域是不加密的,從源到目的端的數(shù)據(jù)使用原來的IP地址進(jìn)行通信。攻擊者截獲數(shù)據(jù)后,雖無法破解數(shù)據(jù)內(nèi)容,但可看到通信雙方的地址信息。傳輸模式適用于保護(hù)端到端的通信,如局域網(wǎng)內(nèi)網(wǎng)絡(luò)管理員遠(yuǎn)程網(wǎng)管設(shè)備時的通道加密。
在隧道模式中,用戶的整個IP數(shù)據(jù)包被加密后封裝在一個新的IP數(shù)據(jù)包中,新的源和目的IP地址是隧道兩端的兩個安全網(wǎng)關(guān)的IP地址,原來的IP地址被加密封裝起來。攻擊者截獲數(shù)據(jù)后,不但無法破解數(shù)據(jù)內(nèi)容,而且也無法了解通信雙方的地址信息。隧道模式適用于站點到站點間建立隧道,保護(hù)站點間的通信數(shù)據(jù),如跨越公網(wǎng)的總公司和分公司之間、出差員工通過公網(wǎng)訪問公司內(nèi)網(wǎng)、在家辦公的員工通過公網(wǎng)訪問公司內(nèi)網(wǎng)、移動用戶通過公網(wǎng)訪問公司內(nèi)網(wǎng)等場景。
首先,使用EVE-NG搭建好接入Internet的總公司網(wǎng)絡(luò)和接入Internet的分公司網(wǎng)絡(luò)。其次,以總公司的出口路由器R2和分公司的出口路由器R4為例,研究IPSec虛擬專用網(wǎng)絡(luò)的原理與應(yīng)用。
IPSec虛擬專用網(wǎng)絡(luò)的傳輸分為兩個階段:第一階段是協(xié)商階段,第二階段是數(shù)據(jù)傳輸階段。通信雙方在第一階段和第二階段都需要協(xié)商決定一個安全聯(lián)盟(Security Association,SA),分別是因特網(wǎng)密鑰交換(Internet Key Exchange,IKE)SA和IPSec SA。SA是單向的,包括協(xié)議、算法、密鑰等內(nèi)容。IPSec SA由3個參數(shù)唯一標(biāo)識:目的IP地址、安全協(xié)議(ESP或AH)和一個稱為SPI(Security Parameters Index)的32位值。第二階段的密鑰和SPI等參數(shù)可以由第一階段自動協(xié)商產(chǎn)生,也可通過手工配置產(chǎn)生。以下是總公司的出口路由器R2上的配置。
第一階段IKE默認(rèn)已經(jīng)啟用,若已手工關(guān)閉,則需通過命令再次啟用。開啟第一階段IKE,命令如下:
R2(config)#crypto isakmp enable
IKE是一種通用的交換協(xié)議,可為IPSEC提供自動協(xié)商交換密鑰的服務(wù)。IKE采用了ISAKMP(Internet Security Association and KeyManagement Protocol)所定義的密鑰交換框架體系。
(1)創(chuàng)建isakmp policy
R2(config)#crypto isakmp policy 10
R2(config-isakmp)#encryption 3des //設(shè)置加密算法
R2(config-isakmp)#Hash sha512 //設(shè)置提取數(shù)字指紋的Hash算法
R2(config-isakmp)#authentication pre-share //將驗證方法設(shè)置為預(yù)共享密鑰
R2(config-isakmp)#group 2 //設(shè)置交換密鑰的DH算法采用的組別
(2)配置ISAKMP預(yù)共享密鑰
R2(config)#crypto isakmp key 123 address 200.2.2.2 //設(shè)置預(yù)共享密鑰為123,對端IP為200.2.2.2。
通過加密算法,可實現(xiàn)數(shù)據(jù)的私密性。數(shù)據(jù)加密技術(shù)分為對稱加密技術(shù)和非對稱加密技術(shù)。其中,非對稱密鑰加密的方式占用資源較多,速度較慢,而對稱加密算法加密速度快,所以,在進(jìn)行數(shù)據(jù)加密時,一般采用對稱加密技術(shù)。本文選擇3des加密算法。
通過提取數(shù)字指紋的Hash算法,可確保數(shù)據(jù)的完整性。在數(shù)據(jù)發(fā)送前,先對數(shù)據(jù)做Hash運算,提取數(shù)據(jù)的數(shù)字指紋,接收者收到后,對接收到的數(shù)據(jù)做Hash,與發(fā)送者發(fā)來的Hash 值進(jìn)行比較,如果一致,就證明數(shù)據(jù)未被篡改。但攻擊者截獲報文后,可以修改報文內(nèi)容、偽造數(shù)字指紋。針對這樣的攻擊,HMAC對Hash算法進(jìn)行了改進(jìn)。HMAC算法要求發(fā)送方與接收方預(yù)先共享一個密鑰key,將數(shù)據(jù)與預(yù)共享密鑰key合并后,再做Hash運算,計算出來的MAC值不但取決于輸入的原始數(shù)據(jù),還取決于預(yù)共享密鑰key,攻擊者因為沒有預(yù)共享密鑰key,就算修改了截獲的報文內(nèi)容,也仿造不了報文摘要,從而確保了數(shù)據(jù)的完整性。
通過預(yù)共享密鑰或數(shù)字簽名的方法實現(xiàn)源認(rèn)證,確保發(fā)送者不是冒名頂替的。預(yù)共享密鑰的方式類似于對暗號,只有暗號對了,接頭方才被認(rèn)可。數(shù)字簽名的方式則是發(fā)送者在發(fā)送前,先用自己的私鑰對數(shù)據(jù)的指紋(Hash值)進(jìn)行加密(加密的結(jié)果就是數(shù)字簽名),再將加密后的Hash值連同數(shù)據(jù)一起傳送給接收者,接收者用發(fā)送者的公鑰解密Hash值(公鑰是公開的),與自己計算出的Hash值對比。如果一致,再根據(jù)發(fā)送者是其私鑰的唯一擁有者,就可證明Hash值是發(fā)送者本人提供的。
通過DH算法,可實現(xiàn)密鑰的交換。由于對稱加密算法需要雙方交換密鑰,而直接傳輸,會存在被黑客截獲的風(fēng)險,此時,可采用DH算法避免此風(fēng)險。該算法是由科學(xué)家Whitefield等在1976年提出,通過該算法,通信雙方可以計算出相同的對稱密鑰,雙方用臨時的對稱密鑰再進(jìn)一步生成真正的對稱密鑰。下面,通過實例研究DH算法的大致過程。
(1)協(xié)商兩個數(shù),如97和5,這兩個數(shù)是可公開的。其中,97是素數(shù),5是97的一個原根。在實際應(yīng)用中,DH算法所選的素數(shù)很大,為了計算方便,只選了一個很小的素數(shù)97為例,不影響對DH算法原理的理解和研究。
(2)A、B雙方各自取一個數(shù),此數(shù)需雙方各自保密。例如:A方選取36;B方選取58。
(3)A方計算出5^36 mod 97傳送給B;B方計算出5^58 mod 97傳送給A。
(4)A根據(jù)獲得的(5^58 mod 97),進(jìn)一步計算出[(5^58 mod 97)^36]mod 97得到對稱密鑰:(5^58^36)mod 97。
(5)B根據(jù)獲得的(5^36 mod 97),進(jìn)一步計算出[(5^36 mod 97)^ 58] mod 97 得 到 對 稱 密 鑰:[(5^36)^ 58] mod 97。
可以看出,A、B 雙方經(jīng)過計算,獲得了一個相同的對稱密鑰,其可作為臨時對稱密鑰,用于進(jìn)一步生成最終的對稱密鑰。
3.3.1 配置感興趣流
將通信雙方需要IPSec進(jìn)行保護(hù)的數(shù)據(jù)流稱為感興趣流。感興趣流通過ACL來定義,ACL所允許的感興趣流,將被IPSec保護(hù)。
R2(config)#ip access-list extended vpnacl1
R2(config-ext-nacl)#permit ip 1.1.1.00.0.0.2552.2.2.00.0.0.255
此處,將1.1.1.0訪問2.2.2.0的流量定義為感興趣流,經(jīng)過VPN設(shè)備時,將觸發(fā)保護(hù)。
如何保護(hù)感興趣流,則由第二階段的IPSec轉(zhuǎn)換集(transformset)來定義。
3.3.2 配置IPSec轉(zhuǎn)換集
IPSec轉(zhuǎn)換集主要包括:保護(hù)感興趣流所用的安全協(xié)議(AH、ESP),IPSec的工作模式(transport、tunnel),保護(hù)感興趣流所采用的加密算法(des、3des、aes、gcm、gmac、seal),通信雙方所采用的驗證算法(md5、sha、sha256、sha384、sha512)等。配置IPSec轉(zhuǎn)換集的命令如下:
R2(config)#crypto ipsec transform-set trans1 esp-aes espsha512-hmac
此處,定義了采用的安全協(xié)議為ESP,采用的加密算法為aes,采用的提取指紋算法為sha512,工作模式采用默認(rèn)的tunnel模式。
定義多個IPSec轉(zhuǎn)換集,具體采用哪個IPSec轉(zhuǎn)換集,由第二階段定義的安全策略(crypto map)來指定。
3.3.3 配置第二階段的安全策略crypto map
安全策略(crypto map)用來指定對哪個感興趣流進(jìn)行保護(hù);保護(hù)這個感興趣流時采用哪個IPSec轉(zhuǎn)換集;指定密鑰和SPI等參數(shù)的產(chǎn)生方法是手工配置,還是通過調(diào)用第一階段的IKE自動協(xié)商生成;對于隧道模式,還要指定隧道對端的IP地址。
安全策略(crypto map)由策略名、序號組成,相同策略名的安全策略構(gòu)成一個安全策略組,一個接口只能連接一個安全策略組。命令如下:
R2(config)#crypto map crymap110 ipsec-isakmp //策 略名定義為crymap1,序號定義為10,關(guān)鍵字ipsec-isakmp指明密鑰和SPI等參數(shù)由第一階段isakmp自動協(xié)商生成
R2(config-crypto-map)#match address vpnacl1 //指定對感興趣流vpnacl1進(jìn)行保護(hù)
R2(config-crypto-map)#set transform-set trans1 //指定保護(hù)這個感興趣流時采用的IPSec轉(zhuǎn)換集為trans1
R2(config-crypto-map)#set peer 200.2.2.2 //指定隧道對端的IP地址為200.2.2.2
命令如下:
R2(config)#int g0/1
R2(config-if)#crypto map crymap1
將安全策略組應(yīng)用到IPSec設(shè)備(如路由器、防火墻)的接口后,一旦有流量經(jīng)過接口,就會觸發(fā)crypto map安全策略組,若該流量匹配這個安全策略組定義的感興趣流,IPSec設(shè)備就對這些流量進(jìn)行加密封裝,加上新的源IP地址和目的IP地址,再根據(jù)新的目的IP地址,重新查路由表,根據(jù)路由表找到出接口,送出受保護(hù)的流量。
在EVE-NG搭建好的公司網(wǎng)絡(luò)拓?fù)洌瑸榉止镜某隹诼酚善鱎4進(jìn)行相應(yīng)的IPSec VPN配置后,總公司和分公司的電腦就像處于同一個局域網(wǎng)內(nèi)部一樣,可以互相訪問和共享資源。