VPN有很多建立方式,網管人97期「活用現成Cisco路由器,提供SSL VPN連線」已介紹SSL VPN,而98期「動手玩路由器VPN功能,建立PPTP及L2TP連線」一文也說明了如何建置PPTP/L2TP VPN,本期文章將繼續介紹IPSec VPN的建置,示範如何透過IPSec來建立電腦對設備之間的VPN連線。
接著設定一個登入的名稱「userlist」,以利後續使用IPSec Client軟體在撥入時進行身份驗證,讓它讀取本機帳號設定。必須留意的是,此「userlist」的名稱必須與後續設定Crypto Map時相符。
接著,設定網路用戶授權時讀取ipsec-group的相關設定。此ipsec-group的名稱也必須與後續設定Crypto Map時相符。
再設定一組帳號密碼,供登入IPSec VPN時使用:
在這邊要特別注意的是,密碼只可使用明文,不能使用secret進行加密。因此記得要做以下的設定,讓自己的密碼不要被人一眼看穿。
緊接著建立名為「ipsec」的IP Pool,此IP Pool為IPSec用戶撥上時會取得的IP網段。
進行ISAKMP相關設定
緊接著,進行ISAKMP(Internet Security Association and Key Management Protocol)相關設定。之前的章節有提到,IPSec分為建立安全連結及金鑰交換兩個步驟。在Cisco中,使用ISAKMP來完成此二步驟。顧名思義,ISAKMP用以建立安全連結(Security Association)及進行金鑰交換(Key Management Protocol)。
先建立ISAKMP Policy,如下所示,encryption指的是所使用的加密演算法,這裡使用比較安全的AES,金鑰長度使用最大的256位元。接著是authentication認證方式的部分,此處使用預共用金鑰模式(Pre-shared Key,PSK)。最後的group指的是Diffie-Hellman Group(DH Group),這裡採用「2」,此處設定必須與之後設定IPSec Client時一致。
接著設定一個名為「ipsec-group」的Group,把使用者建立連線時的相關設定備妥。(也可以針對各項次獨立進行設定)。在此,指定key的部分使用key-of-ipsec(後續在設定Client時會用到)。
另外,DNS伺服器(Server)指定192.168.1.100及192.168.1.200這兩台,而WINS伺服器指定192.168.1.5。domain的部分,任意指定了一組xxxx.com.tw,請以現況為準。而IP Pool的部分,指定會取得之前設定的「ipsec」。
最後是ACL部分,網管人員可能希望限制用戶撥上後所能存取的範圍,因此指定ACL為「101」來限制其能存取的網段。
在此要補充說明,「ipsec-group」是建立ISAKMP連線時的使用者名稱,而「key-of-ipsec」則是建立ISAKMP連線時的密碼。
最後先把ACL 101設定完成,在此僅允許作為內部網段的存取。
設定Crypto Map
建立一個Crypto Map,名稱為「dynmap」。設定認證時,必須使用之前設定「userlist」時的認證方式,亦即為本機認證。
接著設定授權,它是用來綁定ISAKMP在授權時配對的群組,將其與先前建立的ipsec-group做綁定。
然後,設定Client透過IPSec Gateway取得IP Address。
再設定一個名為「ipsec-isakmp」的Dynamic Map,這個Map是要用來綁定在Interface上的。
最後,把這個dynmap綁定在對外的Interface
上。
設定完成之後,會出現如下訊息,即可以確認設定成功:
進行IPSec相關設定
接著進行IPSec相關設定,設定一組名為「transform」的transform-set,來指定認證及傳輸時使用的加密協定。
關於AH(Authentication Header)部分,據筆者實測,若設定之後IPSec Client軟體會認證失敗,因此不做設定。至於ESP(Encapsulating Security Payloads),則使用AES 256位元進行加密以及採取HMAC-SHA的認證方式。由此可以看出,Cisco的VPN Client使用ESP一併進行身份驗證。