iOS va rebutjar el teu túnel strongSwan: compara les propostes IKE
Una adreça que funciona i un certificat vàlid encara poden perdre la negociació. Compara les línies ike i esp amb el que accepta el telèfon.
Res del certificat ni de l'adreça no explica per què un iPhone que l'any passat es connectava a strongSwan enguany falla. No cal que hagi canviat res de l'adreça, de la clau prèviament compartida ni de la identitat del client. El que s'ha mogut és la llista de transformacions que el client integrat del telèfon està disposat a negociar, i quan aquesta llista deixa de solapar-se amb la del servidor, l'intercanvi s'acaba abans que es miri la identitat de ningú.
La línia de registre que ho decideix
Apuja el nivell de registre d'aquesta connexió i troba les dues entrades que decideixen el resultat: què va oferir el telèfon i què va triar el servidor. Si el registre acaba sense cap proposta seleccionada i informa que res no ha coincidit, no s'ha intentat cap autenticació. Un certificat nou i una contrasenya nova no hi canvien res en aquest punt, perquè tots dos es consumeixen en una etapa posterior. Cap dels dos no pot influir en un resultat que es va decidir abans de mirar la identitat.
Separa les dues formes de fallada abans d'editar res. Cap edició de les transformacions no salva unes credencials rebutjades, i cap correcció de les credencials no salva una transformació rebutjada. L'entrada del registre que anomena una proposta seleccionada et diu en quina de les dues ets. Sense aquesta entrada, vas a cegues.
La línia seleccionada anomena la proposta pel seu conjunt de transformacions i no per una etiqueta amable. Compara els camps de xifratge, integritat i grup d'aquesta línia amb la llista que va enviar el telèfon, perquè una discrepància en qualsevol camp ja n'hi ha prou per perdre.
Què ha canviat al telèfon
Una versió d'iOS va retallar els algorismes que el seu client està disposat a fer servir. Els resums d'integritat febles, els grups Diffie-Hellman petits i les propostes que llisten opcions antigues primer van deixar de ser acceptables.
Les llistes més llargues aquí no són més segures. La selecció segueix el conjunt acceptat del telèfon i el seu propi ordre de preferència, així que un servidor que anuncia un catàleg ampli pot perdre igualment la negociació quan les entrades modernes no són les que es trien. Prefereix una llista curta amb les entrades modernes al davant. Una llista llarga que comença amb opcions antigues convida exactament la fallada que intentes evitar. El conjunt acceptat és una restricció externa que es mou cada cop que el client s'actualitza, així que una configuració que ahir funcionava és una prova sobre ahir.
Una parella que encara negocia
Per als telèfons actuals n'hi ha prou amb una sola combinació moderna. Una parella que negocia té aquest aspecte:
ike=aes256-sha2_256-modp2048
esp=aes256-sha2_256
La línia ike porta el xifratge, la integritat i el grup Diffie-Hellman que s'utilitzen mentre dura l'intercanvi de claus. La línia esp només cobreix el canal de dades, perquè el grup ja es va decidir abans que s'apliqui. Recarrega la connexió o reinicia el dimoni, i després torna a connectar el telèfon. Mantén aquest valor de grup només si tots els clients que serveixes encara l'accepten, i no ampliïs la proposta per a tothom només perquè un parell antic en necessita més.
Tres llocs on arreglar-ho, un normalment tancat
- Una proposta moderna per a cada parell. Correcte quan tots els clients són telèfons i escriptoris actuals. Esborra les transformacions antigues en lloc de negociar-hi al voltant.
- Una segona definició de connexió per als clients d'Apple. Manté un parell antic viu mentre dóna al telèfon una proposta que accepta. Costa un altre bloc de connexió i fa visible l'excepció.
- Canviar el client. Poques vegades al teu abast: quan un sistema de gestió o una aplicació distribueix el perfil, no hi ha cap editor de propostes on tocar, i el client integrat no n'exposa cap.
Tria la segona opció quan un dispositiu fora del teu control no es pot actualitzar. Tria la primera quan pots jubilar el parell antic i prefereixes portar una sola política.
De qualsevol manera, l'opció és visible a la configuració, i aquest és el punt. Una caiguda silenciosa que negocia a la baixa fins a una transformació antiga és pitjor que un bloc explícit, perquè cap revisió no la traurà mai a la llum.
Demostra-ho i després anota-ho
Torna a connectar i comprova tres fets separats al servidor: s'ha seleccionat una proposta, la connexió apareix com a establerta i el client ha rebut una adreça. Un handshake establert sense adreça remota apunta al pool o als selectors de trànsit, i pertany a un canvi propi. Tractar les dues coses alhora fa que una negociació resolta sembli no resolta.
Anota el conjunt de transformacions que es va acceptar, quan el vas canviar i quina compilació del client vas verificar. La propera actualització pot tornar a moure el requisit, i els valors que funcionaven són el primer que voldràs tenir al costat dels nous.