Portmapper und OpenVPN

l0n

Enthusiast
Thread Starter
Mitglied seit
13.03.2005
Beiträge
998
Ort
Amstetten, nähe Ulm
Hi zusammen,

ich bekomme die Konfiguration für einen Portmapper zu einem OpenVPN Endpunkt (bei mir daheim) nicht hin...

Folgendes Netz íst vorhanden:

Ubee EVW3226 Kabelmodem, Unitymedia 1Play 60Mbit Privatanschluss
TP-Link TL-WDR3600 mit OpenWRT Chaos Calmer 15.05.1 (WAN Port hängt an LAN1 des Ubee)

Ich habe einen DDNS Namen angelegt und einen Portmapper auf Port 1194.
Der OpenVPN Server auf dem TP-Link funktioniert, Verbindung vom LAN aus geht direkt.
Über das Portmapping hingegen kann der OpenVPN Client keine Verbindung zum Server aufbauen, Firewall Freigaben, etc. sind gesetzt.

Dann habe ich testweise mal einen Portmapper auf Port 80 gesetzt, die Firewall angepasst und siehe da ich komme über de6.portmap64.net [XXXXX] von aussen auf das Webinterface des TP-Link.

Wenn ich das nun "kopiere" und einfach den OpenVPN Port (1194) nutze, die Firewall anpasse (gleiche Konfiguration wie beim oberen Beispiel!) erreicht der Client den Server nicht.
OpenVPN läuft im TCP Modus, anbei die Konfiguration:

Code:
config openvpn 'myvpn'
        option enabled '1'
        option verb '3'
        option proto 'tcp'
        option dev 'tun'
        option server '10.8.0.0 255.255.255.0'
        option keepalive '10 120'
        option ca '/etc/openvpn/ca.crt'
        option cert '/etc/openvpn/my-server.crt'
        option key '/etc/openvpn/my-server.key'
        option dh '/etc/openvpn/dh2048.pem'
        option status '/var/log/openvpn.log'
        option client_to_client '1'
        list push 'redirect-gateway def1'
        list push 'dhcp-option DNS 192.168.1.1'
        list push 'route 192.168.1.0 255.255.255.0'
        option port '1194'

Kennt sich jemand mit der Thematik aus und hat ne Idee was hier nicht stimmt?

P.S.
Ich bin Sysadmin und dachte eigentlich ich kenne mich aus aber scheinbar ist dieses IPv6 Thema wohl immernoch Neuland :fresse:
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Also aus dem Bauch raus - das kann so nicht funktionieren...

Sehe ich das richtig, du nutzt nen externen Dienst für 4-to-6 NAT? (portmap64.net)
Und du hast offenbar nen DSLite Anschluss? (Unitymedia)

-> Weil wenn ja, dann wird das so nix.

Der externe Dienst "mapt" deine Anfragen aus dem v4 Adressbereich auf dein v6 public Netz, genauer auf die public IP(v6) Addresse deines Routers - der aber soll intern weiter reichen/weiter mapen.
Nach deiner OpenVPN Konfig aber versuchst du netzintern v4 only zu sprechen. Dein Router KANN also gar nicht das Paket nach intern geben (forwarden direkt oder routen), weil er auf der WAN Seite via v6 angesprochen wird - intern aber v4 sprechen soll. Zumindest erwartet dein OpenVPN Server wohl v4 nach der Konfig...

Dat wird so also nix.
- Was du schauen könntest - keine Ahnung ob das geht bei dir. Möglicherweise kannst du ein 6-to-4 NAT auf deinem Router machen um den Spaß dann intern wieder auf v4 zu bringen. Der OpenVPN Server sieht dann nur noch die übersetzte v4 Addresse und kann darauf antworten, dein Router schickt die Rückpakete dann wieder genattet zurück über v6 an den "portmap64.net" Server und der drehts wieder auf v4 für deinen Client. Hässlich ohne Ende - technisch aber machbar.
- Alternativ könntest du intern v6 fahren bei dir - bedenke aber, dass durch aktiv schalten von internem v6 möglicherweise deine Geräte dem Netz völlig offen stehen (Firewall prüfen am Router!!!). Dann solltest du aber dem "portmap64.net" Server direkt die IP deines OpenVPN Servers bekannt machen und nicht über den Umweg des Routers gehen, der mit dem Paket nämlich nix anfangen kann
- Für internes v6 mit public erreichbaren IPs sollte dein Router sinnigerweise in der Lage sein einen Prefix zu delegieren -> damit dein OpenVPN Server intern für die Einwahlclients auch v6 Addressen (die funktionieren!) rausgeben kann und über v6 gesprochen werden kann, sonst läuft du in komische Dreckeffekte bei nicht explizitem v6 Verbot auf der (Einwahl)Clientseite...




