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.2

Zaž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.

Sorodni članki