O que contém uma exportação de VPN do Mac e o que ela deixa para trás
Uma exportação de VPN do Mac leva ajustes e às vezes uma chave privada, mas não a palavra-passe do porta-chaves nem o registo do dispositivo. Verifique cada parte primeiro.
Clique em Export num cliente VPN do Mac e obtém um ficheiro que descreve uma ligação sem o ser. O endereço do servidor, a porta, o protocolo e muitas vezes os certificados estão lá dentro. A palavra-passe de início de sessão, a frase de acesso de uma chave privada e o registo que autoriza precisamente este Mac normalmente não. É por isso que um perfil pode importar-se sem problemas, aparecer na lista do cliente e ainda assim falhar no primeiro pedido de autenticação; a lacuna é uma propriedade do formato, não um download corrompido.
| Part of the connection | Where it lives on the old Mac | What an export does with it |
|---|---|---|
| Server, port, protocol, routes | Client profile or managed settings | Usually included when the client exports configuration |
| Client certificate and private key | Inside the package, the login keychain, or issued by MDM | Included only if the format packs it; a keychain-held key stays behind |
| Login password, key passphrase | Login keychain | Left out by design |
| Device authorization or enrollment | Server side, bound to the certificate or the device record | Not transferable; the new device has to enroll |
O que o ficheiro exportado contém na realidade
Uma exportação é um contentor, e a extensão do ficheiro diz menos do que o conteúdo. Os perfis OpenVPN são texto: diretivas, mais blocos inline opcionais <ca>, <cert> e <key>. As configurações do Tunnelblick são arquivos comprimidos de configurações e ajustes. Um .mobileconfig gerido é um plist de cargas úteis. Duas listagens respondem à maior parte da pergunta antes de importar seja o que for.
Para um perfil de texto, conte os blocos PEM que transporta: grep -c "PRIVATE KEY" your-profile.ovpn. Um resultado diferente de zero significa que o ficheiro contém material de chave e tem de ser tratado como uma palavra-passe a partir daí. Para um arquivo, liste-o sem o extrair: tar -tf export.tbz, ou unzip -l export.zip se o cliente produziu um zip. Os ficheiros de chave, os ficheiros de certificado e os scripts de montagem ou desmontagem dessa listagem são as partes que uma reemissão de conta de utilizador não recriará.
O caso oposto importa tanto. Quando o perfil aponta para uma chave pelo nome do ficheiro em vez de a incorporar, a exportação está incompleta de propósito e a metade em falta tem de vir de quem a emitiu. Copiar esse ficheiro ao lado está bem quando possui a autoridade de certificação; não está bem quando o ficheiro veio com um certificado ligado ao dispositivo que foi gerado no Mac antigo.
Porque é que a metade do porta-chaves nunca viaja
O macOS guarda as palavras-passe de VPN e as frases de acesso das chaves no porta-chaves de início de sessão, e os clientes armazenam-nas aí em vez de nos seus próprios ficheiros de ajustes. O Tunnelblick diz isso no seu guia de exportação e importação: o arquivo de configuração transporta configurações e ajustes e deixa de fora os nomes de utilizador, as palavras-passe e as frases de acesso guardados no porta-chaves. A omissão é deliberada. Os itens do porta-chaves estão protegidos por utilizador e por máquina, por isso um item copiado não tem controlo de acesso válido no destino, o que deixa ou um ficheiro inútil ou um segredo em texto simples.
Pode confirmar onde vive a credencial antes de planear a mudança. security find-internet-password -s vpn.example.com imprime os atributos de um item correspondente e termina com um código diferente de zero quando não há nenhum; o mesmo comando com -g pediria para revelar a palavra-passe, por isso a consulta sem ela é a verificação mais segura. Um resultado ali significa que o perfil não transporta a palavra-passe e não pode ser forçado a fazê-lo. Também significa que a palavra-passe será pedida novamente no Mac novo, e uma autorização «Permitir sempre» no antigo não conta para nada ali.
Nem todo o segredo é, no entanto, um item do porta-chaves. A documentação do pacote do Tunnelblick observa que um pacote pode conter ficheiros de chave, certificado e script. Portanto, o facto de a exportação excluir entradas do porta-chaves não é a mesma afirmação que a de que a exportação é segura para enviar por e-mail; trate o arquivo como sensível até ter listado o que contém.
As VPN nativas e geridas não têm caminho de exportação
As ligações configuradas através das Definições do Sistema não oferecem uma exportação suportada. scutil --nc list mostra os serviços que o sistema conhece, e scutil --nc show "Work VPN" imprime a configuração de um serviço, o suficiente para ler o servidor e o protocolo. Nenhum dos dois é uma ferramenta de migração. Os identificadores de serviço guardados em /Library/Preferences/SystemConfiguration/preferences.plist são referências dentro desse ficheiro, por isso copiar o ficheiro e reescrever identificadores não é uma transferência suportada e pode perturbar serviços de rede não relacionados no destino.
O caminho suportado é o que a Apple documenta: instale um ficheiro de ajustes de VPN fornecido pelo administrador, ou introduza os ajustes que o operador lhe dá. Quando a ligação é gerida, peça um ficheiro novo ou um registo novo em vez de a reconstruir a partir de uma captura do diálogo antigo. Para um perfil empurrado por MDM, a carga do certificado pode transportar a identidade enquanto a chave privada é gerada no dispositivo, e nesse caso nem uma cópia impecável do perfil antigo consegue autenticar o Mac novo.
Verifique o restauro em vez de confiar na lista
Um perfil na lista e um túnel a funcionar são dois estados diferentes, e só um deles vale a pena reportar. Depois de importar e ligar, verifique se a interface do túnel existe e depois verifique o que o túnel está a fazer.
ifconfig | grep -A3 utun mostra a interface do túnel e os seus endereços. scutil --dns | grep nameserver mostra quais os resolvedores ativos depois da ligação, e é aí que os perfis de split-DNS costumam divergir. Depois alcance o recurso que realmente importa: curl -sS -o /dev/null -w "%{http_code}" https://intranet.example.com. Se os três passarem, os ajustes, o DNS e as rotas chegaram; um ícone verde no cliente não significa nada disso por si só.
Duas falhas aparecem frequentemente depois de uma importação e ambas são atribuídas ao ficheiro. O facto de nomes públicos resolverem e os internos não costuma significar que os servidores DNS do perfil foram perdidos ou que o split-DNS não foi preservado. Um túnel que sobe e não deixa passar tráfego costuma significar que as rotas ou a autorização do lado do servidor não seguiram o perfil. Reimportar o mesmo arquivo reproduz ambos.
Antes de reformar o Mac antigo
Apagar a exportação não é revogação. Se o dispositivo antigo se autenticava com um certificado, o servidor ainda confia nesse certificado até ser revogado ou reemitido. Se se autenticava com uma conta partilhada, as sessões nessa conta podem ainda estar vivas. Faça o passo do lado do servidor enquanto o hardware ainda está à sua frente.
Guarde o perfil novo com as suas outras credenciais quando contiver uma chave, e escreva a palavra-passe no cliente para que fique no porta-chaves novo e não num ficheiro. Última verificação: ligue-se a partir do substituto com o Mac antigo desligado. Uma transferência que só funciona enquanto a máquina de origem está online nunca foi completa.