Windows a strongSwan: zladenie štyroch transformácií v návrhu IKE
Spoločná šifra nestačí, keď sa strany nezhodnú na skupine na výmenu kľúčov. Porovnajte všetky štyri transformácie a potom použite jednu obmedzenú politiku profilu.
Obe strany podporujú AES, obe prijímajú SHA-256, a tunel napriek tomu nenabehne. Návrh zlyhal na komponente, ktorý nikto neporovnal, zvyčajne na skupine na výmenu kľúčov. Tento postup prečíta skutočnú výmenu pred akoukoľvek zmenou, použije jednu obmedzenú politiku a zanechá vrátenie, ktoré obnoví predchádzajúce parametre.
Prečítajte si zlyhanie, skôr než zmeníte skupinu
„Chyba zhody politiky“ je zhrnutie, nie diagnóza. Znamená, že sa nenašiel obojstranne prijateľný návrh, a nehovorí nič o tom, ktorý komponent bol odmietnutý. Berte ju ako začiatok vyšetrovania, nie ako dôkaz o konkrétnej skupine.
Odpoveď zvyčajne nesie strana servera. Log strongSwan na vhodnej úrovni vypisuje návrh prijatý od klienta a návrh, ktorý je nakonfigurovaný prijímať, a rozdiel medzi oboma zoznamami pomenuje komponent, ktorý zlyhal.
Nepredpokladajte, že klient ponúka to, čo tvrdí starší príspevok na fóre. Aktívny profil a jeho nainštalovaná politika určujú ponúkaný zoznam a aktualizované zostavenie Windows môže ponúknuť inú sadu než tú na snímke obrazovky, z ktorej kopírujete.
Zapíšte oba zoznamy. Štyri pozície transformácií a jedna skupina sú krátky zoznam a porovnávanie riadok po riadku zaberie menej času než akýkoľvek experiment. Štyri pozície udržíte ľahko v dohľade. Logovací súbor nie.
Porovnajte každú transformáciu, nie jedno známe meno
Návrh IKE je sada volieb, ktoré musia všetky sedieť. Šifrovanie chráni vyjednávanie, integrita alebo PRF ho overuje a skupina Diffie-Hellman vytvára čerstvý kľúčový materiál. Návrh, ktorý sa zhoduje v prvých dvoch a líši sa v tretej, je pre obe strany stále neprijateľný.
Dve polia Windows, ktoré sa tu pletú, patria k rôznym fázam. DHGroup sa vzťahuje na výmenu kľúčov IKE, zatiaľ čo PfsGroup na podriadenú asociáciu, ktorá chráni prevádzku. Zmena druhého nemôže opraviť zlyhanie v prvom.
Názvy skupín sa medzi implementáciami líšia a to je samostatný zdroj zmätku. strongSwan píše modp2048 a ecp256, zatiaľ čo Windows používa názvy výčtu ako Group14 a ECP256, takže porovnanie musí najprv preložiť. Veďte si poznámku v dvoch stĺpcoch s oboma názvami. Ďalšia nezhoda sa potom zaradí za pár sekúnd.
| Transform | Windows parameter | strongSwan name | Failure it causes |
|---|---|---|---|
| Encryption | CipherTransformConstants | aes, aes256gcm and similar | No common proposal at all |
| Integrity or PRF | AuthenticationTransformConstants | sha256, sha512 and similar | Proposal rejected after encryption matches |
| Key-exchange group | DHGroup | modp2048, ecp256 | Exchange fails during key establishment |
| Child SA protection | PfsGroup | esp proposal groups | Tunnel negotiates, data association does not |
Použite jednu úplnú a obmedzenú politiku
Podporovaným nástrojom pre natívny profil IKEv2 je politika IPsec pre jednotlivé pripojenie, nastavená ako jeden objekt, nie pole po poli. Najprv si ju pozrite v náhľade, potom ju použite a predchádzajúce parametre si ponechajte v zázname o zmene.
Set-VpnConnectionIPsecConfiguration -ConnectionName "Northwind IKEv2" -AuthenticationTransformConstants SHA256128 -CipherTransformConstants AES256 -EncryptionMethod AES256 -IntegrityCheckMethod SHA256 -DHGroup ECP256 -PfsGroup ECP256 -WhatIf
Prepínač -WhatIf zobrazí miestnu zmenu v náhľade a nič nepoužije. To je užitočné a zároveň častá pasca, pretože náhľad dokazuje len to, že parametre sú syntakticky prijateľné pre miestny cmdlet. Nehovorí nič o tom, či brána výsledný návrh prijme.
Zároveň zlaďte aj rozsah. Pripojenie v úložisku pre všetkých používateľov potrebuje zodpovedajúci parameter pre všetkých používateľov a úprava profilu pre jednotlivého používateľa s rovnakým zobrazovaným názvom mení iný objekt, ktorý tunel nepoužíva.
Potom pred testovaním zlaďte stranu strongSwan na rovnakú sadu. Koordinovaná zmena na oboch koncoch je jediná verzia, ktorá konverguje; zmena jednej strany a opakované pokusy dávajú log plný rovnakého odmietnutia.
Overte výmenu a obnovu kľúčov oddelene
Úspešné pripojenie je jedno pozorovanie a obnova kľúčov druhé. Počiatočné vyjednávanie IKE používa jednu sadu parametrov a podriadená asociácia, ktorá nesie prevádzku, môže byť neskôr znovu vyjednaná s vlastnou politikou. Zostava, ktorá sa pripojí a po chvíli spadne, je zvyčajne druhý prípad.
ipsec statusall | grep -A6 "Northwind"
Get-VpnConnection -Name "Northwind IKEv2" | Format-List *
Prvý príkaz ukazuje pohľad servera na vytvorené asociácie vrátane podriadenej SA a jej zostávajúcej životnosti. Druhý ukazuje, čo teraz obsahuje profil klienta, a to je jediný spôsob, ako potvrdiť, že politika, ktorú ste nastavili, je politikou v platnosti.
Sledujte úplnú obnovu kľúčov, než vyhlásite úspech. Znamená to nechať pripojenie dostatočne dlho nahor, aby sa podriadená asociácia nahradila, a potom potvrdiť, že prevádzka pokračuje. Väčšina nezhôd politík sa skrýva práve v tomto kroku, pretože počiatočné vyjednávanie môže uspieť so sadou, ktorú obnova neprijíma.
Vrátenie je predchádzajúca sada parametrov, nie benevolentná záloha. Ak klient ponúkal len slabú starú skupinu, odpoveďou je zlepšiť spoločnú politiku klienta a servera, nie pridať tú skupinu do brány, kde k nej môže každá budúca strana vyjednať cestu nadol.
Zapíšte štyri parametre, skupinu, rozsah pripojenia a výsledok obnovy kľúčov. To je krátka poznámka a práve ona je rozdiel medzi postupom a príbehom o tom, ako raz tunel nabehol.