O mesmo .ovpn ficheiro liga-se a partir de uma shell e expira após a importação para o NetworkManager. A conclusão natural é que a VPN está avariada. A explicação mais provável é mais pequena: o NetworkManager não guardou o ficheiro, importou parte dele para uma ligação guardada, e o túnel em execução usa antes esses dados guardados. O que o ficheiro diz agora é irrelevante para o que o perfil contém.

O ficheiro não é o perfil

A importação é uma tradução, não uma montagem. As opções que o plugin compreende tornam-se chaves no vpn.data dicionário da ligação; as opções que não compreende são descartadas ou registadas noutro lugar, e o caminho original é apenas uma referência. Editar o ficheiro de origem depois não muda nada na ligação que já está guardada.

Essa lacuna explica toda uma família de relatos: a chave partilhada foi rodada, o ficheiro foi atualizado, e o túnel continua a falhar. O perfil guardado continua a apontar para o caminho antigo ou para o valor antigo, e a linha de comandos continua a funcionar porque lê o ficheiro que editou. Dois clientes, duas fontes de verdade, e apenas uma delas foi atualizada.

Leia o perfil guardado, não a caixa de diálogo

nmcli -f connection.id,connection.uuid,vpn.service-type,vpn.data connection show office-vpn

Use o UUID quando dois perfis partilham um nome, e confirme que o tipo de serviço é o OpenVPN plugin que espera, e não outro tipo de VPN que por acaso esteja instalado. Depois compare o ponto final, o transporte e as referências de certificado com a invocação que funciona.

Um valor visível num editor gráfico não é prova de que foi guardado. Guarde, reabra e leia-o de novo pela linha de comandos; defeitos históricos de gravação são um motivo para verificar os dados guardados, não uma prova de que cada compilação atual tenha o mesmo erro. A verificação custa um comando.

Duas chaves, e uma direção que importa

Para uma ligação que usa autenticação TLS, o plugin guarda o caminho da chave partilhada em ta e a direção em ta-dir, quando a instalação usa uma. Ambas vivem no dicionário de dados do perfil, e ambas têm de coincidir com o que o servidor espera.

A direção é uma decisão do lado do servidor expressa no cliente. Escolher uma porque um perfil vizinho a tem é a forma como uma chave que funciona acaba por falhar um aperto de mão. Se a configuração do servidor não tiver direção, o cliente não deve inventar uma direção.

O próprio ficheiro de chave tem de ser legível pelo plugin no contexto em que realmente corre. Um pacote confinado tem uma vista do sistema de ficheiros diferente da de uma instalação de ambiente de trabalho normal, por isso um caminho que existe na sua shell pode ser invisível para o serviço.

Atualize uma entrada, não o dicionário

nmcli connection modify office-vpn +vpn.data 'ta=/etc/NetworkManager/certs/office-ta.key'
nmcli connection modify office-vpn +vpn.data 'ta-dir=1'

O mais inicial atualiza entradas individuais do dicionário. Atribuir vpn.data sem ele substitui todo o dicionário, e é assim que uma chave em falta se transforma em cinco definições avariadas. Leia o perfil de volta depois da alteração e confirme que as outras entradas sobreviveram. Um dicionário que perdeu o ponto final remoto e os seus certificados é uma tarde muito mais longa do que aquela com que começou.

Volte a ligar através dos controlos normais e observe a etapa que falha. Se a porta da chave partilhada agora passa e o cliente comunica um erro de certificado ou de autenticação de utilizador, avançou e a próxima investigação é outra.

Não confunda os modos do canal de controlo

tls-auth, tls-crypt, e tls-crypt-v2 são disposições diferentes. Um ficheiro de chave que parece semelhante não os torna intercambiáveis, e preencher os campos TLS-Auth porque outro perfil contém uma chave formatada produz um perfil que falha de uma forma que se assemelha a uma chave errada.

Use o mapeamento do plugin que corresponde ao modo na configuração do servidor. Quando o modo não é claro, pergunte ao proprietário do servidor em vez de adivinhar pela primeira linha do ficheiro.

Mantenha um caminho de recuperação quando o túnel transporta a sua sessão de gestão. Uma alteração guardada não é necessariamente uma alteração aplicada, e uma importação bem-sucedida não é prova de que todas as opções de origem foram suportadas. Vale a pena conhecer as duas lacunas antes de voltar a ligar a ligação através da qual trabalha.

Artigos relacionados