NM OpenVPN: Das gespeicherte Profil ist nicht Ihre .ovpn-Datei
Der Import übersetzt Optionen in eine gespeicherte Verbindung. Lesen Sie vpn.data zurück, prüfen Sie ta und ta-dir und aktualisieren Sie einen Eintrag, statt das Wörterbuch zu ersetzen.
Dieselbe .ovpn Datei verbindet aus einer Shell und läuft nach dem Import in NetworkManager in eine Zeitüberschreitung. Die naheliegende Schlussfolgerung ist, dass das VPN defekt ist. Die wahrscheinlichere Erklärung ist kleiner: NetworkManager hat die Datei nicht behalten, sondern einen Teil davon in eine gespeicherte Verbindung importiert, und der laufende Tunnel verwendet stattdessen diese gespeicherten Daten. Was die Datei jetzt sagt, ist für den Inhalt des Profils unerheblich.
Die Datei ist nicht das Profil
Der Import ist eine Übersetzung, kein Einhängen. Optionen, die das Plugin versteht, werden zu Schlüsseln im vpn.data Wörterbuch der Verbindung; Optionen, die es nicht versteht, werden verworfen oder anderswo festgehalten, und der ursprüngliche Pfad ist nur ein Verweis. Eine spätere Bearbeitung der Quelldatei ändert nichts an der bereits gespeicherten Verbindung.
Diese Lücke erklärt eine ganze Familie von Meldungen: Der gemeinsame Schlüssel wurde rotiert, die Datei wurde aktualisiert, und der Tunnel schlägt weiterhin fehl. Das gespeicherte Profil zeigt noch auf den alten Pfad oder den alten Wert, und die Befehlszeile funktioniert weiter, weil sie die Datei liest, die Sie bearbeitet haben. Zwei Clients, zwei Wahrheitsquellen, und nur eine davon wurde aktualisiert.
Lesen Sie das gespeicherte Profil, nicht den Dialog
nmcli -f connection.id,connection.uuid,vpn.service-type,vpn.data connection show office-vpn
Verwenden Sie die UUID, wenn zwei Profile denselben Namen teilen, und bestätigen Sie, dass der Diensttyp das OpenVPN Plugin ist, das Sie erwarten, und nicht ein anderer VPN-Typ, der zufällig installiert ist. Vergleichen Sie dann den Endpunkt, den Transport und die Zertifikatsverweise mit dem funktionierenden Aufruf.
Ein im grafischen Editor sichtbarer Wert ist kein Beweis dafür, dass er gespeichert wurde. Speichern, erneut öffnen und über die Befehlszeile zurücklesen; historische Speicherfehler sind ein Grund, die gespeicherten Daten zu prüfen, kein Beweis dafür, dass jeder aktuelle Build denselben Fehler hat. Die Prüfung kostet einen Befehl.
Zwei Schlüssel und eine Richtung, auf die es ankommt
Für eine Verbindung mit TLS-Authentifizierung speichert das Plugin den Pfad zum gemeinsamen Schlüssel in ta und die Richtung in ta-dir, wenn das Deployment eine verwendet. Beide liegen im Datenwörterbuch des Profils, und beide müssen dem entsprechen, was der Server erwartet.
Die Richtung ist eine serverseitige Entscheidung, die auf dem Client ausgedrückt wird. Eine Richtung zu wählen, weil ein benachbartes Profil sie hat, ist der Weg, auf dem ein funktionierender Schlüssel einen Handshake scheitern lässt. Ist die Serverkonfiguration richtungslos, sollte der Client keine Richtung erfinden.
Die Schlüsseldatei selbst muss für das Plugin in dem Kontext lesbar sein, in dem es tatsächlich läuft. Ein eingeschränktes Paket hat eine andere Sicht auf das Dateisystem als eine gewöhnliche Desktop-Installation, daher kann ein Pfad, der in Ihrer Shell existiert, für den Dienst unsichtbar sein.
Aktualisieren Sie einen Eintrag, nicht das Wörterbuch
nmcli connection modify office-vpn +vpn.data 'ta=/etc/NetworkManager/certs/office-ta.key'
nmcli connection modify office-vpn +vpn.data 'ta-dir=1'
Das führende Plus aktualisiert einzelne Wörterbucheinträge. Das Zuweisen von vpn.data ohne es ersetzt das gesamte Wörterbuch, und so wird aus einem fehlenden Schlüssel fünf kaputte Einstellungen. Lesen Sie das Profil nach der Änderung zurück und bestätigen Sie, dass die anderen Einträge überlebt haben. Ein Wörterbuch, das seinen entfernten Endpunkt und seine Zertifikate verloren hat, ist ein viel längerer Nachmittag als der, mit dem Sie begonnen haben.
Verbinden Sie sich über die normalen Bedienelemente neu und beobachten Sie die Phase, die fehlschlägt. Wenn das Gate für den gemeinsamen Schlüssel jetzt durchläuft und der Client einen Zertifikats- oder Benutzerauthentifizierungsfehler meldet, sind Sie weitergekommen, und die nächste Untersuchung ist eine andere.
Verwechseln Sie die Modi des Steuerkanals nicht
tls-auth, tls-crypt, und tls-crypt-v2 sind unterschiedliche Anordnungen. Eine ähnlich aussehende Schlüsseldatei macht sie nicht austauschbar, und das Ausfüllen der TLS-Auth-Felder, weil ein anderes Profil einen formatierten Schlüssel enthält, erzeugt ein Profil, das auf eine Weise fehlschlägt, die einem falschen Schlüssel ähnelt.
Verwenden Sie die Plugin-Zuordnung, die zum Modus in der Serverkonfiguration passt. Wenn der Modus unklar ist, fragen Sie den Serverbesitzer, statt aus der ersten Zeile der Datei zu raten.
Behalten Sie einen Wiederherstellungsweg, wenn der Tunnel Ihre Verwaltungssitzung trägt. Eine gespeicherte Änderung ist nicht unbedingt eine angewandte Änderung, und ein erfolgreicher Import ist kein Beweis dafür, dass jede Quelloption unterstützt wurde. Beide Lücken sind es wert, gekannt zu werden, bevor Sie die Verbindung neu aufbauen, über die Sie arbeiten.