Urat SOCKS të socat: ruani emrin e hostit TLS të sajtit
Përdorni një dëgjues TCP loopback për një destinacion SOCKS duke ruajtur identitetin HTTP dhe TLS në aplikacion.
Aplikacioni nuk ka opsion SOCKS, por mund të lidhet me një adresë TCP të zgjedhur. Një përshtatës me objektiv fiks mund të sigurojë bisedën SOCKS për një destinacion. Nuk duhet të bëhet një tjetër proxy përpara i përgjithshëm.
Për ndërtimet e socat që ofrojnë SOCKS4A, një rregullim ilustrues është:
socat TCP4-LISTEN:9443,bind=127.0.0.1,reuseaddr,fork \
SOCKS4A:127.0.0.1:service.example.net:443,socksport=1080
Pika fundore SOCKS është porta lokale 1080. Përshtatësi dëgjon në portën lokale 9443 dhe i kërkon asaj pike fundore service.example.net:443. Këto janë vlera shembull, jo një vendosje e plotë e shërbimit.
Përshtatësi ka një objektiv fiks
Çdo lidhje TCP e pranuar kërkon të njëjtin shërbim. Një aplikacion që lidhet me 9443 furnizon bajtët e tij normalë të protokollit; socat furnizon negociatën SOCKS4A. Dërgimi i një kërkese të re HTTP CONNECT në 9443 nuk do të zgjidhte një destinacion tjetër—do t'i dërgonte ata bajtë te shërbimi fiks.
SOCKS4A i jep një emër hosti pikës fundore SOCKS për zgjidhje në distancë. Kjo ndryshon nga forma SOCKS4 që përdor një adresë të zgjedhur nga klienti. Upstream-i i zgjedhur—përfshirë një kandidat publik nga lista e proxy-ve SOCKS4—duhet të mbështesë trajtimin e emrave të hostit SOCKS4A dhe vërtetimin e kërkuar; ky shembull nuk është një recetë hyrjeje me fjalëkalim SOCKS5.
Lidhuni lokalisht, identifikoni shërbimin e vërtetë
Ndryshimi i një URL HTTPS në https://127.0.0.1:9443/ ndryshon emrin e hostit që klienti mund të përdorë për TLS dhe HTTP. Një certifikatë për service.example.net nuk do të bëhet certifikatë e vlefshme për loopback.
Kur klienti mbështet rrugëtim të veçantë lidhjeje, ruani identitetin e URL-së origjinale. Curl mund ta ilustrojë atë dallim:
curl --noproxy '*' \
--connect-to service.example.net:443:127.0.0.1:9443 \
https://service.example.net/
Socket-i shkon te përshtatësi lokal ndërsa verifikimi TLS dhe destinacioni HTTP mbeten service.example.net. Aplikacionet e tjera kanë nevojë për kontrollin e tyre ekuivalent të mbështetur; jo çdo klient e ofron atë.
Lidhja loopback kufizon ekspozimin ndaj rrjetit, por procese të tjera lokale të kualifikuara mund ta arrijnë ende. Mbani jetëgjatësinë e shërbimit dhe përdoruesit të përshtatshëm. Ruani verifikimin TLS në vend që të shtypni gabimin e identitetit të shkaktuar nga një URL loopback.