Wireguard op raspberry Pi 5 (Bookworm), Hoe

Ik wil een Wireguard verbining leggen vanaf mijn raspberry pi 5, aangesloten op een mobiel hotspot. Daarte heb ik in de fritzbox een wireguard setup gemaakt. Nu heb ik in de connection manager voor bookworm het volgende staan
in /etc/NetworkManager/system-connections\WireGuard connection 1.nmconnection

[connection]
id=WireGuard connection 1
uuid=b3883082-7a78-420c-9470-7197fe41f118
type=wireguard
autoconnect=false
interface-name=wg0
timestamp=1726862911

[wireguard]
private-key=<pivate key zoals door fritz.box genoemd>

[wireguard-peer.<public key zoals door mijn fritz.box genoemd>]
endpoint=<address van mijn internetverbindig thuis>:57584
preshared-key=<preshared key zoals door mijn fritz.box genoemd>
preshared-key-flags=0
persistent-keepalive=25
allowed-ips=192.168.178.1/24;0.0.0.0/0;

[ipv4]
address1=192.168.178.205/32
dns=192.168.178.1;
method=manual

[ipv6]
addr-gen-mode=stable-privacy
method=ignore

[proxy]

Maar hij lijkt geen verbinding te maken met thuis. Als ik het IP adres opvraag van de verbinding blijft dat het mobiele IP address en mijn fritz.box of andere thuisnetwerk delen kan ik niet bereiken. Het slotje verschijnt wel.

Wat doe ik fout?

Ik heb het gevoel dat je met je keys in mist gaat, maar daar heb ik geen reden voor, puur mijn eigen ervaring :slight_smile: Ik ken deze manier van wireguard config niet, maar:

  • Je router en je Pi 5 moeten allebei hun eigen private key hebben
  • de “peer” heeft de private key van de andere kant niet nodig, enkel de public key en de pre-shared key als je die gebruikt
  • de PSK (preshared key) is hetzelfde op router en Pi 5
  • het verkeer is twee kanten op via UDP: dus beide zijden moeten dus een open poort hebben om verkeer te kunnen ontvangen

De configs hieronder zijn de configs zoals door Wireguard native tooling gelezen wordt. Dus wat er voor Wireguard nodig is.
De configs zijn dus niet direct voor NetworkManager

Ik stuur zelf ALLES door vaneen mobiele client via de Wireguard router.
De DNS queries naar de “DNS” in mijn LAN die ook alle LAN devices kent, en filtert. (pi-hole + DNS/DHCP + Public DNS - keten). (vandaar default GW adres in client kant).
Hierdoor zijn ook alle LAN devices beschikbaar.

Op de “serverzijde” is nodig:

#Server privatekey
[Interface]
ListenPort = 12345
PrivateKey = C............lM=
Address = 10.192.168.1/24, 2a10:3781:xxx:yyy::1/64

#Remote
[Peer]
PublicKey = 1vtI...........yg=
AllowedIPs = 10.192.168.2, 2a10:3781:xxx:yyy::2
PersistentKeepalive = 120

#Other remote
[Peer]
PublicKey = ...

Bij behorende “clientzijde”

# Client private key
[Interface]
Address = 10.192.168.2, 2a10:3781:xxx:yyy::2
PrivateKey = O......E=
DNS=192.168.9.254, 2a10:3781:xxx:yyy:192:168:9:254     # DNS adressen

[Peer]
PublicKey = X......k4=
AllowedIPs = 0.0.0.0/1, 128.0.0.0/1, ::/1, 8000::/1
PersistentKeepalive = 120
EndPoint = ServerIP:12345

Client heeft eigen private & public key
Server heeft eigen pubic key
Alle clients hebben de public key van de server
De server heeft alle public keys van alle clients een per peer

Als ik een slag naar je NM config moet slaan:
Ander adres voor je mobiele station… WG is een routed verbinding, geen bridge
Andere Private/Public key paar maken.

[connection]
id=WireGuard connection 1
uuid=b3883082-7a78-420c-9470-7197fe41f118
type=wireguard
autoconnect=false
interface-name=wg0
timestamp=1726862911

[wireguard]
private-key=Peer-Private-Key

[wireguard-peer.FritzBOX-PublicKey]
endpoint=<address van mijn internetverbindig thuis>:57584
preshared-key=<preshared key zoals door mijn fritz.box genoemd>
preshared-key-flags=0
persistent-keepalive=25
allowed-ips=192.168.178.1/24;0.0.0.0/0;

[ipv4]
address1=192.168.180.205/32    #(Adres AFWIJKEND van LAN WG is een Routed interface,, geen bridge)
dns=192.168.178.1;
method=manual

[ipv6]
addr-gen-mode=stable-privacy
method=ignore

[proxy]

De preshared key is niet verplicht, echter wel handig om later toe tevoegen als alles werkt.
Dit heeft te maken met bescherming tegen Post Quantum Encryptie hardening.

wg genkey
dat is de manier om een sleutelset te genereren

Maakt de fritzbox geen QR code oid aan om met de telefoon te scannen?

Die QR code is de complete configuratie voor wireguard Inclusief keys., Dewoon scannen en save als file.
Zonder keys werkt wireguard niet, dus er MOET iets zijn dat ze aanmaakt.

IPSEC en OPENVPN hebben als nadeel die extra latency en extra onderhandeling veroorzaken (langere communicatie tussen client en server) waardoor je meer energie en dus betterij life-time kwijtraakt. Niet alleen voor de onderhandeling, maar ook de extra tijd die een schermpje aanstaat etc.

Public key is ALTIJD een afgeleide van de privatekey. De private key heeft een klein beetje meer info waardoor een public key te maken is. omgekeerd is voorlopig nog te tijdrovend.

Dan moet je even controleren of een ander profiel voor een andere wireguard peer vanaf de Fbox ook een andere sleutel geeft.
De sleutels horen uniek te zijn.(per wireguard interface).