Quale programma possiede quel config.json nella tua configurazione OpenVPN?
Un file chiamato config.json può appartenere a una GUI, a un demone o a un formato di esportazione invece che a OpenVPN. Trova il parser prima di modificare o sostituire chiavi.
Trovi un file chiamato config.json, menziona un server VPN e l’ipotesi arriva subito: questa deve essere la connessione OpenVPN. Spesso non lo è. Un file JSON con quel nome può appartenere a un’interfaccia desktop che avvia il client, a un demone che conserva le proprie impostazioni o al formato di esportazione di un prodotto, e ciascuno di essi ha il proprio schema.
Il nome del file è l’indizio meno utile. Parti dal processo che legge il file, controlla poi se il formato che si aspetta è persino JSON e solo allora decidi se modificare il file sia il modo supportato di cambiare qualcosa.
Parti dal processo, non dal nome del file
Guarda cosa è davvero in esecuzione. Un’unità di servizio, uno script di avvio o un’applicazione nella barra delle applicazioni indicheranno il binario che avviano e spesso il percorso di configurazione che passano. La directory che contiene il file è un secondo indizio: le directory dei dati delle applicazioni, quelle di configurazione dei servizi e quelle dei profili utente implicano proprietari diversi.
Poi leggi la documentazione del prodotto proprietario di quel componente. Se il JSON appartiene a un wrapper, le sue chiavi sono quelle del wrapper, e un oggetto dall’aria plausibile costruito sull’esempio di un altro prodotto verrà rifiutato o ignorato in silenzio.
Due file con lo stesso nome in directory diverse sono una trappola comune. Uno può essere stato generato che il servizio riscrive a ogni avvio, e l’altro il modello che una persona dovrebbe modificare. Cambiare quello sbagliato produce una correzione che dura fino al riavvio successivo.
Che cos’è davvero un profilo Community OpenVPN
Community OpenVPN 2.6 legge un formato testuale basato su opzioni. Un profilo è una sequenza di direttive: una riga di modalità client, una riga di dispositivo, un endpoint remoto, più opzioni di identità, cifratura e rotte, e può incorporare materiale di certificato e chiave dentro blocchi in linea.
Quel formato è analizzato riga per riga dal client stesso. Passargli un documento JSON tramite l’opzione config non attiva un parser JSON; la prima riga verrà rifiutata come direttiva sconosciuta. Rinominare un file JSON perché termini con .ovpn non ne converte il contenuto, e un file di opzioni valido non diventa invalido perché la sua estensione è insolita.
OpenVPN Connect e OpenVPN 3 Linux hanno i propri percorsi di importazione e gestione dei profili. Questi prodotti possono accettare un profilo e conservarlo nel proprio database o stato del servizio, cosa che non è la stessa di un file JSON che per caso descrive un server.
Modificare uno stato che appartiene a un altro componente
Se il JSON è generato, modificarlo è una corsa. Un servizio in esecuzione può riscriverlo allo spegnimento, alla riconnessione o al successivo cambio di impostazioni, e una modifica manuale sparisce senza alcun errore. Preferisci il comando di importazione del prodotto, l’API di gestione o l’interfaccia delle impostazioni, perché quei percorsi aggiornano lo stato interno che il file rappresenta. Un file che torna indietro dopo un riavvio ti dice quale percorso era quello durevole.
Se modifichi comunque un file generato, ferma prima il servizio, conserva un backup e fai la modifica più piccola possibile. Poi controlla se il servizio riscrive il file all’avvio, perché un file che torna indietro all’avvio significa che la vera fonte di verità è altrove e che la modifica non sarebbe mai durata.
Le password e le chiavi private incorporate sono una questione separata. JSON può portare una chiave completa con la stessa facilità di un file di opzioni, quindi tratta ogni esportazione come segreta, tienila fuori dai dischi condivisi e oscura i valori prima di incollare la struttura in una domanda di forum.
Verificare la modifica e proteggere il file
Verificare non significa “il JSON si analizza”. L’analisi dimostra solo che le graffe combaciano; non dice nulla sul fatto che il proprietario riconosca le chiavi. Controlla lo stato proprio del prodotto: l’elenco dei profili attivi, la connessione selezionata e una riconnessione che usi davvero i nuovi valori. Un profilo che compare nell’elenco ma non diventa mai quello selezionato non è ancora il profilo in uso.
Tieni d’occhio il log del componente che hai modificato, non solo quello del client VPN. Un wrapper che rifiuta il tuo file di solito lo segnala nel proprio log, e un client che non ha mai ricevuto il file appare identico a un client che ha ricevuto impostazioni sbagliate.
Conserva una copia del file che funziona e annota la versione del prodotto con cui hai provato. Questi formati cambiano tra una versione e l’altra, e una struttura che funzionava l’anno scorso può essere rifiutata dopo un aggiornamento con un messaggio che non menziona affatto lo schema.
Riepilogo del percorso: individua il processo, leggi la sua documentazione, verifica se il file è persino JSON, usa il percorso di modifica supportato e verifica tramite lo stato proprio del prodotto. Il nome del file non ha mai risposto a nessuna di queste domande.