Welches Programm besitzt diese config.json in Ihrer OpenVPN-Einrichtung?
Eine Datei namens config.json kann zu einer GUI, einem Dienst oder einem Exportformat gehören statt zu OpenVPN. Finden Sie den Parser, bevor Sie Schlüssel bearbeiten oder ersetzen.
Sie finden eine Datei namens config.json, darin wird ein VPN-Server erwähnt, und sofort folgt die Annahme: Das muss die OpenVPN-Verbindung sein. Oft ist es das nicht. Eine JSON-Datei mit diesem Namen kann zu einem Desktop-Frontend gehören, das den Client startet, zu einem Daemon, der seine eigenen Einstellungen speichert, oder zu einem Exportformat eines Produkts, und jedes davon hat sein eigenes Schema.
Der Dateiname ist der am wenigsten nützliche Hinweis. Beginnen Sie bei dem Prozess, der die Datei liest, prüfen Sie dann, ob das erwartete Format überhaupt JSON ist, und entscheiden Sie erst danach, ob das Bearbeiten der Datei der unterstützte Weg ist, etwas zu ändern.
Beginnen Sie beim Prozess, nicht beim Dateinamen
Sehen Sie nach, was tatsächlich läuft. Eine Service-Unit, ein Startskript oder eine Tray-Anwendung nennt die Binärdatei, die sie startet, und oft den Konfigurationspfad, den sie übergibt. Das Verzeichnis, in dem die Datei liegt, ist ein zweiter Hinweis: Anwendungsdatenverzeichnisse, Dienstkonfigurationsverzeichnisse und Benutzerprofilverzeichnisse deuten auf unterschiedliche Eigentümer hin.
Lesen Sie dann die Dokumentation des Produkts, dem diese Komponente gehört. Gehört die JSON-Datei zu einem Wrapper, sind ihre Schlüssel die Schlüssel des Wrappers, und ein plausibel aussehendes Objekt, das nach dem Beispiel eines anderen Produkts gebaut wurde, wird abgelehnt oder still ignoriert.
Zwei Dateien mit demselben Namen in verschiedenen Verzeichnissen sind eine häufige Falle. Die eine kann generierter Zustand sein, den der Dienst bei jedem Start neu schreibt, die andere die Vorlage, die ein Mensch bearbeiten soll. Die falsche zu ändern erzeugt eine Korrektur, die bis zum nächsten Neustart hält.
Was ein Community-OpenVPN-Profil tatsächlich ist
Community OpenVPN 2.6 liest ein optionbasiertes Textformat. Ein Profil ist eine Folge von Direktiven: eine Zeile für den Clientmodus, eine Gerätezeile, ein entferntes Endpunktziel sowie Optionen für Identität, Verschlüsselung und Routen, und es kann Zertifikat- und Schlüsselmaterial in Inline-Blöcken einbetten.
Dieses Format wird vom Client selbst Zeile für Zeile geparst. Ihm ein JSON-Dokument über die Option config zu übergeben, schaltet keinen JSON-Parser ein; die erste Zeile wird als unbekannte Direktive abgelehnt. Eine JSON-Datei so umzubenennen, dass sie auf .ovpn endet, wandelt ihren Inhalt ebenfalls nicht um, und eine gültige Optionsdatei wird nicht ungültig, weil ihre Endung ungewöhnlich ist.
OpenVPN Connect und OpenVPN 3 Linux haben eigene Import- und Verwaltungswege für Profile. Diese Produkte können ein Profil annehmen und in ihrer eigenen Datenbank oder ihrem Dienstzustand speichern, was nicht dasselbe ist wie eine JSON-Datei, die zufällig einen Server beschreibt.
Zustand bearbeiten, der einer anderen Komponente gehört
Ist die JSON-Datei generiert, ist ihr Bearbeiten ein Wettlauf. Ein laufender Dienst kann sie beim Herunterfahren, beim Wiederverbinden oder bei der nächsten Einstellungsänderung zurückschreiben, und eine Handbearbeitung verschwindet ohne Fehler. Bevorzugen Sie den Importbefehl des Produkts, die Verwaltungs-API oder die Einstellungsoberfläche, denn diese Wege aktualisieren den internen Zustand, den die Datei darstellt. Eine Datei, die nach einem Neustart zurückspringt, sagt Ihnen, welcher Weg der dauerhafte war.
Wenn Sie eine generierte Datei doch bearbeiten, stoppen Sie zuerst den Dienst, legen Sie eine Sicherung an und nehmen Sie die kleinstmögliche Änderung vor. Prüfen Sie dann, ob der Dienst die Datei beim Start neu schreibt, denn eine Datei, die beim Start zurückspringt, bedeutet, dass die eigentliche Quelle der Wahrheit woanders liegt und die Änderung nie Bestand gehabt hätte.
Passwörter und eingebettete private Schlüssel sind ein separates Thema. JSON kann einen vollständigen Schlüssel genauso leicht tragen wie eine Optionsdatei, behandeln Sie also jeden Export als geheim, halten Sie ihn von freigegebenen Laufwerken fern und schwärzen Sie Werte, bevor Sie eine Struktur in eine Forumsfrage einfügen.
Die Änderung prüfen und die Datei schützen
Prüfung heißt nicht „JSON lässt sich parsen“. Parsen beweist nur, dass die Klammern zueinander passen; es sagt nichts darüber, ob der Eigentümer die Schlüssel erkennt. Prüfen Sie den eigenen Zustand des Produkts: die Liste der aktiven Profile, die ausgewählte Verbindung und eine Wiederverbindung, die die neuen Werte tatsächlich verwendet. Ein Profil, das in der Liste erscheint, aber nie das ausgewählte wird, ist noch nicht das Profil in Gebrauch.
Beobachten Sie das Protokoll der Komponente, die Sie bearbeitet haben, nicht nur das des VPN-Clients. Ein Wrapper, der Ihre Datei ablehnt, meldet das meist in seinem eigenen Protokoll, und ein Client, der die Datei nie erhalten hat, sieht genauso aus wie ein Client, der schlechte Einstellungen erhalten hat.
Bewahren Sie eine Kopie der funktionierenden Datei auf und notieren Sie die Produktversion, gegen die Sie getestet haben. Diese Formate ändern sich zwischen Releases, und eine Struktur, die letztes Jahr funktionierte, kann nach einem Upgrade mit einer Meldung abgelehnt werden, die das Schema gar nicht erwähnt.
Zusammenfassung des Durchgangs: Identifizieren Sie den Prozess, lesen Sie seine Dokumentation, stellen Sie fest, ob die Datei überhaupt JSON ist, nutzen Sie den unterstützten Bearbeitungsweg und prüfen Sie über den eigenen Zustand des Produkts. Der Dateiname hat keine dieser Fragen je beantwortet.