Vous trouvez un fichier nommé config.json, il mentionne un serveur VPN et l’hypothèse suit immédiatement : ce doit être la connexion OpenVPN. Souvent, ce n’est pas le cas. Un fichier JSON portant ce nom peut appartenir à une interface de bureau qui lance le client, à un démon qui stocke ses propres paramètres ou au format d’export d’un produit, et chacun de ces cas a son propre schéma.

Le nom du fichier est l’indice le moins utile. Partez du processus qui lit le fichier, vérifiez ensuite si le format attendu est même du JSON, et seulement alors décidez si modifier le fichier est la manière prise en charge de changer quoi que ce soit.

Partez du processus, pas du nom du fichier

Regardez ce qui tourne réellement. Une unité de service, un script de lancement ou une application de la zone de notification nommeront le binaire qu’ils démarrent et souvent le chemin de configuration qu’ils transmettent. Le répertoire qui contient le fichier est un second indice : les répertoires de données d’application, de configuration de service et de profil utilisateur impliquent des propriétaires différents.

Lisez ensuite la documentation du produit propriétaire de ce composant. Si le JSON appartient à une enveloppe, ses clés sont celles de l’enveloppe, et un objet d’apparence plausible construit à partir de l’exemple d’un autre produit sera rejeté ou ignoré en silence.

Deux fichiers du même nom dans des répertoires différents sont un piège courant. L’un peut être un état généré que le service réécrit à chaque démarrage, et l’autre le modèle qu’une personne est censée modifier. Changer le mauvais produit un correctif qui tient jusqu’au prochain redémarrage.

Ce qu’est réellement un profil Community OpenVPN

Community OpenVPN 2.6 lit un format texte fondé sur des options. Un profil est une suite de directives : une ligne de mode client, une ligne d’appareil, un point de terminaison distant, plus des options d’identité, de chiffrement et de routes, et il peut intégrer le matériel de certificat et de clé dans des blocs en ligne.

Ce format est analysé ligne par ligne par le client lui-même. Lui remettre un document JSON via l’option config n’active pas un analyseur JSON ; la première ligne sera rejetée comme une directive inconnue. Renommer un fichier JSON pour qu’il se termine par .ovpn ne convertit pas son contenu non plus, et un fichier d’options valide ne devient pas invalide parce que son extension est inhabituelle.

OpenVPN Connect et OpenVPN 3 Linux ont leurs propres chemins d’importation et de gestion des profils. Ces produits peuvent accepter un profil et le stocker dans leur propre base de données ou état de service, ce qui n’est pas la même chose qu’un fichier JSON qui décrit un serveur par hasard.

Modifier un état qui appartient à un autre composant

Si le JSON est généré, le modifier est une course. Un service en cours d’exécution peut le réécrire à l’arrêt, à la reconnexion ou au prochain changement de paramètres, et une modification manuelle disparaît sans erreur. Préférez la commande d’importation du produit, l’API de gestion ou l’interface de paramètres, car ces chemins mettent à jour l’état interne que le fichier représente. Un fichier qui revient en arrière après un redémarrage vous dit quel chemin était le durable.

Si vous modifiez malgré tout un fichier généré, arrêtez d’abord le service, gardez une sauvegarde et faites la plus petite modification possible. Vérifiez ensuite si le service réécrit le fichier au démarrage, car un fichier qui revient en arrière au démarrage signifie que la vraie source de vérité est ailleurs et que la modification n’aurait jamais tenu.

Les mots de passe et les clés privées intégrées sont un sujet à part. JSON peut porter une clé complète aussi facilement qu’un fichier d’options, alors traitez toute exportation comme un secret, gardez-la hors des disques partagés et masquez les valeurs avant de coller une structure dans une question de forum.

Vérifier la modification et protéger le fichier

Vérifier n’est pas « le JSON s’analyse ». L’analyse prouve seulement que les accolades s’accordent ; elle ne dit rien sur le fait que le propriétaire reconnaisse les clés. Vérifiez l’état propre du produit : la liste des profils actifs, la connexion sélectionnée et une reconnexion qui utilise réellement les nouvelles valeurs. Un profil qui apparaît dans la liste mais ne devient jamais celui sélectionné n’est toujours pas le profil utilisé.

Surveillez le journal du composant que vous avez modifié, pas seulement celui du client VPN. Une enveloppe qui rejette votre fichier le signale généralement dans son propre journal, et un client qui n’a jamais reçu le fichier ressemble à un client qui a reçu de mauvais paramètres.

Gardez une copie du fichier qui fonctionne et notez la version du produit avec laquelle vous avez testé. Ces formats changent d’une version à l’autre, et une structure qui fonctionnait l’an dernier peut être rejetée après une mise à niveau avec un message qui ne mentionne pas du tout le schéma.

Résumé du parcours : identifiez le processus, lisez sa documentation, confirmez si le fichier est même du JSON, utilisez le chemin de modification pris en charge et vérifiez via l’état propre du produit. Le nom du fichier n’a jamais répondu à aucune de ces questions.

Articles similaires