rpi als vpn-gateway: von anderer wohnung mit allen geräten auf server im heimnetz zugreifen

  • hallo,

    ich habe folgendes problem: in der wohung meiner freundin (WF) hängt ein 'lg smart tv', der kein VPN kann.

    in meiner Wohngemeinschaft (WG) steht mein medienserver, von dem wir gerne sachen streamen würden. ausserdem läuft eine VM mit einem openvpn-server.

    aktuell hängt am fernsehr ein raspberry pi, per vpn in die WG verbunden und per hdmi an den fernsehr - das funktioniert.

    ich möchte allerdings a) auch mit anderen geräten bei der freundin auf den medienserver zugreifen und b) keine tastatur auf dem couchtisch haben (steuernug vom rpi), der fernsehr ist ja grundsätzlich 'smart' genug um das selber streamen zu können...

    mein lösungsversuch: rpi als vpn-gateway, statische route im router eintragen und den traffic für das subnetz der WG über den vpn routen.

    infrastruktur:

    WG

    Code
    router - upc connect box [192.168.0.1] (mit /24 subnetz) 
    |- medienserver [192.168.0.12] 
    |- vpn-endpunkt [192.168.0.4] (vergibt 192.168.1.0/24 an clients) 
       |- vpnclient-1 [192.168.1.10] 
       |- vpnclient-2 [192.168.1.20] 

    WF

    Code
    router - fritz!box [192.168.178.1] (mit /24 subnetz)
    |- rpi [192.168.178.2]
    |- lg smart tv [192.168.178.26]


    folgendes habe ich gemacht:

    im rpi:

    1. apt update, apt upgrade, apt install openvpn;
    2. .openvpn config vom WG-vpn-endpunkt gezogen und nach /etc/openvpn/client/WF.conf kopiert
    3. einen systemd-service eingerichtet, der die verbindung mit obriger config herstellt
    4. in '/etc/sysctl.conf' das 'net.ipv4.ip_forward = 1' auskommentiert
    5. rpi neugestartet
    Spoiler anzeigen

    in der fritz!box:

    1. dem rpi die immer gleiche ip-adresse per dhcp zugewiesen
    2. laut dieser anleitung: https://avm.de/service/fritzb…-Box-zugreifen/
    3. eine statische ipv4-route hinzugefügt: ip: 192.168.0.0 netmask: 255.255.255.0 gateway: 192.168.178.2
    4. auf ok gedrückt

    das problem:

    vom pi erreiche ich den medienserver

    Code
    pi@raspberrypi:~ $ ping 192.168.0.12
    PING 192.168.0.12 (192.168.0.12) 56(84) bytes of data.
    64 bytes from 192.168.0.12: icmp_seq=1 ttl=63 time=34.6 ms
    64 bytes from 192.168.0.12: icmp_seq=2 ttl=63 time=35.1 ms
    ^C
    --- 192.168.0.12 ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 3ms
    rtt min/avg/max/mdev = 34.635/34.860/35.086/0.292 ms

    von anderen greäten im netzwerk aber nicht (z.b. laptop)

    Code
    [11:27:40] ~ $ ping 192.168.0.12                                                                                                                                 r1 user@thinkpad
    PING 192.168.0.12 (192.168.0.12) 56(84) bytes of data.
    ^C
    --- 192.168.0.12 ping statistics ---
    9 packets transmitted, 0 received, 100% packet loss, time 8107ms

    troubleshooting

    habe hier im forum in anderen threads gestöbert, aber keinen lösungsansatz gefunden...

    Spoiler anzeigen

    z.B. RE: RPI 4 mit PiVPN (Wireguard) -> Netzwerkumgebung verwendet leider wireguard

    RE: RPi als VPN-Gateway hab ich quasi gemacht, aber der thread scheint dann aufzuhören leider

    RE: Site to Site Wireguard VPN mit zwei Raspi's auch wireguard, da konnte ich nichts ableiten was mit aktuell weiterhilft...

    ein paar befehle, die immer wieder gewünscht wurden:

    Spoiler anzeigen

    ich habe das gefühl ich bin nah dran, aber es haut eben noch nicht hin... für vorschläge wäre ich sehr dankbar :) danke fürs lesen! :danke_ATDE:

    4 Mal editiert, zuletzt von fuchsi3010 (11. Februar 2021 um 15:17) aus folgendem Grund: ein teil war nicht anonymisiert - gefixt; sachen formattiert (forum noob - sry!)

  • rpi als vpn-gateway: von anderer wohnung mit allen geräten auf server im heimnetz zugreifen? Schau mal ob du hier fündig wirst!

  • Zur hilfreichsten Antwort springen
  • das problem:

    vom pi erreiche ich den medienserver

    von anderen greäten im netzwerk aber nicht (z.b. laptop)

    Poste mal vom PI, die Ausgaben von:

    Code
    route -n
    ip a

    D. h. der Laptop befindet sich auch im Netzwerk dieses PI (von dem Du den Medienserver schon erreichen kannst)?

    Welches Betriebssystem hast Du auf deinem Laptop?

    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

  • Route hatte ich im letzten Spoiler versteckt ;) (hatte schlechtes gewissen wegen der 'wall of text')

    Genau, vom Rpi kann ich den Medienserver erreichen (per Ping). Vom Laptop nicht (Manjaro Linux) und vom Smartphone auch nicht. (Wenn ich im WF-Netzwerk bin)

    • Hilfreichste Antwort

    Genau, vom Rpi kann ich den Medienserver erreichen (per Ping). Vom Laptop nicht (Manjaro Linux) und vom Smartphone auch nicht. (Wenn ich im WF-Netzwerk bin)

    Evtl. fehlt auf deinem PI (als VPN-gateway) das source-NAT. Wie ist auf deinem PI die Ausgaben von:

    Code
    sudo iptables -nvx -L -t nat

    ?

    Wenn nicht vorhanden, dann konfiguriere (nicht persistent):

    Code
    sudo iptables -t nat -I POSTROUTING -1 -o tun0 -j MASQUERADE
    sudo iptables -t nat -I POSTROUTING -2 -o eth0 -j MASQUERADE

    und teste:

    Code
    ping -c 3 192.168.0.12

    vom Laptop. Wenn OK, dann konfiguriere das source-NAT im PI, persistent.

    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

  • tldr: es funktioniert, vielen lieben dank! :)

    lange geschichte:

    ich bin ein depp und habe nur das halbe tutorial gemacht:

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.
    . das habe ich schon als VPN-Gateway im WG-Netz am laufen, und habe es größtenteils auch hier nachvollzogen. da gibt es ein iptables 'script', das u.a. alle verbindungen blockiert, die nicht durch den vpn gehen - das wollte ich in dem fall nicht unbedingt, und hab die iptables regeln weggelassen.

    in den script haben sich natürlich auch die nat-regeln versteckt... blöd.

    quelle: https://drive.google.com/drive/folders/…qot3849PjT3b8Rm aus der beschreibung des obrigen videos

    rpi444 als ich das ausgeführt habe

    Zitat

    Wenn nicht vorhanden, dann konfiguriere (nicht persistent):

    Code

    Code
    sudo iptables -t nat -I POSTROUTING -1 -o tun0 -j MASQUERADE
    sudo iptables -t nat -I POSTROUTING -2 -o eth0 -j MASQUERADE

    habe ich eine fehlermeldung bekommen:

    Code
    pi@raspberrypi:~ $ sudo iptables -t nat -I POSTROUTING -1 -o tun0 -j MASQUERADE
    iptables v1.8.2 (nf_tables): unknown option "-1"
    Try `iptables -h' or 'iptables --help' for more information.

    ich hab kurz gegoogelt und im man iptables nachgeschaut, aber in der kürze nix gefunden, und jetzt die oben genannte config hergenommen.

    wie gesagt, hätte ich mal das tutorial gescheit befolgt, hätte es kein problem gegeben. :blush::wallbash:

    Vielen Dank für die Antworten hier, hab wieder etwas über networking unter linux dazugelernt! :danke_ATDE:

  • rpi444 als ich das ausgeführt habe

    habe ich eine fehlermeldung bekommen:

    Code
    pi@raspberrypi:~ $ sudo iptables -t nat -I POSTROUTING -1 -o tun0 -j MASQUERADE
    iptables v1.8.2 (nf_tables): unknown option "-1"
    Try `iptables -h' or 'iptables --help' for more information.

    Ja, mein Fehler, das "-" vor 1 und 2 muss man weglassen.

    Code
    sudo iptables -t nat -I POSTROUTING 1 -o tun0 -j MASQUERADE
    sudo iptables -t nat -I POSTROUTING 2 -o eth0 -j MASQUERADE

    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

Jetzt mitmachen!

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