robertbuss
Goto Top

Routing Wireguard

Hallo und einen schönen Sonntag euch.
Seit längerem Versuche ich mein DSLite Problem mit einem VPS und wireguard zu lösen.

Ich habe es bis her soweit geschafft das sich meine Fritzbox als Client mit dem VPS verbindet und ich vom heimischen LAN auf Dienste des VPS zugreifen kann.

Das gleiche klappt auch vom Mobildevice aus über Mobilfunk und auch aus fremden WLANs heraus

Was nicht klappt, vom Mobildevice über VPS ins Heimische LAN

Aktuell geht auch der komplette Traffic über das VPN. Das wäre aber nicht sinnvoll aus dem Heimischen LAN aber erstmal nicht Das vorrangige Problem.

Ich vermute das ich hier im Routing nachbessern muss und oder in der WG config

Aber hier stehe ich gerade vor einer Wand. Ich habe das Szenario mal aufgemalt und hoffe ihr könnt mir tips geben. Danke schon mal.

 wg0.conf


[Interface]
Address = 192.168.9.1/24,fd42:42:42::1/64
ListenPort = wireguardport
PrivateKey = DER Key
PostUp = iptables -I INPUT -p udp --dport PORT -j ACCEPT
PostUp = iptables -I FORWARD -i ens192 -o wg0 -j ACCEPT
PostUp = iptables -I FORWARD -i wg0 -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o ens192 -j MASQUERADE
PostUp = ip6tables -I FORWARD -i wg0 -j ACCEPT
PostUp = ip6tables -t nat -A POSTROUTING -o ens192 -j MASQUERADE
PostDown = iptables -D INPUT -p udp --dport PORT -j ACCEPT
PostDown = iptables -D FORWARD -i ens192 -o wg0 -j ACCEPT
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -o ens192 -j MASQUERADE
PostDown = ip6tables -D FORWARD -i wg0 -j ACCEPT
PostDown = ip6tables -t nat -D POSTROUTING -o ens192 -j MASQUERADE

### Client 1
[Peer]
PublicKey =
PresharedKey =
AllowedIPs = 192.168.9.3/32,fd42:42:42::3/128

### Client 2
[Peer]
PublicKey = 
PresharedKey = 
AllowedIPs = 192.168.9.4/32,fd42:42:42::4/128

### Client 3
[Peer]
PublicKey =
PresharedKey =/=
AllowedIPs = 192.168.9.2/32,fd42:42:42::2/128 
40487307-c62e-4b4f-8662-ea07f6b2a709

Content-Key: 7567079219

Url: https://administrator.de/contentid/7567079219

Printed on: April 28, 2024 at 06:04 o'clock

Member: aqui
aqui Jun 18, 2023 updated at 12:37:04 (UTC)
Goto Top
Ebenso einen schönen Sonntag! face-wink
Nein, dein Routing ist soweit OK. Das Cryptokey Routing bei Wireguard macht beim VPS so oder so weitgehend alles automatisch. Auffällig sind 2 Punkte:
  • Ein preshared Key ist mehr oder minder überflüssiger Overhead den du dir ersparen kannst (und solltest) für eine schlankere Konfig. (Siehe dazu HIER)
  • Außerdem ist zumindest eine der Client Konfigs fehlerhaft nämlich die die den Fritzbox WG Tunnel bestimmt. Dort fehlt unter den "AllowedIPs" das lokale LAN der FritzBox! (Siehe dazu auch hier) Ansonsten routet der WG VPS den Fritzbox LAN Traffic nicht in den Tunnel!

Das Fehlverhalten bedingt sehr wahrscheinlich ein fehlendes NAT/Masquerading im Tunnel am VPS.
VPN Clients die dort über den VPS reinkommen ohne NAT am Tunnelport werden am Ziel, sprich deiner heimischen FritzBox, mit ihrer öffentlichen IP lokal durch die dortige FB lokale ins Internet geroutet ohne zurück über den Tunnel zum VPS zu gehen.
Das hat dann zur Folge das der Rückrouten Traffic aus dem FB LAN mit einer anderen Absender IP am Client ankommt, was dann am VPN Client zum sofortigen Session Abbruch führt.
Hier findest du 2 Forenthreads die diese Problematik näher beschreiben:
Wie Portforwarding über 2 miteinander verbundenen pfSense realisieren
Routing zwischen zwei PfSense - Nutzung von public IP
NAT/Masquerading solltest du am VPS auch besser nicht in der WG Konfig machen sondern separat in der Firewall.

