Wireguard Service startet bei Angabe von Allowed IPs nicht mehr

Started by AndreK, April 04, 2021, 08:35:19 PM

Previous topic - Next topic
Hallo zusammen,

Ich habe auf meiner Sense den WireGuard installiert und wollte meine Client IPsec's damit ablösen.

Dabei habe ich mich an diese Anleitung gehalten: https://www.thomas-krenn.com/de/wiki/OPNsense_WireGuard_VPN_f%C3%BCr_Road_Warrior_einrichten

Hier einmal die Config vom Server:

root@OPNsense-1:~ # less /usr/local/etc/wireguard/wg0.conf

[Interface]
Address = 10.10.10.1/24
DNS = 192.168.106.5,192.168.106.6
ListenPort = 51820
PrivateKey = geheim
[Peer]
PublicKey = auch_geheim
AllowedIPs = 192.168.106.0/24,10.10.10.2/32


Wenn ich bei AllowedIPs nur die 10.10.10.2/32 drin stehen habe, dann startet der Dienst und das Interfeace wg0 startet auch. Füge ich mein internes Netz 192.168.106.0/24 hinzu startet der Dienst nicht mehr.

Ein Restart des Dienstes (mit AllowedIPs = 192.168.106.0/24,10.10.10.2/32) auf der Console sieht wie folgt aus:

root@OPNsense-1:~ # /usr/local/etc/rc.d/wireguard restart
wg-quick: `wg0' is not a WireGuard interface
[#] ifconfig wg create name wg0
[!] Missing WireGuard kernel support (ifconfig: SIOCIFCREATE2: Invalid argument). Falling back to slow userspace implementation.
[#] wireguard-go wg0
[#] wg setconf wg0 /dev/stdin
[#] ifconfig wg0 inet 10.10.10.1/24 alias
[#] ifconfig wg0 mtu 1420
[#] ifconfig wg0 up
[#] resolvconf -a wg0 -x
[#] route -q -n add -inet 10.10.10.2/32 -interface wg0
[#] route -q -n add -inet 192.168.106.0/24 -interface wg0
[#] resolvconf -d wg0
[#] rm -f /var/run/wireguard/wg0.sock


In System: Log Files: General gibt er folgendes aus:

2021-04-04T20:29:12 kernel wg0: link state changed to DOWN
2021-04-04T20:29:12 kernel tun0: changing name to 'wg0'
2021-04-04T20:29:12 kernel tun0: link state changed to UP


Aber leider kann ich nicht rausfinden warum das Interface wieder aus geht.

Version des Systems:

OPNsense 21.1.4-amd64
FreeBSD 12.1-RELEASE-p15-HBSD
OpenSSL 1.1.1k 25 Mar 2021

os-wireguard 1.5

Hallo AndreK,

das sieht weniger nach der Anleitung, ein wenig mehr nach Freestyle aus  :)

Ich denke die "AllowedIPs" sollten zum Netz von "Address" gehören.

Was ist die Idee hinter dem "192.168.106.0/24"? Dass die DNS-Server erreicht werden?

(es sieht irgendwie auch nicht richtig aus, dass das schon mit Interface vorhandene Netz "192.168.106.0/24" auch über wg0 geroutet werden soll. Wahrscheinlich gibt es dafür schon eine Route über 192.168.106.X/24)

Grüße, Bernd


IPU451, 16GB RAM, 120GB SSD:
OPNsense 22.7.11_1-amd64
FreeBSD 13.1-RELEASE-p5
OpenSSL 1.1.1s 1 Nov 2022

IPU441, 8GB RAM, 120GB SSD:
OPNsense 23.1.1_2-amd64
FreeBSD 13.1-RELEASE-p6
OpenSSL 1.1.1t 7 Feb 2023

Dein internes Netz gehört da auf dem 'Server' nicht hinein, sondern z.B. das Netz der Gegenseite, das erreichbar sein sollte (bei Site2site).

Auf dem Endgerät müsste das lokale Netz des Servers angegeben werden.

Die Bezeichnung Allowed IPs kann einen auch etwas in die Irre führen :-)



oot@gw:~ # less /usr/local/etc/wireguard/wg0.conf

[Interface]
Address = 10.11.100.1/24
DNS = 10.11.10.254
ListenPort = 51820
PrivateKey = =
[Peer]
PublicKey = =
AllowedIPs = 10.11.100.2/32
[Peer]
PublicKey = CGfM0p+/rQPwNjGb/YUw=
AllowedIPs = 10.11.100.5/32
[Peer]
PublicKey = /=
AllowedIPs = 10.11.100.4/32

Sorry für den getrennten Post - der Editor hier spackt auf meinem Telefon immer ab
und editiert irgendwo im Post herum.
Oben Mal meine Konfig, wobei
10.11.10.254 die lokale IP der Sense
10.11.100.0/24 das Wireguard Tunnelnetzwerk

Auf dem Endgerät habe ich dann die 3 benötigten VLANs
10.11.10.0/24, 10.11.22.0/24, 10.11.23.0/24 in den AllowedIPs

Hallo,

Ok dann hab ich das AllowedIP falsch verstanden. Dachte es muss auf beiden Seiten rein.

Hab das Netz 192.168.106.0/24 nun aus dem Server entfernt und es ist nur noch im Client alktiv. Dann kommt der Dienst auch wieder hoch.

In meinem Fall ist das nur ein C2S.

Nun kann ich mich auch verbinden, jedoch finden keine Handshakes statt.
Firewall Regel steht auf Allow to any.
Anscheind passt mein ausgehendes Routing noch nicht.


Sorry, bin was das die Fehlersuche angeht da auch überfordert (ist halt nicht so gesprächig oder ich habe noch nicht den richtigen Weg gefunden).
Bis dato hatte ich immer den Eindruck, dass sobald auf dem Client unter empfangen ein paar KiB auftauchen alles im Lot ist.
Gerade der Windows-Client geht sonst auch auf aktiv obwohl er gar nicht verbunden ist.
Hast du die Schlüssel schon Mal kontrolliert / neu vergeben? Eventuell ist da beim Copy/Paste ein Zeichen abgeschnitten worden oder ähnliches.
Und, falls ich nicht richtig erinnere: die Sense ruhig einmal neu starten. Ich meine, dass es bei mir auch erst nach einem Restart funktionierte.

Hallo AndeK

ich habe nach den opnsense-docs https://docs.opnsense.org/manual/how-tos/wireguard-client.html noch eine NAT/ Port-Forwarding Regel drin.

Vielleicht fehlt die noch?

Gruß, Bernd
IPU451, 16GB RAM, 120GB SSD:
OPNsense 22.7.11_1-amd64
FreeBSD 13.1-RELEASE-p5
OpenSSL 1.1.1s 1 Nov 2022

IPU441, 8GB RAM, 120GB SSD:
OPNsense 23.1.1_2-amd64
FreeBSD 13.1-RELEASE-p6
OpenSSL 1.1.1t 7 Feb 2023

Hallo

@lebernd
Da war der Fehler. Ich hatte nur eine FW-Regel angelegt und den Port durchgelassen, aber kein NAT eingerichtet.

Die Frage wäre nun, kann ich den WireGuard Server auch auf ein anderes Interface binden. Z.b auf mein WAN interface, dann könnte ich mir das NATen sparen.

Ich hab nun versucht noch einen 2ten User via Add Endpoint hinzuzufügen. Jedoch taucht dieser nicht in der Config auf (ja ich hab auf Save gedrückt ;) ). Ist das ein Bug der Gui.

Gruß Andre

Merkwürdig, ich nutze ausschließlich Rules UDP 51280 auf dem WAN Interface (PPPOE) f. IPv4 & IPV6, kein Portforwarding. Das scheint mir eigentlich auch der sinnvollere Weg zu sein.
WG horcht hier auch auf allen Interfaces (ich nutze das z.B. auch intern um in das abgetrennte IOT VLAN zu kommen).

root@gw:~ # netstat -u -l -p udp | grep 51820
udp6       0      0 *.51820                                       *.*
udp4       0      0 *.51820                                       *.*
root@gw:~ #



Bzgl deines zweiten Peers:
Nach dem Hinzufügen unter "Endpoints" musst du den noch unter deiner Local Config als Peer ausählen (Register Local/Edit).

Danke für den Hinweis.
Manchmal ist man auch einfach zu doof  >:( den ersten hab ich ja schließlich auch eingerichtet.

Mit der reinen "Portfreigabe" habe ich es auch versucht.

Hatte im Netstat auch gesehen das er auf allen Interfaces lauscht.
Das Problem ist die Pakete kommen an und er antwortet auch aber leider nicht auf dem Interface wo die Pakete reingekommen sind, sondern über sein default Gateway.

Dieses default Gateway ist aber nicht der DSL-Anschluss wo das Paket herkam. Werde dazu nochmal nen neues Thema mit Netzzeichnung etc aufmachen.


Hi,

danke für den Tip. Habe/werde das Problem lösen indem ich die 3 DSL Leitungen gegen eine GLasfaser tausche :)

Gruß Andre