v6 ist eigentlich nicht so viel schwer(er) zu verstehen wie v4 - man muss sich halt von ein paar Grundsätzen lösen im Gedankengang. Wie eben, dass der Router meist mit einer IP (Endkundenbereich) kommt und irgendwo ein NAT stattfinden muss - kann man machen, ist aber eher dort nicht die Wahl.

PS: ich für meinen Teil würde übrigens tunlichst vermeiden solche externen Dienst da zwischen zu klemmen. Warum? Weil die potentiell in der Lage sind, MitM zu spielen auf deiner Strecke. Selbst kenne ich portmap64.net nicht - aber ich hab da schon die tollsten Dinger gesehen -> wo solche Dienste auf ner Art Reverse Proxy terminiert werden, der dann eiskalt die TLS Verbindungen bricht und extern wieder mit nem sauberen Zertifikat weiter spricht usw.
Mit dem Pferdefuß DSlight würde ICH für meinen Teil mir einfach nen mini vServer irgendwo mieten - dort ne public v4/v6 Konfig (also echtes Dual Stack) auf nem OpenVPN Server fahren oder irgend nem anderem VPN Software Produkt und dann zwischen dem vServer und Zuhause nen Tunnel spannen. Da die v4 Adresse idR static ist brauchts kein DynDNS Zeugs dafür - ne Domain gibts ggf. je nach Angebot gleich mit. Und dann routest du den Spaß einfach über diesen vServer da rein und fertig...
 
Zuletzt bearbeitet:
Danke für die Antwort!

Naja der OpenWRT Router ist der OpenVPN Server, der muss also nichts von 6-to-4 ins Netz natten.
Wie beschrieben habe ich testweise mal Port 80 (also das Webinterface des Routers) per Portmapper nach aussen "geschaltet". Das funktioniert spannenderweise...

Die Idee mit dem vServer hatte ich auch schon, allerdings ist feste-ip.net mit 4,95€ inkl. MwSt pro Jahr wohl die günstigste Alternative ;)

Das Sicherheitsthema hatte ich auch schon im Kopf, allerdings sollte hier ein SSL-VPN wohl geschützt genug sein, schließlich kennt der Portmapper ja meine Zertifikate nicht.
Und schlußendlich will ich nur von extern auf meinen TVHeadend zugreifen können, wenn die MPEG2 Streams (bzw. WebM) mit den frei empfangbaren Fernsehsendern abgreifen wollen, feel free :d

Ich verstehe IPv6 soweit schon nur ist der Pferdefuß DSLight hier wohl wirklich ein Problem, die UM Zwangskabelmodems schieben auch das IPv6 Advertising nicht wirklich durch, zumindest kann ich wenn ich auf Modem-Betrieb umstellen (aktuell im Routermodus, und ja Router kaskadieren ist nicht schön...) auf der WAN Seite des OpenWRT nicht per IPv6 kommunizieren.
 
Was Webinterface des Routers kommt, weil dein Router halt auch v6 sprechen kann - du sprichst ihn ja per v6 an (über den externen Dienst).
Normalerweise sollte ! das aber gar nicht gehen. Ich würde dir an der Stelle raten die Routerkonfig zu prüfen, dort sollte es normalerweise nen Schalter geben, damit eben diese Konfig Page nicht von public aus erreichbar ist. Denn was du kannst via dem DNS Namen, das kann irgend ein anderer, der die IP des Routers kennt, schließlich auch ;)

Aber intern mit dem OpenVPN kann das halt nicht funktionieren, wenn dein Server intern nur v4 spricht...

