Dante SOCKS přes VPN: plný tunel versus směrování podle zdroje
Dva způsoby, jak poslat tunelem jen SOCKS proxy: nahradit výchozí trasu, nebo svázat jednu zdrojovou adresu s vlastní tabulkou. Selhávají různě.
Chcete, aby provoz SOCKS proxy odcházel přes VPN, zatímco zbytek hostitele si zachová svou obvyklou cestu. Dělají to dva návrhy a liší se v tom, co se rozbije, když se něco pokazí. Jeden vtlačí do tunelu výchozí trasu a pak ji obchází; druhý nechá hlavní tabulku být a pošle jednu zdrojovou adresu do druhé tabulky. Druhý je čistší a má vlastní pasti.
Dva návrhy, dva různé poloměry škod
Návrh plného tunelu je to, co většina VPN klientů dělá standardně: nahradí výchozí trasu, aby všechno šlo tunelem, a pak vyloučí to, co nemá. Snadno se o něm uvažuje a těžko se udržuje úzký, protože každá místní služba, kterou přidáte, dědí tunel, dokud ji nevyloučíte. Režim selhání je široký, protože jedna špatná trasa s sebou vezme i vlastní konektivitu hostitele.
Návrh s výběrem podle zdroje jde opačným směrem. Hlavní tabulka zůstává, jak byla, a jedno pravidlo zásad posílá pakety z konkrétní místní adresy do tabulky s výchozí trasou tunelem. Nic jiného se nemění, což znamená, že poloměr škod je jedna adresa.
Tato úzkost je zároveň omezením: návrh funguje jen tehdy, pokud odchozí pakety proxy skutečně nesou tuto adresu.
Co dělá nastavení external v Dantu
Nastavení external vybírá adresy, které proxy používá pro odchozí spojení; nedotýká se směrovací politiky jádra. Právě toto oddělení umožňuje druhý návrh a také je to místo, kde lidé dokumentaci čtou špatně. Nasměrování external na adresu tunelu způsobí, že proxy svá spojení vytváří z této adresy, a směrovací tabulka pak rozhodne, kam tyto pakety jdou.
Posluchač je samostatná záležitost. Držte internal omezený na klienty, kteří mají proxy používat, vyžadujte ověřování a port zavřete firewallem, protože otevřený posluchač není vlastnost výstupu přes VPN.
Ověřte, že nakonfigurovaná adresa skutečně patří tunelu v síťovém jmenném prostoru proxy.
Sestavení tabulky s výběrem podle zdroje
Pro adresu TUN 10.90.0.2/24 s dostupným protějškem na 10.90.0.1 a číslem tabulky, které nic jiného nepoužívá, vypadá uspořádání takto:
ip -4 route add table 100 10.90.0.0/24 dev tun0 src 10.90.0.2
ip -4 route add table 100 default via 10.90.0.1 dev tun0 metric 10
ip -4 route add table 100 unreachable default metric 32760
ip -4 rule add priority 1000 from 10.90.0.2/32 lookup 100Nedosažitelná trasa je část, kterou lidé vynechávají. Bez ní tabulka, jejíž trasa tunelem zmizí, propadne na běžnou výchozí trasu a proxy tiše odejde přes WAN. S ní vyhledání selže, což je viditelné selhání místo tichého úniku. Priorita pravidla také musí být před vším ostatním, co odpovídá tomuto zdroji.
Tyto hodnoty popisují jednu topologii. Protějšky bod-bod, adresování net30 a klienti, kteří přidělují jiný prefix, potřebují vlastní trasy, takže kopírujte tvar, ne adresy.
Kde pravidlo zdroje uniká
Pravidlo odpovídající zdrojové adrese ovlivňuje každý proces, který ji používá, ne jen proxy. Pokud stejnou adresu naváže jiný démon, jeho provoz půjde také tunelem a selhání bude vypadat jako problém nesouvisející služby. Dejte proxy adresu, kterou nic jiného nepoužívá, nebo přijměte, že rozsah je adresa, ne proces.
DNS je druhý únik. Socket resolveru nemusí používat zdroj odchozích datových spojení proxy, takže vyhledávání jmen může stále odcházet přes WAN. Testujte překlad odděleně od navazování spojení a rozhodněte, zda je takový výsledek přijatelný.
IPv6 potřebuje vlastní pravidla a trasy, protože uspořádání IPv4 o něm nic nedokazuje.
Vybírejte podle selhání, které unesete
Zvolte plný tunel, když má být hostitel chráněn jako celek a můžete udržovat seznam výjimek. Zvolte směrování podle zdroje, když si hostitel musí ponechat vlastní cestu a přesměrována má být jen jedna služba. Obojí je legitimní; chyba je vybrat jedno a pak ho testovat, jako by to bylo to druhé.
Ať zvolíte kterékoli, ověřujte z obou stran: požadavek přes proxy a přímý požadavek z hostitele, s pozorovanou výstupní adresou zaznamenanou pro každý z nich.
Pokud tunel spadne, rozhodněte předem, zda má proxy selhat, nebo se vrátit na běžnou cestu, a nechte směrovací tabulku tuto volbu vyjádřit.