Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
VPN-Zugriff bei Vodafone Cable (DS-Lite) mit Wireguard
Die beiden und noch ein, zwei andere Anleitungen habe ich ausprobiert aber ohne Erfolg.
Hat jemand das schon geschafft eine VPN Sever über DSL-Lite aus dem Internet zu erreichen?
Was habt ihr gemacht?
Mit einer entsprechenden Myfritz Freigabe.
Bei IPv6 hat jedes Gerät eine eigene öffentliche IP. Port-Weiterleitung gibt es nicht.
Also Myfritz oder DynDNS auf Pi.
Das funktioniert mit DS-Lite nur, wenn Du dann auch mit einer IPv6 Adresse ankommst, bspw. aus manchen Handy Netzen oder einem anderen DS-Lite Anschluss. Wenn Du von einem reinen IPv4 Netz kommst kannst Du keine Verbindung herstellen.
Dafür müsstest Du bei Deinem Provider auf DualStack umstellen lassen. Bieten manche kostenfrei an. Dann hättest Du eine IPv4 und eine IPv6
Mit einer entsprechenden Myfritz Freigabe.
Bei IPv6 hat jedes Gerät eine eigene öffentliche IP. Port-Weiterleitung gibt es nicht.
Also Myfritz oder DynDNS auf Pi.
Interessant
Dyndns auf pi hab ich ausprobiert und bei einem ping aus dem Netz kommt keine Rückmeldung. Ping auf dyndns der fritzbox funktioniert.
Eine Idee woran das liegen kann?
Bzgl. Port-Weiterleitung steht in dem link aus deinem post, dass man den Port weiterleiten soll. Auch in der fritzbox gibt es die Option für ipv6 eine Port-Weiterleitung einzustellen.
Ergänzung ()
T3Kila schrieb:
Das funktioniert mit DS-Lite nur, wenn Du dann auch mit einer IPv6 Adresse ankommst, bspw. aus manchen Handy Netzen oder einem anderen DS-Lite Anschluss. Wenn Du von einem reinen IPv4 Netz kommst kannst Du keine Verbindung herstellen.
Dafür müsstest Du bei Deinem Provider auf DualStack umstellen lassen. Bieten manche kostenfrei an. Dann hättest Du eine IPv4 und eine IPv6
Hatte ich schon gehört, dass nur ipv6 zu ipv6 funktioniert. Habs mit meinem handy probiert und das haz ipv6. Zumindest nach www.wieistmeineip.de
Ergänzung ()
Wenn es technisch geht. Ist die Frage warum es bein mir nicht geht.
Jede Anleitung die ich bisher gelesen hab war unterschiedlich. Mal mußte die mtu angepaßt werden, mal musste mal in der config von wg ssh einstellen.
Kennt jemand eine Anleitung die er selber erfolgreich durchgeführt hat?
Hast du dafür eine Anleitung? Die Fritzbox soll kein client sein. Ich möchte ja von aussen auf die Geräte im LAN zugreifen.
Da ich nicht wusste, dass jede IPv6 auch scheinbar von außen erreichbar ist habe ich das bisher auch so versucht und dann mit Portweiterleitung auf den PI. (weil da ja der VPN Sever sitzt)
Ich vermute, Du meinst Dual-Stack-Lite, kurz DS-Lite, also ohne zwei Ls? Welchen Internet-Anbieter hast Du in welchem Land? Wenn Du bei 1&1 bist, könntest Du Dich umschalten lassen …
Du könntest mit den Angaben im FRITZ!Labor starten … ansonsten sage uns bitte, welches FRITZ!_modell Du genau hast. Du findest dann den entsprechenden Artikel in AVMs Wissensdatenbank … half das?
Zuletzt bearbeitet:
(Hyperlink hing über Leerzeichen)
Ich vermute, Du meinst Dual-Stack-Lite, kurz DS-Lite, also ohne zwei Ls? Welchen Internet-Anbieter hast Du in welchem Land? Wenn Du bei 1&1 bist, könntest Du Dich umschalten lassen …
Genau ich meine DS-Lite ;-) Titel kann ich nicht mehr anpassen oder?
Ich glaube in irgend einer Anleitung hatte ich das mal so gelesen und schon gewundert...
Hab Vodafone Kabelanschluss.
norKoeri schrieb:
FRITZ!OS 7.5x fügt WireGuard in der FRITZ!Box selbst hinzu. Ich vermute, das möchtest Du nutzen?
Ja oder auf dem Pi laufend. Ist mir erst mal egal. Die OS 7.5x ist für die 6490 nicht released von daher bin ich auf den Pi umgestiegen.
norKoeri schrieb:
Du könntest mit den Angaben im FRITZ!Labor starten … ansonsten sage uns bitte, welches FRITZ!_modell Du genau hast. Du findest dann den entsprechenden Artikel in AVMs Wissensdatenbank … half das?
Dann hast Du den Titel wirklich unglücklich gewählt, weil es eigentlich nichts mit der FRITZ!Box zu tun hat (außer dass Du dort die Port-Freigaben einrichtest und vielleicht MyFRITZ nutzt). Mein Tipp: Melde Deinen eigenen Beitrag über die Taste unten links und bitte die Moderation den Titel auch in diesem Punkt zu ändern, also z. B. „Wie VPN-Zugriff bei Vodafone Cable?“
Aber eigentlich ist Deine Frage „ganz einfach“: Du solltest Dir Anleitungen suchen, die Dir erklären, wie Du einen WireGuard-Server aufsetzt – auf einem Raspberry Pi. Ganz unabhängig von der FRITZ!Box. Alternativ kannst Du Dir einen fertigen VPN-Router kaufen, der auch IPv6 kann. Puh, welcher? Allerdings müsste Dein gesamtes Heimnetz dann auch hinter diesen Router. Daher mein Tipp, Tipp: Warte noch ein paar Wochen bis Vodafone Cable Dir FRITZ!OS 7.5x spendiert. Oder Du holst Dir selbst eine FRITZ!Box Cable.
Die FritzBox 6490 ist keine von Vodafone. D.h. könnte die Labor Version installieren, wäre aber jetzt nicht meine bevorzugt Wahl.
norKoeri schrieb:
Dann hast Du den Titel wirklich unglücklich gewählt, weil es eigentlich nichts mit der FRITZ!Box zu tun hat (außer dass Du dort die Port-Freigaben einrichtest und vielleicht MyFRITZ nutzt). Mein Tipp: Melde Deinen eigenen Beitrag über die Taste unten links und bitte die Moderation den Titel auch in diesem Punkt zu ändern, also z. B. „Wie VPN-Zugriff bei Vodafone Cable?“
Aber eigentlich ist Deine Frage „ganz einfach“: Du solltest Dir Anleitungen suchen, die Dir erklären, wie Du einen WireGuard-Server aufsetzt – auf einem Raspberry Pi. Ganz unabhängig von der FRITZ!Box.
Alternativ kannst Du Dir einen fertigen VPN-Router kaufen, der auch IPv6 kann. Puh, welcher? Allerdings müsste Dein gesamtes Heimnetz dann auch hinter diesen Router. Daher mein Tipp, Tipp: Warte noch ein paar Wochen bis Vodafone Cable Dir FRITZ!OS 7.5x spendiert. Oder Du holst Dir selbst eine FRITZ!Box Cable.
Würde mich eigentlich interessieren, warum ich das mit dem PI nicht hinbekommen habe.
Komisch ist halt, dass alle Anleitungen irgendwie von einander abweichen.
Z.B. muss das routing in der wg.conf auskommentiert werden oder nicht.
Muss die MTU geändert werden oder nicht. Muss eine SSH Aktivierung hinzugefügt werden...?
Zumindest bei der o.g. Anleitung steht im Kommentar, dass es bei manchen schon wohl geklappt hat.
Aber wenn die 7.5 auch für die 6490 kommt, kann ich auch noch warten...
Die Laborversion würde hier auch nicht weiterhelfen, weil Wireguard auf der 6490 und 6590 nicht unterstützt wird. Das wird sich sehr wahrscheinlich auch mit der finalen Version nicht ändern, weil das Wireguard-Kernel-Modul die alte Linux-Version auf diesen Boxen nicht unterstützt.
Prinzipiell schadetet es nicht Anleitungen die ein curl | bash haben zu vermeiden. Das ausgeführte Script muss nicht mal böse sein, es reicht schon das es erschwerte zu Verstehen was eigentlich passiert. Wireguard ist so simple da ist es lehrreich ist die paar schritte selber zu machen.
Eine zu große DEFAULT MTU von 1500 kann zwar leicht zu groß sein es wird trotzdem aber eine Verbindung aufgebaut, Router auf der Strecke machen dann einfach aus einen zu großen Paket zwei (oder mehr) kleinere.
Eine richtig eingestellte MTU belastet die Router auf der Strecke nicht senkt dammit Latenz und erhöht throughput. MTU 1300 sollte immer gehen ohne Fragmentierung und bei einer DSL-Verbindung (PPPoE) ist 1412 der richtige Wert (1500-80-8).
Die Anleitungen sollten beide Funktionieren erreichen dies halt nur über unterschiedliche Wege ("Alle Wege führen nach Rom").
0. ping 192.168.178.1
1. "mobile VPN Client": verschlüssel(IP-Paket, gemieteter_ server_public_key)
2. "gemieteter_ server": entschlüssel(IP-Paket, gemieteter_ server_private_key)
3. "gemieteter_ server": betrachte IP-Paket Zieladresse (Annahme alles bis auf Wireguard selbst wird zum RPI geroutet)
4. "gemieteter_ server": verschlüssel(IP-Paket, rpi_public_key)
5. "rpi": entschlüssel(IP-Paket, rpi_private_key)
6. "gemieteter_ server": betrachte IP-Paket Zieladresse
1. Zieladresse Adresse innerhalb des Heimnetzes?
1. Ethernet frame mit IP-Paket erstellen. Ethernet frame Ziel MAC über ARP bestimmen.
2. Außerhalb des Heimnetzes?
1. Ethernet frame mit IP-Paket erstellen. Ziel MAC gleich FritzBox MAC.
Dabei fließt der gesamte IPv4 Traffic erstmal zum gemieteten Server wird dort entschlüsselt, geroutet und dann wieder verschlüsselt. Der gemietete Server könnte dabei unverschlüsselten Tunnel-Traffic z.B DNS einfach mitlesen.
Code:
- MASQUERADE erfüllt in dem Fall keinen Zweck macht aber auch nichts kaputt.
- `ip route add 192.168.178.0/24 via 172.16.100.1` ist aus meiner Sicht ohne es überprüft zu haben falsch.
- Wenn überhaupt müsse es `ip route add 192.168.178.0/24 via 172.16.100.9` sein.
- Das wäre aber auch unnötig denn `AllowedIPs = 0.0.0.0/0` richtet automatische eine Route ein. Diese Route inkludiert bereits `192.168.178.0/24`
Die Statische Route in der FritzBox ist notwendig da die Original absende Adresse vom "mobile VPN Client" erhalten bleibt. Wenn jetzt irgendein Gerät aus dem Heimnetz ein Antwort schicken möchte an z.B 172.16.100.3 dann wird das Ethernet Frame einfach an die FritzBox geschickt und die Schickt es dann an den Raspberry Pi.
Hätte die FritzBox kein explizit statische Route würde das Paket einfach verworfen werden weil das Ziel eine private Adresse ist und schlicht nicht bekannt ist wie das Ziel erreicht werden soll.
Wegen den PersistentKeepalive wird bei der Anleitung keine Freigabe über die FritzBox benötigt. Der Raspberry Pi initiiert einfach ein Verbindung zum gemieteten Server und hält diese Verbindung am leben (24/7). Diese geöffnet Verbindung wird dann bei entgegensetzen Verwendung (Raspberry Pi ist Empfänger) wiederverwendet.
Die Anleitung macht den Fehler IPv6 innerhalb des Tunnels aus zu lassen. Wäre "mobile VPN Client" im Ausland und hat eine IPv6 Adresse und es wird auf einen Streaming-Dienst Zugriffen dann wird nur getunnelt wenn auch der Streaming-Dienst IPv6 nicht unterstützt:
Verbindung über IPv6 zum Streaming-Dienst: "mobile VPN Client" --> Streaming-Dienst
Verbindung über IPv4 zum Streaming-Dienst: "mobile VPN Client" --> "gemieteter_ server" -> "rpi" -> FritzBox
Die andere Anleitung macht aus dem gemieteten Server keinen Wireguard peer d.h. es wird nicht entschlüsselt, geroutet und gleich wieder verschlüsselt. Da wird einfach jedes eingehende UDP IPv4 Paket kopiert und gleich wieder als UDP IPv6 Paket an den Raspberry Pi geschickt (socat).
Keine Statische Route erforderlich da der Raspberry Pi die Original absende Adresse 172.16.100.3 durch seine eigene LAN Adresse austauscht. Ein NAS würde denken die Anfrage kommt vom Raspberry Pi und nicht vom "mobile VPN Client".
Wichtig bei der Anleitung ist das der Raspberry Pi über IPv6 aus dem Internet erreichbar ist: https://avm.de/service/wissensdaten...0/845_IPv6-Freigaben-in-FRITZ-Box-einrichten/
Ergänzung ()
Darkghost schrieb:
Kennt jemand eine Anleitung die er selber erfolgreich durchgeführt hat?
Soll der gesamte Traffic nach Hause getunnelt werden (aka auch Streaming mit der IP von zuhause) oder nur auf Geräte im Heimnetz zugegriffen werden?
SSH Zugang zum Raspberry Pi eingerichtet?
Existiert bereits ein gemieteter Server? Ohne den kann man nur mit einer IPv6 Address den Pi erreichen. In DE hat man zwar mittlerweile in privat Haushalten und über Mobilfunk in der Regel eine IPv6 Adresse aber Firmen und öffentlichen Netzte sind leider recht häufig IPv4 only. Ausland ist häufig auch oft noch IPv4 only.
Soll der gesamte Traffic nach Hause getunnelt werden (aka auch Streaming mit der IP von zuhause) oder nur auf Geräte im Heimnetz zugegriffen werden?
SSH Zugang zum Raspberry Pi eingerichtet?
nur auf Geräte im Heimnetz zugegriffen werden, würde reichen
SSH Zugang zum Raspberry Pi eingerichtet? -> Ja (arbeitet die ganze Zeit schon über Putty ;-)
lukas12342 schrieb:
Existiert bereits ein gemieteter Server? Ohne den kann man nur mit einer IPv6 Address den Pi erreichen. In DE hat man zwar mittlerweile in privat Haushalten und über Mobilfunk in der Regel eine IPv6 Adresse aber Firmen und öffentlichen Netzte sind leider recht häufig IPv4 only. Ausland ist häufig auch oft noch IPv4 only.
- Das ist ein guter Punkt. Wichtig war mir erst mal nur per Handy bzw. über das Handy auf das Heimnetzwerk zu zugreifen. Aber langfristig wäre auch IP4 gut.
@Darkghost
Kannst dir auch irgendeine andere Anleitung raussuchen aber ich würde folgendes tun:
1. Den Raspberry Pi auf NetworkManager umstellen. (geht über raspi-config[1])
This launches the configuration tool. Go into option 6, Advanced Options, and then into option AA, Network Config – choose option 2, NetworkManager, and then reboot when prompted.
2. Anschließend dies tun und natürlich dabei eigene Keys verwenden (wg genkey)
Code:
nmcli device show eth0
root@PI:~# nmcli c
NAME UUID TYPE DEVICE
Wired connection 1 ce0d5fd2-a690-3a37-8a71-dec2a6244882 ethernet eth0
nmcli c mod "Wired connection 1" ipv6.ip6-privacy 2
nmcli c mod "Wired connection 1" ipv6.addr-gen-mode eui64
nmcli c mod "Wired connection 1" ipv6.token ::1234
nmcli c down "Wired connection 1"
nmcli c up "Wired connection 1"
Danach sollte das Interface zwei GUA-IPv6 Adressen haben. Eine sich zeitlich ändernde IPv6-Adresse für Ausgehende Verbindungen und ein mit den festen Suffix 1234.
Code:
root@PI:~# ip -c -6 a s eth0
77: eth0@if78: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link-netnsid 0
inet6 2001:DB8::a92a:6442:2f78:9066/64 scope global temporary dynamic
valid_lft 6932sec preferred_lft 1042sec
inet6 2001:DB8::1234/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 6932sec preferred_lft 1042sec
inet6 fe80::216:3eff:fe46:90f3/64 scope link noprefixroute
valid_lft forever preferred_lft forever
apt install ufw
ufw limit 22
ufw enable
ufw allow in on eth0 to any port 51871 proto udp
ufw route allow in on wg0 out on eth0
sysctl -w net.ipv4.ip_forward=1
# Firewall Config Ausgeben
root@PI:~# ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip
To Action From
-- ------ ----
51871/udp on eth0 ALLOW IN Anywhere
22 LIMIT IN Anywhere
51871/udp (v6) on eth0 ALLOW IN Anywhere (v6)
22 (v6) LIMIT IN Anywhere (v6)
Anywhere on eth0 ALLOW FWD Anywhere on wg0
Anywhere (v6) on eth0 ALLOW FWD Anywhere (v6) on wg0
root@PI:~# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
root@PI:~# wg-quick up wg0
root@PI:~# wg
interface: wg0
public key: mB+HVbXLmbEl8goVNK+YHjs2/QjKCeOxImlakInfeic=
private key: (hidden)
listening port: 51871
peer: LbCVJ54zqyCArQBp/QDyIJJrgGWK8ukWjXQpvlm0aCw=
allowed ips: 192.168.42.2/32
## Client
Als Test Client würde ich entweder ein weiteres Linux System verwenden oder ein Windows-System. In beiden Fällen zu Testzwecken mal IPv4 auf den normal Interface/Netzwerk-Adapter dort deaktivieren.
Dann kann sich der Client erstmal innerhalb des Heimnetzes befinden und es muss noch keine Portfreigabe in der FritzBox erfolgen.
wg-quick up wg0
# PI Tunnel-IP pingen
root@testWG:~# ping 192.168.42.1
PING 192.168.42.1 (192.168.42.1) 56(84) bytes of data.
64 bytes from 192.168.42.1: icmp_seq=1 ttl=64 time=0.697 ms
# ungenutzte Tunnel-IP pingen
# Wenn Unreachable ausgegeben wurde dann wurde der sysctl und Firewall auf den PI richtig eingestellt.
root@testWG:~# ping 192.168.42.3
PING 192.168.42.3 (192.168.42.3) 56(84) bytes of data.
From 192.168.42.1 icmp_seq=1 Destination Host Unreachable
### QR-Code
Anstatt auf einen Client die Datei /etc/wireguard/wg0.conf zu erstellen kannst du auch eine Temporäre Datei nutzen und dies anschließend als QR-Code "exportieren"
Dammit nun auch der ping auf 192.168.178.1 von 192.168.42.2 aus klappt muss jetzt entweder auf dem PI noch NAT (MASQUERADE) durchgeführt werden oder es wird in der FritzBox eine statische Route einrichtet.
Für die statische Route sollte aber erstmal auch eine statische IPv4 für den Pi vergeben werden. Einfach die bisherige durch DHCP vergeben zu einer statischen IPv4 machen:
Code:
root@PI:~# ip -c -4 a s eth0
75: eth0@if76: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link-netnsid 0
inet 192.168.178.60/24 brd 192.168.178.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
Code:
nmcli c mod "Wired connection 1" ipv4.addresses "192.168.178.60/24"
nmcli c mod "Wired connection 1" ipv4.gateway "192.168.178.1"
nmcli c mod "Wired connection 1" +ipv4.routes "192.168.178.0/24 0.0.0.0"
nmcli c mod "Wired connection 1" ipv4.dns "8.8.8.8"
nmcli c mod "Wired connection 1" ipv4.method manual
nmcli c down "Wired connection 1"
nmcli c up "Wired connection 1"
root@testWG:~# wg
interface: wg0
public key: LbCVJ54zqyCArQBp/QDyIJJrgGWK8ukWjXQpvlm0aCw=
private key: (hidden)
listening port: 45091
peer: mB+HVbXLmbEl8goVNK+YHjs2/QjKCeOxImlakInfeic=
endpoint: [2001:DB8::1234]:51871
allowed ips: 192.168.42.0/24, 192.168.178.0/24
latest handshake: 1 minutes, 8 seconds ago
transfer: 220 B received, 308 B sent
root@testWG:~# ping 192.168.178.1
PING 192.168.178.1 (192.168.178.1) 56(84) bytes of data.
64 bytes from 192.168.178.1: icmp_seq=7 ttl=63 time=241 ms
root@testWG:~# curl 192.168.178.1
<!DOCTYPE html>
## Ende
Abschließend wenn alles bisher geklappt hat die PI Wireguard Config Persistent machen mit:
Code:
systemctl enable wg-quick@wg0.service
Dann einmal den PI reboot und testen ob noch alles klappt.
Jetzt wäre auch der Zeitpunkt in der FritzBox den Zugang aus den Internet auf den PI zuzulassen.
Code:
Gerät: PI
IPv4-Adresse: 192.168.178.60
IPv6 Interface-ID: 0:0:0:1234
PING6 freigeben.
Freigabe anlegen
Andere Anwendung
Internetzugriff über IPv6
UDP
Port an Gerät: 51871-51871
Mit der Konfiguration ist erstmal nur der Zugriff auf das Heimnetz möglich.
Nächste möglichen Schritte wären:
1. DDNS (Präfix ändert sich der Suffix bleibt bei ::1234)
2. alles nach Hause zu tunneln
3. über ein gemieteten Server den PI auch aus IPv4-Only Umgebungen erreichbar machen
4. statt wg-quick auch für Wireguard den NetworkManager verwenden