OpenVPN Connect o OpenVPN GUI: dove Windows conserva i profili
Due client Windows, due modelli di profilo: la GUI elenca i file .ovpn da una cartella, Connect tiene un archivio di importazione. Poi rimuovi o importa correttamente.
Su Windows, "dov'è il mio profilo OpenVPN" ha due risposte diverse, e scegliere quella sbagliata costa un pomeriggio. La GUI comunitaria di OpenVPN tratta una directory come la sua lista di profili: ogni file .ovpn nella cartella configurata compare nel menu della barra delle applicazioni, e un file rimosso da quella cartella scompare. OpenVPN Connect lavora da un archivio di importazione, quindi conserva un profilo che hai cancellato dal disco e ignora un file che vi hai copiato. Il confronto qui sotto è quello che uso per decidere quale cartella aprire prima di toccare qualsiasi cosa.
Un elenco di cartella contro un archivio di importazione
La GUI comunitaria enumera i file all'avvio: legge una directory di configurazione, scelta durante l'installazione, e un file .ovpn che si trova lì è un profilo. Chiudi il client, copia un file in quella cartella, riavvialo e la voce è nel menu.
Connect invece costruisce la sua lista da record scritti durante l'importazione, quindi un file copiato è invisibile mentre un profilo importato sopravvive alla cancellazione del download originale. Proprio questa unica differenza spiega la maggior parte delle segnalazioni secondo cui i due client conservano i profili in posti diversi, perché è vero.
La GUI comunitaria: quale cartella è realmente in uso
Contano due cartelle. Un'installazione per utente legge %USERPROFILE%\OpenVPN\config; un'installazione per tutti gli utenti legge C:\Program Files\OpenVPN\config, o il percorso x86 quando il client è 32-bit. Se un profilo compare solo per un account Windows, si trova nella cartella per utente e l'altro account non lo vedrà mai.
Non dedurre il percorso dall'installer. La GUI accetta un argomento --config_dir e ricorda la directory con cui è stata avviata, quindi un collegamento può puntare altrove del tutto. Controlla la destinazione del collegamento e il campo Start in, o le impostazioni della GUI, prima di creare qualsiasi file.
Rimuovere significa rimuovere file. Chiudi prima la GUI perché non tenga la voce in memoria, elimina il .ovpn insieme ai file di certificato o chiave conservati accanto, poi riavvia il client.
La cartella per tutti gli utenti richiede un'eliminazione elevata. Un'eliminazione che lì non fa nulla in silenzio è UAC, non un bug del client.
Connect: l'archivio di importazione e la doppia trappola di AppData
Le versioni 2.x e 3.x attuali conservano i profili in %APPDATA%\OpenVPN Connect\profiles. Le versioni intorno alla 2.5 usavano invece %ProgramFiles(x86)%\OpenVPN Technologies\OpenVPN Client\etc\profile, ed è per questo che le risposte vecchie e nuove dei forum sembrano contraddirsi. Una macchina aggiornata sul posto può ancora contenere entrambe.
I percorsi si deformano quando vengono raccontati. %AppData% si risolve già in AppData\Roaming, quindi scrivere %AppData%\Roaming\OpenVPN Connect\profiles si espande in AppData\Roaming\Roaming e non punta a nulla. Usa la variabile o il percorso letterale, mai un misto dei due.
Elimina tramite il client: apri Profiles, usa l'icona della matita, scegli Delete. Questo rimuove insieme il record e la copia memorizzata. Rimuovere la cartella mentre Connect è in esecuzione può lasciare un record che non apre nulla, ed è la lamentela "profile still shows up" nella sua altra forma.
La copia importata è quella che il client esegue. Modificare il .ovpn lasciato in Downloads non cambia nulla, perché Connect legge la sua copia memorizzata; per cambiare un remote o un cipher, modifica il profilo dentro il client, oppure modifica il file e importalo di nuovo .
Perché un profilo eliminato ritorna
Due installazioni della stessa famiglia di client è la ragione abituale. Una GUI per utente e una GUI per tutti gli utenti hanno directory di configurazione separate, quindi eliminare da una lascia l'altra intatta e la barra delle applicazioni elenca ancora il nome. Programs and Features è dove confermi se entrambe sono installate.
La seconda ragione è un profilo che non è mai stato nella cartella che hai controllato. Aprire un .ovpn una volta da una condivisione di rete o da una cartella Downloads può copiarlo nella directory di configurazione per utente, e i profili Connect importati esistono solo in AppData. Prima di modificare qualsiasi cosa, cerca il nome del file sia in %USERPROFILE% sia in %APPDATA%. Una cartella di profilo di solito contiene la chiave privata accanto al .ovpn, quindi non incollare mai la cartella in un ticket o in una chat per dimostrare quale profilo hai rimosso - cita invece il nome del file e la marca temporale.
Le versioni più vecchie della GUI conservano anche le preferenze del client nel registro. Se la barra delle applicazioni elenca ancora un nome dopo che il file è sparito e c'è una sola installazione, riavvia il client una volta e ricontrolla la directory di configurazione del collegamento prima di pensare di toccare le chiavi di registro.
Due tunnel insieme: prima gli adattatori, poi la rotta
La GUI può tenere più connessioni, una per adattatore virtuale; aggiungi adattatori dalla voce del menu Start che installa TAP-Windows6, poi conferma il numero in Network Connections, perché due tunnel simultanei richiedono due adattatori ed entrambi dovrebbero ottenere il proprio indirizzo automaticamente. L'instradamento è il limite più difficile. Due profili che reindirizzano tutto il traffico competono per la rotta predefinita, e solo uno può possederla, quindi ottieni errori intermittenti invece di due tunnel funzionanti. Mantieni un tunnel completo e dai al secondo un profilo split-tunnel che spinge solo la sua sottorete.
Gli intervalli privati sovrapposti non si risolvono aggiungendo un adattatore. Se entrambi i server distribuiscono 10.8.0.0/24, il secondo tunnel entra in collisione a livello di indirizzo e nessuna configurazione del client li separerà.
I nomi degli adattatori ti dicono cosa stai guardando. Get-NetAdapter in PowerShell elenca gli adattatori TAP-Windows e l'adattatore Wintun per nome, il che è più veloce che contare le icone in Network Connections quando un tunnel è salito su quello sbagliato.
Avviare un profilo con nome da uno script
La GUI prende un nome di profilo relativo alla sua directory di configurazione, quindi un launcher appare così: "C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --connect "myvpn.ovpn". Un percorso assoluto, o un processo avviato in una directory di lavoro diversa, fallisce in silenzio, ed è per questo che un collegamento che funziona con doppio clic si rompe sotto Task Scheduler.
Imposta la directory di lavoro invece di sperare. In un launcher AutoHotkey è SetWorkingDir, C:\Program Files\OpenVPN\config; in Task Scheduler è il campo Start in dell'azione. Passare --config_dir con lo stesso percorso rende il launcher indipendente da entrambi.
Prima di finire, esporta il profilo, annota il suo adattatore, la sottorete e la sottorete che instrada, e tieni i certificati di ogni cliente nella sua sottocartella. Poi conferma che la cartella appartenga al client che esegui davvero, ed elimina tramite il client quando quel client ha un archivio di importazione. È questo ordine che impedisce allo stesso profilo di riapparire dopo il riavvio successivo.