PiVPN keine Client Kommunikation

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Grüße ins Forum,

    Ich hätte mal eine Frage an die Community zum Thema PiVPN.

    Zuerst mal mein Ziel:

    Ich möchte einen OpenVPN Server auf meinem Raspberry Pi 2 aufsetzen als alternative zu Hamachi und Tunngle.

    Sprich, das Ziel ist nur ein gemeinsames Netzwerk um ältere Lanspiele gemeinsam spielen zu können.


    Was habe ich getan:

    Ich habe dies im letzten Jahr schon mal hinbekommen, damals habe ich versucht den OpenVPN Server "händisch" einzurichten, bin gescheitert und habe dann das Projekt pivpn gefunden. Mit dem Befehl "curl -L https://install.pivpn.io | bash" war es mir dann möglich den VPN Server zu nutzen.

    Jetzt hat es den Pi leider entschärft und ich habe versucht mit "curl -L https://install.pivpn.io | bash" einen neuen Server aufzusetzen, scheitere aber leider.

    Ich kann die VPN Verbindung zum Pi aufbauen kann mich auch von den Clients aus per putty auf 10.8.0.1 aufwählen, kann aber von den Clients aus keinen Ping auf den Pi absetzen und auch die Kommunikation der Clients untereinander funktioniert nicht.

    Vom Pi aus kann ich allerdings die verbundenen Clients anpingen.

    Server.conf

    Spoiler anzeigen

    dev tun

    proto udp

    port 1194

    ca /etc/openvpn/easy-rsa/pki/ca.crt

    cert /etc/openvpn/easy-rsa/pki/issued/server_h54DxIMsRGv5OnoP.crt

    key /etc/openvpn/easy-rsa/pki/private/server_h54DxIMsRGv5OnoP.key

    dh /etc/openvpn/easy-rsa/pki/dh2048.pem

    topology subnet

    server 10.8.0.0 255.255.255.0

    # server and remote endpoints

    ifconfig 10.8.0.1 10.8.0.2

    # Add route to Client routing table for the OpenVPN Server

    push "route 10.8.0.1 255.255.255.255"

    # Add route to Client routing table for the OPenVPN Subnet

    push "route 10.8.0.0 255.255.255.0"

    # your local subnet

    push "route 0.0.0.0 "

    # Set your primary domain name server address for clients

    push "dhcp-option DNS 8.8.8.8"

    push "dhcp-option DNS 8.8.4.4"

    # 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 10 120

    remote-cert-tls client

    tls-version-min 1.2

    tls-auth /etc/openvpn/easy-rsa/pki/ta.key 0

    cipher AES-256-CBC

    auth SHA256

    comp-lzo

    user nobody

    group nogroup

    persist-key

    persist-tun

    crl-verify /etc/openvpn/crl.pem

    status /var/log/openvpn-status.log 20

    status-version 3

    log /var/log/openvpn.log

    verb 1

    # Generated for use by PiVPN.io


    Client Profil:

    Spoiler anzeigen

    client

    dev tun

    proto udp

    remote DNS-Server 1194

    resolv-retry infinite

    nobind

    persist-key

    persist-tun

    key-direction 1

    remote-cert-tls server

    tls-version-min 1.2

    verify-x509-name server_h54DxIMsRGv5OnoP name

    cipher AES-256-CBC

    auth SHA256

    comp-lzo

    verb 1

    route-nopull

    <ca>

    -----BEGIN CERTIFICATE-----

    Der Eintrag route-nopull Stammt im übrigen noch vom alten VPN Server, da ich nicht wollte, dass der gesammte Datenverkehr der verbunden Mitglieder über mich geleitet wird. Ich habe es aber auch schon ohne diesen Eintrag versucht.

    Ich hoffe einer hat eine Zünden Idee was mein Fehler ist.

    Schon mal vorab :danke_ATDE:

  • Hey Toifel willkommen im Forum =)

    Ich kann jetzt nicht direkt mit dem Finger auf den Fehler zeigen kann es jedoch mit meinem funktionierenden Setup vergleichen.

    Ich habe ebenfalls PiVPN anhand dieser Anleitung aufgesetzt.

    Meine Server.conf sieht wie folgt aus:

    Spoiler anzeigen

    dev tun

    proto udp

    port 1194

    ca /etc/openvpn/easy-rsa/pki/ca.crt

    cert /etc/openvpn/easy-rsa/pki/issued/server_7RomEdRY4tuDtQHQ.crt

    key /etc/openvpn/easy-rsa/pki/private/server_7RomEdRY4tuDtQHQ.key

    dh /etc/openvpn/easy-rsa/pki/dh2048.pem

    topology subnet

    server 10.8.0.0 255.255.255.0

    # server and remote endpoints

    ifconfig 10.8.0.1 10.8.0.2

    # Add route to Client routing table for the OpenVPN Server

    push "route 10.8.0.1 255.255.255.255"

    # Add route to Client routing table for the OPenVPN Subnet

    push "route 10.8.0.0 255.255.255.0"

    # your local subnet

    push "route 0.0.0.0 "

    # Set your primary domain name server address for clients

    push "dhcp-option DNS 192.168.1.20"

    # 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 10 120

    remote-cert-tls client

    tls-version-min 1.2

    tls-auth /etc/openvpn/easy-rsa/pki/ta.key 0

    cipher AES-256-CBC

    auth SHA256

    comp-lzo

    user nobody

    group nogroup

    persist-key

    persist-tun

    crl-verify /etc/openvpn/crl.pem

    status /var/log/openvpn-status.log 20

    status-version 3

    log /var/log/openvpn.log

    verb 1

    # Generated for use by PiVPN.io

    Beim Client-Profil habe ich nichts verändert. Sehe jetzt auch in der server.conf auf den ersten Blick keinen signifikanten Unterschied. Du hast halt die google-DNS eingetragen während ich ein Pi-Hole als DNS verwende. Schau sonst mal in die oben verlinkte Anleitung evt findest du da ja etwas.

    Ich suche nicht nach einer fertigen Lösung sondern nach dem Weg dahin ;)

    Einmal editiert, zuletzt von Apop85 (21. Januar 2018 um 18:08)

  • Hi Apop85,

    vielen Dank für deine Mühe, mir ist bei den beiden Configs auch kein Unterschied aufgefallen (außer der DNS natürlich).

    Ich werde dann mal deine Anleitung durcharbeiten und sehen ob ich was finde, andernfalls setze ich die Kiste einfach noch mal auf, vielleicht ist beim ausführen des Skriptes auch was schief gelaufen.

    schiebst du jetzt eigentlich jeglichen Datenverkehr über deinen Pi oder nur die Daten, welche auch für das 10.8.0.XXX Netz gedacht sind?


    Edit: Kurze Frage, war deine Anleitung wirklich eine Stellenbeschreibung in der Schweiz? ^^

    Einmal editiert, zuletzt von Toifel (21. Januar 2018 um 17:42)

  • Lol hoppla nein natürlich war der Link falsch

    hier nochmals der richtige Link dazu.

    Und bezüglich deiner Frage. Nur der Datenverkehr des VPN's laufen über den Pi. Vom restlichen Netzwerk wird nur die DNS-Abfrage über den Pi bzw das PiHole geleitet.

    EDIT:

    Hab hier noch einige Beiträge gefunden die dir evt helfen könnten. Sind aber tw auch schon älter.

    How can multiple clients of an openvpn server find each other.
    HOWTO connect to hosts on a remote network using OpenVPN and some routing

    OpenVPN Howto (Suche nach "client-to-client")

    Ich suche nicht nach einer fertigen Lösung sondern nach dem Weg dahin ;)

    Einmal editiert, zuletzt von Apop85 (21. Januar 2018 um 18:43)

  • Nochmals vielen Dank für die Unterstützung,

    leider bin ich noch keinen Schritt weiter (ich habe zur Vollständigkeit auch den Server nochmals deinstalliert und neu installiert)

    Allerdings habe ich was interessantes festgestellt, ich habe einen dauerhaften Ping von meinem Client zum Server laufen lassen (über die VPN) und gelegentlich schafft es hier mal ein Ping durch.

    Mein Netzwerk ist ein wenig eigen, Ich habe eine Fritz!box 7412 als Modem, dahinter eine Fritz!box 7272 welche das eigentlich Netzwerk verwaltet.

    Die 2. Box ist auch als Exposed Host eingetragen, Hat jemand damit schon Erfahrung gemacht? Gibt es Timeouts an denen man drehen kann?

    Was mich noch interessieren würde, was liegt denn bei euch alles im openvpn Verzeichnis?

    bei mir gibt es client, crl.pem, easy-rsa, server, server.conf und update-resolv-conf. Auf meinem alten Pi gab es hier noch eine client.conf

  • Hey Toifel

    Im Openvpnverzeichnis befindet sich bei mir folgendes:

    [+]client

    [+]easy-rsa

    [+]server

    [-]crl.pem

    [-]server.conf

    [-]update-resolv-conf

    [+] = Ordner, [-] = Dateien

    client.conf ist bei mir nicht vorhanden.

    Ich habs in meinem Netzwerk nun auch mal getestet und es scheint wohl default zu sein dass clients sich untereinander nicht finden können.

    Hast du dir die links mit den client-to-client Verbindungen mal angeschaut? Soweit ich das beim kurzen überfliegen verstanden habe müsste man irgendwo noch eintragen dass client2client möglich ist.

    Habe bei mir auch ein "mehrschichtiges" Netzwerk (zumindest nenn ich das so ^^ ). Ein router mit 100mbit an welchem der Pi hängt und ins Internet geht und ein Gbit-Router an welchem die restlichen Geräte mittels eth/wlan verbunden sind.

    Das einige Pings durchkommen finde ich auch eher eigenartig und kann ich mir auch nicht wirklich erklären.

    Grüsse Apop

    Ich suche nicht nach einer fertigen Lösung sondern nach dem Weg dahin ;)

  • Grüße, ja das mit die client-to-client verbindung erst aktiviert werden müsse habe ich in einer deiner Anleitungen gelesen.

    Allerdings habe ich es da so gelesen, dass vor den "Befehl" client-to-client ein # gesetzt werden müsse. Da ich ja keine Ahnung von nichts habe, bin ich immer davon ausgegangen " # client-to-client "macht aus dem Befehl einen Kommentar und deaktiviert ihn so zu sagen. (wobei in deiner config datei ja auch nur client-to-client steht und da funktioniert ja auch alles)

    Allerdings haben mich deine Links auch auf ein paar andere Dinge stoßen lassen.

    Ich habe noch einen anderen Test PC in einem ganz anderen Netzwerk stehen (also anderer Internetanschluss) dabei ist mir aufgefallen, bei geöffneter VPN Verbindung ich zwar mittel putty die SSH Verbindung aufbauen kann aber nicht mittels FTP auf den Pi zugreifen kann (dies ist auch bei meinem Laptop im lokalen Netz so, FTP über lokale IP funktioniert aber)

    Jetzt zu meinen Verzweiflungstheorien:

    Ich habe beim IP Test diesen Bericht bekommen

    Test IPv4: OK
    Test IPv6: fehlgeschlagen
    Test Dual Stack: OK

    und über einen deiner Links etwas gelesen, dass Dual Stack bei VPNs Probleme machen könnte und eine Lösung dazu unter etc/iptables/rules.v4 und rules.v6 zu finden sein könnten.

    Könntest du mir sagen was da bei dir zu finden ist?

    Achso und man solle mit mtu Werten experimentieren, nur finde ich nicht wo und was am besten rein soll.

    Einmal editiert, zuletzt von Toifel (23. Januar 2018 um 20:59)

  • Hey

    Hmm mit FTP habe ich keine Probleme. Kann mittels VPN normal über die lokale IP des Pi's von ausserhalb zugreifen.

    iptables sieht bei mir so aus:

    Spoiler anzeigen

    Chain INPUT (policy ACCEPT)

    target prot opt source destination

    f2b-ssh tcp -- 0.0.0.0/0 0.0.0.0/0

    f2b-sshd tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 22

    Chain FORWARD (policy ACCEPT)

    target prot opt source destination

    Chain OUTPUT (policy ACCEPT)

    target prot opt source destination

    Chain f2b-ssh (1 references)

    target prot opt source destination

    RETURN all -- 0.0.0.0/0 0.0.0.0/0

    Chain f2b-sshd (1 references)

    target prot opt source destination

    RETURN all -- 0.0.0.0/0 0.0.0.0/0

    Hab da aber nie speziell etwas konfiguriert. IPv6 wird von meinem Provider nicht unterstützt daher habe ich da nichts aktiviert.

    Ich hab sonst für mich mal ne Anleitung geschrieben mit allen Schritten zur Konfiguration des Pi's inkl OpenVPN. Ich glaub zwar nicht dass ausser der DNS-Konfiguration da etwas anders ist. Aber evt fällt dir ja etwas auf.

    Hier hab ich noch etwas gefunden was möglicherweise das Problem sein könnte. Der Beitrag unterhalb der angegebenen Lösung:

    Spoiler anzeigen

    Wichtig ist nur das deine Endgeräte im Netz den RasPi als Gateway für die 10er Netze finden. Da sie die FritzBox als Default Gateway haben musst du zwingend der FritzBox eine statische Route auf die 10er Netze eintragen !!


    Entweder einen globale Route:
    Zielnetz: 10.0.0.0, Maske 255.252.0.0, Gateway: <LAN-IP_Adresse_RasPi>

    Dann werden ALLE 10.0.0.0 bis 10.3.255.255 Netze zum RasPi geroutet. Oder du kannst das auch dediziert machen:
    Zielnetz: 10.0.1.0, Maske 255.255.255.0, Gateway: <LAN-IP_Adresse_RasPi>

    Zielnetz: 10.1.0.0, Maske 255.255.255.0, Gateway: <LAN-IP_Adresse_RasPi> //

    Es gibt kein Gateway für die 10er Netze. Klingt zumindest plausibel :conf:.

    Zu den mtu-werten hab ich grad nichts gefunden.

    Ich suche nicht nach einer fertigen Lösung sondern nach dem Weg dahin ;)

  • Grüße Apop85,

    zuerst einmal vielen Dank für deine Geduld, mit deinen Anleitungen bin ich noch nicht ganz durch habe aber parallel dazu mal noch einige andere Tests gemacht.

    Einer davon klingt für mich erstmal noch ganz interessant aber gleichzeitig ernüchternt.

    ich habe in meiner Client Config die Dyndns Adresse entfern und stattdessen die lokale IP des Pis angegeben. (Ja ein Tunnel zwischen 2 Geräten im selben Netz ergibt technisch wenig Sinn, ist ja aber nur zum Test)

    Nun kann ich von meinem verbunden Client aus die IP 10.8.0.1 stabil anpingen und kann auch mittels FTP Client auf den pi zugreifen (über die VPN IP)

    Bedeutet für mich so viel wie entweder ist die VPN mit den 2 Fritz!Boxen hintereinander überfordert. Das werde ich am WE mal testen und den VPN-Pi hinter die erste Box hängen ODER es liegt wirklich an meiner Art des DSL Anschlusses.

  • Ok das Hauptproblem scheine ich jetzt gefunden zu haben.

    Ich habe den Pi mit einem Switch direkt hinter die erste Fritz!Box gehangen und die Portweiterleitung 1194 von meiner 2. Fritz!Box auf den pi umgelegt.

    Nun ist es möglich die 10.8.0.1 stabil anzupingen und auch der FTP Zugriff auf den Pi von einem externen Netzwerk ist nun möglich.

    Auch auf freigegebene Ordner kann ich nun erfolgreich zugreifen.

    Hinweis also an alle: Fritz!Box -> Fritz!Box -> PiVPN funktioniert nicht ohne weiteres!

    Was allerdings noch nicht funktioniert, Spiele über den VPN Tunnel miteinander spielen zu können.

    Ich habe zur Vollständigkeit auch PiVPN noch mal komplett deinstalliert und neu installiert und das Lan-Spiel mit und ohne "route-nopull" befehl in den Client Configs probiert.

    Ich würde das restliche Wochenende noch mal die Anleitungen durcharbeiten, wenn allerdings einer schon mal das gleiche Problem hätte wäre ich über eine direkte Lösung auch nicht böse ^^

    Edit: wenn ich in der Server und Client Config den Eintrag

    "dev tun" auf "dev tap" ändere funktioniert es, also wahrscheinlich ein Broadcasts Problem.

    • Bridging (TAP-Device)
    • Routing (TUN-Device)

    Eine Brücke will ja aber keiner ^^

    Einmal editiert, zuletzt von Toifel (27. Januar 2018 um 20:46)

Jetzt mitmachen!

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