OpenVPN (site to site) keine Verbindung über ds-lite trotz Portmapper



  • Moin,

    ich versuche jetzt schon seit mehreren Tagen eine OpenVPN (site to site) Verbindung zwischen zwei Netzwerken herzustellen. In meinem Anwendungsfall bestehen jedoch weitere Schwierigkeiten, die die einfachen Tutorials von YouTube, etc. unbrauchbar machen. Ich hoffe, mir kann jemand helfen!

    Im Detail:

    Site A (Server)

    • Router: pfSense 2.4.5-RELEASE-p1 -> direkt am Modem der DeutschenGlasfaser
    • Die pfSense erhält eine mehr oder weniger statische IPv6
    • Netzwerk: 192.168.178.0/24
    • Port für OpenVPN (1194 TCP/UDP) geöffnet

    Site B (Client)

    • Router: Asus RT-AX88U -> an eine FritzBox 7390 als Modem (alle Ports zum Asus geöffnet)
    • Der Asus Router dient als "richtiger Router" für andere Clients
    • Auf dem Asus ist die erweiterte Firmware Asus Merlin installiert
    • Netzwerk: 192.168.50.0/24

    Mein Ziel:

    • Eine Site to Site Verbindung der beiden Netzwerke, dass Clients der jeweiligen Seiten miteinander kommunizieren können.

    Die Probleme, die ich bei dieser Konfiguration habe, sind:

    • Die Deutsche Glasfaser gibt bei den Privattarifen die IPv4 nur als "ds-lite", somit habe ich schon über einen v-Server versucht via 6tunnel den TCP-Port für https (443) und OpenVPN (1194) zu öffnen, bzw. an meine IPv6 weiterzuleiten. Dadurch habe ich es auch bereits geschafft die pfSense-Oberfläche mit der IPv4-Adresse des vServers aufzurufen.

    Mein bisheriger Erfolg:

    • Nach langem Rumprobieren bekomme ich bei der pfSense im FireWall-Log angezeigt, dass über das WAN-Interface und die Portfreigabe, die ich für OpenVPN erstellt habe ein Zugriff erlaubt wurde. Der Tunnel ansich wird aber nicht aufgebaut und der Asus Router bricht nach mehreren Versuchen ab, siehe Log.

    Das ist der Log vom Asus Router:

    Oct 15 19:01:37 httpd: nvram_check fail: nvram vpn_client_reneg over length (6 > 5)
    Oct 15 19:01:37 rc_service: httpds 1114:notify_rc start_vpnclient1
    Oct 15 19:01:37 ovpn-client1[345]: disabling NCP mode (--ncp-disable) because not in P2MP client or server mode
    Oct 15 19:01:37 ovpn-client1[345]: OpenVPN 2.4.7 arm-buildroot-linux-gnueabi [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [MH/PKTINFO] [AEAD] built on Jul 31 2019
    Oct 15 19:01:37 ovpn-client1[345]: library versions: OpenSSL 1.1.1c 28 May 2019, LZO 2.08
    Oct 15 19:01:37 ovpn-client1[346]: NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
    Oct 15 19:01:37 ovpn-client1[346]: Outgoing Static Key Encryption: Cipher 'AES-128-CBC' initialized with 128 bit key
    Oct 15 19:01:37 ovpn-client1[346]: Outgoing Static Key Encryption: Using 256 bit message hash 'SHA256' for HMAC authentication
    Oct 15 19:01:37 ovpn-client1[346]: Incoming Static Key Encryption: Cipher 'AES-128-CBC' initialized with 128 bit key
    Oct 15 19:01:37 ovpn-client1[346]: Incoming Static Key Encryption: Using 256 bit message hash 'SHA256' for HMAC authentication
    Oct 15 19:01:37 ovpn-client1[346]: TUN/TAP device tun11 opened
    Oct 15 19:01:37 ovpn-client1[346]: TUN/TAP TX queue length set to 1000
    Oct 15 19:01:37 ovpn-client1[346]: /bin/ip link set dev tun11 up mtu 1500
    Oct 15 19:01:38 ovpn-client1[346]: /bin/ip addr add dev tun11 local 10.8.8.2 peer 10.8.8.1
    Oct 15 19:01:38 ovpn-client1[346]: updown.sh tun11 1500 1575 10.8.8.2 10.8.8.1 init
    Oct 15 19:01:38 ovpn-client1[346]: TCP/UDP: Preserving recently used remote address: [AF_INET]82.165.XX.XXX:1194
    Oct 15 19:01:38 ovpn-client1[346]: Socket Buffers: R=[87380->87380] S=[16384->16384]
    Oct 15 19:01:38 ovpn-client1[346]: Attempting to establish TCP connection with [AF_INET]82.165.XX.XXX:1194 [nonblock]
    Oct 15 19:01:39 ovpn-client1[346]: TCP connection established with [AF_INET]82.165.69.184:1194
    Oct 15 19:01:39 ovpn-client1[346]: TCP_CLIENT link local: (not bound)
    Oct 15 19:01:39 ovpn-client1[346]: TCP_CLIENT link remote: [AF_INET]82.165.XX.XXX:1194
    Oct 15 19:03:48 ovpn-client1[346]: Connection reset, restarting [-1]
    Oct 15 19:03:48 ovpn-client1[346]: SIGUSR1[soft,connection-reset] received, process restarting
    Oct 15 19:03:48 ovpn-client1[346]: Restart pause, 5 second(s)

    Und hier nochmal ein paar Bilder zur Konfiguration beider Router, in der Hoffnung, dass die Infos hilfreich sind.


    OpenVPN Status vom Asus Router
    Forum_1.PNG

    OpenVPN Konfiguration vom Asus Router
    Forum_2.PNG

    Portfreigabe der pfSense
    Forum_3.PNG

    FireWall Log der pfSense
    Forum_4.PNG

    Ich hoffe mir kann jemand helfen. Danke im Voraus!
    Tom


  • LAYER 8 Rebel Alliance

    Wieso nimmst du nicht Site B als Server? Dann kannst du dir die vServer Krücke sparen und schon mal als Problem ausschließen. Es spielt später im S2S Betrieb bei OpenVPN überhaupt keine Rolle wer Client oder Server ist.

    EDIT: TCP als Tunnel Protocol ist keine gute Idee, nicht ohne Grund ist UDP erst mal default bei OpenVPN.

    -Rico



  • This post is deleted!


  • @Rico

    Danke Rico für Deine Antwort. Ja, die Idee, dass man die pfSense als Client hat, hatte ich auch schon. Der Asus Router ist mir dafür aber zu unübersichtlich.

    Nichtsdestotrotz konnte ich jetzt, nach weiterem Rumprobieren, eine VPN-Verbindung zwischen den Netzwerken spannen, die auch laut Log (Client und Server) erfolgreich funktioniert. Der Fehler betand daran, dass ich bei der pfSense unter Protocol -> "TCP on IPv4" only ausgewählt hatte. Im nachhinein kann das natürlich nicht funktionieren, da der vServer seine IP ja auch auf eine IPv6 leitet. Also ein Denkfehler meinerseits. Mit der Einstellung TCP on IPv6 only funktioniert schonmal die Verbindung.

    Jetzt besteht aber noch das Problem, dass sich die Clients nicht anpingen können. Ich habe mehrfach versucht in der Client sowie Server conf. mit "push route" die Routen weiterzuleiten, wie es auch in der Anleitung steht, irgendwie klappt das aber nicht. Das Komische daran ist auch, dass sich Client und Server gegenseitig über die Tunneladresse anpingen können, was ja richtig ist, aber nur der Server (pfSense) über die IP-Adresse des Routers (192.168.178.50) den Client (Asus Router) anpingen kann, der Client aber nicht den Server über die IP des Servers. In der offiziellen Anleitung von OpenVPN stand auch etwas von "iroute" auf der Client Seite. Wenn ich das jedoch eintrage, baut sich nach Neustrat des Tunnels keine Verbindung mehr auf.


    Serverkonfiguration OpenVPN
    Forum_1.PNG
    IPv4-Routingtabelle des Servers (pfSense)
    Forum_2.PNG
    IPv4-Routingtabelle des Clients (Asus)
    Forum_4.PNG
    IPv4-Routingkonfiguration des Clients (Asus)
    Forum_6.PNG
    Ping-Versuch con Client (Asus) zum Server
    Forum_3.PNG

    Vielleicht hat ja jemand eine Idee...

    Tom


  • LAYER 8 Moderator

    OK andere ganz ketzerische Frage:

    du bastelst dir die Verbindung zu dir wegen DG mit IPv6 über einen vServer. Warum nutzt du selbigen nicht für BEIDE Instanzen als Server? Also 2 S2S Tunnel, einmal von dir, einmal von deiner Site B zu jenem vServer mit OpenVPN. Dann die Routen halbwegs sinnvoll vergeben und das ganze läuft dann - eben als Relay über den vServer. Außer Traffic ist bei der Kiste ein Problem vom Vertrag her, sollte das die einfachste Variante sein, denn

    a) du kannst die Verbindung zum Server dann so aufbauen wie es für beide Sites am besten ist (bei A mit v6 und bei B mit v4 bspw.)
    b) du hast bei den Tunneln dann eine konkrete Gegenstelle die (eigentlich) immer erreichbar sein sollte (weil vServer meist ne höhere SLA haben als private Internet Anschlüsse ;))

    Das wäre zwar dann eher eine Art VPN-Stern/Relay aber am Ende solls ja einfach funktionieren. Und ein stabiler vServer mit v4/v6 ist als Gegenstelle wahrscheinlich einfacher wenn man ihn eh schon hat. :)



  • Ja, das wollte ich auch probieren, allerdings scheitert es bei mir immer bei der Einrichtung. Könnte man dieses Vorhaben auch mit dem OpenVPN-Access-Server auf dem vServer machen? Es sind ja eigentlich zwei Verbindungen kostenfrei... Und eine GUI ist für mich ein bisschen unkomplizierter als eine Commandline. Ich habe mich bereits ein wenig mit dem Access-Server beschäftigt, muss man unbedingt Certificates bzw. TLS benutzen oder geht das auch mit Shared Key? Ich fand für meinen Anwendungszweck bis jetzt eigentlich TLS/SSL etwas übertrieben. Kennt jemand gute Anleitungen zu diesem Thema (außer die Offizielle von OpenVPN)?


  • LAYER 8 Rebel Alliance

    Kannst du nicht auf beiden Seiten pfSense nehmen und Site B ist der Server?
    Ganz ehrlich....dann ist alles in 15 min erledigt, einfach auf beiden Seiten die Einstellungen 1:1 übernehmen und fertig. Das ist doch murks mit dem ASUS...

    -Rico



  • Ich bin zwar auch ein Freund von OpenVPN und auch IPsec Tunnels aber ich gebe mal nur noch eine weitere Möglichkeit mit, wenn es darum geht einzelnen Clients miteinander reden zu lassen: ZeroTier (https://www.zerotier.com/). Aus dem Ziel kann man nicht sofort ableiten ob das ganz spezielle Clients sind oder sich um eine große Anzahl von Clients handelt. So lange du aber von Windows/Linux/Macs oder gar NAS Endgeräten sprichst, ist eine sehr einfach Möglichkeit auch Zerotier. Völlig egal was für DS-Lite Murks du da auf beiden Seiten hast.


  • LAYER 8 Moderator

    @TommoT said in OpenVPN (site to site) keine Verbindung über ds-lite trotz Portmapper:

    Und eine GUI ist für mich ein bisschen unkomplizierter als eine Commandline. Ich habe mich bereits ein wenig mit dem Access-Server beschäftigt, muss man unbedingt Certificates bzw. TLS benutzen oder geht das auch mit Shared Key? Ich fand für meinen Anwendungszweck bis jetzt eigentlich TLS/SSL etwas übertrieben. Kennt jemand gute Anleitungen zu diesem Thema (außer die Offizielle von OpenVPN)?

    Wenn GUI einfacher ist - wo ist das Problem den Server erstmal mit pfSense zu konfigurieren, Konfigurationsdatei copy&paste auf den Server geworfen (Site2Site mit SharedKey - super einfach) und dann den Client auf er pfSense einrichten? Hab ich auch schon gemacht, war überhaupt kein Hexenwerk. Und Site2Site Shared Key Tutorials gibts wie Sand am Meer :)



  • Sorry, dass ich mich erst jetzt melde. Ich habe nochmal die Variante mit dem OpenVPN-Access-Server auf dem vServer ausprobiert. Die Seite mit dem Asus-Router funktioniert. Auf der Seite der pfSense kommt jedoch kein Tunnel zustande. Wenn ich den Log richtig verstehe, sollte eine Verbindung kurzzeitig aufgebaut worden sein, sie wird allerding immer wieder unterbrochen. Die Certs sowie die Keys habe ich mehrmals auf Richtigkeit geprüft und beim Server die Accounts gelöscht und neu angelegt. Leider kein Erfolg... Vielleicht hat ja jemand eine Idee.

    Hier der Log der pfSense:

    Oct 22 18:41:34 openvpn 59556 WARNING: --ns-cert-type is DEPRECATED. Use --remote-cert-tls instead.
    Oct 22 18:41:34 openvpn 59556 NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
    Oct 22 18:41:34 openvpn 59556 TCP/UDP: Preserving recently used remote address: [AF_INET]82.165.69.184:1195
    Oct 22 18:41:34 openvpn 59556 Attempting to establish TCP connection with [AF_INET]82.165.69.184:1195 [nonblock]
    Oct 22 18:41:35 openvpn 59556 TCP connection established with [AF_INET]82.165.69.184:1195
    Oct 22 18:41:35 openvpn 59556 TCPv4_CLIENT link local (bound): [AF_INET]100.69.153.17:0
    Oct 22 18:41:35 openvpn 59556 TCPv4_CLIENT link remote: [AF_INET]82.165.69.184:1195
    Oct 22 18:41:35 openvpn 59556 Connection reset, restarting [0]
    Oct 22 18:41:35 openvpn 59556 SIGUSR1[soft,connection-reset] received, process restarting

    Und nochmal die Konfiguration dazu:


    Forum_1.PNG
    Forum_2.PNG
    Forum_4.PNG
    Forum_5.PNG
    Forum_6.PNG

    Anmerkung:
    Beim TLS Key und der Serveradresse stehen natürlich die richtigen Daten.

    die vom Access-Server ausgespunkte client.ovpn:

    # Automatically generated OpenVPN client config file

    Generated on Thu Oct 22 16:06:07 2020 by localhost

    Default Cipher

    cipher AES-256-CBC

    Note: this config file contains inline private keys

    and therefore should be kept confidential!

    Note: this configuration is user-locked to the username below

    OVPN_ACCESS_SERVER_USERNAME=test

    Define the profile name of this particular configuration file

    OVPN_ACCESS_SERVER_PROFILE=test@82.165.XX.XXX

    OVPN_ACCESS_SERVER_CLI_PREF_ALLOW_WEB_IMPORT=True

    OVPN_ACCESS_SERVER_CLI_PREF_BASIC_CLIENT=False

    OVPN_ACCESS_SERVER_CLI_PREF_ENABLE_CONNECT=False

    OVPN_ACCESS_SERVER_CLI_PREF_ENABLE_XD_PROXY=True

    OVPN_ACCESS_SERVER_WSHOST=82.165.XX.XXX:1195

    OVPN_ACCESS_SERVER_WEB_CA_BUNDLE_START

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

    ////

    -----END CERTIFICATE-----

    OVPN_ACCESS_SERVER_WEB_CA_BUNDLE_STOP

    OVPN_ACCESS_SERVER_IS_OPENVPN_WEB_CA=1

    setenv FORWARD_COMPATIBLE 1
    client
    server-poll-timeout 4
    nobind
    remote 82.165.XX.XXX 1195 udp
    remote 82.165.XX.XXX 1195 udp
    remote 82.165.XX.XXX 1195 tcp
    remote 82.165.XX.XXX 1195 udp
    remote 82.165.XX.XXX 1195 udp
    remote 82.165.XX.XXX 1195 udp
    remote 82.165.XX.XXX 1195 udp
    remote 82.165.XX.XXX 1195 udp
    dev tun
    dev-type tun
    ns-cert-type server
    setenv opt tls-version-min 1.0 or-highest
    reneg-sec 604800
    sndbuf 0
    rcvbuf 0
    auth-user-pass

    NOTE: LZO commands are pushed by the Access Server at connect time.

    NOTE: The below line doesn't disable LZO.

    comp-lzo no
    verb 3
    setenv PUSH_PEER_INFO

    <ca>
    -----BEGIN CERTIFICATE-----
    XX
    -----END CERTIFICATE-----
    </ca>

    <cert>
    -----BEGIN CERTIFICATE-----
    XX
    -----END CERTIFICATE-----
    </cert>

    <key>
    -----BEGIN PRIVATE KEY-----
    XXX
    -----END PRIVATE KEY-----
    </key>

    key-direction 1
    <tls-auth>

    2048 bit OpenVPN static key (Server Agent)

    -----BEGIN OpenVPN Static key V1-----
    XX
    -----END OpenVPN Static key V1-----
    </tls-auth>

    -----BEGIN RSA SIGNATURE-----

    XXXX

    -----END CERTIFICATE-----

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

    XXX

    -----END CERTIFICATE-----

    Stand jetzt: Es kommt laut dem pfSense Status Screen nichts an.
    Status : reconnecting, Connection-reset
    Local Adress : (pending)
    Remote Host : (pending)


  • LAYER 8 Moderator

    Default Logging zeigt zu wenig. Stell mal auf Verb 3 (Steht auch extra im Dropdown).


Log in to reply