RaspBerry Pi 4b als VPN-Gateway zu kommerziellen VPN-Anbietern für Geräte im LAN

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    kurz Vorweg: Ich bin LAIE was VPNs, OpenVPN, Linux und Co angeht und auch mit dem Raspberry bin ich nur so hass-liebe-medium warm geworden. Und das Obwohl ich vom Pi A zu Pi4b fast jedes Modell besitze.

    Meine Anforderung: Ich versuche jetzt seit einiger Zeit meinen Raspberry dazu zu bringen, als VPN-Router für mein LAN zu fungieren. (Idealerweise später einmal mit einer PiHole dazwischen)
    Bisher läuft auf dem Pi OpenVPN als Client zum kommerziellen anbieter.

    Ich neige inzwischen aber irgendwie zur Aufgabe, weil ich den Pi zwar als Gateway, aber NIEMALS als DNS angesprochen bekomme. Soweit ich verstanden habe, sollte das doch aber auch gehen - oder?

    Folgendes klappt:

    #1 OpenVPN installieren, zu kommerziellen anbieter verbienden.
    #2 IP / DNS-Leaktest sagen: Alles i.O.

    Ich würde diese Verbindung jetzt gerne von anderen Geräten im LAN mitnutzen wollen. Ich dachte dabei an Bidirektionales routing, NAT oder sowas. Wie gesagt - ich bin da eher Laie.

    Dabei bin ich Gefühlt jeden Tutorial nachgelaufen, dass ich gesehen habe. Und wenn mich jemand fragt (und die Kommentare dieser) so scheinen wirklich ALLE obsolet zu sein

    Das einzige Tutorial, dass ich fand, dass tatsächlich den Verkehr (Gateway only!) routed, ist dieses: https://www.novaspirit.com/2017/06/22/ras…n-router-w-pia/ )

    Allerdings musste ich auch hier sowohl bei den Autostart-Vorgängen improvisieren, als dass es mir wie gesagt auch nicht möglich ist, den Raspberry als DNS zu verwenden. Nur als Gateway.

    a) Gebe ich auf einem Clienten die Beere als Gateway UND Dns an, so ist das Resultat: Kein Internet.

    b) Gebe ich auf einem Clienten die Beere als Gateway UND meinen Router als DNS an, so habe Internet und die IP der Beere - LEAKE aber DNS wie hulle.
    c) Gebe ich auf einem Clienten die Beere als Gateway an und Cloudflare als DNS (1.1.1.1), so habe Internet und die IP der Beere - habe aber halt einen weiteren DNS im Boot.

    Der Trick den Verkehr ans eth zu verteilen ist eigentlich nur folgender:

    Weiss jemand aus Intuition oder Erfahrung, was ich übersehe? Kennt jemand ein gutes AKTUELLES Tutorial oder einen AKTUELLEN Weg (idealerweise double failsafe selbst geprüft), wie man seine kommerzielle Verbindung (OPENVPN) auf dem Raspberry an Geräte im LAN ohne einen Clienten Verfügbar machen kann? Zur Not auch mit! Ich hätte auch noch einen Pi3b und einen Pi3b+ zum Testen.

    Danke und Gruß

    Kreis

  • RaspBerry Pi 4b als VPN-Gateway zu kommerziellen VPN-Anbietern für Geräte im LAN? Schau mal ob du hier fündig wirst!

  • ... die Beere als ... Dns an, ....

    , wie man seine kommerzielle Verbindung (OPENVPN) auf dem Raspberry an Geräte im LAN ohne einen Clienten Verfügbar machen kann?

    Was genau meinst mit "den PI als DNS" und mit "ohne einen Clienten"?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    • Offizieller Beitrag

    Gebe ich auf einem Clienten die Beere als Gateway UND Dns an, so ist das Resultat: Kein Internet.

    Du meinst kein DNS oder? Internet dann sollte trotzdem da sein oder was passiert dann bei der Eingabe in einem Browser von 1.1.1.1?

  • Hallo,

    ich meine (glaube ich) schon DNS.
    "Das Internet" (nach meinem Verständniss, nichts weiter als ein haufen DNS anfragen und deren Auflösung und Abwicklung)
    "geht". Wenn man "1.1.1.1" (also den DNS-Server) als "das Internet" sehen möchte. ;)

    In Bildern:


    Client originär via Fritzbox: ... alle Seiten funktionieren ofc.

    Das gewünschte Szenario: ... funktionieren nicht, bis auf eg 1.1.1.1

    ... funktioniert, aber fühlt sich blöd an, weil teils außerhalb des Tunnels.

    Der RaspBerry, auf dem der VPN-Client (OpenVPN) läuft, löst seine Anfragen doch über den kommerziellen VPN-Anbieter auf und nicht etwa AUF oder ÜBER den Router - oder nicht? Alles andere wäre doch quatsch, wenn der VPN seine Anfragen außerhalb des Tunnels über die Router-IP auflösen würde. Dann könnte man auch gleich außerhalb des Tunnels suchen, surfen...

    Ich möchte eben irgendwie erreichen, dass der RaspBerry DNS-Afragen aus dem LAN annimmt, auflöst über seinen VPN-Kanal und dann an das LAN zurückliefert. Wenn ich da einem Geist nachlaufe, bitte sagen...


    Ich habe langsam irgendwie das Gefühl, ich habe das Thema DNS oder VPN nicht richtig verstanden...

    Gruß

  • Ich möchte eben irgendwie erreichen, dass der RaspBerry DNS-Afragen aus dem LAN annimmt, auflöst über seinen VPN-Kanal und dann an das LAN zurückliefert. ...

    Du willst, dass der PI (als VPN-gateway), für die anderen Geräte (Clients) in deinem (W)LAN als gateway (Router) für deren default route fungiert. Das kannst Du in den Geräten so konfigurieren. Ob Du das auch in deinem Router (border device) eintragen/kannst (damit es in den einzelnen Geräten nicht erforderlich ist), weiß ich nicht.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Hallo,

    ich sage mal vorsichtig "danke für den Tipp". Damit dieser auch einer wird, wüsste ich noch gerne:
    Wie trage ich das in die Geräte ein? So wie ich es tun würde, sieht man oben. Von anderen Möglichkeiten (abgesehen selbige Einstellungen per Bash wo reinzukloppen), kenne ich nicht.

    Auch wäre es gut zu wissen, WAS genau, WO rein muss. Jedes mal beim Start eines Clienten eine IP auszulesen und irgendwo einzutragen, ist keine Option. Ich habe allerdings eine NO-IP-Adresse, die auf meine Beere zeigt. Allerdings scheint es mir wieder merkwürdig, erst im Klartext via Provider aus dem LAN zu gehen um dann wieder in meinen Tunnel zu kommen. Da müsste man dann wieder mit Clients arbeiten und einen tatsächlichen VPN-Server aufsetzen. Da wollte ich eigentlich drum herum kommen.

    Kannst Du Deine Aussage irgendwie präzisieren?

    Gruss

    Pi

    Einmal editiert, zuletzt von kreiszahl (9. Juni 2020 um 14:10) aus folgendem Grund: Besser verständlich

  • Auch wäre es gut zu wissen, WAS genau, WO rein muss. ...

    Das kann ich nicht sagen, weil ich die Konfiguration der anderen OSs (Windows, Android, iOS, MAC, etc.) nicht kenne bzw. nicht machen kann. ich weiß nur wie man es in Linux (oder gleichwertig) per Kommandozeile (und auch nicht per GUIs) machen könnte. Deshalb diese allgemeine Formulierung.

    Wenn Du ein Linux-Gerät (mit Monitor und Tastatur) im (W)LAN hast, dann lösche dort in der Kommandozeile, die jetzige default route und trage eine default route mit dem PI ein:

    Code
    sudo route del all default
    sudo route add default gw <IP-Adresse-PI> dev <Interface>
    route -n
    ping -c 3 1.1.1.1
    host -t A heise.de 1.1.1.1

    (ohne spitze Klammern, IP-Adresse-PI und Interface anpassen).

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Hm. Ich fürchte sowas kriegt man vielleicht noch unter MacOS und Windows hin. Bei den Mobilen Geräten wird es fast schon zu aufwendig / wartungsintensiv / kompliziert.

    Angenommen du hättest selbiger Linux-Mühle VPN laufen (gateway 123.456.789.012 / dns 210.987.654.321) und wolltest von dort aus alles was auf "ethX" kommt durch den VPN-Tunnel routen und wieder zurück?

    Ich habe stark das Gefühl, dass die Lösung nicht weit von...

    weg ist...

    Auch die Alternative ...

    funktioniert als Gateway gut.

    Gruß

  • Ich habe stark das Gefühl, dass die Lösung nicht weit von...

    weg ist...

    Auch die Alternative ...

    funktioniert als Gateway gut.

    Ja, aber das ist die Konfiguration für den PI (als VPN-Gateway bzw. als gateway für die default route der anderen Geräte). Wenn das als Gateway schon gut funktioniert, dass hast Du das doch schon mit einem anderen Gerät aus deinem (W)LAN, getestet, oder?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Hallo,

    okay... wie schon anfägnlich vermutet, bin ich glaube ich einem Geist nachgelaufen, weil ich immer einen extra DNS

    mit angeben wollte - obwohl offenbar gar nicht nötig, da dieser schon mit über den Äther des Gateways fließt.

    Einen Gateway anzugeben, war also quasi fer Fehler - wenn ich es denn jetzt richtig verstanden habe.


    Funktioiniert. Ohne leaks. Ohne Angabe eines DNS.
    Ich muss mich nochmal in das Thema DNS und VPN einlesen. Vermutlich ahbe ich längst, was ich wollte.

    Danke. Ich melde mich falls doch noch was ist. :/


    Gruß

    Pi

    Auch das war ein Satz mit X. Es funktionierte nur, wiel in Windows noch der alte DNS (1.1.1.1) gespeichert war und dieser nicht gelöscht wurde. Ohne Angabe von DNS = kein Internet auf den Clientgeräten. Die Beere *.*.*200 anzugeben, hilft nicht. Auch das weglassen nicht.

    Das Problem bleibt: Wie kriege ich meine Beere dazu, die Namesauflösung durch den VPN für die LAN-Clienten zu übernehmen?

    Einmal editiert, zuletzt von kreiszahl (9. Juni 2020 um 17:21)

  • Die Beere *.*.*200 anzugeben, hilft nicht. Auch das weglassen nicht.

    Das Problem bleibt: Wie kriege ich meine Beere dazu, die Namesauflösung durch den VPN für die LAN-Clienten zu übernehmen?

    Der PI lauscht doch nicht auf dem Port 53, weil Du diesen als DNS-Server eintragen willst?

    Macht dein PI einen Traceroute durch das VPN?

    Wie ist auf deinem PI (mit aktiver VPN-Verbindung) die Ausgabe von:

    Code
    mtr -4nr -c 1 1.1.1.1

    ?

    Ist es nur die Namensauflösung (DNS) die auf deinem Windows nicht via VPN funktioniert hat?

    Ich denke ein Ping auf eine IP-Adresse, wird dort via VPN auch nicht funktioniert haben.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Hallo,

    laufen DNS-Geschichten immer auf Port53 ab? Dann wäre das doch direkt ein Ansatz, von dem ich nichts wusste, wo man weitermachen kann.

    Kann so etwas helfen:

    Code
    sudo iptables -A INPUT -i eth0 -p udp --dport 53 -m comment --comment "udp" -j ACCEPT
    sudo iptables -A OUTPUT -o eth0 -p udp --dport 53 -m comment --comment "udp" -j ACCEPT
    sudo iptables -A INPUT -i eth0 -p tcp --dport 53 -j ACCEPT ;
    sudo iptables -A OUTPUT -o eth0 -p tcp --dport 53 -j ACCEPT ;

    oder wie hätte das auszusehen? Ich habe leider nicht viel Ahnung von den Iptables. Ich kann das gerade nicht selber ausprobieren, da ich kein Backup vom aktuellen State habe und mein Cardreader noch locker 2 Stunden schreibt. ^^;

    Ausgabe "mtr" (ohne x):

    Code
    HOST: BLACKbox                    Loss%   Snt   Last   Avg  Best  Wrst StDev
    1.|-- 10.xxx.2x.1                0.0%     1   23.6  23.6  23.6  23.6   0.0
    2.|-- x9.xxx.1xx.190             0.0%     1   25.3  25.3  25.3  25.3   0.0
    3.|-- 8x.xxx.1xx.113             0.0%     1   25.3  25.3  25.3  25.3   0.0
    4.|-- 1xx.xxx.x.36               0.0%     1   24.7  24.7  24.7  24.7   0.0
    5.|-- 1xx.xx.1x.18               0.0%     1   24.3  24.3  24.3  24.3   0.0
    6.|-- 1.1.1.1                    0.0%     1   23.4  23.4  23.4  23.4   0.0

    Sieht so aus. Zumindest ist die erst IP, er Einstieg in den VPN.
    Beste Grüße

  • Ausgabe "mtr" (ohne x):

    Code
    HOST: BLACKbox                    Loss%   Snt   Last   Avg  Best  Wrst StDev
    1.|-- 10.xxx.2x.1                0.0%     1   23.6  23.6  23.6  23.6   0.0
    2.|-- x9.xxx.1xx.190             0.0%     1   25.3  25.3  25.3  25.3   0.0
    3.|-- 8x.xxx.1xx.113             0.0%     1   25.3  25.3  25.3  25.3   0.0
    4.|-- 1xx.xxx.x.36               0.0%     1   24.7  24.7  24.7  24.7   0.0
    5.|-- 1xx.xx.1x.18               0.0%     1   24.3  24.3  24.3  24.3   0.0
    6.|-- 1.1.1.1                    0.0%     1   23.4  23.4  23.4  23.4   0.0

    Sieht so aus. Zumindest ist die erst IP, er Einstieg in den VPN.

    Dann sollte die Namensauflösung doch auch via VPN gemacht werden. Wie sind die Ausgaben von:

    Code
    cat /etc/resolv.conf
    cat /etc/nsswitch.conf
    sudo netstat -tulpena | grep -i 53

    ?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Hallo Kreiszahl,

    mit VPNs kenne ich mich nicht aus, aber kannst du nicht Pihole auf dem Raspberry installieren, sodass die DNS-Anfragen durch den VPN Tunnel geschickt werden? Dabei nimmst du 1.1.1.1 als DNS-Server und zusätzlich installierst du Unbound als DNS Cache. Die anderen Geräte stellen den Raspberry als DNS-Server ein und schon sollte alles laufen. Kann aber sein, dass ein Denkfehler drin ist, weil ich kein VPN nutze.

    Viele Grüße,

    Tigerbeere

  • Moinsen,

    ja, die gibt es. Nicht komplett in einem Aufguss, aber du kannst diverse tutorials kombinieren.

    Erstmal kurz nen Plan machen:

    1. Benötigt werden

    a) dein DNS Resolver oder aber Forwarder, damit deine Geräte die Names auch auflösen können > Pihole mit unbound > guckst du hier zB

    https://forum.kuketz-blog.de/viewtopic.php?f=42&t=3067

    b) ein VPN-Server in deinem Heimnetz, der dem Client den Tunnelaufbau ermöglich, schau hier mal nach google wireguard oder PiVPN (da halte ich mich mal zurück, denn ich habe den VPN Server nicht mit dem Rpi aufgebaut, daher keine Erfahrung, gibt hier im Forum aber bei Nutzung der SUCHFUNKTIOn diverse Tips)

    2. Wenn das läuft, dann trägst du die Pihole IP unter deiner Fritzbox > Heimnetz> Netzwerk > lokalers DNS Server ein. Somit sollten alle Geräte im eigenen Netz eigentlich Pihole als DNS Server nutzen.

    Pihole kann in Verbindung mit unbound entweder selber die DNS Anfragen an die rootDNS Server stellen, oder aber als Forwarder die Anfragen an einen beliebigen DNS Server im Netz weiterleiten (ob 1.1.1.1 da so datenschutzfreundlich ist sei mal dahingestelllt).

    Grüßle,

    the other


    Gesund bleiben! Abstand halten! Mund-Nasen-Schutz tragen! Freundlich bleiben!

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!