Che cosa contiene davvero un file .ovpn e cosa non può fare
Un file .ovpn configura il tuo client, non il server. Guarda cosa possono fare le sue righe di trasporto, chiave e routing, e dove finisce la loro influenza.
La maggior parte delle persone presume che un file .ovpn configuri una VPN. Non è così: configura un client, e tutto ciò che chiede deve già esistere dall’altra parte. Cambiare una riga nel file può cambiare ciò che la tua macchina tenta, mai ciò che il server offre. Questa distinzione spiega la maggior parte della confusione intorno ai profili che non si importano o non si connettono.
Leggi il file come un elenco di richieste indirizzate al tuo client, e la maggior parte delle sue righe diventa ovvia.
Il file descrive il tuo client, non il server
Un profilo raggruppa l’endpoint remote, un trasporto, un tipo di interfaccia, materiale di identità e qualsiasi comportamento lato client che l’operatore desideri. Ogni riga viene eseguita dal client all’avvio. Nessuna di esse raggiunge il server come modifica di configurazione, e nessuna può creare un listener che non sia già in esecuzione. Un profilo che indica TCP 443 contro un server che ascolta solo su UDP 1194 fallisce al primo pacchetto.
Ecco perché lo stesso file si comporta diversamente su due client: il file chiede, e il client decide quanto della richiesta può soddisfare.
Le righe di trasporto devono corrispondere a un listener che esiste già
proto e remote devono corrispondere a ciò che il server collega davvero. UDP è la scelta abituale perché un datagramma perso non blocca il tunnel, mentre TCP può sopravvivere a reti restrittive al prezzo di un blocco in testa alla coda dentro il tunnel. Passare un profilo da UDP a TCP non fa accettare TCP al server; fa solo inviare il client verso una porta che nessuno legge.
La porta 443 è popolare perché attraversa reti che non consentono quasi nient’altro, e resta una sessione OpenVPN invece di una richiesta HTTPS. Se l’operatore pubblica diverse remote righe, il client le prova in ordine, il che è un elenco di failover e non una decisione di bilanciamento del carico. Mantieni le combinazioni fornite dall’operatore invece di mescolare un host di una voce con una porta di un’altra.
Le chiavi incorporate cambiano il modo di gestire il file
I certificati e le chiavi possono stare incorporati tra i tag <ca>, <cert> e <key>, oppure essere referenziati come file separati. Il materiale incorporato rende il profilo autosufficiente e lo rende anche un segreto, perché la chiave privata del client viaggia al suo interno. Un certificato CA è materiale di fiducia pubblico ed è sicuro condividerlo; una chiave privata no, anche quando sembra un blocco di testo illeggibile.
La passphrase che protegge una chiave è un segreto separato dalla password dell’account, e confonderle produce un errore di autenticazione che sembra una credenziale sbagliata.
Le rotte e il DNS potrebbero non venire affatto dal file
Il routing può essere spinto dal server, impostato dal profilo con redirect-gateway, o lasciato ai valori predefiniti del client. Il file scaricato quindi non determina del tutto dove va il traffico dopo che il tunnel è attivo. Quando i nomi interni si risolvono e i siti pubblici no, la politica di tunnel diviso fa ciò per cui è stata progettata, non fallisce.
Il DNS segue lo stesso schema: un dhcp-option DNS spinto può essere applicato dal client, ignorato o sovrascritto da un gestore di resolver locale. Controlla lo stato del resolver dopo la connessione invece di rileggere il profilo.
Le opzioni non supportate sono una questione di versione del client
Gli avvisi di importazione di solito significano che il client non implementa una direttiva, non che il file sia corrotto. I client desktop possono eseguire script e plugin sotto controlli documentati, mentre i client mobili accettano un insieme più ristretto e possono scartare silenziosamente righe che non capiscono. Un’impostazione di cifratura o TLS che un client più vecchio rifiuta è un problema di versione da risolvere con l’operatore. Abilitare privilegi sconosciuti per forzare un’importazione scambia un avviso con una superficie di attacco più ampia.
Conserva il file originale per il confronto, annota la direttiva non supportata esatta nella tua richiesta e chiedi un profilo creato per il client che esegui davvero.
Dopo qualsiasi sostituzione, conferma quale voce di profilo usa l’app, perché importare un nuovo file non sovrascrive sempre quello vecchio.