Mit anderen Worten musst du den Traffic zur heimischen FB am VPS Tunnelinterface NAT/Masqueraden. Nur so "sieht" die FB dann Tunneltraffic vom VPS und routet den Rückrouten Traffic auch wieder in den Tunnel zurück zum VPS statt lokal.

Tip:
Wenn du übrigens IKEv2 am VPS verwendest, kannst du dir die Frickelei mit zusätzlichen VPN Clients sparen und immer die onboard VPN Clients verwenden. Siehe dazu HIER.
Das Tutorial beschreibt auch gleich die Jumphost Konfig der FritzBox und das NAT aber mit den moderneren nftables statt dem Auslaufmodell iptables.

Auch eine gemischte VPN Infrastruktur kann man so realisieren. Client VPN Dialin mit IKEv2 und die Fritzbox Jumphost Kopplung mit Wireguard wenn man hier kein IPsec will. Den Jumphost in einem IKEv2 Umfeld auch mit IPsec anzubinden ist dann aber in dem Falle auch die Clients mit IPsec zu bedienen die sinnvollere Lösung.
Wie dort z.B. eine nftables Firewall Konfig aussehen kann zeigt dieser Thread.
Das Masquerading im Tunnel müsste man noch mit...
table ip nat {

        define VPN_NETS = {
        192.168.178.0/24
        }
        chain postrouting {
                type nat hook postrouting priority 100; policy accept;
		oifname $pub_iface ip daddr $VPN_NETS accept
                ip saddr 172.25.25.0/24 oifname $pub_iface masquerade
        }
} 
...ans Ende anhängen. face-wink
(172.25.25.0/24 ist hier das IKEv2 Client VPN Dialin IP Netz am VPS)

Wireguard mit der Fritzbox ist wegen der nicht Standard konformen AVM Implementation etwas tricky. Wenn man von oder auf die Fritzbox von oder auf klassische Wireguard Infrastruktur terminiert muss man einige Fallen beachten die dieses Tutorial im Detail beschreibt!
Member: robertbuss
robertbuss Jun 18, 2023 at 10:13:51 (UTC)
Goto Top
Vielen lieben Dank aqui,
wie immer kommt Hilfe von dir, und wie immer bekommt man viele Hausaufgaben mit verabreicht.
Ich werde mich diesen jetzt widmen und die nächsten Tage versuchen alles (das meiste) zu verstehen.
und mich dann mal an die Umsetzung machen.

LG Robert
Member: aqui
aqui Jul 02, 2023 at 14:04:54 (UTC)
Goto Top
Wenn es das denn nun war bitte deinen Thread auch als erledigt schliessen!
Member: robertbuss
robertbuss Jul 02, 2023 at 15:57:50 (UTC)
Goto Top
Ich bin ehrlich gesagt noch garnicht wieder dazu gekommen. Ich habe ein wenig dazu gelesen und bin aktuell bei dem Stand das du mit dem NAT eigentlich nur ne portweiterleitung meintest. Aber wenn das VPN richtig funktioniert brauche ich ja eigentlich keine Ports weiterleiten denn ich befinde mich ja dann mit meinem Client im Heimischen netz. Plan ist jetzt sobald ich wieder ran komme, einen separaten Rechner als VPN Client mit meinem VPS zu verbinden und nicht über die FRITZ!Box zu gehen. Also gelöst ist hier noch garnichts. Ich würde sagen die Probleme fangen erst noch an 😉
VG Robert
Member: aqui
aqui Jul 02, 2023 at 16:08:59 (UTC)
Goto Top
Aber wenn das VPN richtig funktioniert brauche ich ja eigentlich keine Ports weiterleiten
Das ist absolut richtig! 👍
Ein VPN ermöglich immer den geschützten Zugriff auf das heimische Netz.
Portforwarding hingegen ist immer unsicher und mit dem Loch in der Router Firewall lässt man immer ungeschützt Internet Traffic in sein lokales LAN was generell nicht ratsam ist.
Also gelöst ist hier noch garnichts. Ich würde sagen die Probleme fangen erst noch an
Na dann freuen wir uns auf kommende Herausforderungen! 😉
Member: robertbuss
robertbuss Aug 01, 2023 at 06:17:48 (UTC)
Goto Top
Da das Vorhaben nun noch etwas Reifen konnte und ich mir immer mal wider Gedanken darüber gemacht habe, möchte ich mal kurz Schildern was mir so vorschwebt und gerne Feedback einholen ob die Vorstellung OK oder totaler Blödsinn ist. Denn ehrlich gesagt fehlt mir hier KnowHow bezüglich einer Sinnvollen Strukturierung


