[RouterOS] wireguard 架設教學+補充
之前有轉載備份Site to Site,最近有需求是Client to Site
是使用Android
於是參考這篇做法:https://omega.idv.tw/kdb120/viewthread.php?forumid=67&goto=lastpost
但都設定好之後一直沒有流量進來,連三個FW規則UDP packet都沒半個進來
後來發現是Android APP端這段敘述要改一下
Peer
Public key 填入 RouserOS 的 xJftGuKH/AF322qwpMPr/phuthcetYwT/20yzjIk7RA=
終端點 填入外網IP 114.35.199.168:13231
允許的 IPs 填入 10.0.1.0/24 ->這裡應該要填0.0.0.0/0,才會有流量往端點送
原論壇無法註冊回復,所以我就自己打一篇筆記下來~~~
也可參考:https://www.77bx.com/322.html
以下為原文轉載:
RouterOS 升級到 v7 版本後內建支援 WireGuard 喔~
走 UDP 協定~
官網
https://www.wireguard.com
開放原始碼
https://github.com/WireGuard
Client 端
https://www.wireguard.com/install/
Windows
https://download.wireguard.com/windows-client/wireguard-installer.exe
Android
https://play.google.com/store/apps/details?id=com.wireguard.android
iOS
https://apps.apple.com/app/wireguard/id1441195209
macOS
https://apps.apple.com/app/wireguard/id1451685025
接下來是 RouterOS 上的設定教學
WireGuard 預設是走 UDP 13231
我的內網網段是 10.0.1.0/24
WireGuard 網段 10.0.2.0/24
外網是 pppoe-out1 ,IP 是 114.35.199.168
先開防火牆設定
IP -> Firewall -> Filter Rules -> + 新增規則 -> General ->
Chain: input
Protocol: 17 (udp)
Dst. Port: 13231
In. Interdace: pppoe-out1
Action -> Action: accept -> OK
接下來還是新增規則讓 10.0.1.0/24 與 10.0.2.0/24 可以互連
IP -> Firewall -> Filter Rules -> + 新增規則 -> General ->
Chain: forward
Src. Address: 10.0.1.0/24
Dst. Address: 10.0.2.0/24
Action -> Action: accept -> OK
IP -> Firewall -> Filter Rules -> + 新增規則 -> General ->
Chain: forward
Src. Address: 10.0.2.0/24
Dst. Address: 10.0.1.0/24
Action -> Action: accept -> OK
再來是 WireGuard 的設定
WireGuard -> WireGuard -> 按下 + 新增 -> General ->
Name: 自訂,這裡是 wireguard1
MTU: 1420 預設值即可
Listen Port: 13231 預設值即可
-> OK
我們滑鼠左鍵點兩下剛剛建立的 wireguard1 在 Public Key: 滑鼠右鍵點一下 Copy all
這一串 Public Key 等等會用到
xJftGuKH/AF322qwpMPr/phuthcetYwT/20yzjIk7RA=
最後要設定 Address List 不然連線不會通~
IP -> Addresses -> Address List -> + 新增 -> New Address
Address: 10.0.2.0/24
Interface: wireguard1
-> OK
Android 手機的設定
開啟已安裝好的 WireGuard 程式 -> 右下角的 + 按下去
選擇 從空白開始建立
界面
Name 自訂 我填 wireguard1
Private key 按下右邊的重置符號會自動生成,包含 Public key
複製 Public Key 等等會使用到 bt5Bcc2gYcA7WNOGk13UD0Lq2/7SE6vDht+KB/Ku+18=
WireGuard 網段位置我定義 10.0.2.2/32
監聽連接埠 13231
Peer
Public key 填入 RouserOS 的 xJftGuKH/AF322qwpMPr/phuthcetYwT/20yzjIk7RA=
終端點 填入外網IP 114.35.199.168:13231
允許的 IPs 填入 10.0.1.0/24
回到 RouterOS 上 WireGuard 的設定
WireGuard -> Peer -> + 新增 ->
Public Key: 填入 Android 手機的 Public Key: bt5Bcc2gYcA7WNOGk13UD0Lq2/7SE6vDht+KB/Ku+18=
Allowed Address: 填入 10.0.2.2/32 剛剛在 Android 手機的設定值
-> OK
手機上右滑啟動 wireguard1 之後就可以連到內網囉~
手機上 允許的 IPs 填入 10.0.1.0/24 代表 10.0.1 的網段連線都透過 VPN wireguard1 來連線
要設定第二個裝置的話方式一樣,只是記得 10.0.2.2/32 要改成 10.0.2.3/32 不要有衝突就好以此類推~
RouterOS 上 WireGuard 只要新增 Peer ,Public Key 與 Allowed Address 要對應新的裝置
新裝置 界面 與 Peer 都要設定~
Q1:我設定完成後確認第一個設備手機可以通,但是設定完第二個設備 iPad 後可以通,但是換成手機不通了?怎麼辦?
A1:主要是網段設定的問題,如果沒有照教學使用 /32 而是設定 .0/24 的話就會有這個問題。
因為第一個撥通的設備是 Peer .0/24 整段取走了,第二個設備撥進來當然無法接收所以才不會通~
內網網段改為 /32 就沒問題囉~
原文轉載,Linux部分:
(第 2 篇)
在 Ubuntu 20.04 底下安裝沒有 GUI 介面可以操作,所以來個教學~
我是在 Hyper-V 底下測試的~首先將 Ubuntu 解析度調整為 1920×1080
開啟 Trtminal -> 編輯 gurb
sudo nano /etc/default/grub
將
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”
修改為
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash video=hyperv_fb:1920×1080″
儲存後先重開機
sudo reboot
再更新 grub 不然會卡住要強制重啟~
sudo update-grub
更新完 grub 後再重新開機
sudo reboot
視窗就會變成 1920×1080 囉~
RDP 工具首推 remmina
安裝 WireGuard
sudo apt install wireguard
切換到 root 權限
sudo -i
建立 wireguard 目錄 上面安裝已建立可以略過
mkdir -m 0700 /etc/wireguard/
切換目錄
cd /etc/wireguard/
建立 privatekey 與 publickey
umask 077; wg genkey | tee privatekey | wg pubkey > publickey
查看是否有建立
ls -l p*
查看 privatekey 等等備用
cat privatekey
xxx
設定 WireGuard VPN 設定檔
sudo nano /etc/wireguard/wg0.conf
[Interface]
PrivateKey = xxx
Address = 10.0.2.4/32
ListenPort = 13231
[Peer]
## RoutesOS 上的 public key ##
PublicKey = xJftGuKH/AF322qwpMPr/phuthcetYwT/20yzjIk7RA=
AllowedIPs = 10.0.1.0/24
Endpoint = 114.35.199.168:13231
防火牆開啟 upd 13231
ufw allow 13231/udp
我們加入開機後自動啟動 WireGuard service 先手動並看狀態
systemctl enable wg-quick@wg0
systemctl start wg-quick@wg0
systemctl status wg-quick@wg0
查看 publickey
wg
將 public key 記錄下來備用例如 xxxxxx=
查看我們的 wg0 ip 是不是我們設定的位置
ip a show wg0
最後在 RouterOS -> WireGuard -> WireGuard -> Peer -> + 新增 ->
Public Key: 填入 Ubuntu 的 Public Key: xxxxxx=
Allowed Address: 填入 10.0.2.4/32 剛剛在 Ubuntu 的設定值
-> OK
現在 Ubuntu 就可以連到 10.0.1.0/24 網段囉~
要關閉的話下 sudo systemctl stop wg-quick@wg0
原文轉載,Windows部分:
(第 3 篇)
Windows 10 建立教學
下載 Client 安裝
Windows
https://download.wireguard.com/windows-client/wireguard-installer.exe
安裝完畢後開啟程式 -> 新增隧道 -> 新增隧道精靈
會看到預設的公鑰與私鑰
名稱自訂
[Interface]
PrivateKey = xxx
Address = 10.0.2.5/32
ListenPort = 13231
[Peer]
## RoutesOS 上的 public key ##
PublicKey = xJftGuKH/AF322qwpMPr/phuthcetYwT/20yzjIk7RA=
AllowedIPs = 10.0.1.0/24
Endpoint = 114.35.199.168:13231
按下儲存
在 RouterOS -> WireGuard -> WireGuard -> Peer -> + 新增 ->
Public Key: 填入 Windows 10 的 Public Key: xxxxxx=
Allowed Address: 填入 10.0.2.5/32 剛剛在 Windows 10 的設定值
-> OK
現在 Windows 10 就可以連到 10.0.1.0/24 網段囉~
回到 Windows 10 的 WireGuard 介面 -> 按下 連線
就能看到如下連上囉~
Leave a comment
很抱歉,必須登入網站才能發佈留言。