Jedna brána provozuje WireGuard pro vaše zařízení a klienta OpenVPN k cizí síti. Předávání mezi dvěma vnitřními rozhraními funguje a snadno se dojde k závěru, že podřízená podsíť je teď součástí nadřazené služby. Není. Routa, kterou klient stáhne, říká vaší bráně, kam posílat požadavky; neříká nic o tom, jak vzdálená síť vrací provoz zařízením, o kterých nikdy neslyšela. Než přidáte jediné pravidlo, vyberte model vracení, který nadřazená služba skutečně podporuje.

Rozhodněte o modelu vracení, než se dotknete routování

V tomto postupu používají podřízení klienti 10.90.0.0/24, bráně přidělená adresa nadřazeného tunelu je 10.80.0.6 a schválený vzdálený prostředek je 172.20.0.30. Tomuto tvaru odpovídají dva modely: zachovat podřízený zdroj a přimět vzdálenou stranu, aby ho routovala, nebo přeložit zdroj na vlastní adresu tunelu brány. Vše po tomto rozhodnutí je mechanické a rozhodnutí samo potřebuje vlastníka služby. Jeden řádek výše je dohoda o routování se vzdálenou stranou; druhý je místní změna zásady, kterou můžete udělat sami. Právě záměna těchto dvou mění desetiminutovou změnu v jednání.

preserved:  10.90.0.23 -> 172.20.0.30
translated: 10.80.0.6  -> 172.20.0.30

Vyberte jeden řádek a držte se ho. Řádky jsou alternativy, ne kroky, a jejich mícháním vznikne návrh, který nikdo při revizi nevysvětlí.

Zachování zdroje pomocí routování

Vzdálená strana dostává požadavek z podřízené adresy, takže potřebuje podporovanou routu a vlastnictví peeru pro tuto podsíť, plus oprávnění ji přijmout. To jsou vzdálená nastavení a žádná místní Linux routa je nevytvoří. Vyžádejte je výslovně, písemně, s prefixem a tunelovým peerem, který ji ponese, a očekávejte, že odpověď bude záviset na tom, zda služba vůbec podporuje uspořádání site-to-site.

Je-li odpověď ano, místní konfigurace je malá: zapnuté předávání, allowed-ips peeru WireGuard pokrývající podřízený rozsah a firewallová zásada, která povoluje přechod v obou směrech.

Záměrný překlad zdroje

Pokud služba vrací provoz jen na adresu připojeného klienta, přeložte zdroj na tuto adresu na odchozí cestě a zachovejte stav conntrack, který ho pro odpovědi obrátí. Omezte pravidlo na zamýšlené podřízené zdroje, zamýšlené vzdálené cíle a nadřazené rozhraní. Pravidlo, které překládá vše odcházející z každého rozhraní, je mnohem větší zásada než tento požadavek a později vás překvapí.

IPv6 potřebuje vlastní návrh; kopírování řádku masquerade pro IPv4 není architektura. Otestujte přeloženou cestu novým spojením, ne uloženým.

Místní datová cesta musí stále fungovat

Překlad neodstraňuje místní práci: brána stále potřebuje routu pro podřízené cíle, správné vlastnictví zdroje peeru WireGuard, zapnuté předávání a úzkou firewallovou zásadu mezi rozhraními. Požadavek vytvořený na samotné bráně žádné z těchto oprávnění neprocvičí, a proto místní testy na bráně procházejí, zatímco podřízená zařízení stále selhávají.

Testujte ze skutečného podřízeného zařízení, ne z brány. Zdrojová adresa je celý smysl cvičení.

Jeden zdroj znamená jednu identitu relace

Vzdálená služba vidí ověřenou relaci brány a její přeloženou adresu, ne nezávislé ověření pro každé podřízené zařízení. Udržujte oprávnění pro jednotlivá zařízení a identity aplikací explicitní a potvrďte u vlastníka služby, že brána jednající za několik zařízení je vůbec povolena. Překlad není způsob, jak obejít požadavek na registraci každého zařízení; pokud služba vyžaduje registraci každého zařízení, použijte tento model nebo vyjednejte uspořádání site-to-site.

Zapište to potvrzení do runbooku vedle pravidla, protože další recenzent se zeptá, zda byl návrh schválen, nebo jen pohodlný.

Definujte stav odpojení a potom otestujte tři požadavky

Rozhodněte, co se stane, když nadřazený tunel spadne. Autorizovaný vzdálený provoz by neměl tiše následovat běžný záložní WAN tam, kde je to zakázáno, takže firewallová zásada, která povoluje přechod, musí také selhat zavřená. Potom otestujte tři případy ze skutečného podřízeného zařízení: povolený požadavek, který funguje, zakázaný požadavek, který selže, a výpadek nadřazené strany, který zastaví povolený.

Zaznamenejte vrácení změn jedním řádkem na pravidlo, aby šlo změnu zrušit bez rekonstrukce záměru.

Související články