AES-256-GCM non atopado: capacidade do cliente ou negociación?
Dous erros de OpenVPN parécense: unha compilación sen o algoritmo e pares sen cifrado común. Le --show-ciphers e data-ciphers antes de editar o perfil.
Un perfil de OpenVPN que funciona noutro sitio informa de que non se atopa AES-256-GCM, ou de que os pares non comparten ningún cifrado, e o primeiro impulso é editar o perfil. Esas dúas mensaxes describen fallos distintos. Unha di que o programa local non ten ese algoritmo; a outra, que ambos extremos teñen algoritmos pero ningunha escolla común. Editar o perfil non arranxa ningún dos dous ata que saibas cal tes.
Le o texto exacto do erro e o binario que o produciu.
Decide que erro tes
A mensaxe sobre un cifrado que non se atopa vén da análise de opcións na máquina local, antes de enviar ningún paquete. Significa que o executable que tes diante, ou a biblioteca á que liga, non ofrece ese algoritmo. A mensaxe sobre a ausencia de cifrado común chega máis tarde, durante a negociación, e implica que ambos lados admiten cifrados pero non coinciden nun.
A distinción importa porque un é un problema de versión do software e o outro de configuración. O primeiro resólvese cun número de versión. O segundo resólvese comparando dúas listas.
Unha carencia local de capacidade
As compilacións comunitarias antigas son anteriores aos valores por defecto modernos, e unha aplicación de escritorio pode traer o seu propio motor, distinto do paquete de liña de ordes instalado ao lado. Fai as comprobacións sobre o executable que lanzou realmente a conexión e logo escolle unha compilación compatible en lugar de ensinar un algoritmo novo a un binario vello.
openvpn --version openvpn --show-ciphers | grep -i gcm openvpn --show-tls | head -5
Se AES-256-GCM non aparece nesa lista, ningunha liña do perfil o engadirá. A solución é un cliente máis novo ou outra compilación, e as restricións do extremo máis antigo pasan a ser unha cuestión de deseño aparte.
Nos clientes baseados en OpenVPN 3, o motor e as directivas aceptadas difiren da liña comunitaria 2.x, así que o mesmo texto de perfil pode fallar por motivos que nada teñen que ver coa lista de cifrados.
Unha carencia de negociación
Cando ambos pares enumeran o algoritmo, queda a pregunta de que lista ofrece cada lado. O OpenVPN comunitario renomeou a directiva de negociación: ncp-ciphers en 2.4 pasou a data-ciphers en 2.5, e en 2.6 a liña cipher antiga serve sobre todo para compatibilidade e reserva, non para definir o conxunto negociado.
Por iso cambiar só unha liña cipher antiga pode deixar intacta a lista de negociación. A liña vella segue importando para a reserva, que é un traballo aparte. Confundir ambas produce edicións que non cambian nada visible.
openvpn --version | head -2 grep -n -E '^(data-ciphers|ncp-ciphers|cipher|tls-cipher)' server.conf client.ovpn
Compara as listas de ambos extremos e a mensaxe de rexeitamento do servidor. Se a intersección está baleira, aliña as listas a propósito en lugar de copiar un valor dun artigo escrito para outra versión. Unha lista demasiado xenerosa debilita en silencio cada conexión. Unha lista demasiado estreita exclúe o par que querías conservar.
Mantén a compatibilidade explícita
Unha reserva para un par antigo é unha decisión cun custo: todo o despregamento acepta unha opción máis feble para que un dispositivo poida conectarse. Escríbeo como tal e limítao ao par que o necesita.
Dúas condicións deciden o resultado. Se o erro é local, substitúe a compilación. Se o erro é de negociación, aliña as listas nos dous extremos e anota que versións mantés.
Despois informa do erro exacto coa saída de versión e capacidades adxunta. Esa parella separa un algoritmo ausente dunha discrepancia e detén a seguinte rolda de edicións especulativas antes de que comece.