Versão TLS não permitida do AnyConnect no Linux: delimite primeiro o alcance da correção
Uma política LEGACY para todo o host, uma configuração OpenSSL por processo e uma VM descartável comparadas, mais a mudança no gateway que elimina o erro de vez.
Este erro aparece antes do pedido de palavra-passe, e essa é a parte útil: nada foi autenticado ainda, portanto as credenciais não são o problema. No Linux a mesma caixa de diálogo do AnyConnect pode vir de uma versão antiga do protocolo, de um grupo de troca de chaves de 1024 bits ou de um conjunto de cifras que a política criptográfica do sistema recusa. Já o eliminei de três formas diferentes em três máquinas, e o que distingue essas correções é o alcance, não a esperteza. Cada uma é defensável no lugar certo e uma má opção por omissão em todos os outros.
Leia a mensagem antes de mexer na política
Guarde a cadeia exata da caixa de diálogo. Uma queixa de versão aponta para a camada de protocolo, uma queixa de certificado aponta para a confiança ou a nomenclatura, e um início de sessão falhado aponta para as credenciais. Um gateway que oferece TLS 1.0 com um grupo DHE de 1024 bits, AES-256-CBC e uma assinatura SHA-1 pode ter um certificado perfeitamente válido e ainda assim ser rejeitado por uma política moderna antes de as suas credenciais serem enviadas.
Sonde o endpoint com o OpenSSL do sistema, usando o nome de anfitrião real e a porta que o cliente utiliza.
Se openssl s_client -connect vpn.example.com:443 -servername vpn.example.com falhar enquanto -tls1 -cipher DEFAULT@SECLEVEL=0 tem sucesso, o limite é a versão e o tamanho da chave em conjunto. Se o primeiro comando relatar uma chave DH pequena em vez de um alerta de protocolo, a versão está bem e só o grupo precisa de atenção. Nunca coloque uma chave privada ou uma palavra-passe na verificação.
Opção 1: relaxar todo o host com a política criptográfica
No Fedora e no RHEL 8 e 9, update-crypto-policies --set LEGACY baixa a política de sistema do OpenSSL, e update-crypto-policies --show confirma o que está ativo. Normalmente restaura o túnel, mas a política é lida quando um processo arranca, por isso reinicie o cliente e qualquer auxiliar que tenha criado antes de testar de novo. Também permite protocolos mais antigos e grupos mais fracos a cada cliente TLS da máquina, do navegador na janela ao lado ao gestor de pacotes que atualiza o kernel.
Essa amplitude é todo o objetivo e todo o problema. O LEGACY vale para todo o host, é persistente e fácil de esquecer, pelo que deve ser um passo de diagnóstico ou uma exceção documentada numa instalação gerida, nunca o estado de repouso de uma estação de trabalho. Já vi uma que ficou em LEGACY durante dois anos porque um único portal interno precisava dele, e ninguém sabia dizer quando começou.
O Debian e o Ubuntu não têm um único interruptor para isto. O equivalente é uma alteração a /etc/ssl/openssl.cnf que define um MinProtocol mais baixo e CipherString = DEFAULT@SECLEVEL=0 na secção de valores por omissão do sistema. Mesmo alcance, ficheiro diferente, um pouco mais fácil de perder de vista durante uma atualização de versão.
Opção 2: um ficheiro de configuração para um cliente
Uma configuração OpenSSL por processo mantém a alteração dentro de uma única árvore de processos, mas só se o ficheiro estiver ligado como a biblioteca espera. Dar nome a uma secção ssl_conf não chega: o OpenSSL lê a chave de nível superior openssl_conf, segue-a até uma secção de inicialização e só então chega aos valores por omissão do SSL.
openssl_conf = openssl_init
[openssl_init]
ssl_conf = ssl_sect
[ssl_sect]
system_default = system_default_sect
[system_default_sect]
MinProtocol = TLSv1.0
CipherString = DEFAULT@SECLEVEL=0Aponte OPENSSL_CONF para esse ficheiro e lance o cliente VPN através de um invólucro que o exporte. Tudo o resto no host mantém a política por omissão, e é essa a propriedade que importa quando chega a pergunta de conformidade. Confirme que o ficheiro está mesmo em vigor antes de culpar o gateway: OPENSSL_CONF=/path/to/file openssl ciphers -s -tls1 deve listar cifras TLS 1.0, e um resultado vazio significa que a cadeia está quebrada e que o cliente manteve silenciosamente os valores do sistema.
O ficheiro é sensível à versão. O OpenSSL 1.1.1 e o 3.x aceitam os mesmos nomes de secção, mas o tratamento das diretivas em torno dos fornecedores mudou no 3.x, por isso verifique com o registo do próprio cliente e um aperto de mão de teste em vez de assumir que o ficheiro foi lido. Um erro de escrita no nome da secção falha em aberto, e o cliente usa silenciosamente os valores por omissão do sistema.
O limite é a cobertura. Tudo o que está ligado a GnuTLS ou NSS ignora OPENSSL_CONF, tal como qualquer processo auxiliar que o cliente lance sem herdar o ambiente. Verifique com ldd a que biblioteca TLS o binário está realmente ligado antes de construir o invólucro, porque a resposta decide se esta opção sequer existe.
Opção 3: uma VM ou um contentor descartável
Para um prestador que durante quinze dias ataca um gateway antigo, uma VM dedicada com a política relaxada é uma fronteira mais limpa do que a estação de trabalho. A superfície antiga e o perfil de navegação diário deixam de partilhar uma política de kernel, e a eliminação é um apagamento, não uma constatação de auditoria.
Continua a ser uma máquina em rede, por isso limite o acesso e mantenha-a longe da navegação geral. O custo de manutenção é mais uma imagem para aplicar patches, o que é real mas limitado e visível, ao contrário de uma bandeira LEGACY esquecida num portátil.
O que a comparação lhe deixa
Escolha com três perguntas: quem precisa do protocolo antigo, durante quanto tempo e quem vai notar se a exceção sobreviver ao seu motivo. Uma aplicação, uma pessoa, alguns dias apontam para a configuração por processo. Uma frota inteira atrás de um único equipamento aponta para o próprio gateway. Tudo o que exige uma política LEGACY permanente no host é uma decisão de compra disfarçada de solução técnica.
A correção duradoura pertence ao equipamento: TLS 1.2 ou posterior, um grupo de pelo menos 2048 bits, uma cifra AEAD e um certificado com assinatura moderna. Peça essa alteração ao proprietário do equipamento e depois confirme a versão e a cifra negociadas no registo do cliente. Anote a exceção com o host, o gateway, o protocolo negociado, quem aprova e uma data de validade, porque é essa nota que impede uma solução temporária de se tornar o valor por omissão.