Ponts SOCKS de socat: conserveu el nom d'amfitrió TLS del lloc
Feu servir un oient TCP de loopback per a una destinació SOCKS i conserveu la identitat HTTP i TLS a l'aplicació.
L'aplicació no té cap opció SOCKS, però es pot connectar a una adreça TCP triada. Un adaptador d'objectiu fix pot proporcionar la conversa SOCKS per a una destinació. No cal que es converteixi en un altre proxy directe genèric.
Per a compilacions de socat que ofereixen SOCKS4A, un muntatge il·lustratiu és:
socat TCP4-LISTEN:9443,bind=127.0.0.1,reuseaddr,fork \
SOCKS4A:127.0.0.1:service.example.net:443,socksport=1080
El punt final SOCKS és el port local 1080. L'adaptador escolta al port local 9443 i demana a aquest punt final service.example.net:443. Són valors d'exemple, no un desplegament complet del servei.
L'adaptador té un objectiu fix
Cada connexió TCP acceptada demana el mateix servei. Una aplicació que es connecta a 9443 aporta els seus bytes de protocol habituals; socat aporta la negociació SOCKS4A. Enviar una nova petició HTTP CONNECT a 9443 no triaria una altra destinació—enviaria aquests bytes cap al servei fix.
SOCKS4A lliura un nom d'amfitrió al punt final SOCKS per a la resolució remota. Això difereix de la forma SOCKS4 que fa servir una adreça triada pel client. L'upstream triat—incloent-hi un candidat públic de la llista de proxys SOCKS4—ha de suportar el tractament de noms d'amfitrió SOCKS4A i l'autenticació necessària; aquest exemple no és una recepta d'inici de sessió amb contrasenya SOCKS5.
Connecteu localment, identifiqueu el servei real
Canviar un URL HTTPS a https://127.0.0.1:9443/ canvia el nom d'amfitrió que el client pot usar per a TLS i HTTP. Un certificat per a service.example.net no es convertirà en un certificat vàlid per a loopback.
On el client admet un encaminament de connexió separat, conserveu la identitat de l'URL original. Curl pot il·lustrar aquesta distinció:
curl --noproxy '*' \
--connect-to service.example.net:443:127.0.0.1:9443 \
https://service.example.net/
El sòcol va a l'adaptador local mentre la verificació TLS i la destinació HTTP continuen sent service.example.net. Altres aplicacions necessiten el seu propi control equivalent admès; no tots els clients en proporcionen.
El lligam de loopback limita l'exposició de xarxa, però altres processos locals admissibles encara hi poden arribar. Mantingueu la vida útil del servei i els usuaris adequats. Conserveu la verificació TLS en lloc de suprimir l'error d'identitat causat per un URL de loopback.