Wireguard VPN kein Handshake

Tom111222333

Ensign
Registriert
Mai 2019
Beiträge
203
Hallo,
ich versuche seit 2 Tagen verzweifelt mein Netzwerk welches mit einer Fritzbox 7490 angebunden ist per VPN erreichen zu können.
Hintergrund ist ein Homeserver Projekt, was ich momentan umsetze und was auch beinhaltet von überall aus auf Daten in einer Homecloud (Nextcloud) aber auch auf ein darüber laufendes NAS zugreifen zu können.
Auf diesem Homeserver läuft Proxmox und in Proxmox laufen einige Container, unter anderem einer der für Wireguard zuständig sein soll. Das Problem: Wireguard lässt sich egal was ich versuche nicht verbinden und das egal von welchem Gerät (iPhone, Linux Server, Windows Client....).
Versucht habe ich die Einrichtung mit dieser Anleitung und nach diesem Videotutorial. Da ich hier einen DS-Lite Anschluss habe (wusste ich vorher auch noch nicht..) dachte ich es könnte daran liegen und habe versucht die VPN Verbindung über einen V-Server von Ionos zu betreiben indem ich eine Verbindung vom Linux Server zum Wireguard auf dem V-Server aufbauen wollte, um dann vom V-Server aus die anderen Verbindungen herzustellen, da dieser ja entgegen meines Hausanschlusses eine feste IPv4 Adresse hat.
Resultat: Ebenfalls gleiches Problem.. Keine Verbindung egal von welchem Device. Die Portfreigabe ist auf der Fritzbox für den Linux Server eingerichtet, alles wie im Video beschrieben. Die Firewall habe ich mit ufw disable testweise komplett deaktiviert, jedoch ohne Erfolg.
Wenn ich versuche die Devices (Linux Server meines Homeserver und V-Server von Ionos) zu verbinden kommt keine Verbindung zustande. Mein Linux Server gibt wenn wg-show eingegeben wird nur Interface ip.des.interface und Peer ip.des.peer sowie die Keys aus. Keine Infos über Transfer. Der Linux Server gibt aus, dass Pakete gesendet werden aber keine ankommen. (transfer: 0 B received, 956.51KiB sent).

Was kann ich noch tun?
Ist die Lösung mit dem V-Server empfehlenswert?
 
Die Lösung ist durchaus empfehlenswert, wenn man keine eigene IPv4 hat (muss ja nicht fest sein, aber eben eine echte, eigene IPv4) und kein IPv6 nehmen will.

wie sehen denn deine configs aus? Wenn gar kein Handshake zustande kommt, liegt das Problem wohl bereits dort.

kannst du vom Handy aus lokal eine Verbindung zur VM auf dem Proxmox Host aufbauen? also als Endpoint die lokale IPv4 der VM?
 
Die Configs ohne Keys wären bestimmt hilfreich.
Davon ab - ich habe ein ähnliches Setup. Ich betreibe schon länger einen root Server von netcup. Dieser ist mit einer Ubuntu VM in meinem Heimnetz verbunden. Mit dem Handy oder anderen Geräten verbinde ich mich dann mit dem root Server. Portfreigaben in der Fritzbox sind nicht nötig, da die Ubuntu VM im Prinzip ein einfacher Client ist der den Traffic routet.
 
wg0.conf des V-Servers:
[Interface]
Address=192.168.200.1/24
ListenPort = 51820

PrivateKey=iCM....
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTR>
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POS>

# Client1
[Peer]
PublicKey=FQn...
AllowedIPs = 192.168.200.2/32

wg0.conf des Linux Servers auf dem Proxmox:
[Interface]
PrivateKey=eOq...
Address=192.168.200.2
DNS = 1.1.1.1

[Peer]
PublicKey=v3m...
Endpoint=IP.des.Vservers:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
 
bis auf, dass dein Linux Server keine vollständige Adresse angibt (192.168.200.2/24) sehe ich nichts, was ich nicht auch so habe.

ggf. probier einfach mal das /24 oder auch /32 am Ende der Adresse und auch eine Reduzierung der AllowedIPs auf das VPN Netz, also 192.168.200.0/24. "Minimalconfig" quasi. Prüf noch einmal, dass du bei Private und Public Keys nicht durcheinander gekommen bist

Root:
Private_Root

Public_Home

Home:
Private_Home

Public_Root

Ebenfalls kannst du probieren, ob dein Smartphone (oder PC) eine VPN Verbindung zu deinem Server zu Hause aufbauen kann, also als Endpoint dessen lokale IPv4 IP nehmen.

