OpenVPN (site to site) keine Verbindung über ds-lite trotz Portmapper
-
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! -
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
IPv4-Routingtabelle des Servers (pfSense)
IPv4-Routingtabelle des Clients (Asus)
IPv4-Routingkonfiguration des Clients (Asus)
Ping-Versuch con Client (Asus) zum Server
Vielleicht hat ja jemand eine Idee...
Tom
-
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)?
-
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.
-
@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 restartingUnd nochmal die Konfiguration dazu:
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 fileGenerated 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-passNOTE: 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) -
Default Logging zeigt zu wenig. Stell mal auf Verb 3 (Steht auch extra im Dropdown).
-
Moin, nach langem Probieren konnte ich nun das Problem lösen. Es lag daran, dass der OpenVPN-Access-Server nur (in den Standardeinstellungen) mit SHA1 läuft, nicht mit SHA 256. Das ist zwar nicht die sicherste Alternative, aber für diesen Zweck total ausreichend. Und es funktioniert! Noch schnell die Routen der jeweiligen Netze in den OpenVPN-Access-Server eingetragen und es klappt. Beide Seiten können sich anpingen!
Vielen Dank für alle Tipps und Anregungen.
Tom