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 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

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.

Artigos relacionados