socat SOCKS -sillat: säilytä sivuston TLS-isäntänimi
Käytä loopback TCP -kuuntelijaa yhteen SOCKS-kohteeseen ja säilytä HTTP- ja TLS-identiteetti sovelluksessa.
Sovelluksella ei ole SOCKS-vaihtoehtoa, mutta se voi yhdistää valittuun TCP-osoitteeseen. Kiinteän kohteen sovitin voi tarjota SOCKS-keskustelun yhdelle kohteelle. Sen ei tarvitse muuttua uudeksi yleiseksi välityspalvelimeksi.
SOCKS4A:n tarjoaville socat-koonnille havainnollistava järjestely on:
socat TCP4-LISTEN:9443,bind=127.0.0.1,reuseaddr,fork \
SOCKS4A:127.0.0.1:service.example.net:443,socksport=1080
SOCKS-päätepiste on paikallinen portti 1080. Sovitin kuuntelee paikallista porttia 9443 ja pyytää tältä päätepisteeltä service.example.net:443. Nämä ovat esimerkkiarvoja, eivät täydellinen palvelun käyttöönotto.
Sovittimella on yksi kiinteä kohde
Jokainen hyväksytty TCP-yhteys pyytää samaa palvelua. Porttiin 9443 yhdistävä sovellus toimittaa tavalliset protokollatavunsa; socat toimittaa SOCKS4A-neuvottelun. Uusi HTTP CONNECT -pyyntö porttiin 9443 ei valitsisi toista kohdetta—se lähettäisi ne tavut eteenpäin kiinteälle palvelulle.
SOCKS4A antaa isäntänimen SOCKS-päätepisteelle etäselvitystä varten. Tämä eroaa SOCKS4-muodosta, joka käyttää asiakkaan valitsemaa osoitetta. Valitun ylävirran—mukaan lukien julkinen ehdokas SOCKS4-välityspalvelinluettelosta—on tuettava SOCKS4A-isäntänimien käsittelyä ja vaadittua todennusta; tämä esimerkki ei ole SOCKS5-salasanakirjautumisohje.
Yhdistä paikallisesti, tunnista todellinen palvelu
HTTPS-osoitteen muuttaminen muotoon https://127.0.0.1:9443/ muuttaa isäntänimeä, jota asiakas voi käyttää TLS:ään ja HTTP:hen. service.example.net-osoitteen varmenne ei muutu kelvolliseksi varmenteekksi loopbackille.
Kun asiakas tukee erillistä yhteyden reititystä, säilytä alkuperäisen osoitteen identiteetti. Curl voi havainnollistaa tätä eroa:
curl --noproxy '*' \
--connect-to service.example.net:443:127.0.0.1:9443 \
https://service.example.net/
Pistoke menee paikalliselle sovittimelle, kun taas TLS-varmennus ja HTTP-kohde pysyvät service.example.netinä. Muut sovellukset tarvitsevat oman vastaavan tuetun hallintansa; kaikki asiakkaat eivät tarjoa sitä.
Loopback-sidonta rajoittaa verkkonäkyvyyttä, mutta muut kelvolliset paikalliset prosessit voivat yhä tavoittaa sen. Pidä palvelun elinikä ja käyttäjät sopivina. Säilytä TLS-varmennus sen sijaan, että vaimentaisit loopback-osoitteen aiheuttaman identiteettivirheen.