Un perfil d’OpenVPN que funciona en un altre lloc informa que no es troba AES-256-GCM, o que els parells no comparteixen cap xifrador, i el primer impuls és editar el perfil. Aquests dos missatges descriuen fallades diferents. Un diu que el programa local no té aquest algoritme; l’altre diu que els dos extrems tenen algoritmes però cap elecció comuna. Editar el perfil no arregla cap dels dos fins que no sapigueu quin teniu.

Llegiu el text exacte de l’error i el binari que l’ha produït.

Decidiu quin error teniu

El missatge sobre un xifrador que no es troba ve de l’anàlisi d’opcions a la màquina local, abans que s’enviï cap paquet. Vol dir que l’executable que teniu al davant, o la biblioteca a què enllaça, no ofereix aquest algoritme. El missatge sobre cap xifrador compartit arriba més tard, durant la negociació, i implica que els dos costats admeten xifradors però no s’avenen en un.

La distinció importa perquè un és un problema de versió del programari i l’altre un problema de configuració. El primer es resol amb un número de versió. El segon es resol comparant dues llistes.

Una mancança local de capacitat

Les compilacions comunitàries antigues són anteriors als valors per defecte moderns, i una aplicació d’escriptori pot portar el seu propi motor, diferent del paquet de línia d’ordres instal·lat al costat. Feu les comprovacions sobre l’executable que va llançar realment la connexió, i després trieu una compilació compatible en lloc d’ensenyar un algoritme nou a un binari vell.

openvpn --version
openvpn --show-ciphers | grep -i gcm
openvpn --show-tls | head -5

Si AES-256-GCM no apareix en aquest llistat, cap línia del perfil l’afegirà. La solució és un client més nou o una altra compilació, i les restriccions de l’extrem més antic esdevenen una qüestió de disseny a part.

Als clients basats en OpenVPN 3, el motor i les directrius acceptades difereixen de la línia comunitària 2.x, així que el mateix text de perfil pot fallar per motius que no tenen res a veure amb la llista de xifradors.

Una mancança de negociació

Quan els dos parells llisten l’algoritme, la pregunta que queda és quina llista ofereix cada costat. L’OpenVPN comunitari va reanomenar la directriu de negociació: ncp-ciphers a 2.4 va esdevenir data-ciphers a 2.5, i a 2.6 la línia cipher antiga serveix sobretot per a compatibilitat i retrocés, no per definir el conjunt negociat.

Per això canviar només una línia cipher antiga pot deixar la llista de negociació intacta. La línia vella encara importa per al retrocés, que és una feina separada. Confondre les dues produeix edicions que no canvien res visible.

openvpn --version | head -2
grep -n -E '^(data-ciphers|ncp-ciphers|cipher|tls-cipher)' server.conf client.ovpn

Compareu les llistes dels dos extrems i el missatge de rebuig del servidor. Si la intersecció és buida, alineeu les llistes deliberadament en lloc de copiar un valor d’un article escrit per a una altra versió. Una llista massa generosa debilita en silenci cada connexió. Una llista massa estreta exclou el parell que volíeu mantenir.

Manteniu la compatibilitat explícita

Un retrocés per a un parell antic és una decisió amb un cost: tot el desplegament accepta una opció més feble perquè un dispositiu es pugui connectar. Escriviu-ho com a tal i limiteu-ho al parell que ho necessita.

Dues condicions decideixen el resultat. Si l’error és local, substituïu la compilació. Si l’error és de negociació, alineeu les llistes als dos extrems i anoteu quines versions doneu suport.

Després informeu de l’error exacte amb la sortida de versió i capacitats adjunta. Aquesta parella separa un algoritme absent d’una discrepància i atura la següent ronda d’edicions especulatives abans que comenci.

Articles relacionats