ESP přenáší provoz v IPsec VPN a jeho runbook začíná jedním pravidlem: přečtěte si bezpečnostní asociaci dřív, než změníte politiku. Většina nevysvětleného chování ESP se vrací k selektoru, který neseděl, režimu, který se předpokládal místo přečtení, nebo počítadlu, které nikdo nezkontroloval, zatímco se posílal jediný tok. Tři kroky níže určují, co co přenáší, dokazují, že jeden tok to používá, a zanechávají návrat, který nezávisí na paměti. Každý krok dává jedno pozorování, které stojí za zapsání.

Poznejte pole, než je přečtete

ESP staví hlavičku před chráněná data a trailer za ně. Hlavička nese index bezpečnostních parametrů, který určuje, kterou asociaci má příjemce použít, pořadové číslo pro detekci opakování a v traileru výplň, která drží užitečné zatížení zarovnané pro šifru. Pole další hlavičky v traileru říká, co je chráněný obsah, a tak příjemce ví, co dekapsuloval.

Režim mění, co je uvnitř této ochrany. V tunelovém režimu je chráněným materiálem úplný vnitřní IP paket a nová vnější hlavička ho přenáší mezi koncovými body. V transportním režimu ochrana obaluje užitečné zatížení vyšší vrstvy existujícího paketu, takže není co rozbalovat druhou IP hlavičku. Který režim se používá, je fakt konfigurace, nikoli věc výkladu. Přečtěte ho ze záznamu stavu, místo abyste ho odvozovali z diagramu.

Ani jeden režim neskrývá vnější adresování, které musí paket doručit. To je vlastnost návrhu, ne nedostatek, a proto mezilehlý pozorovatel stále vidí, které dvě adresy spolu mluví, i když je užitečné zatížení neprůhledné.

Krok první: přečtěte stav, pak politiku

Záznamy stavu drží klíče a počítadla; záznamy politiky drží selektory, které rozhodují, co je smí používat. Na Linuxu jsou oba vidět bez zachytávání paketů a čtení v tomto pořadí drží obě otázky oddělené.

ip xfrm state
ip xfrm policy

Ve výstupu stavu zkontrolujte zdroj a cíl asociace, režim a zda enkapsulace ukazuje porty UDP. Tyto porty znamenají, že se používá průchod přes NAT, což mění, co musí mezilehlý firewall povolit, ale ne které selektory nebo klíče platí na koncových bodech.

Pak přečtěte selektory v politice. Selektor, který uvádí užší prefix než provoz, který testujete, je nejčastějším důvodem, proč funkční tunel vypadá, že tok ignoruje, a selektor pro špatný protokol dává stejné ticho.

FieldWhere it appearsWhat it decides
Security parameter indexESP header, and the receiving state entryWhich association and keys the receiver applies
Sequence numberESP headerReplay detection for that association
Next headerESP trailerWhat the decapsulated payload contains
Inner IP headerInside tunnel-mode payload onlyThe original source and destination the endpoints act on
Traffic selectorsPolicy, not the packetWhich local traffic is allowed to use the association

Nástroje výrobců vypisují stejné informace v pohodlnější podobě. ipsec statusall na strongSwanu vypisuje podřízené asociace, jejich selektory a počítadla bajtů, což je často rychlejší než číst surový výstup xfrm, když už víte, na kterou podřízenou asociaci se dívat.

Krok druhý: dokažte, že jeden tok hýbe počítadly

Počítadla mají smysl jen tehdy, když víte, co je mělo pohnout, proto zvolte zdroj a cíl, které selektor určitě pokrývá, a pošlete jeden neškodný požadavek. Pak znovu přečtěte stejný záznam a porovnejte.

ip -s xfrm state
tcpdump -ni any esp

Dvě čtení vyprávějí různé příběhy. Pakety, které rostou na odchozí straně, ale nikdy na příchozí, ukazují na problém s předáváním nebo zpáteční cestou, ne s klíčem, protože paket byl zapouzdřen a odešel. Když se nehýbe žádné počítadlo, provoz se s politikou vůbec neshodoval, a selektor je místo, kam se dívat.

Zachytávání ve stejném kroku potvrzuje zapouzdření na drátě, včetně toho, zda jsou vnější pakety ESP, nebo ESP zapouzdřené v UDP. Také vám ukáže adresy, které tok skutečně přenesly, a ty se občas liší od těch v konfiguraci, kterou jste četli.

Krok třetí: změňte jednu věc a zachovejte návrat

Než cokoli upravíte, zapište zdroj, cíl, režim, selektory a počítadla asociace. Pokud změna věci zhorší, právě tento záznam vám umožní obnovit předchozí stav, místo abyste funkční konfiguraci znovu skládali z odhadu. Zápis zabere minutu a později ušetří hodinu. Je to také jediný artefakt, který přežije člověka, jenž změnu provedl.

Změňte jeden selektor nebo jeden parametr, znovu ho načtěte a zopakujte druhý krok na stejném toku. Smazání asociace zboří každý tok, který ji používá, takže cílená úprava a opětovné načtení podřízené asociace jsou téměř vždy lepší než vyprázdnění stavu, abyste viděli, co se stane.

Návrat po úpravě selektoru znamená obnovit předchozí politiku a znovu ji načíst, s výhradou, že protějšek může potřebovat odpovídající změnu, pokud se selektor vyjednává, a není lokální. Zapište tuto závislost, dokud je čerstvá, protože napůl obnovený pár se analyzuje hůř než kterýkoli z obou koncových stavů.

Nakonec držte rozsah poctivý. Protékající asociace ESP dokazuje, že dva gateways chrání a doručují segment, a neříká nic o tom, zda aplikace navrchu ověřuje své uživatele nebo šifruje to, co ukládá. To jsou oddělené kontroly s oddělenými důkazy a runbook je hotový jen tehdy, když ho další člověk dokáže zopakovat podle poznámek.

Související články