See juhend annab puhverserverist teadlikule rakendusele juurdepääsu olemasolevale WireGuardi teekonnale, avaldamata puhverserveri porti VPN-serveris ega internetis. SOCKS-deemon pakub rakenduse liidese, WireGuard pakub juba kinnitatud IP-teekonna ja kumbki neist ei autendi kasutajat teie eest. Iga allpool olev samm annab midagi, mida saate kontrollida, ja igal on tagasipööramine: peatage eksemplar, eemaldage reegel või eemaldage rakenduse puhverserveri säte. Miski siin ei muuda hosti vaikimisi marsruuti.

Näide eeldab, et Dante 1.4.x on paigaldatud sihtotstarbelise, hallatava eksemplarina usaldusväärsesse Linuxi tööjaama, kusjuures paketi teenusekonto ja logimiskonfiguratsioon on jäetud oma kohale. Tööjaam omab 10.77.0.2 oma WireGuardi liidesel, jõuab aadressini 10.60.0.20:443 selle tunneli kaudu ja teenuse õige nimi on app.corp.example.

Samm 1: siduge kuulaja ainult loopbackiga

Pange võrgu-, meetodi- ja reegliplokid eksemplari aktiivsesse konfiguratsiooni, asendades näidisaadressid. Kõik serveri sätted tulevad enne reegliplokke:

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
}

See on fragment, mitte paketi kasutaja- ja logimissätete asendus. Valige kasutamata kohalik port ja kinnitage, et sellel sihtotstarbelisel eksemplaril pole muid kuulajaid, laiemaid läbilaskereegleid ega ülemvoolu ahela kirjeid, mis muudaksid lepet. Kui varasem konfiguratsioon jättis socks pass ilma sihtkoha piiranguta, eemaldage see enne mis tahes testimist.

Selle sammu tagasipööramine on eksemplari peatamine; konfiguratsioonifail võib jääda kettale, kuni te seda tagasi pöörate.

Samm 2: kirjutage kaks reeglit, mitte üks

Dante konfiguratsiooniviide annab kahele reeglitüübile erinevad ülesanded. Kliendireegel lubab ühenduse loopbacki kuulajaga ja selle sihtkoht on kuulaja enda aadress. SOCKS-reegel lubab taotletud edasise ühenduse kinnitatud hosti ja porti. Sobimatud taotlused blokeeritakse vaikimisi, mistõttu puuduv reegel näeb välja täpselt nagu katkine marsruut.

Pange tähele, mida see konfiguratsioon teadlikult ei tee: see ei küsi SOCKS-parooli. See sobib usaldusväärse kohaliku hosti jaoks ja see ei ole kasutaja autentimine. Iga muu protsess selles masinas võib samuti loopbacki kasutada. Hoidke kaugrakenduse enda autentimine alles ega kasutage seda autentimata kuju uuesti mitteusaldusväärsete kohalike kasutajate ega LAN-i poole suunatud kuulaja jaoks.

Samm 3: kontrollige marsruuti õigest allikast

external valib väljuva lähteaadressi; see ei paigalda WireGuardi marsruuti. Kirjutuskaitstud otsing näidise allika ja sihtkoha jaoks:

ip -4 route get 10.60.0.20 from 10.77.0.2

Käivitage see Dante tegelikus võrgu nimeruumis, mitte ükskõik millises kestas, mis teil juhtub avatud olema. Marsruut, WireGuardi partneri valik, kaugpoolne luba ja tagasitee peavad kõik sellele lähteaadressile sobima. Edukas otsing on vajalik ja mitte piisav, sest see ei ütle midagi selle kohta, kas kaugem ots taotluse vastu võtab.

Vastupidage kiusatusele lisada vaikimisi marsruut, et otsing õnnestuks. Puhverserveri port on ainult selles tööjaamas; hosti vaikimisi marsruudi muutmine selle loomiseks pöörab kogu disaini tagurpidi.

Samm 4: testige kavandatud identiteediga

Pärast seda, kui omanik on paigaldatud konfiguratsiooni valideerinud ja eksemplari oma teenusehalduri kaudu käivitanud, on näitlik taotlus:

curl --proxy socks5h://127.0.0.1:1080 --noproxy '' https://app.corp.example/

Koos socks5h, teeb Dante sihtkoha tõlgenduse, kuid Dante töötab selles tööjaamas, seega säte ei saada DNS-i tunnel teise otsa iseenesest. Kinnitatud resolver, mida Dante kasutab, peab selle nime jaoks tagastama lubatud aadressi. Tühi puhverserverita nimekiri takistab päritud erandil SOCKS-ist vaikselt mööda minna.

Säilitage testis HTTPS-i hostinime ja sertifikaadi valideerimine, seejärel kontrollige tegelikku kuulajat ja kinnitage lepingu mõlemad pooled: lubatud taotlus õnnestub ja välistatud sihtkoht ebaõnnestub. Veenduge ka, et toetamata edastamiskäsud jäävad keelatuks, sest see fragment lubab SOCKS CONNECT käsku TCP kaudu ja mitte midagi üldise UDP- ega kogu seadme tunneli taolist.

Samm 5: otsustage, mis juhtub, kui tunnel katkeb

Testige tunneli kadu ja eksemplari taaskäivitust enne, kui nimetate selle tootmiseks. Järelevalvaja, mis käivitab Dante pärast WireGuardi, ei loo fail-closed marsruutimist ega loo ka fail-closed DNS-i; mõlemad tuleb kehtestada võrguomaniku kaudu. Jälgige, mida rakendus teeb, kui tunnel on maas: puhas viga on hea tulemus, vaikne tagasilangemine avalikule resolverile mitte.

Kooskõlastage uuendused, kui seotud tunneli aadress muutub, sest external on selle külge kinnitatud. Kui kordaminekut enam ei vajata, võtke see eksemplar ja rakenduse puhverserveri säte koos välja ning jätke WireGuardi teekond selle omanikule.

Seotud artiklid