Das aktuelle Scenario besteht ja darin das ich einen Anschluss mit privater IPv4 vom ISP habe und eine öffentliche IPv6 und mittels VPS mit fester IP einen Tunnel erzeugen will.
in meinem Heimischen LAN gibt es einen Cisco SG350 der sich um mehrere VLans Kümmert. und auch DHCP Server spielt.

Die Fritzbox lassen wir jetzt aussen vor. DHCP aus und dient eigentlich nur als Modem

Mein Wusch wäre es nun in eines der VLans einen MangoRouter zu hängen und auf dem den VPN Clienten einzurichten.

Und zwar so das ich dann über einen externen Clienten auf den VPS Zugreifen kann und dann quasi zu Hause im eigenen Netz bin mit zugriff auf meine VLANS

Dazu ist mir jetzt unklar ob und wie ich meine VPN IP´s in einem der Netze vergeben kann/muss natürlich dann auserhalb des DHCP Bereichs ( der ist je netz so oder so auf wenige clients beschränkt da der rest statisch Vergeben ist

außerdem möchte ich das der Verkehr der vom externen Client ins heimische Netz kommt auch dort nach aussen geht. also die heimische Internetverbindung nutzt. UND auch heimischer Traffic nach aussen soll nicht über den VPS gehen sondern direkt über die heimische Internetverbindung nach Aussen.

Als VPN Software hätte ich jetzt an Wireguard gedacht ABER das ist nicht in Stein gemeißelt.
Ich lasse mich da gerne belehren.


ALS wäre das ganze gerade nicht schon groß genug für mich hat sich da noch eine zweite Baustelle aufgetan die direkt damit verbunden ist

Meine Internetverbindung soll mit einem Zweiten Gebäude geteilt werden. Dazu haben wir aktuell eine Richtfunkstrecke direkt im Netz angehangen. (wird aktuell auch nur von EINER Vertrauenswürdigen Person genutzt)

Aber eine Dauerhafte Lösung ist das nicht. Daher soll auf meiner Seite eine Trennung der Netze erfolgen und auf der Anderen Seite soll vorerst eine Loadbalancing/Redundanzlösung aufgebaut werden. (die Internetverbindung des Hauses B ist instabil und langsamer als meine)

Bevor ich jetzt also mit meinem VPN weiter bastle stellt sich mir die Frage kann oder sollte ich das mit meiner Hardware umsetzen oder empfielt es sich hier selbst im Heimbereich evtl. schon etwas anderes zu nutzen was ich jetzt nicht auf dem Schirm habe aber mir mein leben erleichtert?

Perspektivisch (1-2 Jahre) soll dann NUR eine Anbindung über Glasfaser für beide Gebäude genutzt werden

BITTE bringt mal licht ins Dunkle. Ich muss hier nichts übers Knie Brechen aber ich möchte es "Richtig" machen. Danke schon mal fürs lesen der Wirren Ergüsse.
Member: aqui
Solution aqui Aug 01, 2023 updated at 17:04:10 (UTC)
Goto Top
Deine Vorstellungen sind OK. Das ist ein simples, klassisches Jumphost Szenario.
Und zwar so das ich dann über einen externen Clienten auf den VPS Zugreifen kann und dann quasi zu Hause im eigenen Netz bin mit zugriff auf meine VLANS
Ist doch hier alles schon in einem Tutorial beschrieben! Einfach mal die Suchfunktion benutzen. ;–)
Zusätzlich zu dem was da beschrieben ist konfigurierst du noch einen einfachen Wireguard Zugang und dann hast du einen universellen VPN Server der parallel beide klassischen VPN Protokolle je nach Geschmack supportet.
Ersterer hat den grossen Vorteil das du das auf jedem beliebigen Endgerät mit den bordeigenen VPN Clients nutzen kannst ohne mit externer VPN Clientsoftware rumfrickeln zu müssen. ;–)
Member: robertbuss
robertbuss Aug 04, 2023 at 04:58:50 (UTC)
Goto Top
Danke dir dieses Totorial hab ich irgendwie nicht wahrgenommen. Das versuch ich so erstmal umzusetzen. wenn das Dann läuft beginne ich jedoch mit der anbindung des Zweiten Hauses und spätestens dann werde ich hier sicher noch mal aufschlagen. ;)