iOS rexeitou o teu túnel strongSwan: compara as propostas IKE
Unha dirección que funciona e un certificado válido poden perder a negociación igualmente. Compara as liñas ike e esp co que acepta o teléfono.
Nada no certificado nin na dirección explica por que un iPhone que o ano pasado se conectaba a strongSwan falla este ano. Non ten por que cambiar nada da dirección, da clave precompartida nin da identidade do cliente. O que se moveu é a lista de transformacións que o cliente integrado do teléfono está disposto a negociar, e en canto esa lista deixa de solaparse coa do servidor, o intercambio remata antes de que se examine a identidade de ninguén.
A liña de rexistro que o decide
Sube o nivel de rexistro desa conexión e busca as dúas entradas que deciden o resultado: que ofreceu o teléfono e que escolleu o servidor. Se o rexistro remata sen unha proposta seleccionada e informa de que nada coincidiu, a autenticación nunca se intentou. Un certificado novo e un contrasinal novo non cambian nada nese punto, porque ambos se consomen nunha etapa posterior. Ningún dos dous pode influír nun resultado que se decidiu antes de examinar a identidade.
Separa as dúas formas de fallo antes de editar nada. Ningunha edición das transformacións rescata unhas credenciais rexeitadas, e ningunha corrección das credenciais rescata unha transformación rexeitada. A entrada do rexistro que nomea unha proposta seleccionada diche en cal das dúas estás. Sen esa entrada, estás adiviñando.
A liña seleccionada nomea a proposta polo seu conxunto de transformacións e non por unha etiqueta amable. Compara os campos de cifrado, integridade e grupo desa liña coa lista que enviou o teléfono, porque unha discrepancia en calquera dos campos abonda para perder.
Que cambiou no teléfono
Unha versión de iOS recortou os algoritmos que o seu cliente está disposto a usar. Os hashes de integridade febles, os grupos Diffie-Hellman pequenos e as propostas que listan opcións antigas primeiro deixaron de ser aceptables.
As listas máis longas aquí non son máis seguras. A selección segue o conxunto aceptado do teléfono e a súa propia orde de preferencia, así que un servidor que anuncia un catálogo amplo pode perder igualmente a negociación cando as entradas modernas non son as que se escollen. Prefire unha lista curta coas entradas modernas diante. Unha lista longa que comeza con opcións antigas invita exactamente ao fallo que intentas evitar. O conxunto aceptado é unha restrición externa que se move cada vez que o cliente se actualiza, así que unha configuración que onte funcionaba é unha proba sobre onte.
Unha parella que aínda negocia
Para os teléfonos actuais abonda unha soa combinación moderna. Unha parella que negocia ten este aspecto:
ike=aes256-sha2_256-modp2048
esp=aes256-sha2_256
A liña ike leva o cifrado, a integridade e o grupo Diffie-Hellman que se usan mentres transcorre o intercambio de claves. A liña esp só cobre a canle de datos, porque o grupo xa se decidiu antes de que se aplique. Recarga a conexión ou reinicia o daemon e despois volve conectar o teléfono. Conserva ese valor de grupo só se todos os clientes aos que serves aínda o aceptan, e non amplíes a proposta para todos só porque unha parella antiga necesita máis.
Tres sitios onde arranxalo, un adoita estar pechado
- Unha proposta moderna para cada parella. Correcto cando todos os clientes son teléfonos e equipos actuais. Borra as transformacións antigas en lugar de negociar arredor delas.
- Unha segunda definición de conexión para clientes de Apple. Mantén vivo unha parella antiga á vez que dá ao teléfono unha proposta que acepta. Custa outro bloque de conexión e fai visible a excepción.
- Cambiar o cliente. Raramente ao teu alcance: cando un sistema de xestión ou unha aplicación distribúe o perfil, non hai editor de propostas que tocar, e o cliente integrado non expón ningún.
Escolle a segunda opción cando un dispositivo fóra do teu control non se pode actualizar. Escolle a primeira cando podes xubilar a parella antiga e prefires levar unha soa política.
De calquera xeito, a elección é visible na configuración, e diso se trata. Unha caída silenciosa que negocia á baixa ata unha transformación antiga é peor que un bloque explícito, porque ningunha revisión a sacará nunca á luz.
Demostra e logo anótao
Volta conectar e comproba tres feitos separados no servidor: seleccionouse unha proposta, a conexión aparece como establecida e o cliente recibiu unha dirección. Un handshake establecido sen dirección remota apunta ao pool ou aos selectores de tráfico, e pertence a un cambio propio. Tratar as dúas cousas xuntas fai que unha negociación resolvida pareza non resolvida.
Anota o conxunto de transformacións que se aceptou, cando o cambiaches e que compilación do cliente verificaches. A próxima actualización pode volver mover o requisito, e os valores que funcionaron son o primeiro que quererás ter xunto aos novos.