Wireguard Site2Site с мобильным офисом

Wireguard Site2Site с мобильным офисом

У меня есть сети, подключенные к Wireguard.

Lan1:
  10.240.0.0/24
  via 10.100.1.1/32 on public static ip A.B.C.D/32

Lan2:
  192.168.0.0/24
  via 10.100.1.6/32 on dynamic ip from provider

Сеть 10.240.0.0 — это сеть Wireguard (wg0) через несколько публичных серверов, и один сервер — это «шлюз» со специальным интерфейсом wg1 с 10.100.1.1. Таким образом, я могу достичь со шлюза всех узлов в сети 192.168.0.0. На Lan2 это классическая локальная сеть с несколькими серверами. Также на этом пире я могу достичь всех узлов за Lan1.

Теперь я хочу добавить новый пир где-нибудь в "дикой местности" - мобильный офис. Пользователь должен иметь доступ к Lan1 и Lan2 одновременно, например, достичь 10.240.0.0/24 и 192.168.0.0/24. Сам пир - это мобильный телефон с клиентом Wireguard в качестве примера.

Шлюз Lan1 wg1.conf

[Interface]
Address = 10.100.1.1/32
...

PostUp   = iptables  -A FORWARD -i %i -j ACCEPT; iptables  -A FORWARD -o %i -j ACCEPT; iptables  -t nat -A POSTROUTING -o eth0 -j MASQUERADE;
PostDown = iptables  -D FORWARD -i %i -j ACCEPT; iptables  -D FORWARD -o %i -j ACCEPT; iptables  -t nat -D POSTROUTING -o eth0 -j MASQUERADE;

# road-warrior
[Peer]
PublicKey = ...
AllowedIps = 10.100.1.2/32

# Lan2 gateway
[Peer]
PublicKey = ...
AllowedIps = 10.100.1.6/32, 192.168.0.0/24

И хост Lan2

[Interface]
Address = 10.100.1.6/32
...

PostUp   = iptables  -A FORWARD -i %i -j ACCEPT; iptables  -A FORWARD -o %i -j ACCEPT; iptables  -t nat -A POSTROUTING -o ens18 -j MASQUERADE
PostDown = iptables  -D FORWARD -i %i -j ACCEPT; iptables  -D FORWARD -o %i -j ACCEPT; iptables  -t nat -D POSTROUTING -o ens18 -j MASQUERADE

# lan1_gate
[Peer]
PublicKey = ...
EndPoint = fqdn:port
AllowedIPs = 10.100.1.1/32, 10.240.0.0/24

Я могу определить (насколько я понимаю) на этом сотовом телефоне одноранговую точку шлюза lan1, поскольку у меня нет доступа к lan2_gateway, но я хочу направить весь трафик с 192.168.0.0 через lan1_gateway на lan2_gateway.

[Interface]
Address = 10.100.1.2/32
...

[Peer]
PublicKey = ...
EndPoint = fqdn:port
AllowedIPs = 10.100.1.1/32, 192.168.0.0/24, 10.240.0.0/24

Когда я подключаю road warrior к lan1, я могу достичь 10.240.0.0/24, но не 192.168.0.0. Что не так? Нужно ли мне еще одно правило пересылки на lan1_gate для пересылки трафика для 192.168.0.0 на 10.100.1.6? Это должно быть уже сделано.

#> ip r s
default via 172.31.1.1 dev eth0 onlink
...
10.100.1.2 dev wg1 scope link 
10.100.1.6 dev wg1 scope link 
...
10.240.0.4 dev wg0 scope link 
10.240.0.5 dev wg0 scope link 
...
172.31.1.1 dev eth0 proto kernel scope link src A.B.C.D 
192.168.0.0/24 dev wg1 scope link 

Есть идеи?

решение1

Если на хосте шлюза Lan1 не настроены дополнительные правила брандмауэра, трафик с вашего мобильного телефона «дорожного воина» будет пересылаться с вашего шлюза Lan1 на ваш шлюз Lan2 с использованием исходного адреса WireGuard телефона 10.100.1.2. Поэтому вам нужно добавить адрес телефона в AllowedIPsнастройку конфигурации WireGuard для хоста шлюза Lan2:

AllowedIPs = 10.100.1.1/32, 10.100.1.2/32, 10.240.0.0/24

Шлюз Lan2 будет отбрасывать все пакеты, получаемые им через соединение WireGuard со шлюзом Lan1, если исходный адрес пакета не включен в этот AllowedIPsпараметр.

Связанный контент