strongSwan EAP: identita IKE versus očekávané jméno AAA
Klient strongSwan EAP může ověřovat dvě jména serverů. remote.id pokrývá bránu IKE a local.aaa_id pokrývá server EAP; nejsou to jedno pole.
Autentizace EAP přes IKEv2 může po klientovi chtít, aby v jednom spojení ověřil dvě různá jména serverů. Brána, která ukončuje IKE, představuje jednu identitu a backend EAP, který ukončuje vnitřní výměnu TLS, může představit jinou. V strongSwanu žijí v různých konfiguračních blocích a jméno ve špatném bloku způsobí selhání, které vypadá jako problém s certifikátem. Právě čtení toho, které ověření selhalo, vám řekne, který blok upravit.
Jedno spojení, dvě identity serveru
První identita patří výměně IKE. Klient vytáčí adresu a očekává, že protějšek prokáže určitou identitu, obvykle jméno v certifikátu brány.
Druhá patří EAP. S PEAP nebo TTLS klient staví tunel TLS k autentizačnímu serveru uvnitř IKE SA a tento vnitřní server představí vlastní certifikát. Když je backend samostatný host, jeho jméno se liší od jména brány. Klient, který kontroluje jen první jméno, přijme, co tvrdí to druhé. A klient nastavený s jedním jménem na obou místech selže, jakmile se obě skutečně rozejdou.
Obě jména pocházejí z konfigurace operátora, ne z certifikátu, který chybu odstraní. Zeptat se operátora na podrobnosti nasazení je rychlejší než hádat dvě jména hostitelů.
Které pole patří které vrstvě
V swanctl jsou adresa a identita IKE samostatná nastavení a identita EAP je třetí.
Adresa vzdálené strany určuje, kam pakety jdou, a identita vzdálené strany říká, co musí protějšek prokázat. Očekávání EAP se zapisuje do bloku local, protože popisuje výměnu EAP tohoto klienta, ne chování IKE protějšku. Právě toto umístění lidé čtou špatně. Jméno stojí v konfiguraci klienta, a přitom popisuje server, a právě proto vypadá na nesprávném místě.
connections {
office {
remote_addrs = vpn.example.com
local {
auth = eap-peap
aaa_id = auth.example.com
}
remote {
auth = pubkey
id = vpn.example.com
}
}
}
Tento úryvek není úplné spojení; materiál důvěry, přihlašovací údaje a zásady podřízených spojení ještě musí být přítomny. Doslovné zkopírování do funkčního souboru by nahradilo nastavení, která ještě potřebujete.
Proč aaa_id žije pod local
Blok local popisuje, co tato strana dělá během autentizace, včetně metody, kterou použije, a identity, kterou pro tuto metodu očekává od druhé strany. Nic v něm netvrdí, že server AAA běží na stejném stroji.
Výchozí hodnota dělá past ostřejší. Když není nastavena výslovná hodnota, očekávaná identita AAA sleduje identitu vzdálené strany, takže nasazení s jedním jménem funguje a rozdíl skrývá. Výslovná hodnota má význam jen tehdy, když nasazení EAP skutečně končí jinde. Nastavení na jiné jméno bez tohoto důvodu vytváří selhání, které operátor nedokáže reprodukovat. Přečtěte si nasazení, než vymyslíte druhé jméno.
Udržujte hodnotu shodnou s tím, co certifikát backendu skutečně tvrdí, včetně tvaru jména. Tečka na konci nebo zástupný znak, který hostitele nepokrývá, stačí k tomu, aby kontrola selhala.
Frontendy, které rozdělení neumí vyjádřit
Profil NetworkManager není stejné konfigurační rozhraní jako swanctl. Plugin za ním vystavuje užší sadu ovládacích prvků identity a to, které existují, závisí na nainstalované verzi.
To je důležité, když nasazení opravdu potřebuje dvě jména. Pole označené jako identita serveru může nastavit jednu vrstvu a ne druhou, takže profil může vypadat správně a přesto selhat ve vnitřní kontrole. Ověřte, co nainstalovaný plugin podporuje, než budete předpokládat, že profil toto uspořádání umí vyjádřit. Pokud ne, volba patří operátorovi: jiná cesta zřizování, nebo opravený návrh identity serveru. Oslabení PEAP nebo přijetí libovolného jména mění zásadu autentizace místo toho, aby ji opravilo.
Alternativa není něco, co by se mělo vymýšlet na klientovi. Vyžádejte si podporované uspořádání písemně a potom tento výsledek uchovejte u profilu.
Odlište nesoulad identity od propadlého certifikátu
Nesoulad jména a propadlý certifikát jsou různá selhání a protokol je rozlišuje. Přečtěte si zprávu, než se rozhodnete, které pole změnit.
swanctl --list-conns
swanctl --list-sas
journalctl -u strongswan -n 50 --no-pager
Nastavení zamýšlené identity AAA neobnovuje certifikát ani nevytváří důvěru v jeho vydavatele a obnovení certifikátu neopraví špatné očekávané jméno. Přečtěte si, které ověření selhalo, než upravíte další pole identity. Potom znovu načtěte konfiguraci a potvrďte, že načtené spojení ukazuje hodnotu, kterou jste nastavili, protože upravený soubor, který se nikdy nenačetl, nic nemění. Zapište obě jména a jejich vrstvy do poznámek k nasazení.