Windows a strongSwan: sladění čtyř transformací v návrhu IKE
Společná šifra nestačí, když se strany neshodnou na skupině pro výměnu klíčů. Porovnejte všechny čtyři transformace a pak použijte jednu omezenou politiku profilu.
Obě strany podporují AES, obě přijímají SHA-256, a tunel přesto nenaběhne. Návrh selhal na komponentě, kterou nikdo neporovnal, obvykle na skupině pro výměnu klíčů. Tento postup přečte skutečnou výměnu dřív, než cokoli změní, použije jednu omezenou politiku a zanechá návrat, který obnoví předchozí parametry.
Přečtěte si selhání, než změníte skupinu
„Chyba shody zásad“ je shrnutí, ne diagnóza. Znamená, že nebyl nalezen oboustranně přijatelný návrh, a neříká nic o tom, která komponenta byla odmítnuta. Berte ji jako začátek vyšetřování, ne jako důkaz o konkrétní skupině.
Odpověď obvykle nese strana serveru. Log strongSwan na vhodné úrovni vypisuje návrh přijatý od klienta a návrh, který je nakonfigurován přijímat, a rozdíl mezi oběma seznamy pojmenuje komponentu, která selhala.
Nepředpokládejte, že klient nabízí to, co tvrdí starší příspěvek na fóru. Aktivní profil a jeho nainstalovaná politika určují nabízený seznam a aktualizovaný build Windows může nabídnout jinou sadu než ta na snímku obrazovky, ze kterého kopírujete.
Zapište oba seznamy. Čtyři pozice transformací a jedna skupina je krátký seznam a porovnávání řádek po řádku zabere méně času než jakýkoli experiment. Čtyři pozice udržíte snadno v dohledu. Logovací soubor ne.
Porovnejte každou transformaci, ne jedno známé jméno
Návrh IKE je sada voleb, které musí všechny sedět. Šifrování chrání vyjednávání, integrita nebo PRF ho ověřuje a skupina Diffie-Hellman vytváří čerstvý klíčový materiál. Návrh, který se shoduje v prvních dvou a liší se ve třetí, je pro obě strany pořád nepřijatelný.
Dvě pole Windows, která se zde pletou, patří k různým fázím. DHGroup se vztahuje k výměně klíčů IKE, zatímco PfsGroup k podřízené asociaci, která chrání provoz. Změna druhého nemůže opravit selhání v prvním.
Názvy skupin se mezi implementacemi liší a to je samostatný zdroj zmatku. strongSwan píše modp2048 a ecp256, zatímco Windows používá názvy výčtu jako Group14 a ECP256, takže porovnání musí nejdřív přeložit. Veďte si poznámku o dvou sloupcích s oběma názvy. Další neshoda se pak zařadí za pár sekund.
| 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žijte jednu úplnou a omezenou politiku
Podporovaným nástrojem pro nativní profil IKEv2 je politika IPsec pro jednotlivé připojení, nastavená jako jeden objekt, ne pole po poli. Nejprve ji zobrazte v náhledu, potom ji použijte a předchozí parametry si ponechte v záznamu o změně.
Set-VpnConnectionIPsecConfiguration -ConnectionName "Northwind IKEv2" -AuthenticationTransformConstants SHA256128 -CipherTransformConstants AES256 -EncryptionMethod AES256 -IntegrityCheckMethod SHA256 -DHGroup ECP256 -PfsGroup ECP256 -WhatIf
Přepínač -WhatIf zobrazí místní změnu v náhledu a nic nepoužije. To je užitečné a zároveň častá past, protože náhled dokazuje jen to, že parametry jsou syntakticky přijatelné pro místní cmdlet. Neříká nic o tom, zda brána výsledný návrh přijme.
Zároveň slučte i rozsah. Připojení v úložišti pro všechny uživatele potřebuje odpovídající parametr pro všechny uživatele a úprava profilu pro jednotlivého uživatele se stejným zobrazovaným názvem mění jiný objekt, který tunel nepoužívá.
Potom před testováním slučte i stranu strongSwan na stejnou sadu. Koordinovaná změna na obou koncích je jediná verze, která konverguje; změna jedné strany a opakované pokusy dávají log plný stejného odmítnutí.
Ověřte výměnu a obnovu klíčů odděleně
Úspěšné připojení je jedno pozorování a obnova klíčů druhé. Počáteční vyjednávání IKE používá jednu sadu parametrů a podřízená asociace, která nese provoz, může být později znovu vyjednána s vlastní politikou. Sestava, která se připojí a po chvíli spadne, je obvykle druhý případ.
ipsec statusall | grep -A6 "Northwind"
Get-VpnConnection -Name "Northwind IKEv2" | Format-List *
První příkaz ukazuje pohled serveru na navázané asociace včetně podřízené SA a její zbývající životnosti. Druhý ukazuje, co nyní drží profil klienta, a to je jediný způsob, jak potvrdit, že politika, kterou jste nastavili, je politikou v platnosti.
Než prohlásíte úspěch, sledujte úplnou obnovu klíčů. To znamená nechat připojení dost dlouho nahoru, aby se podřízená asociace nahradila, a potom potvrdit, že provoz pokračuje. Většina neshod politik se skrývá právě v tomto kroku, protože počáteční vyjednávání může uspět se sadou, kterou obnova nepřijímá.
Návrat je předchozí sada parametrů, ne benevolentní záloha. Pokud klient nabídl jen slabou starší skupinu, odpovědí je zlepšit společnou politiku klienta a serveru, ne přidat tu skupinu do brány, kde k ní může každá budoucí strana vyjednat cestu dolů.
Zapište čtyři parametry, skupinu, rozsah připojení a výsledek obnovy klíčů. To je krátká poznámka a právě ona je rozdíl mezi postupem a vyprávěním o tom, jak jednou tunel naběhl.