Erro do OpenVPN: opção desconhecida tls-remote ou keysize
Um cliente OpenVPN mais recente rejeita linhas antigas do perfil, como tls-remote e keysize. Leia o nome da opção, substitua a verificação e mantenha a validação ativa.
Costuma começar com um perfil que se ligou durante anos, aberto num cliente mais recente, a falhar antes de o túnel sequer arrancar. O terminal imprime algo como Options error: Unrecognized option ... in client.ovpn:130: tls-remote, com uma versão entre parênteses no fim. Leia-o como uma queixa do analisador: o ficheiro contém uma diretiva que este cliente já não conhece.
Essa única mensagem explica porque regenerar chaves, voltar a escrever a palavra-passe ou verificar o servidor não faz nada. A falha ocorre enquanto o cliente lê a sua própria configuração, antes de abrir um socket. O trabalho útil é identificar a diretiva rejeitada e substituí-la pelo equivalente atual.
Leia a linha que falha antes de editar seja o que for
Execute o cliente você mesmo em vez de o lançar a partir de um ícone da bandeja, para que a mensagem fique visível e o caminho do perfil seja inequívoco. Abra o ficheiro na linha indicada e veja o token que o cliente nomeou. O número da linha é a linha do perfil, não uma versão, o que engana as pessoas porque o mesmo número aparece entre parênteses como identificador de lançamento.
Os geradores de perfis antigos não emitiam uma diretiva má; emitiam várias. Corrija o primeiro erro, volte a executar o cliente e conte com o próximo a aparecer. Essa sequência é normal e não é sinal de que as edições pioraram as coisas.
O que aconteceu a keysize e tls-remote
keysize pedia um comprimento de chave de cifra na época em que o perfil escolhia a cifra explicitamente. O OpenVPN 2.4 descontinuou-o, e os clientes posteriores removeram-no da tabela de opções, por isso o analisador agora rejeita a linha em vez de a ignorar. A negociação moderna deriva o comprimento da chave da cifra selecionada, e é por isso que já não há nada para a diretiva controlar.
tls-remote foi removido na versão 2.4. Comparava o certificado do servidor com um nome esperado, e o seu substituto é verify-x509-name, que é mais rigoroso quanto à forma como o nome é comparado. A diretiva antiga desapareceu, por isso um perfil que a transporte nunca será analisado num cliente atual.
Corrija uma diretiva por tentativa. Se o perfil também especificar uma cifra que o cliente não oferece, isso produz um erro diferente mais tarde, e misturar as duas alterações numa só edição torna impossível dizer qual delas quebrou o handshake. Volte a ligar após cada edição e guarde o texto do erro. Esse hábito também deixa uma alternativa funcional se uma edição piorar as coisas.
Reescreva a verificação da identidade do servidor
O substituto recebe o nome esperado e um modo de comparação. verify-x509-name vpn.example.edu name exige que o nome do titular do certificado seja exatamente igual a esse valor. Outros modos correspondem a um prefixo ou a uma cadeia de titular completa, e escolher o modo errado transforma um perfil funcional numa falha de verificação limpa.
Se o antigo argumento tls-remote era o common name completo do servidor, uma comparação exata por name costuma estar certa. Se era um valor parcial, use o modo de prefixo em vez de encurtar o nome esperado, porque uma correspondência exata mais curta não vai validar. Quando o valor original não está escrito, pergunte a quem opera o servidor qual o titular que publicam.
Não silencie a verificação para fazer o erro desaparecer. Remover a verificação da identidade do servidor converte um problema de perfil corrigível num túnel não verificado, que é exatamente o risco que a diretiva existia para evitar.
Perfil corrigido, edição local ou cliente mais antigo
Quando o servidor é de outra pessoa, o caminho mais limpo é um perfil atual dessa pessoa. A sua cópia veio de um gerador antigo, e a exportação deles já usa as diretivas atuais. Um único download remove toda a categoria de erros e mantém as edições futuras num só lugar.
Quando é dono das duas pontas, edite uma cópia e guarde o original. Altere uma diretiva, guarde, ligue-se e registe a versão do cliente que testou. Mantenha uma nota curta junto de cada edição, porque um perfil editado ao longo de várias sessões é difícil de auditar de memória. Execuções na linha de comandos contra o ficheiro editado tornam esse ciclo rápido, porque o erro vai direto para o terminal.
Fixar ou recuar para um cliente anterior à versão 2.4 também faz a mensagem desaparecer, e com um dispositivo que nunca será atualizado essa pode ser a única solução provisória viável. Trate-a como temporária: um cliente antigo num desktop atual costuma significar uma biblioteca antiga e uma configuração não suportada, o que é um problema adiado em vez de resolvido.
Depois de o túnel subir, leia o perfil completo mais uma vez. Perfis que transportavam uma diretiva removida costumam transportar outra, e a segunda só aparece depois de a primeira desaparecer.