Jeden stroj, dva úkoly, jeden firewall: Wi-Fi uplink, malá Ethernet podsíť za ním a klientský VPN pro plochu, který předpokládá, že vše opouštějící stroj je místní. Místně spuštěné aplikace odcházejí místní výstupní cestou. Zařízení za pracovní stanicí přicházejí na Ethernet port a potřebují rozhodnutí o předávání. Výjimka napsaná pro první cestu nikdy nevidí druhou, a proto prohlížeč obchází tunel, zatímco zařízení ne.

Dvě cesty paketů, jedna politika

OriginPathDecision owner
Application on the workstationOUTPUT then egressThe VPN app's routing policy
Device behind the workstationPREROUTING then FORWARDThe workstation's own forwarding policy

První řádek je to, co popisuje většina průvodců split-tunnelingem. Druhý je konfigurace routeru, která náhodou žije na stejném stroji. Sloučit je do jednoho mentálního modelu je chyba; sdílejí jádro, ale ne politiku. Nakreslete obě cesty, než upravíte jakékoli pravidlo, a zbytek návrhu vyplývá z toho, která cesta chybí.

Tabulka také vysvětluje, proč jeden stroj může projít jedním testem a selhat v jiném. Prohlížeč na pracovní stanici dokazuje místní cestu; notebook zapojený do Ethernet portu dokazuje cestu předávání. Ověřujte změnu oběma, jinak druhý zůstane netestovaný, ať se prohlížeč obnoví kolokrátkoli.

Co vlastně výjimka aplikace klasifikuje

Výjimka pro jednotlivou aplikaci obvykle funguje tak, že označí pakety z procesu nebo uživatele a poté směruje označený provoz mimo tunel. To je konstrukce místního výstupu. Paket ze zařízení za stanicí nemá místní proces, takže nikdy neodpovídá selektoru, ať je selektor jakýkoli.

Ať je selektor jakýkoli, oba seznamy nejsou stejný seznam, a o to jde. Průvodce Mullvad pro Linux popisuje značky spotřebovávané jeho firewallem a směrovací politikou a jeho příklady cílí na místní výstup; nejsou podporovaným popisem routeru za stanicí. Jejich zkopírování dá stroj, který si myslí, že má výjimku, a přitom vše předává do tunelu.

Napište smlouvu o tranzitu

Pojmenujte společně zdrojový prefix za stanicí a vstupní rozhraní, poté tento prefix na vstupu omezíte. Bez omezení může každé zařízení, které dosáhne na port, nárokovat vyloučenou adresu a odejít přes obchvat. Berte to jako dvě otázky: smějí tito hostitelé tento uplink vůbec používat a smějí dosáhnout na pracovní stanici nebo do privátních rozsahů tunelu? To jsou dodatečná oprávnění, ne vedlejší účinky volby uplinku.

Povolte předávání a pak jej filtrujte. Linuxová brána potřebuje zapnuté předávání, pravidla povolující zamýšlený provoz v obou směrech a buď návratovou trasu směrem nahoru, nebo záměrně omezený překlad zdroje. NAT sám o sobě nevybírá uplink a nepropouští přes filtr; jen přepisuje adresu po těchto rozhodnutích.

Klasifikace pro tranzit musí proběhnout před rozhodnutím o směrování předávání, tedy ve fázi prerouting, nikoli output. Pravidlo umístěné po rozhodnutí může paket ještě změnit, ale nemůže změnit, kam už byl odeslán.

Značky patří aplikaci, která je vlastní

Hodnoty značek, čísla tabulek a priority řetězů jsou součástí politiky aplikace VPN, nikoli věčné konstanty. Trvalá síť, která závisí na vkládání pravidla do tabulky, kterou jiný program regeneruje, se při příští aktualizaci rozbije, obvykle během opětovného připojení, ne v příhodnou dobu.

Přidání druhého základního řetězu s verdiktem accept nemusí přebít drop pozdějšího řetězu. Základní řetězy mají háky a priority a první verdikt v pořadí vyhrává; accept v jednom řetězu neruší drop, ke kterému jiný řetěz dospěje dřív. Dívejte se na celou sadu pravidel a pořadí směrovací politiky, ne na jediný čítač, který se zvýšil. Čítač dokazuje, že pravidlo proběhlo, nikdy ne to, že bylo použito právě jeho rozhodnutí.

Integrujte, nebo přesuňte podsíť

Oba návrhy se liší v tom, kdo vlastní obchvat. Integrovaný návrh drží jeden stroj a jednu politiku za cenu závislosti na životním cyklu tabulek aplikace VPN a na sadě značek, kterou její dokumentace může změnit. Vyhrazený router pro síť za stanicí tuto závislost zcela odstraňuje: podsíť má vlastní uplink a pracovní stanice zůstává klientem bez role předávání.

Zvolte druhý, když síť za stanicí musí fungovat i přes aktualizace VPN, nebo když nikdo nemůže integrovanou politiku po každém vydání otestovat. Zvolte první jen tehdy, když je integrace zdokumentovaná a někdo ji vlastní.

Ověřte hranici ve čtyřech stavech: připojeno, opětovné připojování, záměrně blokováno a zastaveno. V každém zkontrolujte překlad jmen a obě rodiny adres, protože obchvat, který uniká DNS, není výjimkou, kterou jste navrhli. Test má prokázat přesnou hranici, ne jen že se načetla jedna stránka.

Související články