Dante SOCKS prek VPN: polni tunel proti usmerjanju po viru
Dva načina, kako skozi tunel poslati samo proxy SOCKS: zamenjati privzeto pot ali vezati en naslov vira na lastno tabelo. Spodletita različno.
Želite, da promet proxyja SOCKS odhaja skozi VPN, medtem ko preostali del gostitelja ohrani svojo običajno pot. To delata dve zasnovi in se razlikujeta v tem, kaj se zlomi, ko gre kaj narobe. Ena porine privzeto pot v tunel in jo nato obide; druga pusti glavno tabelo pri miru in pošlje en naslov vira v drugo tabelo. Druga je čistejša in ima svoje pasti.
Dve zasnovi, dva različna polmera škode
Zasnova s polnim tunelom je tisto, kar večina odjemalcev VPN počne privzeto: zamenja privzeto pot, da vse sledi tunelu, nato pa izloči tisto, kar ne bi smelo. O njej je lahko razmišljati in težko jo je ohraniti ozko, ker vsaka dodana lokalna storitev podeduje tunel, dokler je ne izločite. Način odpovedi je širok, saj ena napačna pot s seboj odnese tudi povezljivost samega gostitelja.
Zasnova z izbiro po viru gre v nasprotno smer. Glavna tabela ostane takšna, kot je bila, in eno pravilo pravilnika pošlje pakete z določenega lokalnega naslova v tabelo s privzeto potjo skozi tunel. Nič drugega se ne spremeni, kar pomeni, da je polmer škode en naslov.
Ta ozkost je tudi omejitev: zasnova deluje le, če odhodni paketi proxyja res nosijo ta naslov.
Kaj počne nastavitev external v Dantu
Nastavitev external izbere naslove, ki jih proxy uporablja za odhodne povezave; ne dotika se usmerjevalnega pravilnika jedra. Prav ta ločitev omogoča drugo zasnovo, in tu ljudje napačno berejo dokumentacijo. Usmerjanje external na naslov tunela povzroči, da proxy začne svoje povezave s tega naslova, nato pa usmerjevalna tabela odloči, kam gredo ti paketi.
Poslušalec je ločena zadeva. Poskrbite, da bo internal omejen na odjemalce, ki naj bi uporabljali proxy, zahtevajte preverjanje pristnosti in zaprite vrata z požarnim zidom, ker odprt poslušalec ni značilnost izhoda VPN.
Potrdite, da konfigurirani naslov res pripada tunelu v imenskem prostoru omrežja proxyja.
Gradnja tabele z izbiro po viru
Za naslov TUN 10.90.0.2/24 z dosegljivim partnerjem na 10.90.0.1 in številko tabele, ki je nič drugega ne uporablja, je razporeditev takšna:
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 100Nedosegljiva pot je del, ki ga ljudje preskočijo. Brez nje tabela, katere pot skozi tunel izgine, pade na običajno privzeto pot in proxy tiho odide skozi WAN. Z njo iskanje spodleti, kar je vidna odpoved namesto tihega uhajanja. Tudi prednost pravila mora stati pred vsem drugim, kar ustreza temu viru.
Te vrednosti opisujejo eno topologijo. Partnerji od točke do točke, naslavljanje net30 in odjemalci, ki dodeljujejo drugo predpono, vsi potrebujejo svoje poti, zato kopirajte obliko, ne naslovov.
Kje pravidlo vira uhaja
Pravilo, ki ustreza naslovu vira, vpliva na vsak proces, ki ga uporablja, ne le na proxy. Če drugi demon veže isti naslov, gre tudi njegov promet skozi tunel, odpoved pa bo videti kot težava nepovezane storitve. Dajte proxyju naslov, ki ga nič drugega ne uporablja, ali sprejmite, da je obseg naslov in ne proces.
DNS je drugo uhajanje. Vtičnica razreševalnika ne uporablja nujno vira odhodnih podatkov proxyja, zato lahko iskanja imen še vedno odhajajo skozi WAN. Preizkusite razreševanje ločeno od vzpostavitve povezave in se odločite, ali je ta izid sprejemljiv.
IPv6 potrebuje svoja pravila in poti, ker razporeditev IPv4 o njem ničesar ne dokazuje.
Izberite glede na odpoved, ki jo prenesete
Izberite polni tunel, ko je treba gostitelja zaščititi kot celoto in lahko vzdržujete seznam izjem. Izberite usmerjanje po viru, ko mora gostitelj obdržati svojo pot in je treba preusmeriti samo eno storitev. Oboje je legitimno; napaka je izbrati eno in jo nato preizkušati, kot da bi bila druga.
Karkoli izberete, preverite z obeh strani: zahtevo skozi proxy in neposredno zahtevo z gostitelja, z zabeleženim opaženim izhodnim naslovom za vsako.
Če tunel pade, se vnaprej odločite, ali naj proxy odpove ali se umakne, in pustite usmerjevalni tabeli, da izrazi to odločitev.