OPNsense 安裝 wireguard site to site
原本想簡單用linux安裝wireguard 來達到site to site vpn , 無奈搞不定 , 只能依靠OPNsense幫忙了.
OPNsense 幾乎與pfSense 齊名, 是款開源免費,以及補漏洞快速的防火牆軟體, 評估後,我用OPNsense有三個理由:
- 介面簡單,更直覺, 滿像防火牆該有的樣子
- 哥是來找支援wireguard的系統, OPNsen阿莎力說有. 而pfSense一下子說有, 一下子又沒有,哥就不愛用了.
- 真. wireguard site to site
- windows簽入vpn, 可以一次連線多個site , 非常方便, 至少給麻瓜用, 不用挑戰麻瓜的邏輯思考, 一鍵多處簽入
目前還需要wireguard改善的:
- 動態簽入vpn,
目前用wireguard windows連線, tunnel ip居然無法自動取得, 那腳本就不能一份多用
情境 site to site vpn
Site A
對外IP: 192.168.1.1 , udp port: 65536
內網: 10.192.130.15/24
Wireguard Tunnel ip : 10.1.0.1/24
Site B
對外IP: 192.168.2.1 , udp port: 65536
內網: 191.1.0.0/24
Wireguard Tunnel ip : 10.1.0.2/24
安裝步驟:
- 安裝外掛程式
登入OPNsense , System -> Firmware -> Plugins 選擇安裝 os-wireguard-go


- 啟用WireGuard VPN

- 新增Local
設定 Name , Listen Port , tunnel ip . 裡面的 public key , private key 先不用輸入,等新增後會自動出現



- 新增Endpoints
這部分的資訊為對方服務器資訊, 以我們是Site A來說, 要輸入 Site B相關資訊


- 綁定Local與Endpoints
我們回過頭來修改Local, 設定其與Endpoints綁定


- 設定防火牆, 讓對方能存取我們的udp port

- 設定對方內網網段,與tunnel 網段(可以跟多個site互聯) , 讓內網與tunnel ip 能通過wireguard 介面, 進而互相溝通

另外一邊服務器, 請務必也用OPNsense , 不要像我這樣走冤枉路, 一邊OPNsense, 一邊Linux, 或是docker, 作法同上步驟, 資料記得不可一模一樣, 每個服務器ip, udp port , public key, 都不一樣
完成後, 可以到 lobby 查看, Lobby->Dashboard->右下角wireguard-go

ps.
1. 上面有一步驟可以輸入preshared key (也可以不輸入) , 若要輸入, 需登入OPNsense , 輸入 wg genpsk 即可產生, 這個key要放到所有相連結的服務器, Endpoints裡面
2. 參考資料 https://www.thomas-krenn.com/en/wiki/OPNsense_WireGuard_VPN_Site-to-Site_configuration