Apr 26, 2019

在USG上將VLAN流量導向OpenVPN

在USG上將VLAN流量導向OpenVPN

問題

想要在不能使用 VPN 的產品上透過 Wifi 連到 VPN,就可以解開有些服務的地區限制,也可以以非常便利的方式快速切換 VPN。

環境

Unifi USG

解決辦法

首先先在你想要的國家架設 OpenVPN 伺服器,或是使用免費或付費的 OpenVPN 伺服器。

取得 ovpn 檔案後用記事本或你習慣的文字編輯器開啟檔案在 <ca> 之前加上 route-nopull

route-nopull #加上
<ca>
xxxxxxxxxxxxx

接下來將 ovpn 檔案複製到 USG,路徑:/config/openvpn/

scp /path/to/filename.ovpn user@usg-ip:/config/openvpn/

之後在 Unifi 上新增你要使用的 Corporate Network(有線網路)& Wireless Network(無線網路)並設定 VLANID

如果直接在USG上設定OpenVPN跟路由的話會因為重新啟動而覆蓋掉原本的更動,所以要在 Unifi Controller 中加上 config.gateway.json 檔案,內容如下:

config.gateway.json
{ "firewall": { "modify": { "namevpn": { "rule": { "10": { "action": "modify", "description": "Traffic to VLAN to VPN", "modify": { "table": "1" }, "source": { "address": "<VLAN's Address/Subnet>" } } } } }, "source-validation": "disable" }, "interfaces": { "ethernet": { "eth1": { "vif": { "<VLANID>": { "firewall": { "in": { "modify": "namevpn" } } } } } }, "openvpn": { "vtun0": { "firewall": { "in": { "name": "LAN_IN" }, "local": { "name": "LAN_LOCAL" }, "out": { "name": "LAN_OUT" } }, "config-file": "/config/openvpn/filename.ovpn" } } }, "protocols": { "static": { "table": { "1": { "interface-route": { "0.0.0.0/0": { "next-hop-interface": { "vtun0": "''" } } } } } } }, "service": { "nat": { "rule": { "5000": { "description": "masq to vpn vtun0", "destination": { "address": "0.0.0.0/0" }, "outbound-interface": "vtun0", "type": "masquerade" } } } } }

依照你的Unifi網路設定更改你想要使用的 <VLAN's Address/Subnet> & <VLANID>,之後將 config.gateway.json 複製到:/unifi/data/sites/<unifi_base>/

scp /path/to/config.gateway.json user@unifi-controller:/unifi/data/sites/<unifi_base>/

<unifi_base> 的位置因操作系統而異。你可以在瀏覽器的URL上面,控制器的網址中找到。原始站點名為 default,如果你有一個以上的站點,Unifi 將會為每個創建的站點分配一個隨機字符串。例如,當在站點的儀表板頁面面時,將在 URL 欄中看到:

https://127.0.0.1:8443/manage/s/ceb1m27d/dashboard

ceb1m27d 就是 <unifi_base> 的位置

把檔案丟進去以後你可以去 Devices > USG > Config > Manage Device > Force provision,強制 Provision USG,就會把你的設定檔推送到 USG 上,這個過程可能要等待數分鐘。

如果想要恢復的話單純刪除 config.gateway.json 後強制 Provision USG 就可以回復原狀了。

以上。

參考資料

UniFi – USG Advanced Configuration

USG Route VLAN over OpenVPN client

Tags: