目次

2024.02.21 WireguardクライアントをGatewayにする

50_dialy:2024:02:diagram1.png

global network X.X.X.X
Wireguard network 10.10.10.0/24
local networdk192.168.0.0/24

この環境で、MobileのWireguardから、local WireguardをGatewayとして、local network(192.168.0.0/24)に接続したい場合

Cloud上のWireGuard01の設定

こうする事で、192.168.0.0/24は、local Wireguardから出ていくことになります。
PostUpで、sysctl net.ipv4.ip_forward=1 と、iptablesを入れていく。

[Interface]
Address = 10.10.10.1/24
ListenPort = 51820
PrivateKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=

PostUp = sysctl net.ipv4.ip_forward=1
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; iptables -t nat -D POSTROUTING -s 10.10.10.0/24 -j MASQUERADE


[Peer]
### Mobile
PublicKey = YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY=
PresharedKey = ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ=
AllowedIPs = 10.10.10.2/32

[Peer]
### local
PublicKey = AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
PresharedKey = BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB=
AllowedIPs = 10.10.10.3/32,192.168.0.0/24

HomeのWireGuard02の設定

[Interface]
# client01
PrivateKey = EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE=   #~/client01/privkey の値
Address = 10.10.10.2/24   #client01のIP
DNS = 8.8.8.8, 8.8.4.4   #参照させたいDNS
MTU = 1353
PostUp = sysctl net.ipv4.ip_forward=1

[Peer]
# server
PublicKey = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF=   #~/server/pubkey の値
PresharedKey = BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB=   #~/client01/preshared の値
AllowedIPs = 10.10.10.0/24   #WireGuard経由で接続したいIPアドレスを指定
Endpoint = X.X.X.X:51820   #WireGuardサーバーのグローバルIPアドレス:ポート番号を指定
PersistentKeepAlive = 30

Nat設定ufw

※こちらは、もしCloud上のWireGuard01の設定 でNAT設定を入れずに、NAT設定をufwで行う場合の設定方法です。

https://dokuwiki.fl8.jp/01_linux/30_ubuntu/08_ubuntu_nat

# FORWARD
*filter
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wg0 -s 10.10.10.0/24 -j ACCEPT
COMMIT

# NAT
*nat
-F
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT

# ufw reload
Firewall reloaded

Mobile Wiregaurdの設定

Mobile側も192.168.0.0/24はWireguard経由にしておく。

[Interface]
PrivateKey = CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC=
Address = 10.10.10.2/24
DNS = 8.8.8.8, 8.8.4.4

[Peer]
PublicKey = DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD=
PresharedKey = ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ=
AllowedIPs = 10.10.10.0/24, 192.168.0.0/24
Endpoint = X.X.X.X:51820

WireGuard02がWindowsの場合

WireGuardじゃない方のネットワークを共有しておく