Wie wurde denn das Port Forwarding konfiguriert auf dem Router? Also die Konfig zur Weiterreichung der 1194 nach intern? -> weil normal brauchst du kein NAT für v6 Traffic.
Du sprichst von Public aus direkt die v6 IP des OpenVPN Servers an. Ohne externe Dienste, ohne NAT am Router usw. -> einzig die Firewall des Routers muss das Paket durchlassen... Sofern das nicht gegeben ist, KANN dein Prinzip so nicht funktionieren.

Zum Test, schnapp dir nen Client irgendwo mit INet Access und mach einfach ein Telnet auf tcp 1194 der v6 IP des OpenVPN Servers - wenn das geht, schauen wir weiter. Wenn das nicht geht, musst du das in den Griff bekommen, sonst funktionierts halt nicht. Oder du änderst deine Konfig entsprechend (6-to-4 NAT an/auf deinem Router bspw.)
 
Zuletzt bearbeitet:
Das Webinterface auf dem WAN Interface hab ich schon wieder deaktiviert ;)

Das Problem ist wohl so wie du sagst, der Client kommt mit IPv6 aber der OpenVPN Server reagiert nur auf IPv4.
Ich wüsste nur nicht wie ich von IPv6 auf IPv4 intern das NAT einstellen soll.
Die Firewall ist entsprechenden angepasst :)

Aber mit dem NAT bin ich mir leider nicht ganz sicher...


Edit:
Nach langem Gewälze von Konfigs und verschiedenen Tutorials im Internet werde ich morgen mal einen OpenVPN Server auf meinem OMV aufsetzen und schauen ob das vielleicht einfacher ist, die Firewall von OpenWRT kann nämlich IPv6 zu IPv4 umbiegen ;)
 
Zuletzt bearbeitet:
Warum gibst du dem OpenVPN nicht einfach ne v6 Adresse??? Das macht das doch viel einfacher als irgendwelches NAT Geschwurbel?
 
Da setzt ja mein Verständnisproblem an... :fresse:

Ich komme über ein IPv4 Netz an den Portmapper, der schiebt das Paket in ein IPv6 Paket und schiebt das dann Richtung meines Routers. Soweit so gut ;)

Aber: Wenn ich mit dem OpenVPN Server mit IPv6 sprechen will muss ich am Client ja auch schon per IPv6 (bzw. TCPv6) raus, was ja wiederum nicht geht da O2 (ich teste über mein Smartphone) nur IPv4 bietet.
Sonst müsste ich ja das IPv6 Paket in ein IPv4 Paket kapseln und der Portmapper müsste dann das IPv6 Paket wieder auspacken und an den OpenVPN schieben.

Oder sehe ich das gerade komplett falsch? :d
 
Ja, da hast du nen Denkfehler. :wink:
Der Portmapper betreibt ein 4-to-6 NAT. Das heist, deine Source (v4) Adresse wird auf eine v6 Adresse aus dem Netzbereich des Portmappers umgesetzt. Das macht der externe Portmapper Dienst für dich. Dein Server/Router/Gerät Zuhause sollte also als Source eine v6 Adresse sehen (und nicht die real IPv4 Adresse des mobilen Geräten!)
Wäre das nicht so, könntest du weder das Admin-Webinterface des Routers noch sonstirgendwas bei dir am eigenen Anschluss überhaupt erreichen, wenn dein Client nicht selbst ne v6 Adresse hat. (was er ja nicht hat - wie du sagst)

Gekapselt sollte da eigentlich nix werden - wobei ich da nicht 100% sicher bin, da ich solche Dienste nicht nutze. Technisch könnte man auch nen VPN Tunnel spannen (also IM Tunnel v4 sprechen und der Tunnel läuft vom lokalen Router/Gerät bis zum Server beim externen Dienst dann über v6), das Datenpaket könnte dann da beim externen Dienst auf ne public v4 IP genattet werden. Wäre zwar möglich, aber glaube ich nicht dass das so läuft.