Ich gehe auch einfach davon aus, dass dein privates IPv4 Netzwerk zu Hause NICHT die 192.168.200.0/24 ist, und dass die unvollständigen PostUp und PostDown Zeilen nur daher kommen, dass man aus der Kommandozeile nur schwer so lange Zeilen kopieren kann :)
 
Das sind definitiv die richtigen Keys, habe ich gerade nochmal geprüft.
An die IP Adresse habe ich jetzt die richtige Endung (/24) drangeschrieben.
Funktioniert immer noch nicht. :/
Das hatte ich schon probiert, funktioniert leider auch nicht soweit ich das richtig gesehen hatte.
Der Router hat das Standard AVM Netz (192.168.178.1)
 
die AllowedIPs hast du testweise mal nur auf die VPN-IP des vServers reduziert?

Tom111222333 schrieb:
Wenn ich versuche die Devices (Linux Server meines Homeserver und V-Server von Ionos) zu verbinden kommt keine Verbindung zustande. Mein Linux Server gibt wenn wg-show eingegeben wird nur Interface ip.des.interface und Peer ip.des.peer sowie die Keys aus. Keine Infos über Transfer. Der Linux Server gibt aus, dass Pakete gesendet werden aber keine ankommen. (transfer: 0 B received, 956.51KiB sent).
Ich vermute, der erste "Linux Server" im Zitat ist der V-Server, oder?

Wie sieht denn die Firewall auf dem V-Server aus? Ist Port 51280 eingehend auf der Netzwerkschnittstelle denn überhaupt erlaubt? Im wg0.conf erlaubst du ja standardmäßig nur eingehenden und ausgehenden Traffic vom WG0 Interface. Und irgendein NAT wird gemacht (kannst du den Befehl mal komplett posten?). Damit ist ja aber eingehender Traffic auf Port 51280 eth0 (sofern das Interface so heißt) noch nicht erlaubt.

Wenn ich dein Zitat oben korrekt verstanden habe, sendet dein Linux-Server periodisch Daten (Keepalive), empfängt aber keine Antwort. der V-Server hingegen bekommt gar keine Pakete, also sendet er auch keine (wohin auch, er hat ja keinen Peer mit Endpoint und Keepalive).

Nachtrag:
Wie gesagt, zum grundsätzlichen Testen deiner VM kannst du auch lokal eine Verbindung zwischen Handy und VM aufbauen. einfach deinem Handy bspw. die 192.168.200.3/24 geben und versuchen, die VM zu erreichen. Dann sollte der Handshake zwischen den beiden zustande kommen. hilft dir zwar nicht für den Zugriff von Außen (außer du gehst doch über IPv6), schließt aber aus dass deine VM ein Problem hat.
 
Zuletzt bearbeitet:
Tom111222333 schrieb:
Da ich hier einen DS-Lite Anschluss habe
Mußt Du da nicht mit IPv6 Adressen arbeiten? Du hast ja keine öffentlich erreichbare IPv4-Adresse.
 
Der erste Linux Server ist tatsächlich der V-Server. Da hab ich mich verschrieben.
Der ganze Befehl lautet:
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens192 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens192 -j MASQUERADE
ens192 ist das Netzwerkinterface.
 
Also wenn du versuchst mit Clients oder dem V-Server auf dein Heimnetz zuzugreifen musst du über IPv6 gehen (->DS-Lite).
Selbst wenn der V-Server eine IPv4 Adresse hat, muss dieser ja wieder auf dein Heimnetz zugreifen. Oder baust du den Tunnel von deinem Heimnetz in Richtung V-Server auf? Und funktioniert das dann mit der Weiterleitung anderer eingehender VPN-Verbindungen auf dem V-Server in Richtung Heimnetz? Stell ich mir kompliziert vor...
 
Die Idee ist sich vom Heimnetz auf den V-Server zu verbinden und den dann quasi als Ausgangspunkt ins Heimnetz zu nutzen.
Bedeutet ich verbinde mich über mein Heimnetz zu dem V-Server und verbinde mich dann mit meinem iPhone mit dem V-Server und komme so mit dem iPhone mit einer IPv4 Adresse (Mobilfunknetz beispielsweise) in mein Heimnetz.
Soweit die Idee.
Eine andere Möglichkeit wäre mit einem Portmapper die IPv6 der Fritzbox in IPv4 "umzuwandeln".

