Fate clic su Export in un client VPN per Mac e ottenete un file che descrive una connessione senza esserlo. L’indirizzo del server, la porta, il protocollo e spesso i certificati sono al suo interno. La password di accesso, la passphrase di una chiave privata e la registrazione che autorizza proprio questo Mac di solito no. Per questo un profilo può essere importato senza problemi, comparire nell’elenco del client e comunque fallire alla prima richiesta di autenticazione; la lacuna è una proprietà del formato, non un download corrotto.

Part of the connectionWhere it lives on the old MacWhat an export does with it
Server, port, protocol, routesClient profile or managed settingsUsually included when the client exports configuration
Client certificate and private keyInside the package, the login keychain, or issued by MDMIncluded only if the format packs it; a keychain-held key stays behind
Login password, key passphraseLogin keychainLeft out by design
Device authorization or enrollmentServer side, bound to the certificate or the device recordNot transferable; the new device has to enroll

Cosa contiene davvero il file esportato

Un export è un contenitore, e l’estensione del file dice meno del contenuto. I profili OpenVPN sono testo: direttive, più blocchi inline facoltativi <ca>, <cert> e <key>. Le configurazioni Tunnelblick sono archivi compressi di configurazioni e impostazioni. Un .mobileconfig gestito è un plist di payload. Due elenchi rispondono alla maggior parte della domanda prima che importiate qualcosa.

Per un profilo di testo, contate i blocchi PEM che porta con sé: grep -c "PRIVATE KEY" your-profile.ovpn. Un risultato diverso da zero significa che il file contiene materiale di chiave e va trattato come una password da quel momento. Per un archivio, elencatelo senza estrarlo: tar -tf export.tbz, o unzip -l export.zip se il client ha prodotto uno zip. I file di chiave, i file di certificato e gli script di attivazione o disattivazione in quell’elenco sono le parti che una riemissione dell’account utente non ricreerà.

Il caso opposto conta altrettanto. Quando il profilo punta a una chiave per nome file invece di incorporarla, l’export è volutamente incompleto e la metà mancante deve venire da chi l’ha emessa. Copiare quel file accanto va bene quando possedete l’autorità di certificazione; non va bene quando il file arrivava con un certificato legato al dispositivo generato sul Mac vecchio.

Perché la metà del portachiavi non viaggia mai

macOS conserva le password VPN e le passphrase delle chiavi nel portachiavi di login, e i client le memorizzano lì invece che nei propri file di impostazioni. Tunnelblick lo dice nella sua guida all’esportazione e all’importazione: l’archivio di configurazione trasporta configurazioni e impostazioni e lascia fuori i nomi utente, le password e le passphrase conservate nel portachiavi. L’omissione è deliberata. Gli elementi del portachiavi sono protetti per utente e per macchina, quindi un elemento copiato non ha un controllo di accesso valido sulla destinazione, il che lascia o un file inutile o un segreto in chiaro.

Potete confermare dove vive la credenziale prima di pianificare il trasloco. security find-internet-password -s vpn.example.com stampa gli attributi di un elemento corrispondente ed esce con un codice diverso da zero quando non ce n’è nessuno; lo stesso comando con -g chiederebbe di rivelare la password, per questo la query senza quell’opzione è il controllo più sicuro. Una corrispondenza lì significa che il profilo non porta la password e non può essere costretto a farlo. Significa anche che la password verrà richiesta di nuovo sul Mac nuovo, e un’autorizzazione «Consenti sempre» sul vecchio lì non conta nulla.

Non ogni segreto è però un elemento del portachiavi. La documentazione del pacchetto Tunnelblick stesso nota che un pacchetto può contenere file di chiave, certificato e script. Quindi il fatto che l’export escluda le voci del portachiavi non è la stessa affermazione del fatto che l’export sia sicuro da inviare per email; trattate l’archivio come sensibile finché non avete elencato cosa contiene.

Le VPN native e gestite non hanno un percorso di esportazione

Le connessioni configurate tramite Impostazioni di Sistema non offrono un’esportazione supportata. scutil --nc list mostra i servizi che il sistema conosce, e scutil --nc show "Work VPN" stampa la configurazione di un servizio, abbastanza per leggerne il server e il protocollo. Nessuno dei due è uno strumento di migrazione. Gli identificatori di servizio memorizzati in /Library/Preferences/SystemConfiguration/preferences.plist sono riferimenti a quel file, quindi copiare il file e riscrivere gli identificatori non è un trasferimento supportato e può disturbare servizi di rete non correlati sulla destinazione.

Il percorso supportato è quello che Apple documenta: installate un file di impostazioni VPN fornito dall’amministratore, o inserite le impostazioni che l’operatore vi dà. Quando la connessione è gestita, chiedete un file nuovo o una registrazione nuova invece di ricostruirla da uno screenshot della vecchia finestra. Per un profilo spinto da MDM, il payload del certificato può portare l’identità mentre la chiave privata è generata sul dispositivo, e in quel caso nemmeno una copia impeccabile del vecchio profilo può autenticare il nuovo Mac.

Verificate il ripristino invece di fidarvi dell’elenco

Un profilo nell’elenco e un tunnel funzionante sono due stati diversi, e solo uno dei due vale la pena di essere riportato. Dopo l’importazione e la connessione, controllate che l’interfaccia del tunnel esista, poi controllate cosa fa il tunnel.

ifconfig | grep -A3 utun mostra l’interfaccia del tunnel e i suoi indirizzi. scutil --dns | grep nameserver mostra quali resolver sono attivi dopo la connessione, ed è lì che i profili con split-DNS di solito divergono. Poi raggiungete la risorsa che conta davvero: curl -sS -o /dev/null -w "%{http_code}" https://intranet.example.com. Se tutti e tre passano, impostazioni, DNS e rotte sono arrivate; un’icona verde nel client non significa nulla di tutto ciò da sola.

Due errori compaiono spesso dopo un’importazione ed entrambi vengono attribuiti al file. Il fatto che i nomi pubblici si risolvano e quelli interni no di solito significa che i server DNS del profilo sono stati persi o che lo split-DNS non è stato conservato. Un tunnel che sale e non passa traffico di solito significa che le rotte o l’autorizzazione lato server non hanno seguito il profilo. Reimportare lo stesso archivio riproduce entrambi.

Prima di dismettere il Mac vecchio

Cancellare l’export non è revocare. Se il dispositivo vecchio si autenticava con un certificato, il server si fida ancora di quel certificato finché non viene revocato o riemesso. Se si autenticava con un account condiviso, le sessioni su quell’account possono essere ancora attive. Fate il passo lato server mentre l’hardware è ancora davanti a voi.

Conservate il nuovo profilo con le altre credenziali quando contiene una chiave, e digitate la password nel client in modo che finisca nel nuovo portachiavi e non in un file. Ultimo controllo: collegatevi dal sostituto con il Mac vecchio spento. Un passaggio di consegne che funziona solo finché la macchina di origine è online non è mai stato completo.

Articoli correlati