這裡以實作的方式講解並示範如何建立DMVPN(動態多點VPN),而為了避免明碼傳送時讓駭客有輕易假造封包的機會,還會進一步使用IPSec對資料的傳遞加以保護。
最後,利用Wireshark觀察此封包。可以看出確實是從192.168.1.1送往192.168.0.1的ICMP request,並且是運作在GRE tunnel中,它的key確實也是100000 (0x186a0),如圖4所示。
|
▲圖4 確認相關機制均已正常運作。 |
完成KH Office設定並加以驗證
接著,把KH Office的設定加以完成,並且進行相關的測試。
在KH Office中可以看到兩筆從OSPF學到的路由表,不管是192.168.0.0/24或192.168.1.0/24,都是從Main Office的tunnel IP學到的。
如此一來,就代表往192.168.0.0/24或192.168.1.0/24的封包都是透過10.0.0.1做交換的。
使用traceroute來驗證其封包的傳遞方向,可以發現往192.168.1.1的封包的確是透過10.0.0.1做轉發的。
最後再採用ping的方式,驗證封包確實可以抵達TC Office所在的192.168.1.1。
資料加密與驗證
使用Wireshark查看封包時,可以發現在Internet上這些資料(包含Tunnel Key)都還是以明碼傳送,這樣一來有心人士或駭客仍然可以輕易地假造封包,或是直接讓自己的設備加入此動態VPN中,因此這裡就接著介紹如何使用IPSec將這些資料加以保護。
在執行IPSec前,務必確認設備的時間設定是正確的,可以的話建議使用NTP來校時以增加穩定性及準確度。(可參考筆者在網管人101期文章內的相關介紹)。
先完成IPSec phase1的相關設定,再使用preshare key的方式做身分驗證並指定其group為2。
然後設定key的名稱為dmvpnkey,對應到的是所有的IP Address(第二個0.0.0.0代表子網路遮罩是0.0.0.0,與預設路由的觀念相同)。
接著完成IPSec phsase2的相關設定。先在Main Office中設定一個名為dmvpnset的transform-set。在此使用3des和sha-hmac做加密及驗證。
隨後設定名為dmvpnprotect的profile,其transform-set設定為前一步驟建立的dmvpnset。
緊接著,在interface Tunnel 0加上ipsec protection的設定。
設定完成後,會有出現如下訊息,代表IPSec已經開始運作了。
最後,依序在TC Office和KH Office上完成相同的設定,並且驗證其成果。帶KH Office的LAN IP去ping TC Office的LAN IP,再以Wireshark查看其封包。
圖5為此封包的部分資訊,由於使用IPSec加密,只能看到封包均被包覆在ESP中,因此無法得知其內容,只能推測其流程。
|
▲圖5 驗證IPSec是否生效。 |
從IP可以看出,封包先由58.114.1.2(KH Office的Public IP)往59.104.1.2(Main Office的Public IP)傳送,再由59.104.1.2(Main Office的Public IP)往61.59.116.2(TC Office的Public IP)傳送。
然後,再將此封包的內容加以解析。在此只能得到Public IP的資訊,但無法得知封包的詳細內容,包括GRE、NHRP、Inner IP及OSPF等的這些資訊都被隱藏了,因此封包的傳遞將會更加安全,如圖6所示。
|
▲圖6 解析封包內容。 |
結語
本文介紹了如何建立DMVPN(動態多點VPN),並且使用IPSec對資料的傳遞加以保護,足以作為企業建置VPN的方案之一。這裡僅做簡單的介紹,其實在真實環境使用中,可能尚須考慮ACL、NAT等相關情境。如何實際套用,端賴各位網管人的智慧與判斷。
<本文作者:丁光立,在ISP工作多年。對於Cisco設備較熟悉,除此之外也研究Linux,這幾年慢慢把觸角伸到資安的領域,並會在自己的blog(http://tiserle.blogspot.com/)分享一些實務上的經驗和測試心得。>