Andere Ideen habe ich nicht wie man das realisieren könnte.
Auch mit Dyndns habe ich es schon versucht. Keine Chance..
 
ggf. fügst du folgendes in beide Zeilen hinzu, zum Testen
Code:
iptables -A FORWARD -i ens192 -p udp --dport 51280 -j ACCEPT

einfach zum sichergehen, dass eingehende Pakete auf UDP Port 51280 an ens192 nicht blockiert werden.

ist IP Forwarding denn aktiv?

Pete11 schrieb:
Mußt Du da nicht mit IPv6 Adressen arbeiten? Du hast ja keine öffentlich erreichbare IPv4-Adresse.
Nein muss man nicht. Auch wenn der Anschluss von Außen keine eigene IPv4 hat, kann man intern dennoch IPv4 verwenden. Das macht ja jeder. Ebenfalls kann man IPv4 Verbindungen nach Außen aufbauen, dafür hat man ja die geteilte öffentliche Adresse.

Korben2206 schrieb:
Also wenn du versuchst mit Clients oder dem V-Server auf dein Heimnetz zuzugreifen musst du über IPv6 gehen (->DS-Lite).
korrekt, wenn man von Außen eine Verbindung in das Heimnetzwerk aufbauen will.

Korben2206 schrieb:
Selbst wenn der V-Server eine IPv4 Adresse hat, muss dieser ja wieder auf dein Heimnetz zugreifen.
Das passiert bei jedem Webseitenaufruf. 99% aller Seiten laufen auf IPv4, die Antworten der Server kommen bei DS-Lite ja ebenfalls bei dir zu Hause an. Dafür der Verbindungsaufbau von der VM zum V-Server mit persistentkeepalive, damit die Verbindung dauerhaft offen bleibt.
Korben2206 schrieb:
Oder baust du den Tunnel von deinem Heimnetz in Richtung V-Server auf? Und funktioniert das dann mit der Weiterleitung anderer eingehender VPN-Verbindungen auf dem V-Server in Richtung Heimnetz? Stell ich mir kompliziert vor...
so hab ich es verstanden. und das ist eigentlich kein Hexenwerk. nur Routing.

DynDNS wird nicht gehen, solange du keine eigene, dedizierte externe IPv4 hast. (ok, DynDNS bei IPv6 sollte gehen :) da sollte man das ja sowieso benutzen)
 
Wenn es nicht eilig ist vielleicht einfach auf die 7.50 für die 7490 warten. Die soll sie ja noch abkriegen. Hab gerade die Laborversion auf meiner 6660, Wireguard funktioniert da einwandfrei.
 
  • Gefällt mir
Reaktionen: spcqike
spcqike schrieb:
Ebenfalls kann man IPv4 Verbindungen nach Außen aufbauen, dafür hat man ja die geteilte öffentliche Adresse.
Lies doch nochmal den Eingangspost:
Tom111222333 schrieb:
Hintergrund ist ein Homeserver Projekt, was ich momentan umsetze und was auch beinhaltet von überall aus auf Daten in einer Homecloud (Nextcloud) aber auch auf ein darüber laufendes NAS zugreifen zu können.
Ohne den Zugriff über IPv6-Adressen oder den Umweg über einen externen Server wird das nicht funktionieren.
 
@spcqike IP Forwarding ist aktiv.
Habe auch den Text an die Zeilen angefügt.

Funktioniert noch immer nicht.. Ich verzweifel langsam :D

Das ist ja quasi eine Verbindung von außen auf das Heimnetz denke ich.
Der V-Server ist ja bei Ionos und von dem aus möchte ich die Verbindung zum Heimnetz aufbauen um dann die anderen Geräte wie iPhone etc sich über den V-Server verbinden zu lassen, wegen IPv4 im Mobilfunknetz etc..
Ergänzung ()

Wäre eine Variante das mit Tailscale zu versuchen?
Da ist quasi jeder mit jedem verbunden wenn ich das richtig verstehe?

https://tailscale.com/
 
Zuletzt bearbeitet:
@Pete11 ich habe ja auch nichts anderes behauptet, oder? OP versucht ja den V-Server als Jump-Host zu verwenden. Oder als sein "zentrales, von extern erreichbares Gateway, was alles miteinander verbindet.
Den V-Server könnte er sich sparen, wenn er seine VM per IPv6 erreichbar machen würde und per IPv6 einen IPv4 Tunnel aufbaut. Aktuell versucht er aber den V-Server dazwischen zu schalten.

