Adresa, která leží nevyužitá v alokaci organizace, není posluchač a přidání do firewallu žádného nevytvoří. Něco musí na této adrese ukončit IKE a mechanismus se liší podle toho, zda adresu vlastní brána, nebo ji překládá zařízení výše v cestě. Právě cesta paketu oba případy rozlišuje a určuje, kterou funkci platformy potřebujete, než kdokoli otevře požadavek na změnu. Nejprve cestu vymodelujte, potom vybírejte.

Cesta paketu za adresou

Protějšek posílá IKE na adresu, kterou dostal, na UDP 500 nebo na UDP 4500, je-li ve hře průchod přes NAT. Zařízení, které tuto adresu na cestě drží, buď datagram přijme lokálně a odpoví na něj, nebo jej přepošle jinam. To jsou jediné dvě možnosti a vše ostatní v tomto článku z toho vyplývá.

Lokální příjem znamená, že na daném zařízení existuje socket navázaný na tuto adresu. Přeposlání znamená, že se datagram přepíše a pošle dál na jiný koncový bod, který pak socket má. Pravidlo firewallu, které povoluje UDP 500, vám neřekne nic o tom, která z těch dvou věcí se děje.

Zapište záznam, než se čehokoli dotknete: adresu, se kterou se protějšky spojují, jak ji doručuje nadřazená síť, lokální rozhraní nebo logický koncový bod, který ji přijímá, a proces, který odpovídá na IKE. Čtyři řádky a každý lze ověřit. Když je některý neznámý, je to neznámé práce na návrhu, ne implementační detail k pozdějšímu rozhodnutí. Vyplňovat je po schválení požadavku na změnu je způsob, jak se pravidlo překladu dostane na špatné zařízení.

Model A: adresu vlastní brána

V prvním modelu drží adresu sama brána, buď jako sekundární adresu na existujícím rozhraní, jako adresu na vyhrazeném rozhraní, nebo jako loopback, který platforma podporuje jako koncový bod tunelu. To jsou tři různé funkce se třemi různými cestami konfigurace a platforma, která podporuje jednu, nemusí podporovat ostatní.

Než kolem toho navrhnete řešení, potvrďte, že platforma a verze přesně toto uspořádání podporují. Směrovaný blok, další adresa na rozhraní a koncový bod loopback nejsou zaměnitelné a dokumentace jedné verze neslibuje, že se další bude chovat stejně.

ip -br addr show
ss -lunp | grep -E ':500|:4500'
sudo tcpdump -ni eth0 'udp port 500 or udp port 4500'

Naslouchající socket je důkaz. Pokud k adrese není nic navázáno, brána není terminátorem bez ohledu na to, co říká směrovací tabulka, a zachytávání paketů ukáže datagramy přicházet, aniž by na ně kdo odpovídal.

Nedávejte druhé rozhraní do podsítě, která už jinde v topologii existuje, a nepředpokládejte, že to platforma vyřeší. Překrývající se podsítě rozhraní dávají nejednoznačný výběr zdroje a na mnoha platformách odmítnutí konfigurace vůbec.

Model B: překládá jej zařízení výše

Ve druhém modelu drží vyhrazenou adresu firewall výše v cestě a přeposílá provoz na jinou bránu VPN. To je překlad cíle se zpáteční cestou a je to zcela platný návrh, dokud je takto zdokumentovaný.

Co to není, je důkaz, že zařízení výše získalo místní socket VPN. Překlad přeposílá pakety; nedělá z horního zařízení respondéra IKE. Pokud se pravidlo výše odstraní nebo se přeruší jeho zpáteční cesta, VPN se zastaví, i když je brána zdravá a její vlastní posluchače nedotčené.

Zapište obě adresy: tu, se kterou se protějšky spojují, a tu, kterou brána skutečně vidí. Potom zapište transport a zpáteční cestu, protože překlad, který funguje pro UDP 500, ale ne pro zapouzdřený ESP, se spojí a potom nedokáže přenášet provoz, což je matoucí porucha pro pozdější ladění.

Identita není vnější adresa

IPsec odděluje koncový bod tunelu od provozu, který chrání, a architektura drží tato rozhodnutí na různých místech. Změna adresy, se kterou se protějšky spojují, automaticky nemění, které vnitřní prefixy jsou povoleny, které trasy se instalují ani které prostředky může relace dosáhnout.

Ověřená identita je opět oddělená. IKEv2 nese identitní užitečné zatížení a výměnu ověření, které nemusí odpovídat vnější adrese paketu, a právě proto se přeložený návrh může stále správně ověřit.

Tato nezávislost je užitečná a zároveň past. Dvě jména DNS rozlišovaná na jednoho běžného posluchače nevybírají různé backendy VPN a certifikát, který pojmenovává jednu identitu, neuspokojí protějšek očekávající jinou. Potvrďte, co protějšek ověřuje, než budete předpokládat, že to rozhoduje sama adresa.

Přijměte návrh pozorováním jednoho spojení

Prověřte, kam se nové autorizované spojení skutečně doručí, která identita odpovídá a který soukromý tok je potom povolen. Tři pozorování, tři různé vrstvy, a úspěšné veřejné vyhledání adresy neprokáže ani jedno z nich.

Zachovejte i negativní případ: protějšek, který by neměl být přijat, nebo vnitřní prefix, který by neměl být dostupný, ověřený po změně. Záznam, který jste napsali na začátku, je to, co takový test umožní bez rekonstrukce návrhu z paměti.

Smyslem toho všeho je umožnit vlastníku sítě zvolit podporovanou metodu alokace místo spoléhání na obecné tvrzení o tom, co každý firewall umí s další adresou. Právě na tomto tvrzení se tyto návrhy pokazí, protože zní věrohodně na každé platformě a obecně neplatí na žádné. Záznam o čtyřech řádcích to pro vaši platformu vyřeší za deset minut.

Související články