Consegnare al proprio client un profilo VPN significa consegnargli una configurazione scritta da qualcun altro, che quel programma esegue poi sulla tua macchina. Importarlo può cambiare dove va il traffico coperto, quale peer il dispositivo considera affidabile e, in alcuni formati, quali programmi locali si avviano quando il tunnel sale. Il file non è un segnalibro; è un piccolo programma in un formato dichiarativo.

Leggilo come leggeresti uno script di shell proveniente dalla stessa fonte.

È il client a interpretarlo, non tu

Ogni campo del file è un’istruzione per un client specifico. L’endpoint e il protocollo decidono dove va il tunnel, il blocco di autenticazione decide quale segreto viene richiesto e le direttive di rotta decidono cosa vi entra. I certificati o una chiave privata possono essere incorporati come blocchi invece che referenziati come file, ed è per questo che un singolo file di testo a volte porta tutto ciò che serve per impersonarti davanti a un gateway. È quella proprietà a rendere così pericolosa la condivisione disinvolta dei file.

I profili OpenVPN possono anche portare hook di script, percorsi di plugin e un livello di sicurezza che stabilisce se quegli hook possono essere eseguiti. È quella combinazione a rendere un profilo sconosciuto degno di una lettura riga per riga invece di un doppio clic. Il client farà esattamente ciò che dice il file, e lo farà con i tuoi privilegi.

Le modifiche al routing si vedono dopo una connessione

Un profilo a tunnel completo installa rotte che mandano tutto attraverso il gateway, mentre un profilo a tunnel diviso invia solo prefissi selezionati. Alcuni profili spingono anche un server DNS, il che cambia silenziosamente chi vede le tue query. Niente di tutto ciò è malevolo di per sé, e niente di tutto ciò è evidente dal nome del file.

Confronta la tabella di routing prima e dopo la prima connessione e vedrai l’intenzione a colpo d’occhio. Un profilo pubblicizzato come accesso a una singola applicazione interna ma che installa una rotta predefinita più ampia ti dice qualcosa sul suo autore.

Il materiale di fiducia e gli hook portano il peso vero

Un profilo può fornire informazioni di fiducia al client VPN, e un pacchetto di configurazione di piattaforma può spingersi oltre e installare un certificato o una radice in un archivio di sistema. Sono ambiti diversi con conseguenze diverse. Il caso nell’ambito del client riguarda la validazione di una sola applicazione; il caso a livello di sistema riguarda tutto ciò che usa l’archivio di fiducia della piattaforma.

Gli hook di script e i plugin sono l’altra metà. Una direttiva che esegue un comando alla connessione, o un plugin caricato nel processo del client, ha i tuoi permessi e nulla dell’isolamento del client. Se un profilo che non hai richiesto ne contiene uno, è una domanda per chi te l’ha inviato.

Nessuna delle due categorie è automaticamente ostile. Le distribuzioni aziendali usano entrambe. Il punto è che ciascuna richiede una spiegazione che puoi verificare.

Verifica la provenienza, poi inserisci il segreto

Stabilisci chi ha emesso il file tramite un canale di cui ti fidi già, non tramite il messaggio che l’ha consegnato. Confronta i dettagli dell’endpoint e del certificato con la documentazione pubblicata dall’operatore. Se un profilo è arrivato senza che tu l’abbia chiesto, procuratene uno nuovo direttamente dall’operatore invece di riparare la copia che ti è stata data. Chiedi quale versione del client supporta l’operatore, perché lo stesso file può essere interpretato diversamente da un altro client.

grep -nE '^(remote|proto|auth-user-pass|redirect-gateway|route|route-nopull)' office.ovpn
grep -nE '^(up|down|plugin|script-security|setenv)' office.ovpn
openssl x509 -in embedded-ca.crt -noout -subject -issuer -dates

Non inserire mai una password in un campo non spiegato per vedere se funziona, e non accettare mai una richiesta di privilegi sconosciuta solo per completare un’importazione. Una connessione riuscita dimostra che l’endpoint ha risposto, nulla di più.

Rimuovi la copia importata, non il download

I client copiano un profilo nel proprio archivio, quindi cancellare il file scaricato lascia attiva la connessione importata. Rimuovila tramite l’interfaccia del client stesso, e controlla che sia sparito anche ogni certificato aggiunto durante l’importazione. Poi conferma che anche le rotte installate siano sparite.

Se un certificato è stato installato a livello di sistema, rimuovere il profilo non basta. Quella pulizia appartiene alla gestione della fiducia della piattaforma, e vale la pena farla deliberatamente invece di sperare che il prossimo riavvio se ne occupi.

Articoli correlati