@Tom111222333 Bist du sicher, dass der UDP Port 51280 auf dem Server von Außen offen/erreichbar ist? was sagen denn die iptables dazu? Hast du wireguard auf dem V-Server neugestartet (also das Interface), nachdem du die Zeilen geändert hast?
Bzw, kann es sein, dass dein Router oder irgend etwas anderes den Traffic auf Port 51280 blockiert? Ggf. versuch mal dein Handy mit dem V-Server im mobilen Netz zu verbinden.


Tailscale ist eigentlich nichts anderes, als ein Dienst, der automatisch Wireguard Tunnel zwischen deinen Geräten aufbaut. (zumindest verstehe ich es so, wenn das nicht stimmt, klärt mich bitte auf :D) Mit ein bisschen Einarbeitung braucht man solche Dienste meiner Meinung nach nicht. Ich betreibe ebenfalls ein "komplexeres" Setting (1 Root-Server und 5 heimische Gateways die vermesht sind, dazu mehrere mobile Endgeräte die hier und da direkte Routen zum Server und den Heimanschlüssen haben. Was dann keine direkte Route bekommt, hat über irgendwelche Gateways dennoch eine indirekte Route)

solange "wg show" auf dem V-Server keine eingehenden Pakete anzeigt, sind auch keine angekommen. Dann blockiert irgendeine Firewall das Senden oder Empfangen.
 
Das Problem ist ds-lite. Die fritzboxen können momentan nur über ipv4 ein vpn erreichen. Über ipv6 ist es seit etwa einem Jahr nicht möglich. Ausser mit wireguard wurde das ipv6/vpn Problem endlich gelöst, dann machst du beim konfigurieren Fehler
 
Boah Leute, bleibt doch bitte mal beim Thema. IPv6 und Fritzboxen spielen doch gar keine Rolle mehr, seit der VServer im Spiel ist. Der Proxmox-Container ist jetzt Client, da ist doch völlig egal, ob er über IPv4 oder IPv6 mit dem Server kommuniziert. Wenn die Verbindung zum VPS steht, dann kann man natürlich auch jederzeit per IPv4 ins Heimnetz von Tom111222333. Wer das nicht nachvollziehen kann, der möge sich ab jetzt bitte nur noch lesend am Thread beteiligen.

@Tom111222333: Du musst folgende Dinge überprüfen:
  • kann deine VM den VPS auf Port 51820 problemlos erreichen? Teste das im Zweifel erst mal mit Low-Level Tools (Ping, netcat usw).
  • Überprüfe mittels TCP-Dump, was auf dem VPS auf Port 51820 ankommt. Blockt da irgendwas? Je nach VPS Anbieter muss man ja auch eine vorgelagerte Firewall einrichten (in Plesk oder so), und nicht nur iptables auf dem VPS.
Ansonsten der Hinweis: Nimm 0.0.0.0/0 aus den Allowed IPs raus, sonst klemmst du dich vielleicht sogar in deinem Heimnetz von deinem Container ab. Das willst du ja sicher nicht. Und achte darauf, dass es keine Adress-Konflikte gibt. Die NAT Rules würde ich auch erst mal aus der Wireguard-Konfig rauslassen. Ob du sie je brauchst, sei dahingestellt, und ob sie dann in der Wireguard Konfig gut aufgehoben sind, darf bezweifelt werden.
 
Es war eine Firewall Regel in der Ionos Oberfläche nicht gesetzt..
Jetzt funktioniert auch Wireguard.
Wie kann ich das nun so einrichten, dass ich von überall aus auf mein gesamtes Heimnetz zugreifen kann so als wäre ich zuhause?
Muss ich da irgendwas noch einrichten für?
Bislang komme ich nur auf den Server aber ich will ja auch beispielsweise auf die Fritzbox und auf die Nextcloud etc draufkommen wenn ich mich verbinde.
 
Zuletzt bearbeitet:
Du brauchst im wesentlich nur drei dinge

1. allowedIPs vom Peer „VM“ in der config des vServer müssen um deine LAN IPs (192.168.178.0/24) ergänzt werden
2. masquerade Und IPv4 forward in der VM aktivieren (wie auf dem vServer bereits gemacht)
3. dein Smartphone / Laptop muss als weiterer Peer im vServer aufgenommen werden und benötigt als allowedips zum vServer eben das VPN-Netz und dein lokales Netz.

Denk dran: allowedIPs sind sowohl Berechtigungen („der darf mich kontaktieren“) als auch Routen („hinter dem peer finde ich IP W.X.Y.Z“)
 
Zurück
Oben