A autenticación EAP sobre IKEv2 pode pedir a un cliente que valide dous nomes de servidor distintos nunha soa conexión. A pasarela que remata IKE presenta unha identidade, e o backend EAP que remata o intercambio TLS interno pode presentar outra. En strongSwan viven en bloques de configuración distintos, e pór un nome no bloque equivocado produce un fallo que parece un problema de certificado. Ler que validación fallou é o que che di que bloque editar.

Unha conexión, dúas identidades de servidor

A primeira identidade pertence ao intercambio IKE. O cliente marca un enderezo e espera que o par demostre unha identidade concreta, normalmente o nome do certificado da pasarela.

A segunda pertence a EAP. Con PEAP ou TTLS, o cliente constrúe un túnel TLS cara ao servidor de autenticación dentro da IKE SA, e ese servidor interno presenta o seu propio certificado. Cando o backend é un host aparte, o seu nome difire do da pasarela. Un cliente que só comproba o primeiro nome acepta o que afirme o segundo. E un cliente configurado cun só nome nos dous sitios falla en canto os dous difiren de verdade.

Ambos os nomes veñen da configuración do operador, non do certificado que fai desaparecer o erro. Preguntar ao operador polos detalles do despregamento é máis rápido que adiviñar dous nomes de host.

Que campo pertence a que capa

En swanctl, o enderezo e a identidade IKE son axustes separados, e a identidade EAP é un terceiro.

O enderezo remoto escolle a onde van os paquetes, e a identidade remota indica que debe demostrar o par. A expectativa EAP escríbese baixo o bloque local, porque describe o intercambio EAP deste cliente e non o comportamento IKE do par. Ese emprazamento é a parte que a xente le mal. O nome está na configuración do cliente mentres describe un servidor, e por iso mesmo parece fóra de lugar.

connections {
    office {
        remote_addrs = vpn.example.com
        local {
            auth = eap-peap
            aaa_id = auth.example.com
        }
        remote {
            auth = pubkey
            id = vpn.example.com
        }
    }
}

Ese fragmento non é unha conexión completa; o material de confianza, as credenciais e as políticas das conexións fillas aínda deben estar presentes. Copialo tal cal nun ficheiro de traballo substituiría axustes que aínda necesitas.

Por que aaa_id vive baixo local

O bloque local describe que fai este extremo durante a autenticación, incluído o método que usará e a identidade que espera que o outro extremo presente para ese método. Nada nel afirma que o servidor AAA se execute na mesma máquina.

O valor predeterminado agudiza a trampa. Cando non se fixa un valor explícito, a identidade AAA esperada segue a identidade remota, así que un despregamento cun só nome funciona e oculta a distinción. Un valor explícito só importa cando o despregamento EAP remata de verdade noutro sitio. Fixalo a un nome distinto sen ese motivo crea un fallo que o operador non pode reproducir. Le o despregamento antes de inventar un segundo nome.

Mantén o valor idéntico ao que afirma realmente o certificado do backend, incluída a forma do nome. Un punto final ou un comodín que non cubra o host abonda para que a comprobación falle.

Interfaces que non poden expresar a separación

Un perfil de NetworkManager non é a mesma interface de configuración que swanctl. O complemento que hai detrás expón un conxunto máis estreito de controis de identidade, e cales existen depende da versión instalada.

Iso importa cando o despregamento necesita de verdade dous nomes. Un campo etiquetado como identidade do servidor pode configurar unha capa e non a outra, así que un perfil pode parecer correcto e aínda así fallar a comprobación interna. Comproba que admite o complemento instalado antes de supoñer que o perfil pode expresar esa disposición. Se non pode, a elección é do operador: unha vía de aprovisionamento distinta ou un deseño corrixido da identidade do servidor. Debilitar PEAP ou aceptar calquera nome cambia a política de autenticación en lugar de arranxala.

A alternativa non é algo que inventar no cliente. Pide por escrito a disposición admitida e despois garda esa resposta co perfil.

Distingue unha discrepancia de identidade dun certificado caducado

Unha discrepancia de nome e un certificado caducado son fallos distintos, e o rexistro distíngueos. Le a mensaxe antes de decidir que campo cambiar.

swanctl --list-conns
swanctl --list-sas
journalctl -u strongswan -n 50 --no-pager

Fixar a identidade AAA prevista non renova un certificado nin establece confianza no seu emisor, e renovar un certificado non corrixe un nome esperado equivocado. Le que validación fallou antes de editar outro campo de identidade. Despois recarga a configuración e confirma que a conexión cargada mostra o valor que fixaches, porque un ficheiro editado que nunca se cargou non cambia nada. Escribe ambos os nomes e as súas capas nas notas do despregamento.

Artigos relacionados