Dante SOCKS na loopbacku za HTTPS uslugu samo preko WireGuarda
Vežite namjenski SOCKS slušač na loopback i dozvolite jednu TCP odredišnu tačku. Držite Danteov izlazni izvor, kernel rutu, DNS i politiku gubitka tunela odvojeno.
Ovaj priručnik daje aplikaciji koja poznaje proxy pristup postojećoj WireGuard putanji bez objavljivanja proxy porta na VPN serveru ili internetu. SOCKS daemon pruža sučelje aplikacije, WireGuard pruža već odobrenu IP putanju, a nijedno od njih ne autentificira korisnika umjesto vas. Svaki korak ispod proizvodi nešto što možete pregledati, a svaki ima i povratak: zaustavite instancu, uklonite pravilo ili uklonite proxy postavku aplikacije. Ništa ovdje ne mijenja zadanu rutu hosta.
Primjer pretpostavlja da je Dante 1.4.x instaliran kao namjenska, upravljana instanca na pouzdanoj Linux radnoj stanici, sa servisnim računom i konfiguracijom zapisivanja iz paketa ostavljenim na mjestu. Radna stanica posjeduje 10.77.0.2 na svom WireGuard sučelju, doseže 10.60.0.20:443 kroz taj tunel, a pravi naziv usluge je app.corp.example.
Korak 1: vežite slušač samo na loopback
Stavite odjeljke mreže, metode i pravila u aktivnu konfiguraciju instance, zamjenjujući primjere adresa. Sve serverske postavke idu prije blokova pravila:
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
}Ovo je fragment, a ne zamjena za korisničke i log postavke paketa. Odaberite nekorišteni lokalni port i potvrdite da ova namjenska instanca nema drugih slušača, širih pravila propuštanja ni unosa nadređenog lančanja koji bi promijenili ugovor. Ako je prethodna konfiguracija ostavila socks pass bez ograničenja odredišta, uklonite ga prije bilo kakvog testiranja.
Povratak za ovaj korak je zaustavljanje instance; konfiguracijska datoteka može ostati na disku dok je vraćate.
Korak 2: napišite dva pravila, ne jedno
Danteov referentni vodič za konfiguraciju daje dvjema vrstama pravila različite zadatke. Klijentsko pravilo dopušta vezu prema loopback slušaču, a njegovo odredište je adresa samog slušača. SOCKS pravilo dopušta traženu daljnju vezu prema odobrenom hostu i portu. Neusklađeni zahtjevi blokiraju se po defaultu, zato pravilo koje nedostaje izgleda isto kao pokvarena ruta.
Obratite pažnju na ono što ova konfiguracija namjerno ne radi: ne traži SOCKS lozinku. To odgovara pouzdanom lokalnom hostu i nije autentifikacija korisnika. Svaki drugi proces na tom stroju također može koristiti loopback. Zadržite vlastitu autentifikaciju udaljene aplikacije i ne koristite ponovno ovaj neautentificirani oblik za nepouzdane lokalne korisnike ili slušač okrenut prema LAN-u.
Korak 3: provjerite rutu s pravog izvora
external bira izlaznu adresu izvora; ne instalira WireGuard rutu. Provjera samo za čitanje za primjer izvora i odredišta:
ip -4 route get 10.60.0.20 from 10.77.0.2Pokrenite to u Danteovom stvarnom mrežnom imenskom prostoru, a ne u bilo kojoj ljusci koju slučajno imate otvorenu. Ruta, odabir WireGuard partnera, dopuštenje na udaljenoj strani i povratna putanja moraju odgovarati toj adresi izvora. Uspješna provjera je nužna, ali ne i dovoljna, jer ne govori ništa o tome prihvaća li udaljeni kraj zahtjev.
Oduprite se iskušenju da dodate zadanu rutu kako bi provjera uspjela. Proxy port postoji samo na ovoj radnoj stanici; mijenjanje zadane rute hosta da biste ga stvorili preokreće cijeli dizajn.
Korak 4: testirajte s predviđenim identitetom
Nakon što vlasnik provjeri instaliranu konfiguraciju i pokrene instancu kroz svoj upravitelj usluga, ilustrativan zahtjev je:
curl --proxy socks5h://127.0.0.1:1080 --noproxy '' https://app.corp.example/S socks5h, Dante obavlja razrješavanje odredišta, ali Dante radi na ovoj radnoj stanici, pa postavka sama po sebi ne šalje DNS na udaljeni kraj tunela. Odobreni razrješivač koji Dante koristi mora vratiti dopuštenu adresu za to ime. Prazan popis bez proxyja sprječava naslijeđenu iznimku da tiho zaobiđe SOCKS.
Sačuvajte provjeru HTTPS imena hosta i certifikata u testu, zatim pregledajte stvarni slušač i potvrdite obje polovice ugovora: dopušteni zahtjev uspijeva, a isključeno odredište ne uspijeva. Također provjerite da nepodržane naredbe prosljeđivanja ostaju odbijene, jer ovaj fragment dopušta naredbu SOCKS CONNECT preko TCP-a i ništa nalik općem UDP ili tunelu cijelog uređaja.
Korak 5: odlučite što se događa kada tunel padne
Testirajte gubitak tunela i ponovno pokretanje instance prije nego ovo nazovete produkcijom. Nadzornik koji pokreće Dante nakon WireGuarda ne stvara fail-closed usmjeravanje i ne stvara fail-closed DNS; oboje se mora nametnuti kroz vlasnika mreže. Promatrajte što aplikacija radi dok je tunel pao: čista pogreška je dobar ishod, tihi povratak na javni razrješivač nije.
Uskladite ažuriranja ako se vezana adresa tunela promijeni, jer external je prikvačen na nju. Kada raspored više nije potreban, povucite ovu instancu i proxy postavku aplikacije zajedno i ostavite WireGuard putanju onome kome pripada.