OpenVPN installiert & läuft, aber nicht erreichbar

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

    ich habe mich mal wieder an OpenVPN versucht, aber leider klappt es auch nach einem Jahr noch nicht ;)

    Ich hab OpenVPN installiert wie in der Anleitung bei jankarres.de (Artikel). Lief alles flüssig durch, aber leider kann ich mich nicht von außen verbinden. Ich erhalte folgende Fehlermeldung:


    Ich bin mal so frei, meine Config Files zu posten:

    openvpn.conf

    raspberrypi.opvn

    Und noch einige System Outputs ...

    route -n

    Code
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 wlan0
    10.8.0.0        10.8.0.2        255.255.255.0   UG    0      0        0 tun0
    10.8.0.2        0.0.0.0         255.255.255.255 UH    0      0        0 tun0
    192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 wlan0

    iptables -nvx -L

    Code
    Chain INPUT (policy ACCEPT 551 packets, 64970 bytes)
        pkts      bytes target     prot opt in     out     source               destination
    
    
    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
        pkts      bytes target     prot opt in     out     source               destination
    
    
    Chain OUTPUT (policy ACCEPT 603 packets, 74340 bytes)
        pkts      bytes target     prot opt in     out     source               destination

    sudo netstat -tulpen

    In meiner FB-Firewall habe ich den Port 1194 für UDP und TCP weitergeleitet auf den Pi. Komischerweise wird mir der Port aber bei Port Checkern als geschlossen angezeigt. Ich vermute daher, dass irgendwas mit dem Service nicht stimmt, und dass es nicht an potentiellen Clients liegt. [update] Wobei ich gerade gelesen habe, dass UDP schwierig zu überprüfen sein soll. Bei pentest-tools.com habe ich gerade als Meldung "PORT STATE SERVICE - 1194/udp open|filtered openvpn " erhalten, wobei alle anderen Seiten, die mir Google in den Top10 gegeben hat, sagen, dass der Port zu sei.

    Was sagt ihr dazu? Was könnte ich überprüfen, oder woran könnte es liegen? :-/

    Bin für jeden Hinweise sehr dankbar!

    ***

    edit
    Ich habe es gerade intern im Heimnetz (ja, ich gehe auch davon aus, dass es im LAN eh nicht funktioniert) probiert und in der Console von OpenVPN kam folgendes Log zustande:

    Sieht für mich so aus, als würde es im LAN halbwegs funktionieren. Mich wundert dann aber, dass der Zugriff von außen so gar nicht geht und gleich geblockt wird :-/

    Ich hab auch mal einen Screenshot von den Freigaben in der FritzBox angehängt.

  • OpenVPN installiert & läuft, aber nicht erreichbar? Schau mal ob du hier fündig wirst!

  • Hallo nochmal,

    ich habe per tcpdump rausgefunden, dass doch eine Verbindung hergestellt worden sein muss. Ich habe da einige Ergebnisse, die etwa so aussehen:

    19:26:57.388081 e8:de:27:1f:29:e8 > 34:31:c4:33:48:f4, ethertype IPv4 (0x0800), length 156: (tos 0x0, ttl 64, id 47072, offset 0, flags [DF], proto UDP (17), length 142) <LocalPiAddress>.1194 > <RemoteComputer>.57145: [udp sum ok] UDP, length 114

    Komisch, dass der Handshake trotzdem fehlschlägt. Muss ich ggf. nochmal die Config Files durchgehen und vielleicht die Zertifikate nochmal generieren.

    Oder habt ihr noch eine Idee?

    Einmal editiert, zuletzt von Tronn (14. April 2015 um 19:32)

  • [quote='Tronn','http://test.forum-raspberrypi.de/forum/index.ph…8921#post148921']

    openvpn.conf


    raspberrypi.opvn

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

  • Ich fürchte, es funktioniert immer noch nicht.

    Folgendes steht im Log:

    Am Pi sehe ich per TCPDump immer noch, dass die Verbindung versucht wird herzustellen bzw. dass Kommunikation vorhanden ist :-/

  • Also ich bin da jetzt auch nicht so der Experte aber meine config files sehen deinen zum Verwechseln ähnlich ;)

    Zwei Dinge fallen mir aber auf:

    • Wenn du in deiner Config sagst, dass dein Protokoll UDP ist (prot=udp) solltest du das doch auch bei deinem Port-Mapping verwenden?
    • Zwei Portweiterleitungen mit dem selben Port (ein Mal UDP, ein mal TCP) könnte Probleme machen.

    Ich hatte ähnliche Probleme. Bin mir im Moment nur nicht mehr ganz klar was endlich den Ausschlag gab...aber ich glaube das wars.

    Ist deinem dns-Dienst deine IP bekannt?

    Gruß
    Dan

    Einmal editiert, zuletzt von dan1180 (23. April 2015 um 13:47)

  • Hallihallo,

    hab mal wieder Zeit für das olle VPN. Neu installiert, geht nicht.

    Dann bin ich mal deine Anleitung durchgegangen. Die ersten Schritte sind ja wie bei jankarres.de

    in /etc/openvpn/easy-rsa/2.0/vars hab ich jetzt am Ende der Datei:


    KEY_SIZE war ja schon 1024. CA und KEY EXPIRE hab ich bei 3650 gelassen, weil egal.

    Code
    export EASY_RSA="`pwd`"

    ... hab ich so gelassen, weil es nicht in der Anleitung vorkommt.

    Diese Meldung/Warnung hab ich bekommen:

    Code
    . ./vars
    NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/2.0/keys

    Warum hab ich eigentlich nicht den CN geändert? Du schreibst, der Common Name dürfe nur einmal vorkommen, hast ihn in deiner Config aber gar nicht geändert. Das verwirrt mich etwas :( Ist jetzt jedenfalls "changeme" in der Config Datei und anscheinend "pivpn" ;)

    Code
    commonName            :PRINTABLE:'pivpn'

    Dann hab ich den User Key generiert mit:

    Code
    ./build-key tronn
    # als Infos in dem Zertifikat:
    commonName            :PRINTABLE:'tronn'
    name                  :PRINTABLE:'tronn'
    emailAddress          :IA5STRING:'tronn@mymail.de'

    in der openvpn_ssl.conf hab ich den Port auf 1194 geändert, weil der schon so in meinem Router drin ist. Außerdem den IP-Adressbereich in 192.168.0.0 geändert. Ansonsten alles gleich.

    Spoiler anzeigen

    Die Dateien von /etc/openvpn/easy-rsa/2.0/keys kopiert nach /etc/openvpn/certstore

    Spoiler anzeigen
    Code
    cp dh1024.pem /etc/openvpn/certstore/
    cp pivpn.crt /etc/openvpn/certstore/
    cp ca.crt /etc/openvpn/certstore/
    cp pivpn.key /etc/openvpn/certstore/

    ... und dann läuft der Server nicht mehr an:

    Code
    /etc/init.d/openvpn restart
    [ ok ] Stopping virtual private network daemon:.
    [FAIL] Starting virtual private network daemon: openvpn openvpn_ssl failed!

    Im Log (tail -f /var/log/syslog) steht:

    Code
    May 26 12:33:35 pi-seafile01 ovpn-openvpn_ssl[15186]: Diffie-Hellman initialized with 1024 bit key
    May 26 12:33:35 pi-seafile01 ovpn-openvpn_ssl[15186]: TLS-Auth MTU parms [ L:1558 D:138 EF:38 EB:0 ET:0 EL:0 ]
    May 26 12:33:35 pi-seafile01 ovpn-openvpn_ssl[15186]: Socket Buffers: R=[163840->131072] S=[163840->131072]
    May 26 12:33:35 pi-seafile01 ovpn-openvpn_ssl[15186]: TCP/UDP: Socket bind failed on local address [undef]: Address already in use
    May 26 12:33:35 pi-seafile01 ovpn-openvpn_ssl[15186]: Exiting

    Ich dachte, vielleicht liegt es an der 192.168.0.0, die ich geändert hab. Aber als ich es zurückgesetzt hab auf 192.168.1.0, kam die gleiche Fehlermeldung.

    Spoiler anzeigen
    Code
    tail -f /var/log/syslog
    May 26 12:36:08 pi-seafile01 ovpn-openvpn_ssl[15337]: Diffie-Hellman initialized with 1024 bit key
    May 26 12:36:08 pi-seafile01 ifplugd(tun0)[15334]: Executing '/etc/ifplugd/ifplugd.action tun0 up'.
    May 26 12:36:08 pi-seafile01 ovpn-openvpn_ssl[15337]: TLS-Auth MTU parms [ L:1558 D:138 EF:38 EB:0 ET:0 EL:0 ]
    May 26 12:36:08 pi-seafile01 ovpn-openvpn_ssl[15337]: Socket Buffers: R=[163840->131072] S=[163840->131072]
    May 26 12:36:08 pi-seafile01 ovpn-openvpn_ssl[15337]: TCP/UDP: Socket bind failed on local address [undef]: Address already in use
    May 26 12:36:08 pi-seafile01 ovpn-openvpn_ssl[15337]: Exiting

    Was mich noch wundert: jankarres.de listet noch "sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE" auf. Der Befehl taucht bei dir nicht auf.

    Sorry, it's a huge mess. Ich könnte es verstehen, wenn ihr auch aufgeben würdet :/

    Einmal editiert, zuletzt von Tronn (26. Mai 2015 um 12:43)

  • Hallo Tronn,

    wow ein Jahr. Ich habe ja auch einige "Leichen im Keller" ...
    An Deiner Stelle würde ich alle Zertifikate neu erstellen. Zudem ist es wohl Sinnvoll die Verbindung erst im Heimnetz zu versuchen. Ohne jegliche Firewall zwischen den beiden Parteien. Step by Step.


    Warum hab ich eigentlich nicht den CN geändert? Du schreibst, der Common Name dürfe nur einmal vorkommen, hast ihn in deiner Config aber gar nicht geändert. Das verwirrt mich etwas :( Ist jetzt jedenfalls "changeme" in der Config Datei und anscheinend "pivpn" ;)


    In der Config (vars) sind die Vörschläge, welche man beim Erstellen der Zertifikaten angezeigt bekommt
    .
    Den CN musst Du bei jedem Zertifikat angeben/ändern, wenn Du das Zertifikat erstellst!

    ALSO:
    In das entsprechende Verzeichnis wechseln. Deine Einträge in der "vars"-Datei sollten ja noch passen.
    Dann:

    Code
    source ./vars
    ./clean-all # Danach sind die "alten" Zertifikate, im Verzeichnis keys, weg!
    ./build-ca # Siehe folgende Beispiel


    Ich habe bei mir jetzt mal die Standwerte in der vars gelassen

    Dort wo "changeme" steht, etwas eintragen! Nicht einfach <Enter> drücken.

    Dieses natürlich bei "./build-key-server <name>" und "./build-key <name>" auch entsprechend eingeben. Besonders der "Common Name" sollte eindeutig sein.
    Noch etwas vergessen? Ja: "./build-dh"

    Danach müssen die Dateien (*.crt, *.dh, *.pem, *.key, usw.) unbedingt auf den Rechnern (Client und Server) ersetzt werden!

    Da ich gestern es noch eingerichtet habe schmeiße ich mal meine Server-Datei rüber:
    Ein wenig angepasst (IPv4, IP-Adressbereich, Zertifikatsverzeichnis, TA-Key, Port)

    Spoiler anzeigen



    Bei dieser Konfiguration ist es halt wichtig, dass auch jeder Rechner einen eigenen Common Name (CN) in ihren eigenen Zertifikaten stehen haben.


    Was mich noch wundert: jankarres.de listet noch "sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE" auf. Der Befehl taucht bei dir nicht auf.


    Das hat erst einmal nichts mit OpenVPN zu tun.
    Erst mal musst Du die Verbindung zwischen den zwei Rechnern hin bekommen.
    Danach kann man sich mit Routing/Firewall/NAT usw. beschäftigen. Je nachdem was man erreichen will.

    HTH

    Viele Grüße
    Olaf

    Wer nicht gekennzeichnete Rechtschreibfehler findet darf sie gerne behalten..

Jetzt mitmachen!

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