VPN有很多建立方式,網管人97期「活用現成Cisco路由器,提供SSL VPN連線」已介紹SSL VPN,而98期「動手玩路由器VPN功能,建立PPTP及L2TP連線」一文也說明了如何建置PPTP/L2TP VPN,本期文章將繼續介紹IPSec VPN的建置,示範如何透過IPSec來建立電腦對設備之間的VPN連線。
在此亦可指定Mode為Transport或Tunnel Mode,在此不加指定,使用預設的Tunnel Mode。
然後建立一個crypto dynmic-map,名為「dynmap」,其序號為「1」,並設定其transform-set套用先前建立的「transform」以指定其認證及加密方式,並設定當建立連線時,會建立一條反向路徑給該連線(Reverse-route),當連線建立後,使用指令「show ip route」可以看見此路徑。
設定客戶端環境
開始安裝前述Cisco VPN Client軟體,並建立一個新連線。如圖3所示。「Host」的部分,指定IPSec Gateway的Public IP Address。
|
▲圖3 建立IPSec連線。 |
「Name」方框內輸入在建立Crypto ISAKMP Client Configuration Group時取名的「ipsec-group」。而「Password」和「Confirm Password」方框內,輸入建立Group時指定的「key-of-ipsec」。最後,存檔並進行連線。
隨即跳出使用者名稱及密碼的提示視窗,輸入帳號及密碼(本例帳號和密碼均為「cisco」,之前在路由器上已預先設定),最後按下〔OK〕按鈕建立連線,如圖4所示。
|
▲圖4 輸入帳號及密碼。 |
連線成功建立後,桌面右下角會出現上鎖的圖示。對該圖示按一下滑鼠右鍵,然後點選快速選單中的【Statistics】。可以看到Client所取得的IP及加密與認證的協定,分別為256-bit AES及HMAC-SHA1,與剛剛在路由器上設定相符,如圖5所示。
|
▲圖5 查看IPSec Client Statistics內容。 |
也可以使用「ipconfig /all」指令來確認DNS伺服器及WINS伺服器是否與之前所設定的相同,如圖6所示。由此可以發現,IPSec Client取得的IP為「192.168.1.243」。
|
▲圖6 查看執行「ipconfig /all」後的輸出結果。 |
最後實際登入192.168.1.x的設備,以驗證IPSec Tunnel是否真的能夠使用。本例登入機房的Zyxel Switch,其IP為192.168.1.1,由此證明這個IPSec Tuennl確實可以使用,如圖7所示。
|
▲圖7 登入機房設備進行可用度驗證。 |
查看IPSec Gateway資訊
最後,在路由器上也進行相關資訊的查驗。先使用「show crypto isakmp sa detail」查看ISAKMP相關訊息,如圖8所示。可以看出其Encr為「aes」,Hash為「sha」,DH為「2」,均與剛剛所設定之ISAKMP Policy相符。
|
▲圖8 使用「show crypto isakmp sa」查看ISAKMP相關資訊。 |
接著使用「show crypto ipsec sa」來查看IPSec的資訊。可以看出,在Crypto map tag部分套用的是剛剛設定的「dynmap」,而remote ident是IPSec Client所取得的IP。另外,在Inbound及Outbound的Transform,可以看出套用了「esp-256-aes」及「esp-sha-hmac」,輸出結果如圖9所示。
|
▲圖9 使用「show crypto ipsec sa」查看IPSec相關資訊。 |
最後執行指令「show ip route」,驗證Reverse Route有沒有出現在路由表中。如圖10所示,可以看出192.168.1.243這個IP是透過110.29.18.13(電腦的Public IP)做傳送的。
|
▲圖10 進行Reverse Route的驗證。 |
結語
IPSec是一個很成熟的VPN技術,讓使用者在安裝軟體後,可以輕易地取用公司的網路資源。此外,它不僅可使用在電腦對設備,也可以運用於設備對設備,進而把兩間公司的網路連結在一起,之後的文章就會介紹如何建立設備對設備的VPN網路。
<本文作者:丁光立,在ISP工作多年。對於Cisco設備較熟悉,除此之外也研究Linux,這幾年慢慢把觸角伸到資安的領域,並會在自己的blog(http://tiserle.blogspot.com/)分享一些實務上的經驗和測試心得。>