Quando um perfil é instalado sem problemas num Mac e recusado noutro, a rede ainda não foi alcançada, pelo que certificados, gateways e palavras-passe não merecem culpa. O instalador parou numa carga útil que não quis aceitar, e normalmente regista qual. Isso deixa o ficheiro do perfil e tudo o que o gerou como os únicos locais sensatos para trabalhar, e transforma o apagamento das configurações no cliente numa forma de destruir provas em vez de uma reparação.

Leia o perfil em vez de reiniciar o Mac

Exporte o .mobileconfig e veja o que ele contém de facto antes de tocar no cliente:

plutil -p profile.mobileconfig | head -60

Um perfil VPN são na verdade duas cargas úteis com tarefas diferentes: com.apple.vpn.managed contém a ligação e com.apple.dnsSettings.managed contém a configuração do resolutor. A instalação para na primeira carga útil que o instalador rejeita, e a rejeição vai para o registo do sistema com o nome dessa carga útil, pelo que é o registo que lhe diz que secção abrir. Guarde uma cópia do último perfil que foi mesmo importado, porque esse ficheiro é a base com que a sua diferença é medida.

O que o gerador acrescentou em silêncio

O Apple Configurator 2.15, compilação 7A23, emitiu o seguinte bloco dentro da sua carga útil de DNS:

<key>DNS</key>
<dict>
  <key>SupplementalMatchDomainsNoSearch</key>
  <integer>0</integer>
</dict>

No macOS 12.1, os perfis escritos por essa compilação foram rejeitados na importação. Uma ligação criada com o Configurator 2.11.1 entrou sem queixa, porque essa versão nunca escrevia a chave. Remova todo o dicionário de DNS ou apenas a chave problemática, guarde novamente e depois tente outra vez na mesma máquina antes de mudar qualquer outra coisa. Normalmente essa única alteração é toda a reparação.

A ferramenta tem uma armadilha que vale a pena conhecer antes de confiar nela. Depois de a chave ser apagada, guardar a mesma ligação não a repôs, e ela só reapareceu quando foi criada uma ligação de raiz. Trate cada perfil acabado de gerar como suspeito e inspecione-o, sobretudo quando foi feita uma série inteira de ligações de uma vez.

O caminho MDM falha noutro sítio

Um serviço de gestão que empurra o mesmo perfil pode falhar noutro ponto: o cliente queixa-se de que não foi criado nenhum serviço VPN. No caso reportado, uma carga útil configurada para autenticação por certificado exigia mesmo assim um campo de palavra-passe; preenchê-lo com um marcador permitiu aplicar o perfil, e nada usou jamais esse valor para autenticar.

Se seguir esse caminho, guarde uma cadeia fictícia e nunca uma credencial real, e mantenha o segredo verdadeiro fora do corpo do perfil. Um perfil com uma palavra-passe funcional torna-se um ficheiro que tem de ser protegido como uma chave, e isso é um problema bastante maior do que a importação falhada com que começou. Decida quem é dono desse marcador antes de o perfil ser distribuído, para que ninguém o confunda mais tarde com um valor que merece rotação. Documentar porque existe custa uma linha e poupa uma discussão dentro de seis meses.

Confirme que o perfil chegou mesmo

Uma importação bem-sucedida não é um serviço a funcionar, por isso verifique nesta ordem:

profiles show -type configuration
scutil --nc list
scutil --nc start "Your VPN Service"
scutil --nc status "Your VPN Service"
scutil --dns | head -20

O primeiro comando lista as cargas úteis instaladas; o segundo diz se existe algum serviço VPN. O último, executado após a ligação, mostra o resolutor que o sistema vai realmente usar. Leia-os nessa ordem e pare onde a cadeia se rompe, porque um serviço ausente torna qualquer pergunta sobre o resolutor sem sentido. Um perfil pode constar como instalado e não possuir nada utilizável, e é exatamente esse estado que esta sequência foi concebida para expor.

Se o túnel subir enquanto uma entrada de serviço ainda não tiver um nome utilizável, o campo do nome apresentado perdeu-se na exportação, e a cura é um perfil regenerado e não uma mudança de nome no cliente. Se o resolutor continuar a apontar para o local, a carga útil de DNS foi removida com mais profundidade do que pretendia.

Implemente por fases, um Mac de cada vez

Instale num Mac gerido com a mesma compilação do sistema, e depois verifique três coisas em separado: o serviço aparece, o resolutor muda e um pedido interno real tem sucesso. Só depois das três é que o âmbito deve ser alargado.

São três resultados diferentes que falham de três maneiras diferentes, e é isso que torna uma máquina de teste digna dos dez minutos. Um perfil que se importa não é um perfil que funciona, e a máquina da primeira fase apanha ambos os tipos de falha antes de o resto da frota ver qualquer deles.

Artigos relacionados