Raspberry Pi VPN – Teil 6: VPN-Server unter IPv6

Raspberry Pi VPN

Dieser Artikel beschreibt, wie wir einen VPN-Tunnel auf Basis von IPv6 einrichten. Das geht nur, wenn am eigenen Internet Router auch eine öffentliche IPv6 Adresse anliegt, das dürfte aber heute eigentlich immer der Fall sein. Wer Zweifel hat, der lese bitte nochmal den Artikel IPv4 versus IPv6. Wessen Router vom Internet Service Provider auch eine IPv4 Adresse als Dual-Stack Anschluss zugewiesen bekommt, der kann sein VPN auch unter IPv4 aufsetzen, was zur Zeit sicher die bessere Variante ist. Also nochmal ganz deutlich: Hier bauen wir mit Hilfe eines Raspberry Pi einen VPN-Server auf, der IPv4 Daten durch einen IPv6 Tunnel transportiert. Warum man das zur Verbesserung der Datensicherheit seines Smartphones machen sollte und wie ein Virtual Private Network funktioniert, kann man in den ersten beiden Artikeln dieser Serie nachlesen.

Vorarbeiten

Bevor es an die Installation von PiVPN geht, sind einige Vorarbeiten zu erledigen, die ich in einem eigenen Artikel zusammengefasst habe. Erst wenn diese Vorarbeiten erfolgreich abgeschlossen sind, sollte man hierher zurückkehren und mit der Softwareinstallation am Raspberry Pi fortfahren, so wie ich es nachfolgend beschreibe.

PiVPN Server installieren

PiVPN ist eine Scriptsammlung, die es wesentlich vereinfacht, OpenVPN auf einem Raspberry Pi zu installieren. Und OpenVPN ist die Software, die unseren Raspberry Pi zum VPN-Server macht. Die schlechte Nachricht gleich zu Beginn, PiVPN unterstützt zur Zeit kein IPv6 – aber OpenVPN kann es und für PiVPN gibt es einen Workaround. Wir werden PiVPN zuerst wie für IPv4 installieren und dann ein paar Konfigurationsdateien editieren.

Vorab noch ein Hinweis: In der nachfolgenden Anleitung werden auch IPv4 Adressen zu sehen sein. Das liegt weniger daran, dass PiVPN zuerst für IPv4 installiert wird, wie eben erwähnt. Es liegt vor allem daran, dass wir im VPN-Tunnel ausschließlich IPv4 übertragen werden und die Daten dann auch per IPv4 ins Internet gehen. IPv6 ist lediglich das Transportnetz, auf dem das VPN selbst aufsetzt. Klingt kompliziert – ist es auch (ein wenig).

Los geht es mit einer SSH-Verbindung zum Raspberry Pi und der Aktualisierung der vorhandenen Installation:

sudo apt update
sudo apt upgrade

Dann wird mit folgendem Kommando PiVPN heruntergeladen und die Installation gestartet.

curl -L https://install.pivpn.io | bash

Die Bildergalerie zeigt die einzelnen Abfragen im Installationsvorgang. Die meisten davon können wir einfach mit Ok bestätigen, die Besonderheiten spreche ich nochmal explizit an:

PiVPN übernimmt die aktuellen Netzwerkeinstellungen und macht aus der IPv4 Adresse, auch wenn diese per DHCP zugeordnet wurde, eine statische Adresse. Das können wir einfach so bestätigen. In den Einstellungen am DHCP-Server (unser Internet Router) müssen wir nur Vorsorge tragen, dass der diese Adresse nicht einem anderen Gerät zusätzlich zuordnen möchte. Das können wir auf zwei Arten erreichen: einmal, in dem DHCP diese IP-Adresse fest dem Raspberry Pi zuordnet oder alternativ, in dem diese IP-Adresse aus dem Pool der zu vergebenden Adressen ausgenommen wird. Ich bevorzuge die erste Variante, alle meine Raspberry Pis bekommen per DHCP eine feste IPv4-Adresse.

Beim Netzwerkprotokoll bleiben wir bei UDP und der Port bleibt auf 1194. Das entspricht auch unseren Einstellungen am Router. Auch den Verschlüsselungsgrad können wir übernehmen. Interessant wird es bei der folgenden Abfrage:

Hier geht es um die öffentliche IP-Adresse. Die ändert sich bekanntlich täglich, deshalb können wir hier keine feste IP-Adresse eintragen, sondern nehmen die untere Variante, einen öffentlichen DNS-Eintrag zu nutzen. Darüber wird dann die jeweils aktuelle IPv6 Adresse aufgelöst.

Den Namen geben wir dann auf der nächsten Seite ein und das ist natürlich die Subdomäne, die wir von unserem DDNS-Anbieter vergeben bekommen haben. Als nächstes wird abgefragt, welchen DNS Provider (Server) der VPN-Server verwenden soll. Das hat nichts mit der DDNS-Geschichte von eben zu tun, sondern bestimmt wie der VPN-Server selbst seine Namensauflösung betreiben wird.

Hier ist es wichtig, nicht die Vorgabe Google zu nehmen. Wir wollen ja durch die Verwendung eines VPN-Tunnels ein Tracking durch Datenkraken wie Google erschweren. Da wäre es absolut kontraproduktiv, wenn wir Google alle unsere DNS Abfragen mitteilen. Hier also Custom auswählen!

Und auf der nächsten Seite können wir dann einen oder mehrere DNS-Server von Hand eintragen. Zu dieser Auswahlmöglichkeit muss ich ein bisschen was erklären: Wir könnten theoretisch alternative freie DNS-Server verwenden, wie zum Beispiel:

  • 146.185.167.43 für SecureDNS und
  • 194.150.168.168 für den Chaos Computer Club

Im Internet findet man noch weitere DNS-Server, die nicht mittracken. Aber das ist nicht die optimale Konfiguration, denn diese externen DNS-Server kennen nicht die Namen unserer internen Geräte im heimischen LAN. Wer also per VPN-Tunnel später auf seinen eigenen Fileserver oder einen anderen Raspberry Pi im Heimnetz zugreifen möchte, der trägt hier seinen eigenen Router als DNS-Server ein. Der versorgt sich dann seinerseits für externe Domänennamen bei DNS-Servern im Internet. (Hoffentlich nicht bei Google, sondern bei DNS-Servern des Internet Providers. Am besten mal kontrollieren!)

All diejenigen, die zusätzlich zu PiVPN auch noch Pi-Hole installieren werden, was sehr sinnvoll ist, die müssen nochmal umdenken. Pi-Hole – jetzt greife ich etwas vor – soll ja Trackingdienste blockieren und Pi-Hole macht das, in dem es sich in die Namensauflösung des Raspberry Pi einschleift. Also eigentlich müssten wir hier für Pi-Hole die IP-Adresse des Pi-Hole Servers – also die eigene IP-Adresse des Raspberry Pi eintragen. Das werden wir später auch tun, aber damit der VPN-Tunnel bereits vor der Installation von Pi-Hole getestet werden kann, bleiben wir einstweilen dabei, jetzt die interne IPv4 Adresse des Routers einzutragen. Wer die interne IP-Adresse seines Routers nicht kennt, der kann sie abfragen mit:

ip route
default via 192.168.0.1 dev wlan0 src 192.168.0.167 metric 303 
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.167 metric 303

Die IP-Adresse des eigenen Routers steht dann hinter default via.

Damit ist die Installation von PiVPN auch schon abgeschlossen und wir sollten den Raspberry Pi einmal durchbooten.

VPN Client anlegen

Die Installation des eigentlichen OpenVPN Clients erfolgt natürlich als App am Smartphone, die Konfiguration nehmen wir aber in weiten Teilen bereits hier am Server vor. Das hat den Vorteil, dass wir danach eine einzige Konfigurationsdatei auf das Smartphone übertragen und dort keine ellenlangen Schlüssel eintippen müssen.
Für jeden VPN-Client, also jedes Smartphone, legen wir wie folgt mit pivpn add eine VPN-Client-Konfiguration an:

$ pivpn add
Enter a Name for the Client:  SamsungS7
Enter the password for the client: ******* 
Enter the password again to verify: *******
spawn ./easyrsa build-client-full SamsungS7

Note: using Easy-RSA configuration from: ./vars
Generating an EC private key
writing new private key to '/etc/openvpn/easy-rsa/pki/private/SamsungS7.key.PNlzNH3SEk'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
Using configuration from /etc/openvpn/easy-rsa/openssl-easyrsa.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName            :ASN.1 12:'SamsungS7'
Certificate is to be certified until Jan 18 15:43:04 2029 GMT (3650 days)

Write out database with 1 new entries
Data Base Updated
Client's cert found: SamsungS7.crt
Client's Private Key found: SamsungS7.key
CA public Key found: ca.crt
tls-auth Private Key found: ta.key


========================================================
Done! SamsungS7.ovpn successfully created! 
SamsungS7.ovpn was copied to:
  /home/pi/ovpns
for easy transfer. Please use this profile only on one
device and create additional profiles for other devices.
========================================================

Wir brauchen lediglich einen Namen und ein Passwort zu vergeben und PiVPN generiert ein entsprechendes Client-Profil. Die vorhandenen Profile können wir auflisten mit:

$ pivpn list

: NOTE : The first entry should always be your valid server!

::: Certificate Status List :::
 ::  Status  ||   Name   :: 
     Valid   ::   server_75rZ9EcQAbEYDuvV
     Valid   ::   SamsungS7

Neben dem Server gibt es hier im Beispiel einen einzigen Client mit dem Namen SamsungS7 und für den hat PiVPN eine Konfigurationsdatei im Verzeichnis /home/pi/ovpns abgelegt.

$ ls ovpns
SamsungS7.ovpn

Konfigurationsdateien anpassen

Oben hatte ich es bereits erwähnt, PiVPN erlaubt es (noch) nicht den OpenVPN-Tunnel für IPv6 zu konfigurieren. Also müssen wir jetzt noch ein wenig Hand anlegen und zwei Konfigurationsdateien anpassen.

Server-Konfiguration editieren

sudo nano /etc/openvpn/server.conf

In dieser Datei ändern wir den Eintrag proto von udp auf udp6, dann sieht die Datei in etwa so aus:

dev tun
proto udp6
port 1194
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/server_75rZ9EcQAbEYDuvV.crt
key /etc/openvpn/easy-rsa/pki/private/server_75rZ9EcQAbEYDuvV.key
dh none
topology subnet
server 10.8.0.0 255.255.255.0
# Set your primary domain name server address for clients
push "dhcp-option DNS 192.168.0.1"
push "block-outside-dns"
# Override the Client default gateway by using 0.0.0.0/1 and
# 128.0.0.0/1 rather than 0.0.0.0/0. This has the benefit of
# overriding but not wiping out the original default gateway.
push "redirect-gateway def1"
client-to-client
keepalive 1800 3600
remote-cert-tls client
tls-version-min 1.2
tls-crypt /etc/openvpn/easy-rsa/pki/ta.key
cipher AES-256-CBC
auth SHA256
user nobody
group nogroup
persist-key
persist-tun
crl-verify /etc/openvpn/crl.pem
status /var/log/openvpn-status.log 20
status-version 3
syslog
verb 3
#DuplicateCNs allow access control on a less-granular, per user basis.
#Remove # if you will manage access by user instead of device. 
#duplicate-cn
# Generated for use by PiVPN.io

Client-Konfiguration editieren

Das gleiche passiert jetzt mit der Client-Konfiguration. Wir erinnern uns – das ist die Datei, die wir mit pivpn add angelegt hatten. Sie liegt im Verzeichnis ~/ovpns und hat als Dateinamen den Clientnamen, den wir vergeben hatten mit der Erweiterung .ovpn. Hier also beispielhaft:

nano ovpns/SamsungS7.ovpn

Auch hier ändern wir den Eintrag proto von udp auf udp6, dann sieht die Datei in etwa so aus:

client
dev tun
proto udp6
remote jsonp.dedyn.io 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
tls-version-min 1.2
verify-x509-name server_75rZ9EcQAbEYDuvV name
cipher AES-256-CBC
auth SHA256
auth-nocache
verb 3
# ... gekürzt ...

Client-Konfiguration aufs Smartphone übertragen

Jetzt müssen wir die geänderte Client-Konfigurationsdatei noch auf unser Smartphone bekommen. Dafür ist es vielleicht erst mal sinnvoll, sie vom Raspberry Pi auf den PC zu übertragen. Dazu braucht am RasPi weder FTP noch Samba eingerichtet werden, von einem Linux-Rechner aus geht das per SFTP, was wiederum auf SSH aufbaut. Im Linux-Dateimanager gehen wir auf Mit Server verbinden und tragen folgende Serveradresse ein:

sftp://pi@raspi167/home/pi

Anstelle meines raspi167 muss natürlich der eigene Name des Raspberry Pi eingegeben werden. Dann können wir in gewohnter Weise mit der grafischen Oberfläche auf den Raspberry Pi zugreifen und die Datei kopieren.

Auf das Smartphone bekommen wir die Datei dann in dem wir das Smartphone per USB anstecken. Alternativ können wir die Datei auch per E-Mail aufs Handy schicken.

Weitere Artikel in dieser Kategorie:

41 Kommentare

  1. Jerome

    Hallo,

    danke für die Anleitung.
    Für den mobilen Zugriff vom Smartphone wird aber eine mobile IPv6_Adresse vorausgesetzt, richtig ?
    D2-Kunden wären dann z.B. aussen vor, da die meisten nachwievor „nur“ mit einer IPv4-Adresse mit dem Smartphone im Netz sind.

    LG

  2. Helmut (Beitrag Autor)

    Genau so ist es, es sei denn, man bekommt IPv6 über einen WLAN-Hotspot.
    Mehr dazu in diesem Artikel Raspberry Pi VPN Teil 3: IPv4 versus IPv6.

  3. Hans

    Lieber Helmut,

    vielen Dank für die großartige Anleitung. Ich hätte hierzu zwei Fragen:
    Wie kann ich zwei RPI-VPNs koppeln, so dass alle Geräte auf der einen Seite auch die Geräte auch der anderen Seite erreichen? (quasi LAN-to-LAN statt Server-Client).
    Kannst du mir einen Tipp geben, wie ich die o.g. Anleitung dazu anpassen muss?
    Kann ich auch mehrere RPI-VPNs mit einander verbinden?
    Danke!

    Gruß
    Hans

  4. Sven

    Hallo Helmut,

    vielen Dank für die sehr ausführliche und gut beschriebene Anleitung.
    Eine kleine Frage hätte ich dann noch.
    Meine Situation: Telekom Mobilfunk, also Dual-Stack und DS-Lite zuhaus. Das bedeutet, dass der Tunnel ja nur über IPV6 aufgebaut werden kann. Können dann innerhalb des tunnels ipv4 und ipv6 gleichzeitig getunnelt werden oder wie kann ich mir das vorstellen? mal angenommen ich habe gerade zugriff auf meinen heimserver der nur ipv4 spricht und ich würde gleichzeitig eine werbsite aufrufen, die nur ipv6 spricht, was wäre dann?

    Gruß Sven

  5. Helmut (Beitrag Autor)

    Hallo Hans,
    mit PiVPN ist das nicht möglich, eventuell aber mit OpenVPN selbst. Aber dazu kann ich Dir leider keine Anleitung geben. Versuche mal „OpenVPN Lan to Lan“ in der Suchmaschine Deines Vertrauens!

  6. Helmut (Beitrag Autor)

    Richtig Sven,
    in Deiner Konstellation wirst Du typischerweise den Tunnel unter IPv6 aufbauen. Durch den Tunnel selbst wird mit PiVPN immer nur IPv4 übertragen. Das stellt aber kein Problem dar, da Webserver heute immer (auch) per IPv4 erreichbar sind.

  7. Hans

    Hallo Helmut,

    ich bin genau nach deiner Anleitung vorgegangen. Nun ist es so, dass ich mich intern (im WLAN) mich per VPN verbinden kann, von extern (anderes Netzwerk bzw. Mobilfunk mit IPv6/IPv4 DualStack) allerdings nicht.

    Kann es sein, dass ich noch ein paar Routen definieren muss, in der FB oder auf dem RPI? In anderen Anleitungen habe ich davon etwas gelesen. Oder ist das bei PIVPN nicht erforderlich?
    Hast du eine Idee, was ich tun kann, damit der Zugriff auch von außerhalb funktioniert?

  8. Helmut (Beitrag Autor)

    Nein Routen brauchst Du nicht definieren. Was sagt denn das Log am Smartphone? Wird der Domänenname richtig aufgelöst?

  9. Hans

    Ok, danke! Es scheint nun zu funktionieren. Die Portweiterleitung der FB hat komischerweise nicht richtig funktioniert. Nun klappt es! :-)

  10. Helmut (Beitrag Autor)

    Prima !!

  11. Hans

    Hallo Helmut,
    eine allerletzte Frage zum Thema: Weißt du, warum in der /etc/sysctl.conf dieser Eintrag auskommentiert ist?

    #net.ipv6.conf.all.forwarding=1

    Für ipv4 ist es aktiv. Muss es das nicht auch für ipv6 sein?
    Danke!

  12. Helmut (Beitrag Autor)

    Die Frage ist, was Du mit einer Änderung erreichen möchtest. Wenn alles funktioniert würde ich lieber die Finger davon lassen.

  13. Hans

    Ok, danke. Ich würde gerne auch IPv6 Seiten / Adressen aufrufen können. Aber das scheint doch etwas komplizierter zu sein… Liebe Grüße

  14. Helmut (Beitrag Autor)

    Du möchtest IPv6 durch den VPN-Tunnel leiten?
    Das ist mit PiVPN derzeit noch nicht möglich, PiVPN transportiert im Tunnel ausschließlich IPv4. Dazu müsstest Du Dich direkt in OpenVPN einlesen und möglicherweise auch Dein IPv6 Netz segmentieren.

  15. Hans

    Genau, das hatte ich vor.
    Danke für den Tipp, das werde ich machen!
    Liebe Grüße

  16. Thomas

    Hallo Helmut,

    ich habe mich genau an deine Anleitung gehalten. Der einzige Unterschied ist, dass ich das myfitz Konto als DDNS-Dienst verwende.

    Das Problem ist, dass ich immer die Meldung bekomme: Resolve: cannot resolve host address: xyz.myfritz.net:1194 (no address associated with host name)

    Hast du mir einen Tipp, was ich machen könnte?

  17. Helmut (Beitrag Autor)

    Es könnte am konfigurierten DDNS-Namen liegen. Der muss bei IPv6 auf den Raspberry Pi verweisen und folgendes Format haben:
    ..myfritz.net, bei mir war das raspi167.p0wrksbfopi2gppr.myfritz.net.
    Du hast also möglicherweise MyFritz nicht richtig konfiguriert oder PiVPN oder beides.

  18. Thomas

    Daran scheint es zu liegen. Wenn ich: ping raspberrypi.xyz.myfritz.net ausführe kommt immer „Zielhost nicht erreichbar“.
    Muss ich bei den Freigaben der FritzBox http (Port 80) und UDP (Port 1194) freigeben?

  19. Helmut (Beitrag Autor)

    Wenn es ein DNS Problem ist, dann hat es nichts mir den Freigaben zu tun. Also hier nicht durcheinander kommen und besser mal mit „nslookup“ prüfen, ob der Name aufgelöst wird.
    Freigeben brauchst Du nur UDP 1194, wobei – wenn ich mich recht erinnere – MyFritz von sich auch TCP anlegt. Aber das macht ja nichts.

  20. Thomas

    Hallo Helmt,

    ich habe gestern den halben Tag noch getestet.
    Was ich mittlerweile hinbekomme ist den Pi über das Internet anzupingen. Der VPN-Server geht aber leider nicht. Hier sagt er mir immer: „Cannot resolve host address“. So langsam weiß ich nicht mehr weiter.

  21. Helmut (Beitrag Autor)

    Thomas, Du lieferst leider nur wenig Informationen.
    Von wo aus pingst Du denn? Vom Smartphone? Und ist das im WLAN oder im mobilen Internet?
    Pingst Du per Namen oder per IP-Adresse?
    Wenn per Namen und das ist erfolgreich, ist dann auch der selbe Name im VPN-Client konfiguriert?

  22. Thomas

    Hallo Helmut,
    ich habe 2 Wohnsitze. Der Pi steht an Wohnsitz A, ist dort an einer FritzBox 7590 an einem DSLite Internet-Anschluss angeschlossen. In der FritzBox ist das FritzKOnto angelegt und ich komme auch von außerhalb (egal ob Smartphone oder anderer Heimanshcluss) auf die Konfigurationsseite der FritzBox.
    Auf dem Pi habe ich nach deiner ANleitung OpenVPN installiert, somit auch UDO6 als Protokoll und in der FritzBox ist auch für den Pi der Port 1194 freigegeben.
    Am Wohnsitz B hänge ich an einer ConnectBox ebenfalls einem DsLite Anschluss.
    Das Anpingen vom Wohnsitz B über „CMD“ mit „ping raspberrypi.xyz.myfritz.net“ klappt auch.
    Der OpenVPN verbindet sich aber nicht von Wohnsitz B mit Wohnsitz A (pi).
    Hier kommt immer die Meldung: RESOLVE: Cannot resolve host address: raspberrypi.​xyz.​myfritz.​net:1194 (Der angegebene Host ist unbekannt. )
    could not determine IPv4/IPv6 protocol

  23. Helmut (Beitrag Autor)

    Hallo Thomas,

    also beim Ping funktioniert die Namensauflösung und mit dem VPN-Client nicht.

    MyFritz scheint in Ordnung zu sein, sonst könntest Du den Raspberry Pi nicht pingen. Zur Sicherheit kannst Du mal die IPv6-Adresse, die der Ping ausgibt mit der IPv6-Adresse des Raspberry Pi vergleichen. Nicht dass irgendwas anderes den Ping returniert. Aber das ist unwahrscheinlich.

    Machst Du Ping und VPN-Client vom selben Gerät? Und welchen VPN-Client verwendest Du?

  24. Thomas

    Hallo Helmut,
    Die IPv6-Adressen sind identisch.
    Ich habe die ovpn-Datei nun im Editor geöffnet und hier probeweise die IPv6-Adresse des Pi, anstatt des „raspberrypi.xyz.myfritz.net“ angegeben.
    Hier kommt nun eine andere Meldung:TCP/UDP: Preserving recently used remote address: [AF_INET6]IPv6:1194
    Socket Buffers: R=[65536->65536] S=[65536->65536]
    UDPv6 link local: (not bound)
    UDPv6 link remote: [AF_INET6]IPv6:1194
    MANAGEMENT: >STATE:1571680285,WAIT,,,,,,

    Ich mache sowohl den Ping, wie auch den VPN-Client von meinem PC am Wohnsitz B.
    Ich nutze: OpenVPN 2.4.7

    Die Client-Datei sieht so aus:
    client
    dev tun
    proto udp6
    remote raspberrypi.​xyz.​myfritz.​net 1194
    resolv-retry infinite
    nobind
    persist-key
    persist-tun
    remote-cert-tls server
    tls-version-min 1.2
    verify-x509-name raspberrypi_xxx name
    cipher AES-256-CBC
    auth SHA256
    auth-nocache
    verb 3

    Ich bin mir nicht ganz sicher, was unter „verify-x509-name“ stehen sollte.

  25. Helmut (Beitrag Autor)

    Hallo Thomas,

    verify-x509-name hat bei mir einen kryptischen Inhalt, den PiVPN setzt. Da würde ich nichts ändern.
    Das ist dann also ein VPN-Client unter Windows. Kenne ich zwar nicht, aber der sollte ja genau so funktionieren, wie die unter Android.

    Fassen wir zusammen: Ein Ping geht, damit funktioniert auch IPv6 auf beiden Seiten, der Client kann IPv6 nutzen und MyFritz löst den Namen in eine IPv6 Adresse auf.
    Die Frage ist, warum die Namensauflösung am selben Gerät per Ping geht und per VPN-Client nicht.
    Vielleicht versucht der VPN-Client fälschlicherweise IPv4 zu nutzen.

    Überprüfe bitte, ob MyFritz neben der IPv6- auch eine IPv4-Adresse anbietet. Per nslookup oder in der internetseitigen Weboberfläche von MyFritz.
    Und schau, ob der VPN-Client in der Konfiguration die Möglichkeit bietet eine Verbindungsaufnahme per IPv4 explizit zu verbieten.
    Davor die Konfiguration besser wieder in den Ursprungszustand bringen, am besten das Profil löschen und die .ovpn-Datei neu importieren.
    Das wären die nächsten Schritte, die ich empfehlen kann.
    Viel Erfolg

  26. Thomas

    Hallo Helmut,
    ich habe heute nochmal probiert und es nun hinbekommen.
    Ich habe den OpenVPN auf TCP6 konfiguriert.
    Aber was letzendlich das entscheidende war, ist die Freigabe in der FritzBox.
    Hier habe ich eine neue My-Fritz Freigabe für meinen Raspberry erstellt, bei der ich das Schema „Manuelle Eingabe“ vpn:// genommen habe.
    Den Port habe ich bei 1194 belassen.

  27. Helmut (Beitrag Autor)

    Glückwunsch Thomas,

    dass es jetzt funktioniert. Das andere Schema bei der MyFritz-Freigabe, dürfte aber kaum die Ursache gewesen sein. Eher, dass sich MyFritz sehr leicht verkonfiguriert, sobald man manuell eingreift, was für VPN allerdings unumgänglich ist. Mir ist das mehrfach passiert. Du hast MyFritz neu konfiguriert und damit passt es jetzt. Eine Erklärung, warum die Namensauflösung bei einem Ping funktioniert hatte und im VPN-Client nicht, ist das allerdings auch nicht. Hauptsache es geht.

    Viel Erfolg weiterhin mit Deinem VPN

  28. Peter

    Hallo.Vielen Dank erstmal für die Anleitung.Ich habe diese soweit 1zu1 umgestzt kann aber leider in keinster Weise eine Verbindung aufbauen. Nach nun mehr als eine Woche hin und her testen bin ich mit meinem Latein am Ende. Kurz was zu meiner Konstellation:
    – Fritzbox mit DS-lite
    – Raspberry mit Pi-hole und PiVPN
    – vServer mit 6tunnel (um die IPv4 Anfragen von z.B. Mobilfunk auf IPv6 zu tunneln)

    Aufgrund des DS-Lite Anschlusses habe ich mir einen vServer gemietet und einen 6tunnel auf den Port 443 gebaut um von außen per IPv4 (Mobilfunk) auf den PiVPN zugreifen zu können.Der tunnel funktioniert so weit. In der Fritzbox habe ich eine Portfreigabe 443 auf die IPv6 Adresse des Raspberry geamcht.Da 6tunnel nur TCP beherrscht habe ich in der PiVPN-Konfiguration auch dieses ausgewählt.
    Die OpenVPN-Clients habe ich so eingestellt das sie eine Verbindung (IPv4) zu Port 443 des vServer aufbauen von wo es weiter (mit IPv6) zum Port 443 des Raspberry gehen soll.
    Leider bekommen die Clients aber keine Antwort vom Server.
    Was könnte hier noch die Ursache sein?

  29. Helmut (Beitrag Autor)

    Das tut mir leid, zu 6tunnel kann ich nichts sagen. Hast Du denn die Kompatibilität von PiVPN zu 6tunnel gecheckt?

  30. Peter

    Ja die Kompatibilität ist gegeben.

  31. Marcel

    Hallo,

    vielen Dank für dieses gute Tutorial. Ich bin darauf gekommen, da meine alte VPN Lösung, direkt über OpenVPN, nicht mehr funktionierte. Ich habe scheinbar ein ähnliches Problem wie Thomas (zwei Beiträge über mir). Könnt ihr mir sagen wie ihr die myFritz-Freigabe korrekt hinbekommen habt? Wenn ich eine Freigabe erzeuge, wird direkt ein IPv4 und ein IPv6 Eintrag erzeugt. Ich denke das diese Kombination sich gegenseitig behindert und der Grund für mein Problem sind.

    Da ich zusätzlich noch den Dienst von Feste-IP nutze, habe ich mein Problem, so gut wie ich es als nicht ITler kann, im Forum geschildert. Vielleicht hilft euch das weiter: https://forum.feste-ip.net/viewtopic.php?f=4&t=801

    Wie auch Thomas habe ich eben eine neue myFritz-Freigabe mit dem Schema „vpn://“ erzeugt. Auch hier wurde wieder eine IPv4 Eintrag, den ich gar nicht haben will, erzeugt. Wenn ich den IPv4 Eintrag manuell lösche, verschwindet aber auch automatisch der IPv6 Eintrag.

    Der VPN-Dienst an sich funktioniert soweit. Aus meinem lokalen Netz komme ich problemlos auf den VPN

  32. Helmut (Beitrag Autor)

    Nein eine IPv4 und IPv6-Freigabe behindern sich nicht gegenseitig. Eigentlich hab ich das oben im Artikel beschrieben, wie es mit MyFritz geht. Wo genau liegt denn das Problem, wenn Du es genauso machst? Wichtig ist die zusätzliche Freigabe für UDP.

  33. Marcel

    Genau der Punkt mit der zusätzlichen UDP-Freigabe irritiert mich…
    In der Vergangenheit konnte ich eine MyFritz-Freigabe einrichten und habe nur den IPv6 Eintrag bekommen. Dieser lief auf TCP, welches ich bewusst nutze, da es mit Feste-IP.net funktioniert (UDP wird soweit ich weiß nicht unterstützt).
    Nach einem Firmware-Update der Fritzbox (oder ich hab es selber irgendwie zerfummelt) war dort ein IPv4 und ein IPv6 Eintrag. Wie in dem oben verlinkten Forenbeitrag ist das bei meiner anderen MyFritz-Freigabe für meine NAS nicht passiert. Dort ist noch immer lediglich der IPv6-Eintrag vorhanden. Ich kann auch weiterhin wie gewohnt extern auf meine NAS zugreifen.
    Ich habe also die Vermutung, dass das Problem durch die doppelte (IPv4 und IPv6) TCP-Freigabe auf Port 1194 zustande kommt. Theoretisch kann ich aber auch auf feste-ip verzichten und direkt die myfritz-Adresse nutzen. Werde den VPN Server mal auf UDP6 umstellen und deine Methode versuchen. Hab Teil 8 ehrlich gesagt nur kurz überflogen.

  34. Helmut (Beitrag Autor)

    Wenn Du PiVPN nutzt, so wie in dieser Artikelserie beschrieben, dann wird per Standard UDP 1194 verwendet und es muss folglich auch UDP an der Fritzbox freigegeben sein.. Wenn Du das anders machst, dann muss die Freigabe natürlich zu Deiner Konfiguration passen.

  35. Marcel

    Ich bekomm es einfach nicht hin. Was muss den in der client.conf stehen?

    proto udp6
    remote myfritzadresse.myfritz.net 1194

    oder muss da dann was anderes hin?

  36. Helmut (Beitrag Autor)

    Du hattest geschrieben, dass Dein VPN im internen Netz funktionieren würde. Dann kann der Client an sich das Problem ja nicht sein.
    Richtig, in der client.ovpn sollte es in etwa so aussehen:
    proto udp6
    remote raspi167.p0w385aef998ppr.myfritz.net 1194

  37. Marcel

    Genau. Auch nach dem ich den PiVPN mit genau deinen Einstellungen neu aufgesetzt habe (mit UDP, myfritz Freigabe auf TCP und einer zusätzlichen Freigabe für UDP) kann ich lediglich intern auf den VPN zugreifen. Der Dienst an sich scheint also zu funktionieren, nur die FritzBox macht mir einen Strich durch die Rechnung.

  38. Helmut (Beitrag Autor)

    Ist die Freigabe (IPv4 und IPv6) denn auf der Weboberfläche von MyFritz im Internet sichtbar?
    Und der Client bekommt vom Provider auch eine IPv6 Adresse zugewiesen?

  39. Marcel

    Die Freigaben sind auf der Weboberfläche der Fritzbox sichtbar (grüner Punkt vor der Freigabe), auf der myfritz Homepage ist sie sichtbar und mein Raspberry bekommt auch eine eigene IPv6 Adresse (beginnend mit 2a00:…, meines Wissens nach ein Indiz dafür das es eine externe ip ist).
    Ich bin da mittlerweile echt sprachlos. Selbst wenn mein Smartphone nicht IPv6 fähig wäre, müsste es gehen da die IPv6 durch den myfritz Dienst auf IPv4 gemappt wird.

  40. Helmut (Beitrag Autor)

    Nein, MyFritz macht kein Routing zwischen IPv4 und IPv6. Überprüfe, ob Dein Smartphone vom Provider eine IPv6 Adresse bekommt.
    Ich gehe recht in der Annahme, dass Dein Homenetzwerk vom DSL-Provider (oder was auch immer) nur IPv6 bekommt?

  41. Sven

    Hallo Marcel,

    ich hab euren Dialog nur mal kurz überfolgen und ich hoffe weiterhelfen zu können:

    da du ja scheinbar den dienst feste ip nutzen musst, muss auf jedenfall sowohl in der server config als auch in der client config proto tcp6 stehen. in der client config gehört die serveradresse von feste ip rein, die du dir ausgesucht bzw zugewiesen bekommen hast, mit der sehr hohen protnummer.
    die freigabe in der fritzbox war bei mir auch für v4 und v6, was für den betrieb aber irrelevant war.

Schreiben Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.