Želite da saobraćaj SOCKS proxyja izlazi kroz VPN, dok ostatak hosta zadržava svoju normalnu putanju. Dva dizajna to rade, i razlikuju se po tome šta se kvari kada nešto pođe naopako. Jedan gura zadano usmjerenje u tunel i zatim ga zaobilazi; drugi ostavlja glavnu tablicu na miru i šalje jednu izvornu adresu u drugu tablicu. Drugi je čistiji, i ima svoje zamke.

Dva dizajna, dva različita radijusa štete

Dizajn punog tunela je ono što većina VPN klijenata radi po defaultu: zamijeni zadano usmjerenje tako da sve slijedi tunel, a zatim isključi ono što ne treba. Lako ga je promisliti i teško održati uskim, jer svaka lokalna usluga koju dodate nasljeđuje tunel dok je ne isključite. Način kvara je širok, jer jedno pogrešno usmjerenje odnosi sa sobom i vlastitu povezanost hosta.

Dizajn s izborom po izvoru ide drugim putem. Glavna tablica ostaje kakva je bila, a jedno pravilo politike šalje pakete s određene lokalne adrese u tablicu sa zadanim usmjerenjem kroz tunel. Ništa se drugo ne mijenja, što znači da je radijus štete jedna adresa.

Ta uskost je ujedno i ograničenje: dizajn radi samo ako odlazni paketi proxyja zaista nose tu adresu.

Šta radi Danteova postavka external

Postavka external bira adrese koje proxy koristi za odlazne veze; ona ne dira kernelovu politiku usmjeravanja. To razdvajanje omogućava drugi dizajn, i upravo tu ljudi pogrešno čitaju dokumentaciju. Usmjeravanje external na adresu tunela čini da proxy izvodi svoje veze s te adrese, a tablica usmjeravanja zatim odlučuje kuda ti paketi idu.

Slušalac je odvojena stvar. Držite internal ograničen na klijente koji bi trebali koristiti proxy, zahtijevajte autentifikaciju i zatvorite port firewallom, jer otvoren slušalac nije odlika VPN izlaza.

Potvrdite da konfigurirana adresa zaista pripada tunelu unutar mrežnog imenskog prostora proxyja.

Izgradnja tablice s izborom po izvoru

Za TUN adresu 10.90.0.2/24 s dostupnim peerom na 10.90.0.1, i broj tablice koji ništa drugo ne koristi, raspored izgleda ovako:

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 100

Nedostupno usmjerenje je dio koji ljudi preskaču. Bez njega, tablica kojoj nestane tunelsko usmjerenje pada na obično zadano i proxy tiho izlazi kroz WAN. S njim pretraga ne uspijeva, što je vidljiv kvar umjesto tihog curenja. Prioritet pravila također mora stajati ispred svega drugog što odgovara tom izvoru.

Ove vrijednosti opisuju jednu topologiju. Point-to-point peerovi, net30 adresiranje i klijenti koji dijele drugačiji prefiks svi trebaju vlastita usmjerenja, zato kopirajte oblik, a ne adrese.

Gdje pravilo izvora curi

Pravilo koje odgovara izvornoj adresi utiče na svaki proces koji je koristi, ne samo na proxy. Ako drugi daemon zauzme istu adresu, i njegov saobraćaj ide kroz tunel, a kvar će izgledati kao problem nepovezane usluge. Dajte proxyju adresu koju ništa drugo ne koristi, ili prihvatite da je obuhvat adresa, a ne proces.

DNS je drugo curenje. Socket resolvera ne koristi nužno proxyjev izvorni izvor podatkovnih veza, pa pretrage imena još mogu izlaziti kroz WAN. Testirajte razrješavanje odvojeno od uspostavljanja veze i odlučite je li taj ishod prihvatljiv.

IPv6 treba vlastita pravila i usmjerenja, jer raspored za IPv4 ništa ne dokazuje o njemu.

Birajte prema kvaru koji možete podnijeti

Odaberite puni tunel kada host treba zaštititi u cjelini i možete održavati listu izuzetaka. Odaberite usmjeravanje po izvoru kada host mora zadržati vlastitu putanju i samo jednu uslugu treba preusmjeriti. Oba su legitimna; greška je odabrati jedno pa ga testirati kao da je ono drugo.

Koje god odabrali, provjerite s obje strane: zahtjev kroz proxy i izravan zahtjev s hosta, uz zabilježenu uočenu izlaznu adresu za svaki.

Ako tunel padne, unaprijed odlučite treba li proxy pasti ili se vratiti na običnu putanju, i pustite tablicu usmjeravanja da izrazi tu odluku.

Povezani članci