之前文章已經介紹過如何透過OpenWRT來建立Remote Access SSL VPN。本文將進一步介紹如何透過OpenWRT建立Site to Site的SSL VPN,並且會分別介紹如何在CLI介面及GUI介面中建立SSL VPN。
和前文相同,同樣是在Raspberry Pi硬體上安裝OpenWRT後建立連線。其中,CLI的部分以輸入帳號密碼的方式進行,而GUI的部分則採取憑證的方式進行身分驗證。
先介紹如何以CLI的方式進行操作。由於在本段中大多數的操作都是透過SSH登入OpenWRT後進行,因此這裡均以指令模式進行操作。
測試的架構圖如圖1所示,Client端(203.70.228.5)透過OpenWRT與Server端(210.66.233.2)建立SSL VPN連線,並且兩端下轄設備可以相互連通。
|
▲圖1 測試架構圖。 |
使用CLI及帳號密碼建立連線
為便於識別,將Server端及Client端的機器各自命名為Server與Client。實作的方式是編輯「/etc/config/system」檔案,找到config system裡面的option hostname,將後面的OpenWRT改為Server,修改後建議重啟設備,而Client端同樣比照辦理。
在設定檔的部分,使用之前Remote Access VPN的Server端設定檔,記得將認證的部分由「auth = "certificate"」改回「auth = "|AUTH|"」。
Server端的設定檔在「/etc/ocserv/ocserv.conf.template」,要找到「auth = "|AUTH|"」,確認其前方沒有#號,並將其他auth的前方加上#號,最後再存檔並重啟daemon。
由於保留之前測試時的設定,因此192.168.1.0/24的網段及8.8.8.8的DNS Server在Client端建立連線時,都會帶出相關的路由表。
安裝所需套件
在Client端安裝所需的套件vpnc-scripts及OpenConnect,這邊要提醒一下,筆者本來以為在安裝vpnc-scripts的時候,opkg會一併安裝OpenConnect套件,但是進行連線時才發現它們沒有相依性不會自動安裝,因此記得自行安裝OpenConnect,指令如下:
OpenConnect是用以建立連線的程式,vpnc-scripts則是建立連線參照的Script檔。
在安裝完成後,可以使用下列指令來查看其版本及內容:
在此會用到的是OpenConnect的主程式「/usr/sbin/openconnect」及「vpnc-scripts」裡面的「etc/vpnc/vpnc-script」。
手動建立連線
接著,就可以建立連線:
執行OpenConnect程式,並讀取「/etc/vpnc/vpnc-script」作為其建立連線時的Script檔,最後指定要連線的伺服器位址「210.66.233.2」。
由於沒有匯入CA的憑證,因此會出現下列訊息:
此時,輸入「yes」同意即可。接著,會詢問使用者名稱及密碼: