Anleitung: Raspberry Pi als VPN-Router nutzen
Ihr könnt mit einem Raspberry Pi sehr einfach einen VPN-Router zum Zwischenschalten einrichten
VPN-Verbindungen sind eine feine Sache, schützen sie Euch doch effektiv vor Verfolgung im Netz. Allerdings besitzt die in Deutschland so beliebte FritzBox wie viele andere Router keine Option, mit der Ihr einen VPN-Anbieter direkt im Router einrichten könntet. Deshalb benötigt Ihr einen VPN-Router, der diese Aufgabe übernimmt und sich zwischen Eure Endgeräte und den eigentlichen Router schaltet. Mit dem Raspberry Pi ist das kein Problem.
Raspberry Pi VPN-Router: Die Vor- und Nachteile
Grundsätzlich müsst Ihr zwei Einrichtungsschritte durchführen, um den Raspberry Pi als VPN-Router zu verwenden: Zunächst müsst Ihr den Pi als Router einrichten. Wichtig ist, dass Ihr einen Pi mit eingebauter Ethernet- und WiFi-Verbindung verwendet, als den Raspberry Pi 3 oder neuer. Wir empfehlen aufgrund der Leistungsfähigkeit aber dringend den Einsatz des Raspberry Pi 4 oder höher. Andernfalls müsst ihr nämlich noch einen zusätzlichen WLAN-Adapter einrichten und routen, was eher lästig ist. Zudem muss der Kompaktrechner zuvor als Router eingerichtet werden.
Was Ihr für den Raspberry als VPN-Router benötigt
Um den Pi als Router und VPN-Gateway zu betreiben, benötigt ihr in unserem Setup die folgenden Dinge:
- Raspberry Pi 3 oder 4
- Ein solides Raspberry-Pi-Netzteil
- Eine Micro-SD-Karte mit mindestens 4 GB Speicher
- Ein OpenWRT-Image für den Raspberry Pi
- Balena Etcher, um das Image auf die SD-Karte zu schreiben
1. Raspberry Pi als OpenWRT-Router installieren
Die einfachste Möglichkeit, den Raspberry Pi als Router zu Verwenden, ist OpenWRT. Denn die reguläre Einrichtung des Pis als Router ist nicht ganz banal. Zum Glück gibt es inzwischen vorgefertigte Images mit OpenWRT, die die Installation sehr leicht machen:
- OpenWRT selbst bietet Images für den Raspberry Pi bis Version 3 an (hier unter "Installation")
- Im OpenWRT-Forum gibt es ein dediziertes RPI4-Image, das regelmäßig aktualisiert wird. Zudem gibt es ein praktisches voreingerichtetes RPI-Image mit einer älteren Version von Rehan Kumar, das Euch eine Menge Einrichtungsarbeit erspart. Das werden wir in dieser Anleitung im Folgenden verwenden.
Ladet zunächst das passende Image (openwrt-bcm27xx-bcm2711-rpi-4-ext4-factory.img.gz oder openwrt-bcm27xx-bcm2711-rpi-4-squashfs-factory.img.gz) für Euren Pi 4 herunter und spielt es mit Etcher auf die SD-Karte. Anschließend könnt ihr diese in Euren Raspberry Pi stecken und den Bastelrechner hochfahren. Achtung: Der Pi sollte per Ethernet-Kabel an Eurem normalen Router hängen!
Das war es auch schon: Ist der Pi hochgefahren, taucht ein WLAN "OpenWRT" in Eurer WLAN-Übersicht auf. Das WLAN-Passwort der Rehan-Kumar-Images lautet "tastypi1$2". Bei den OpenWRT-Versionen für Raspberry Pi 3 und älter ist zunächst nur Ethernet aktiv: Ihr müsst Euren Rechner per LAN-Kabel mit dem Pi verbinden und den OpenWRT-Pi danach per SSH über die IP-Adresse 192.168.1.1 ssh root@192.168.1.1
von Grundauf einrichten wie hier beschrieben. Die Rehan-Kumar-Version für den Pi 4 macht es euch also deutlich leichter: Nachdem Ihr Euch mit dem Pi-WLAN verbunden habt, könnt Ihr einfach im Browser die IP-Adresse 10.10.10.1 eingeben und landet auf der Weboberfläche Eures OpenWRT-Routers.
2. OpenWRT auf dem Raspberry Pi testen
Vergebt jetzt ein Root-Passwort für den Pi-Router und klickt auf "Login". Falls der Pi jetzt ein fehlendes Root-Passwort bemängelt, ist das kein Problem: Startet den Pi einfach einmal neu und ruft erneut 10.10.10.1 auf: Die Meldung sollte jetzt verschwunden sein und die Benutzeroberfläche mit dem gesetzten Passwort geschützt sein. Ruft eine andere Internetseite auf, um das OpenWRT-WLAN Eures Pis zu testen: Wenn der Pi per Ethernet an Eurem Router hängt und Euer PC das OpenWRT-WLAN verwendet, läuft der Internet-Verkehr durch den Pi. Wenn Ihr alle Websites aufrufen könnt, ist das OpenWRT-System einsatzbereit: Ihr habt jetzt einen kleinen OpenWRT-Router, den ihr wie jeden anderen Router benutzen könnt.
3. OpenWRT auf dem Pi 4 aktualisieren
Über das Menü System -> Backup/Flash Firmware könnt ihr jetzt noch per "Upload a sysupgrade-compatible image here to replace the running firmware" das Update installieren. Nehmt hierfür NICHT die (veraltete) Rehan-Kumar-Version, sondern die offizielle Sysupgrade-Version von openwrt.org. Den Warnhinweis könnt ihr ignorieren. Anschließend ist Euer OpenWRT-Raspberry-Pi auf dem aktuellsten Stand, bleibt aber eingerichtet wie zuvor. An dieser Stelle habt Ihr den Raspberry Pi als WLAN-Router eingerichtet.
4. OpenVPN in OpenWRT installieren
Nun müsst Ihr noch OpenVPN und einige Tools installieren. Dafür gibt es zwei Möglichkeiten: Entweder, Ihr öffnet in der OpenWRT-Weboberfläche den Menüpunkt System -> Software und installiert die Komponenten hier. Oder Ihr verbindet Euch per SSH mit dem Pi. Öffnet in diesem Fall ein Terminal- oder Kommandozeilenfenster und gebt hier ssh root@openwrt
ein. Anschließend müsst ihr noch das Passwort eingeben, das ihr in Schritt 2 für die Benutzeroberfläche vergeben habt. Jetzt seid Ihr per SSH mit dem Router-Basissoftware verbunden. Gebt nun folgende Befehle ein:
opkg update
opkg install openvpn-openssl
Zusätzlich solltet Ihr noch opkg install ip-full
und opkg install luci-app-openvpn
ausführen: Dadurch erhaltet ihr auch in der Weboberfläche eine VPN-Verwaltung und müsst das nicht in der Kommandozeile erledigen. Loggt Euch anschließend einmal aus der Weboberfläche aus und wieder ein, dann taucht die OpenVPN-Verwaltung als neuer Menüpunkt auf.
4. VPN-Service unter OpenWRT einrichten
Öffnet jetzt die Weboberfläche Eures OpenWRT-Pi und klickt auf den neuen Menüpunkt VPN -> OpenVPN. Hier könnt Ihr eine OVPN-Datei hochladen, die die Konfiguration des VPN-Anbieters enthält. Wir nehmen im Beispiel jetzt den beliebten Service NordVPN. Dieser bietet OpenVPN-Konfigurationsdateien (*.ovpn) an. Andere VPN-Anbieter haben diese in aller Regel auch im Angebot, eine einfache Google-Suche mit "OVPN+(VPN-Anbieter)" sollte Euch auf die Seite Eures Anbieters führen.
- Ladet zunächst die OVPN-Datei von Eurem VPN-Anbieter herunter. Standard ist Protokoll "UDP", sollte UDP aber aus irgendeinem Grund gesperrt sein, könnt Ihr auch die TCP-Variante nehmen. UDP ist dabei grundsätzlich die bessere Wahl, weil es höhere Geschwindigkeiten bietet. Bei NordVPN sind die OVPN-Dateien nach Ländercode geordnet. Wollt Ihr zum Beispiel ein US-VPN-Server nutzen, müsst Ihr eine der Dateien mit "US" vorne herunterladen.
- Gebt die Datei in OpenWRT unter VPN -> OpenVPN -> OVPN configuration file upload an, vergebt einen Namen und klickt auf "Upload".
- Anschließend ist die VPN-Verbindung in der Liste der Verbindungen. Klickt auf "Edit" für weitere Einstellungen. Hier müsst Ihr Ihr den Pfad des Auth-Keys einfügen (siehe Screenshot oben). Ins untere Feld müsst Ihr den Benutzernamen und das Passwort eintragen. Achtung: NordVPN hat dafür einen eigenen String, der nicht Eure Mailadresse mit Eurem normalen Passwort ist: Stattdessen erhaltet Ihr die nötigen Zugangsdaten nach dem Login auf NordVPN.com und Klick auf "NordVPN" unter "Service Credentials". Andere Anbieter wie ExpressVPN, Hide.Me oder Cyberghost dürften ähnlich verfahren.
- Das war es auch schon: Speichert die Änderungen ab, markiert den Haken "Enable" und klickt neben der neu erstellten VPN-Verbindung auf "Start". Speichert die Änderungen anschließend ab, um die VPN-Verbindung zu starten.
Firewall-Regel einrichten
Der OpenVPN-Dienst Eures OpenWRT-Pis stellt jetzt eine VPN-Verbindung her. Wenn Ihr jetzt versucht, eine Website aufzurufen, wird das aber nicht funktionieren. Es kommt zu einem Verbindungsfehler, und das ist auch erst einmal korrekt. Denn Ihr müsst noch die Firewall für den VPN-Dienst konfigurieren. Mit dem oben aktualisierten OpenWRT ab Version 19.07 ist das ein Kinderspiel:
- Öffnet Network -> Firewall auf eurem OpenWRT-Pi.
- Klickt neben dem WAN-Adapter auf "Edit" und klickt auf den Reiter "Advanced Settings".
- Im Feld "Covered Devices" wählt Ihr "tun0" aus. Speichert die Änderungen anschließend ab.
Raspberry Pi-VPN-Router genießen und anonym surfen
Das war es auch schon: Ihr könnt jetzt über Euren Raspberry Pi als VPN-Router genießen: Wenn Ihr Euren Rechner per WLAN mit dem Pi verbindet, surft Ihr automatisch über eine VPN-Verbindung. Wichtig ist, dass Ihr das regelmäßig testet, etwa indem Ihr eine IP-Check-Website aufruft. Wir haben hier auch eine solche Seite, den Tutonaut IP-Check. Wenn der einen Standort in dem oben gewählten Land der OVPN-Datei ausgibt, seid Ihr auf der sicheren Seite: Euer Pi verbindet sich ins VPN – und Websites erhalten jetzt die IP-Adresse des VPN-Dienstes.
Das war es auch schon: Lasst den Pi einfach eingeschaltet an Eurem Router hängen oder packt ihn ein, wenn Ihr unterwegs ein sicheres WLAN braucht und eine LAN-Buchse vorhanden ist. Der Pi funktioniert jetzt an jedem Ethernet-Port, der Internet-Zugriff hat und bringt Euch sicher per WLAN und VPN-Dienst ins Internet. Natürlich ist das WLAN des Pis und die VPN-Verbindung nicht so schnell wie Euer regulärer Router mit einer ungeschützten Verbindung. Aber dank des Pis habt Ihr die Möglichkeit, jedes beliebige Gerät mit einem einfachen Wechsel der WLAN-Verbindung – nämlich von eurem regulären WLAN auf das des OpenWRT-Raspberry-Pi – mit einer sicheren und anoymen VPN-Verbindung auszustatten. Ganz ohne die lästige Installation von Client-Software oder ähnlichem. So eignet sich ein solcher Raspberry-Pi-VPN-Router natürlich auch hervorragend für ein Gast- oder Test-WLAN. Einzige Schwachstelle: Sonderlich schnell ist das Pi-WLAN nicht.
Hallo, mein Pi 4b soll als VPN Client hinter einer 6690 Cable Fritte hängen. Klappt soweit auch alles, aber mir wird „tun“ nicht angezeigt. Auch der ssh befehl /usr/sbin/openvpn –mktun –dev tun0 wird bestätigt mit „tun-on“, jedoch nach reboot ist immer noch keine Auswahl da. Wo ist hier der Fehler?
Hallo, ich hatte bislang nur Erfahrung mit de. Pu-hole und rasbpian. Ich habe folgendes Problem. Ich möchte privates VPN meiner Fritzbox auf einen Xiaomi TV Stick meiner Freundin im anderen Haushalt haben. Wireguard unterstützt leider meine Fritzbox noch nicht.Und ich habe noch keine Möglichkeit gefunden privat VPN zum laufen zu bringen. VPNCilla verweigert den Dienst weil es das nicht offiziell für Android TV gibt und was von Lizenzverletzung schreibt. Aber da der Raspi aktuell wegen eines Pi hole Problems und defektem System eh neu gemacht werden muss wollte ich eine Lösung damit versuchen. Ich nutze den Raspi also nur für Netzwerkverkehr ohne Oberfläche. Wäre die Installation mit OpenWrt dann das richtige? Also was ich noch nicht ganz verstanden habe, kann ich die Fritzbox als Sicherheit parallel laufen lassen? Oder muss ich es sogar. OpenWrt muss also meine eigene IP auch bei meiner Freundin anzeigen lassen, sodass die App durch von glaubt, wir sind im gleichen Haushalt. Vielen Dank im voraus. Liebe Grüße Daniel
Ideal ist immer wenn man die onboard VPN Clients benutzt. Der RasPi supportet auch eine direkte Kopplung mit der FritzBox ohne den Umweg OpenWRT.
Siehe: https://administrator.de/contentid/1754377434
liese sich das auch umdrehen? ich möchte einen Pi zu einem außendienstler schicken, der Pi soll sich per wlan mit seinem Router verbinden und in den Lan-Buchse des pi soll ein Telefon oder Laptop?
Hallo Christian,
also ich habe alles so gemacht wie vorgegeben, allerdings auf einem RPi3B+. Der Raspi hängt per Ethernet-Kabel am Router. OpenVPN-Konfiguration war erfolgreich und wenn ich per SSH aufm Pi teste, ob mein Traffic auch den VPN nutzt (mit „curl ifconfig.me“), klappt es auch. Allerdings läuft mein Traffic nicht durch den Tunnel, wenn ich andere Geräte mit dem OpenWRT-Router verbinde.
———————————————– /etc/config/network —————————————————
config interface ‚loopback‘ option ifname ‚lo‘ option proto ’static‘ option ipaddr ‚127.0.0.1‘ option netmask ‚255.0.0.0‘
config globals ‚globals‘ option ula_prefix ‚fd83:1002:2b70::/48‘
config interface ‚lan‘ option type ‚bridge‘ option ifname ‚eth0′ option proto ’static‘ option ipaddr ‚192.168.1.2‘ option netmask ‚255.255.255.0‘ option ip6assign ’60‘ option gateway ‚192.168.1.1‘ option ipv6 ‚auto‘ option peerdns ‚0‘ option dns ‚10.8.8.1 1.1.1.1‘
config interface ‚wan‘ option proto ‚dhcp‘
—————————————— /etc/config/wireless ——————————————————– config wifi-iface ‚default_radio0‘ option device ‚radio0‘ option mode ‚ap‘ option ssid ‚OpenWrt‘ option key ‚xxxx‘ option encryption ‚psk2‘ option network ‚lan‘
—————————————— /etc/config/firewall ——————————————————– config zone option name ‚lan‘ option input ‚ACCEPT‘ option output ‚ACCEPT‘ option forward ‚ACCEPT‘ list network ‚lan‘ list device ‚tun0‘
config zone option name ‚wan‘ option output ‚ACCEPT‘ option masq ‚1‘ option mtu_fix ‚1‘ option input ‚REJECT‘ option forward ‚REJECT‘ list device ‚tun0‘
config forwarding option dest ‚wan‘ option src ‚lan‘
Vielleicht kannst du mir ja helfen.
Vielen Dank vorab! Marcel