SOCKS mosty socat: zachovajte TLS názov hostiteľa webu
Použite loopback TCP listener pre jeden cieľ SOCKS a zachovajte identitu HTTP aj TLS v aplikácii.
Aplikácia nemá voľbu SOCKS, ale môže sa pripojiť k zvolenej adrese TCP. Adaptér s pevným cieľom môže zabezpečiť konverzáciu SOCKS pre jeden cieľ. Nemusí sa stať ďalším univerzálnym preposielacím proxy serverom.
Pre zostavy socat podporujúce SOCKS4A je ilustratívne usporiadanie toto:
socat TCP4-LISTEN:9443,bind=127.0.0.1,reuseaddr,fork \
SOCKS4A:127.0.0.1:service.example.net:443,socksport=1080
Koncový bod SOCKS je miestny port 1080. Adaptér počúva na miestnom porte 9443 a žiada tento koncový bod o service.example.net:443. Sú to príkladové hodnoty, nie úplné nasadenie služby.
Adaptér má jeden pevný cieľ
Každé prijaté TCP spojenie žiada tú istú službu. Aplikácia pripájajúca sa k 9443 dodáva svoje obvyklé protokolové bajty; socat dodáva vyjednávanie SOCKS4A. Nová požiadavka HTTP CONNECT na 9443 by nevybrala iný cieľ—poslala by tieto bajty ďalej pevnej službe.
SOCKS4A odovzdáva koncovému bodu SOCKS názov hostiteľa na vzdialené rozlíšenie. To sa líši od formy SOCKS4, ktorá používa adresu zvolenú klientom. Zvolený upstream—vrátane verejného kandidáta zo zoznamu SOCKS4 proxy—musí podporovať spracovanie názvu hostiteľa SOCKS4A a požadovanú autentifikáciu; tento príklad nie je recept na prihlásenie heslom SOCKS5.
Pripojte sa lokálne, rozpoznajte skutočnú službu
Zmena adresy HTTPS na https://127.0.0.1:9443/ mení názov hostiteľa, ktorý môže klient použiť pre TLS a HTTP. Certifikát pre service.example.net sa nestane platným certifikátom pre loopback.
Kde klient podporuje samostatné smerovanie spojenia, zachovajte identitu pôvodnej adresy. Curl môže tento rozdiel ilustrovať:
curl --noproxy '*' \
--connect-to service.example.net:443:127.0.0.1:9443 \
https://service.example.net/
Socket ide k miestnemu adaptéru, zatiaľ čo overenie TLS a cieľ HTTP zostávajú service.example.net. Iné aplikácie potrebujú svoju vlastnú ekvivalentnú podporovanú kontrolu; nie každý klient ju poskytuje.
Väzba loopback obmedzuje sieťovú expozíciu, ale iné spôsobilé miestne procesy k nemu stále môžu dosiahnuť. Udržujte životnosť služby a používateľov primerané. Zachovajte overenie TLS namiesto potláčania chyby identity spôsobenej adresou loopback.