Wireguard Site2Site con oficina móvil

Wireguard Site2Site con oficina móvil

Tengo redes conectadas con 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

La red 10.240.0.0 es una red Wireguard (wg0) sobre múltiples servidores públicos y un servidor es una "puerta de enlace" con una interfaz wg1 especial con 10.100.1.1. Entonces puedo acceder desde la puerta de enlace a todos los nodos de la red 192.168.0.0. En Lan2 es una red local clásica con algunos servidores. También en ese par puedo llegar a todos los nodos detrás de Lan1.

Ahora quiero agregar un nuevo par en algún lugar "salvaje": una oficina móvil. El usuario debe tener acceso a Lan1 y Lan2 al mismo tiempo, por ejemplo, llegar a 10.240.0.0/24 y 192.168.0.0/24. El par en sí es un teléfono móvil con el cliente Wireguard como ejemplo.

Puerta de enlace 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

Y el anfitrión 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

Solo puedo definir (según tengo entendido) en ese teléfono celular el par de la puerta de enlace lan1, porque no tengo acceso a lan2_gateway pero quiero enrutar todo el tráfico de 192.168.0.0 sobre lan1_gateway a 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

Cuando conecto el road warrior con lan1, puedo llegar a 10.240.0.0/24 pero no a 192.168.0.0. ¿Lo que está mal? ¿Necesito otra regla de reenvío en lan1_gate para reenviar el tráfico de 192.168.0.0 a 10.100.1.6? Eso ya debería estar hecho.

#> 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 

¿Algunas ideas?

Respuesta1

A menos que tenga algunas reglas de firewall adicionales configuradas en el host de la puerta de enlace Lan1, el tráfico desde su teléfono celular "road warrior" se reenviará desde su puerta de enlace Lan1 a su puerta de enlace Lan2 utilizando la dirección de origen WireGuard original del teléfono de 10.100.1.2. Por lo tanto, debe agregar la dirección del teléfono a la AllowedIPsconfiguración de WireGuard para el host de la puerta de enlace Lan2:

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

La puerta de enlace Lan2 descartará cualquier paquete que reciba de su conexión WireGuard con la puerta de enlace Lan1 cuando la dirección de origen del paquete no esté incluida en esta AllowedIPsconfiguración.

información relacionada