Este perfil foi escrito em 2016 e ainda se importa e ainda se liga. É exatamente por isso que ninguém olha para ele. O cliente que outrora lia estas diretivas desapareceu há muito, e a compilação atual pode interpretar várias delas de forma diferente.

Que um ficheiro sobreviva não significa que a configuração esteja atualizada. Separar essas duas ideias é a maior parte do trabalho.

Descubra que cliente escreveu o perfil

Comece pelo emissor e pela versão. O significado de uma diretiva é definido pela implementação que a lê. Uma linha que outrora escolhia um algoritmo pode tornar-se uma lista de reserva, um aviso ou um erro grave. Que versão a interpreta decide o resultado.

OpenVPN é o exemplo mais claro. A versão 2.5 introduziu data-ciphers e alterou a forma como a diretiva mais antiga cipher participa na negociação. Um perfil que só contém cipher AES-128-CBC faz agora uma proposta muito mais estreita do que o seu autor pretendia.

Leia as notas de versão para a definição que agora avisa ou falha. Um aviso no registo é um facto sobre a compilação atual, e pesa mais do que a memória de qualquer pessoa sobre a razão de a linha ter sido acrescentada.

Veja o que foi realmente negociado

Uma importação bem-sucedida prova a análise, não a política. O resultado negociado aparece no registo do cliente depois de a ligação subir. Pode diferir de ambas as pontas do ficheiro de configuração.

# OpenVPN: what did this session agree on?
sudo journalctl -u openvpn-client@office --since '5 min ago' | grep -i 'cipher\|Data Channel'

# which directives does the profile actually carry?
grep -n -E 'cipher|auth|tls-|dh ' office.ovpn

Uma importação aceite que descarta silenciosamente uma diretiva deixa um perfil que se lê de uma maneira e se comporta de outra. É essa lacuna que explica como um documento rotulado como reforçado negocia algo mais fraco do que o seu próprio texto afirma. O registo é o único lugar onde a diferença aparece. Leia-o antes de confiar no ficheiro.

Atualize a disposição, não a linha

Obtenha o perfil mantido pelo operador em vez de montar nomes de algoritmos até a importação deixar de se queixar. Acrescentar linhas por tentativa inverte a direção da correção. Adapta o cliente a um servidor desconhecido em vez de estabelecer o que o servidor suporta.

O servidor também pode precisar da atualização coordenada. Um cliente atual não pode criar suporte para uma proposta que a outra parte nunca oferece. Nenhuma opção do lado do cliente substitui um gateway que não foi atualizado.

O que não deve ser sacrificado é a verificação. Remover as verificações de certificados, desativar a verificação do nome de anfitrião ou desligar as atualizações para manter vivo um perfil antigo transforma um problema de compatibilidade num problema de confiança. Normalmente acontece uma pequena edição de cada vez.

Confirme o resultado e registe a exceção

Depois da alteração, inspecione novamente o conjunto negociado e teste o recurso para o qual o túnel existe. Um perfil que negocia o que pretendia e ainda assim não chega ao serviço tem um problema de encaminhamento ou de identidade. Não tem um problema criptográfico.

Guarde a configuração anterior que se sabia boa num local protegido. Só é possível comparar enquanto o ficheiro antigo ainda existir.

Documente qualquer exceção de compatibilidade com um responsável e uma data de revisão. Um acordo temporário que ninguém possui torna-se política permanente. A próxima pessoa que ler o ficheiro assumirá que foi escolhido deliberadamente.

Artigos relacionados