Nach dem Bild hier:
Portmapper.DE
Ists ein "simples" 4-to-6 NAT. Du sprichst vorn xyz.portmap64.net:1234 an, der Dienst setzt deine Source IP (1.2.3.4 bspw.) auf irgend eine valide im INet geroutete IPv6 Adresse um (bspw. 2001:1:2:3:4::1) und forwardet gleichzeitig deinen "Port" (1234) auf die IPv6 Adresse deines Gerätes Zuhause, also auf bspw. [2002:7:8:9::1]:1234
-> ob du nun aber vom Portmapper Dienst auf [2002:7:8:9::1]:1234 (repräsentiert bspw. deinen Router) oder auf [2002:7:8:1000::1]:1234 (repräsentiert bspw. dein OpenVPN Server) leitest, ist völlig egal.
Der Dienst muss es nur wissen - müsstest du im Detail mal prüfen wie man das dort eindreht -> so wie ich das verstehe nutzt der Portmapper Dienst die IP für den Request, mit dem der DynDNS Eintrag erzeugt wurde - für deinen Fall müsste es also "reichen" dem OpenVPN Server beizubringen einfach den feste-ip.net Eintrag zu setzen anstatt des Routers (oder eben zusätzlich zum Router, falls du das für was auch immer noch benötigst -> obwohl alle anderen Geräte das exakt selbe Problem haben werden!)
 
Naja aber dann ist das Problem ja da geortet...
Dem OpenVPN Client gebe ich eine Konfig auf welche IPv4 Adresse er sich verbinden soll, der Server erwartet ebenfalls eine IPv4 Adresse.
Wenn dann aber 4-to-6 NAT läuft kommt ja eine IPv6, auf die der Server nicht reagiert.
Ich müsste dem Server also sagen er soll auf IPv6 reagieren, gleichzeitig müsste der Client aber auf die IPv4 des Portmappers verbinden, das aber mit IPv6 was ja wiederum nicht geht.

Ich glaube das wird so auf keinen Fall funktionieren.

Alternative wäre also Unitymedia Business Anschluss mit IPv4 oder vServer mieten und über den nach Hause verbinden.

Klasse :fresse:
 
Doch schon, das funktioniert - dafür ist der Portmapper ja da...
Du kannst ja auf nen DNS Eintrag verbinden anstatt auf ner statischen IP. Dieser DNS Eintrag zeigt auf die v4 Adresse, welche du vom Portmapper Dienst bekommst.
Und der Portmapper macht das NAT - thats it. (fast) -> der Server muss natürlich v6 verstehen, logisch. Aber dazu gibts im INet zu Hauf Anleitungen für OpenVPN und v6.


Für genau solche Themen gibts ja das 4-to-6 NAT oder 6-to-4 NAT, wenn es umgekehrt laufen soll. Wie gesagt, du könntest technisch auch auf einem Router (also dem Ding stehend vor dem OpenVPN Server) ein 6-to-4 NAT machen. Also das, was der Portmapper Dienst für dich von v4 auf v6 umsetzt für intern wieder auf v4 zurück übersetzen. Ist Schwurbelmist - aber geht ebenso.
Ich denke das größte Problem hier ist eher die Denkweise - also erstmal dahinter zu steigen wie das mit dem Dual Stack Zeugs läuft/laufen kann/laufen sollte... :wink: Der Rest ist dann nur noch ne stupide Umsetzung und nicht so ultra Wild.


Und wie oben schonmal erwähnt, wenn dir das alles zu kompliziert ist, wäre es immernoch möglich irgendwo nen mini vServer zu mieten, der Dual Stack kann. Dann spannst du einfach einen Tunnel zwischen Router@Home und vServer und tunnelst den Spaß da einfach durch. Kostet aber halt ein paar Euro... Ich nutze hier bspw. NetCup (nen vServer) -> der kleinste kostet dort aktuell 32,28€ im Jahr. Hast dabei aber eben auch den Vorteil nicht auf nen Dritten sozusagen angewiesen zu sein und bist völlig frei in der Konfig.
 
Als finale Meldung ;)

Hab mir jetzt bei vserver.site nen vServer gemietet, 2€/Monat.
Site-to-Site VPN zwischen daheim und vServer läuft, Roadwarrior VPN zum vServer funzt und nebenbei läuft noch ne Nextcloud Instanz,also alles prima :d
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh