之前數篇教學已介紹過如何使用Cisco路由器作為公司網路VPN連線的伺服器,在本文中,筆者將介紹如何使用Cisco路由器來建立公司對公司的VPN網路。本文將著重於介紹如何使用GRE Tunnel技術來建立VPN,並導入IPSec加密功能,以加強資訊安全性。
其封包組成如圖6所示,在此可看出同樣由Outer IP、GRE、Inner IP所組成,並加上了TCP及HTTP協定的封包。
|
▲圖6 HTTP協定運作於GRE Tunnel下的封包組成。 |
GRE Tunnel的加密
至此,GRE Tunnel的介紹及實作已經完成了。但讀者在查看封包可能會有一個疑問,為何這些資料都是以明文顯示呢?這樣資料有受到保護嗎?答案是沒有。因此接著介紹如何把IPSec也加入GRE Tunnel中(GRE over IPSec)。
其原理是先把數據分裝成GRE封包,然後再分裝成IPSec封包。做法是在實體Interface上監控是否有需要加密的GRE封包,透過GRE Tunnel傳遞的封包都會被加密分裝為IPSec封包再進行傳遞,這樣就能保證所有的封包都會被加密,包括隧道的建立以及路由的建立和傳遞。
IPSec的相關說明,在之前介紹的IPSec VPN連線建立已解釋過,因此此次省略掉解釋的部分,在此僅提供設定檔並針對此次新增的部分作說明。
台北總公司IPSec相關設定如下,在此需注意的是,address的部分需填入高雄分公司路由器的對外IP:74.64.22.1。
針對GRE Tuennl新增的部分,如下所示:
在tunnel mode的部分設定為ipsec,並指定使用ipv4。而tunnel protection部分使用ipsec,並套用之前建立的mysecret這個Profile。
高雄分公司方面須注意的是,在crypto isakmp key的address必須填入台北總公司的路由器IP。其餘均相同。
接著,同樣開啟192.168.0.100的網頁,並同時側錄其封包及加以解讀,其輸出如圖7所示。由此可以看出,由於經過IPSec的加密,僅能看出在封包傳遞時需要的src IP及dst IP,但GRE和inner IP的部分以及後續的TCP與HTTP,都被用ESP(Encapsulation Security Payload)包起來了,因此如果真的有駭客或其他競爭公司的人員取得貴公司傳遞時的封包,也無法輕易地解讀其內容。
|
▲圖7 經過加密的HTTP封包。 |
結語
GRE Tunnel建立的方式非常簡單。可以輕鬆地建立兩點之間的VPN連線。甚至在臨時有安全性傳輸的需求時,可以緊急建立一個GRE Tunnel進行傳輸,以提高資訊安全性。但它也有一些缺點,例如它比較適用於建立點對點之間的連線,缺乏多點連線建立的能力。
此外,它也比較適用於固定IP或具有FQDN的路由器使用,若有一端的IP未能固定,或者沒有FQDN,就無法建立連線,必須使用IPSec或其他VPN建立方式,但GRE Tunnel最大好處在於簡單易用,至於其他的Site-to-Site VPN連線需求,例如多點連線或者有一端為非固定IP用戶,將再另行撰文介紹。
<本文作者:丁光立,在ISP工作多年。對於Cisco設備較熟悉,除此之外也研究Linux,這幾年慢慢把觸角伸到資安的領域,並會在自己的blog(http://tiserle.blogspot.com/)分享一些實務上的經驗和測試心得。>