Dante SOCKS na loopbacku za storitev HTTPS samo prek WireGuarda
Povežite namenski poslušalec SOCKS z loopback in dovolite eno ciljno točko TCP. Vhodni vir Danta, jedrno pot, DNS in politiko izgube tunela imejte ločeno.
Ta priročnik daje aplikaciji, ki pozna proxy, dostop do obstoječe poti WireGuard brez objave proxy vrat na strežniku VPN ali na internetu. Daemon SOCKS zagotavlja vmesnik aplikacije, WireGuard zagotavlja že odobreno pot IP, in nobeden od njiju ne overja uporabnika namesto vas. Vsak korak spodaj ustvari nekaj, kar lahko pregledate, in vsak ima razveljavitev: ustavite instanco, odstranite pravilo ali odstranite nastavitev proxyja v aplikaciji. Nič tukaj ne spremeni privzete poti gostitelja.
Primer predvideva, da je Dante 1.4.x nameščen kot namenska, upravljana instanca na zaupanja vredni delovni postaji Linux, s servisnim računom in konfiguracijo beleženja iz paketa, ki sta ostala na svojem mestu. Delovna postaja ima 10.77.0.2 na svojem vmesniku WireGuard, doseže 10.60.0.20:443 skozi ta tunel, in pravilno ime storitve je app.corp.example.
Korak 1: poslušalec povežite samo z loopback
Vnesite razdelke omrežja, metode in pravil v aktivno konfiguracijo instance ter zamenjajte primerne naslove. Vse nastavitve strežnika so pred bloki pravil:
internal: 127.0.0.1 port = 1080
external: 10.77.0.2
external.protocol: ipv4
clientmethod: none
socksmethod: none
client pass {
from: 127.0.0.1/32 to: 127.0.0.1/32
}
socks pass {
from: 127.0.0.1/32 to: 10.60.0.20/32 port = 443
command: connect
protocol: tcp
}To je fragment, ne nadomestilo za uporabniške in dnevniške nastavitve paketa. Izberite neuporabljena lokalna vrata in potrdite, da ta namenska instanca nima drugih poslušalcev, širših pravil prepuščanja in vnosov nadrejene verige, ki bi spremenili pogodbo. Če je prejšnja konfiguracija pustila socks pass brez omejitve cilja, ga odstranite, preden karkoli preizkusite.
Razveljavitev tega koraka je ustavitev instance; konfiguracijska datoteka lahko ostane na disku, medtem ko jo vračate.
Korak 2: napišite dve pravili, ne enega
Dantov referenčni vodnik po konfiguraciji daje obema vrstama pravil različne naloge. Pravilo odjemalca dovoli povezavo s poslušalcem loopback, njegov cilj pa je naslov samega poslušalca. Pravilo SOCKS dovoli zahtevano nadaljnjo povezavo z odobrenim gostiteljem in vrati. Neujemajoče zahteve so privzeto blokirane, zato je manjkajoče pravilo videti enako kot zlomljena pot.
Bodite pozorni, česa ta konfiguracija namenoma ne počne: ne zahteva gesla SOCKS. To ustreza zaupanja vrednemu lokalnemu gostitelju in ni overjanje uporabnika. Vsak drug proces na tem stroju lahko prav tako uporablja loopback. Ohranite lastno overjanje oddaljene aplikacije in te neoverjene oblike ne uporabljajte znova za nezaupljive lokalne uporabnike ali poslušalec, obrnjen v LAN.
Korak 3: preverite pot iz pravega vira
external izbere izhodni naslov vira; ne namesti poti WireGuard. Iskanje samo za branje za primerni vir in cilj:
ip -4 route get 10.60.0.20 from 10.77.0.2Zaženite to v dejanskem imenskem prostoru omrežja Danta, ne v katerikoli lupini, ki jo imate odprto. Pot, izbira partnerja WireGuard, dovoljenje na oddaljeni strani in povratna pot morajo ustrezati temu naslovu vira. Uspešno iskanje je nujno in ne zadostuje, ker ne pove ničesar o tem, ali oddaljeni konec zahtevo sprejme.
Upirajte se skušnjavi, da bi dodali privzeto pot, da bi iskanje uspelo. Proxy vrata obstajajo samo na tej delovni postaji; spreminjanje privzete poti gostitelja, da bi jih ustvarili, obrne celotno zasnovo.
Korak 4: preizkusite s predvideno identiteto
Ko lastnik potrdi nameščeno konfiguracijo in zažene instanco prek svojega upravitelja storitev, je ilustrativna zahteva:
curl --proxy socks5h://127.0.0.1:1080 --noproxy '' https://app.corp.example/S socks5h Dante izvede razrešitev cilja, vendar Dante teče na tej delovni postaji, zato nastavitev sama ne pošlje DNS na oddaljeni konec tunela. Odobreni razreševalnik, ki ga Dante uporablja, mora vrniti dovoljeni naslov za to ime. Prazen seznam brez proxyja prepreči podedovani izjemi, da bi tiho obšla SOCKS.
V preizkusu ohranite preverjanje imena gostitelja in potrdila HTTPS, nato pregledjte dejanski poslušalec in potrdite obe polovici pogodbe: dovoljena zahteva uspe, izključeni cilj pa ne uspe. Preverite tudi, da nepodprti ukazi za posredovanje ostanejo zavrnjeni, ker ta fragment dovoljuje ukaz SOCKS CONNECT prek TCP in nič podobnega splošnemu tunelu UDP ali celotne naprave.
Korak 5: odločite, kaj se zgodi, ko tunel pade
Preizkusite izgubo tunela in ponovni zagon instance, preden to imenujete produkcija. Nadzornik, ki zažene Danta po WireGuardu, ne ustvari usmerjanja fail-closed in ne ustvari DNS fail-closed; oboje mora biti vsiljeno prek lastnika omrežja. Opazujte, kaj aplikacija počne, ko je tunel izklopljen: čista napaka je dober izid, tiho prehajanje na javni razreševalnik ni.
Uskladite posodobitve, če se vezani naslov tunela spremeni, ker external je pripet nanj. Ko razporeditev ni več potrebna, umaknite to instanco in nastavitev proxyja aplikacije skupaj, pot WireGuard pa prepustite tistemu, ki jo ima.