Wireguard routed Subnets

Started by Fossi, March 13, 2020, 09:21:07 AM

Previous topic - Next topic
Hallo liebes Forum.

Ich versuche mich grad an der Konfiguration eines Wireguard Servers für mehrere Mobil Devices als quasi "immeran VPN" und möchte die Clients auch über PIHole in unserem Netz laufen lassen.

Die Tunnel laufen auch, aber was mich grundsätzlich stutzig macht: Wenn ich die allowed Subnets in den Endpoints auf den Servern angebe, kann ich eine Netzkonfiguration immer nur einmal angeben, beim zweiten client wird sie ignoriert.

10.10.15.2/32 geht auf dem ersten Client
10.10.15.3/32 geht auf dem zweiten Client

Muss ja auch so, weil das das VPN-Netz ist.

10.10.15.2/32, 10.10.10.0/24 geht auf dem ersten Client (das zweite Netz ist das Lan-Netz)
10.10.15.3/32, 10.10.10.0/24 geht auf dem zweiten Client NICHT (das zweite Netz wird ignoriert, der Client kann somit nicht auf Server im lokalen Lan zugreifen)

interface: wg1
  public key: xxxxxxxxxxxxxxxxxx=
  private key: (hidden)
  listening port: 51820

peer: xxxxxxxx=
  endpoint: xx.xx.xx.xx:22735
  allowed ips: 10.10.10.0/24, 10.10.15.2/32
  latest handshake: 1 minute, 48 seconds ago
  transfer: 307.01 KiB received, 1.41 MiB sent

peer:xxxxxxxxxx=
  endpoint: xx.xx.xx.xx:51820
  allowed ips: 10.10.15.3/32


Bitte nicht daran stören, dass das zweite Device grade nicht connected ist - Hab grad keinen Zugriff drauf.

Auf den Devices selbst habe ich 0.0.0.0/0 angegeben, damit tatsächlich alles über den Tunnel läuft.

Es macht ein bisschen den Eindruck, als wenn eine interne Prüfung der Konfiguration vorgenommen wird, und bei zwei identischen Adressen einfach eine rausgeschmissen wird. Für das VPN Netz würde das ja auch noch Sinn machen, aber nicht mehr für die Netze, die geroutet werden sollen. Handelt es sich hier um einen Bug, oder hab ichs noch nicht verstanden. Eigentlich hab ich it etlichen Beschreibungen, auch für andere Distros abgeglichen.

Und noch eine Frage: Welche IP muss ich angeben, wenn der unbound auf dem opnsense selbst der DNS für die Clients sein soll? Die .15.1 Des Wireguardtunnels oder z.b. die .10.1 als des Lan-Interfaces?

Danke schonmal.

VG - Fossi

Wenn du auf den Devices 0.0.0.0 machst, wieso dann nicht auf auf dem Server?
Dann wäre alles geklärt :)

Den Rest machst du über Firewallregeln ..

March 13, 2020, 11:10:06 AM #2 Last Edit: March 13, 2020, 11:14:18 AM by Fossi
Auch das führt zum gleichen Ergebnis - habs grad mal probiert.

Grundsätzlich ist dein Vorschlag logisch, jedoch wird auch hier die 0.0.0.0/0 nur für einen Client übernommen.

Hab grad mal nochwas probiert: 10.10.10.1/24 und 10.10.10.2/24 geht auch nicht, macht ja auch keinen Sinn.
Die Angabe wird korrekt interpretiert: 10.10.10.0/24 wird in List Configuration angezeigt und somit wieder nur bei einem Client übernommen.

Das ist echt schräg.

March 13, 2020, 11:33:15 AM #3 Last Edit: March 13, 2020, 11:35:31 AM by johnsmi
WireGuard macht Routing und Zugriffskontrolle.


z.B.
192.168.10.1/24 LAN
10.10.20.1/24 Wireguard-Netz

10.10.20.12/32 Wireguard Client
172.16.30.12/24 Netz hinter dem Wireguard-Client


Endpoint-Config auf Client:
192.168.10.0/24, 10.10.20.0/24
-> das schickt der Client in den Tunnel und aus diesen Netzen akzeptiert er Traffic.
bei 0.0.0.0/0 eben alles.

Client-Endpoint-Config auf Server:
AllowedIPs: 10.10.20.12/32, 172.16.30.0/24
-> das schickt der Server in den Tunnel und aus diesen Netzen akzeptiert er Traffic.

Hier ein 10.10.20.0/24 oder sogar 0.0.0.0/0 macht das Routing kaputt.

Deswegen nur das angeben, was für den einzelnen Client bestimmt ist: /32. Ggf. noch das Netz hinter dem Client, falls das gewünscht ist.


unbound hört auf allen Interfaces, ich gebe dort den 'direkt' verbundenen Server-Tunnelendpunkt aus dem Tunnel-Subnetz an.

Ach so. Die config der jeweiligen Seite gibt immer an, was laut Routing in den Tunnel soll.

Wenn also der Client auf seiner Seite 0.0.0.0/0 bekommt, hat er routingseitig Zugriff auf alle Netze auf dem Opnsense. Alles weitere muss dann ggf. über die Firewall erlaubt oder verneint werden, richtig?


Ich hab an openvpn gedacht, dort geht's ja immer um die jeweiligen Netze.

Sollte man die entsprechenden Einträge für die Firewall unter Wireguard oder unter wg0 eintragen? Hab da auch unterschiedliches gelesen. Teilweise wird auch noch eine NAT roule eingetragen, die ist bei mir unter WAN aber bereits vorhanden.

Danke bis hierher.

VG - Fossi

Quote from: Fossi on March 13, 2020, 01:29:28 PM
Wenn also der Client auf seiner Seite 0.0.0.0/0 bekommt, hat er routingseitig Zugriff auf alle Netze auf dem Opnsense. Alles weitere muss dann ggf. über die Firewall erlaubt oder verneint werden, richtig?
Genau.


Ich schreibe die Firewall-Regeln lieber auf das Interface, weil ich dort zuerst suche. Das finde ich übersichtlicher.

[WireGuard] ist die Gruppe der wg*-Interfaces
[wg0] ist das Interface


Bei mir funktioniert es bestens ohne das extra Outbound-NAT.