socat SOCKS tiltai: išsaugokite svetainės TLS hosto vardą
Naudokite loopback TCP klausytuvą vienai SOCKS paskirčiai ir išsaugokite HTTP bei TLS tapatybę programoje.
Programa neturi SOCKS parinkties, bet gali prisijungti prie pasirinkto TCP adreso. Fiksuoto tikslo adapteris gali suteikti SOCKS pokalbį vienai paskirčiai. Jam nereikia tapti dar vienu bendruoju perdavimo tarpiniu serveriu.
SOCKS4A teikiančioms socat versijoms iliustracinis išdėstymas yra toks:
socat TCP4-LISTEN:9443,bind=127.0.0.1,reuseaddr,fork \
SOCKS4A:127.0.0.1:service.example.net:443,socksport=1080
SOCKS galinis taškas yra vietinis 1080 prievadas. Adapteris klausosi vietinio 9443 prievado ir prašo to galinio taško service.example.net:443. Tai pavyzdinės reikšmės, o ne visiškas paslaugos diegimas.
Adapteris turi vieną fiksuotą tikslą
Kiekvienas priimtas TCP ryšys prašo tos pačios paslaugos. Programa, jungianti prie 9443, pateikia įprastus protokolo baitus; socat pateikia SOCKS4A derybas. Naujas HTTP CONNECT prašymas į 9443 nepasirinktų kitos paskirties—jis nusiųstų tuos baitus fiksuotai paslaugai.
SOCKS4A pateikia hosto vardą SOCKS galiniam taškui nuotoliniam sprendimui. Tai skiriasi nuo SOCKS4 formos, kuri naudoja kliento pasirinktą adresą. Pasirinktas upstreamas—įskaitant viešą kandidatą iš SOCKS4 tarpinių serverių sąrašo—turi palaikyti SOCKS4A hosto vardų apdorojimą ir reikiamą autentifikaciją; šis pavyzdys nėra SOCKS5 prisijungimo slaptažodžiu receptas.
Prisijunkite lokaliai, atpažinkite tikrąją paslaugą
HTTPS URL pakeitimas į https://127.0.0.1:9443/ pakeičia hosto vardą, kurį klientas gali naudoti TLS ir HTTP. service.example.net sertifikatas netaps galiojančiu loopback sertifikatu.
Kai klientas palaiko atskirą ryšio maršrutizavimą, išsaugokite pradinio URL tapatybę. Curl gali parodyti šį skirtumą:
curl --noproxy '*' \
--connect-to service.example.net:443:127.0.0.1:9443 \
https://service.example.net/
Lizdas eina į vietinį adapterį, o TLS patikra ir HTTP paskirtis lieka service.example.net. Kitos programos turi savo atitinkamą palaikomą valdymą; ne kiekvienas klientas jį suteikia.
Loopback susiejimas riboja tinklo ekspoziciją, tačiau kiti tinkami vietiniai procesai vis tiek gali jį pasiekti. Išlaikykite tinkamą paslaugos tarnavimo laiką ir naudotojus. Išlaikykite TLS patikrą, o ne slopinkite tapatybės klaidą, kurią sukelia loopback URL.