HTTPSSHSMTPUDPCUSTOMSOCKS5:1080INTERNET

SOCKS Välityspalvelimet

10 min lukeaVerkostoituminen

SOCKS on protokolla-agnostinen välityspalvelin. Kun HTTP-välityspalvelimet ymmärtävät vain verkkoliikennettä, SOCKS-välityspalvelin tunneloi minkä tahansa TCP-yhteyden (ja SOCKS5:ssä UDP-yhteyden) ilman kysymyksiä. Tämä yleisyys johtuu siitä, miksi SSH toimittaa SOCKS-tuen valmiina, miksi Tor paljastaa SOCKS5-kuuntelijan ja miksi melkein jokainen tietosuojatyökalu, joka haluaa välittää mielivaltaista sovellusliikennettä, päätyy käyttämään sitä.

Artikkelin koko runko on englanniksi alla.

SOCKS ("Socket Secure") suunniteltiin MIPS Computer Systemsissä 1990-luvun alussa antamaan palomuurikoneille puhdas tapa tavoittaa ulkomaailma. Sen sijaan, että SOCKS-palvelin jäsentäisi jokaista sovellusprotokollaa samalla tavalla kuin HTTP-välityspalvelin, se vain avaa TCP-yhteydet asiakkaan puolesta ja sekoittaa tavuja edestakaisin. Mikä tahansa protokolla kerroksittain – HTTP, SMTP, IRC, mukautettu binaari – toimii muuttumattomana.

SOCKS4 vs SOCKS5

SOCKS4, standardoitu vuonna 1992, tukee vain IPv4:ää ja TCP:tä, eikä siinä ole todennusta. Se on olennaisesti vanhentunut nykyään, mutta se näkyy edelleen laajalti vanhoissa ohjelmistoissa.

SOCKS5, määritelty RFC 1928:ssa (1996), on aktiivisessa käytössä oleva versio. Se lisää:

  • IPv6 kohdeosoitteet
  • Domain-name-kohteet (välityspalvelin ratkaisee ne, ei asiakas – tärkeää yksityisyyden kannalta)
  • XPLZX2 (yleinen käyttäjätunnus/salasana)
  • UDP-associate — ohjauskanava, jonka avulla asiakas voi tunneloida UDP-datagrammit, hyödyllinen DNS-, VoIP- ja peliprotokollissa

Yhteysvirtaus

XSPLZZ35 this:

  1. Client muodostaa yhteyden SOCKS-palvelimeen kuunteluportissaan (yleensä 1080).
  2. Client lähettää greeting-sanoman, jossa luetellaan tuetut todennustavat.
  3. XPLZ-vaihtoehtoja41XS41XS-vastaus43. todennus neuvoteltiin, asiakas ja palvelin suorittavat sen.
  4. Client lähettää CONNECT-pyynnön, jossa nimetään kohdeisäntä ja -portti.
  5. Palvelin avaa TCP-yhteyden, vastaa onnistuneesti ja sidotun osoitteen, ja siitä lähtien kaikki, mitä asiakas kirjoittaa ja välittää eteenpäin versa.

Viisi edestakaista matkaa ennen kuin ensimmäinen sovellustavu liikkuu. SOCKS ei ole latenssiystävällinen, mutta se on yksinkertainen.

SOCKS ja DNS: mistä vuodot tulevat

Yksi hienovarainen SOCKS5-ominaisuus on se, miten kohde nimetään. CONNECT-pyyntö voi nimetä sen nimellä IPv4, IPv6 tai domain name. Jos asiakas lähettää IP-osoitteen, asiakas teki DNS-haun paikallisesti - ja jos yritit piiloutua välityspalvelimen taakse, paikallinen ratkaisija näki juuri nimen. Jos asiakas lähettää domain:n, välityspalvelin ratkaisee sen, mitä Tor-käyttäjät haluavat.

Tämä on lukemattomien DNS-vuotojen perimmäinen syy: SOCKS5:lle määritetyt sovellukset, jotka edelleen ratkaisevat isäntänimiä paikallisesti. Curl tarvitsee --socks5-hostname --socks5 sijaan. Firefox tarvitsee network.proxy.socks_remote_dns = true. DNS-vuototestimme havaitsee vikatilan.

SSH dynaaminen edelleenlähetys

Yksi SOCKS:n käytännöllisimmistä käyttötavoista on ssh -D 1080 user@server. SSH synnyttää paikallisen SOCKS5-kuuntelijan; minkä tahansa sitä osoittavan sovelluksen TCP-liikenne tunneloidaan SSH-istunnon yli server:ään, joka sitten muodostaa lähtevän yhteyden. Maksuton, salattu päästä päähän sinun ja SSH-palvelimen välillä, ja se reitittää lähes minkä tahansa paikallisen verkon rajoituksen, joka sallii portin 22.

SOCKS vs HTTP CONNECT

HTTP CONNECT, tunneliverbi, jota HTTP-välityspalvelimet käyttävät HTTPS:lle. Se on toiminnallisesti samanlainen kuin S TOCKS -raaka-tunneli. Erot:

  • HTTP CONNECT toimii HTTP:n yli, joten se perii HTTP-todennuksen ja on palomuuriystävällinen portissa 80 tai 443.
  • SOCKS on omistettu protokolla erillisessä portissa, jossa on puhtaampi UDP-tuki ja rikkaampi todennus. HTTPS-tietoisten suodattimien tarkastama; SOCKS on heille läpinäkymättömämpi.

SOCKS over TLS

SOCKS itsessään ei ole salattu – asiakas/välityspalvelin-linkki on pelkkä teksti, todennusvaihto mukaan lukien. Linkin suojaamiseksi nykyaikaiset käyttöönotot käärivät SOCKS:n TLS:ään tai ajavat sen SSH-tunnelin sisällä. Shadowsocks omaksui toisenlaisen lähestymistavan: se säilytti SOCKS5-idean, mutta lisäsi yhteyskohtaisen salauksen ja hämärtymisen kumotakseen deep pakettitarkistuksen.

Missä SOCKS sijaitsee VPNs

A:n vieressä VPN reitittää all-liikenteen laitteestasi tunnelin läpi. SOCKS-välityspalvelin reitittää vain siihen osoittamasi sovellukset. Tämä tekee SOCKSista erinomaiset valikoivaan tunnelointiin (reititä vain selaimesi Torin kautta, jätä pelit paikalliseen linkkiin) ja vähemmän soveltuvia koko laitteen suojaamiseen. Jotkut kaupalliset VPN-palveluntarjoajat (Mullvad, IVPN) paljastavat myös SOCKS5-päätepisteitä verkkojensa sisällä, jotta voit reitittää yhden sovelluksen tuomatta koko VPN:ää.

Usein kysytyt kysymykset

Onko SOCKS5 salattu?
Ei — SOCKS5 on siirtoprotokolla, ei salausprotokolla. Todennus ja tiedot kulkevat sekä selkeänä tekstinä sinun ja välityspalvelimen välillä, ellet kääri kaikkea TLS:ään tai käytä sitä SSH-tunnelin läpi. Älä käytä SOCKSia vihamielisten verkkojen yli ilman ulompaa salauskerrosta.
Mitä porttia SOCKS käyttää?
Sopimuksen mukaan 1080. Se ei ole kova vaatimus, ja monet käyttöönotot käyttävät muita portteja – Torin mukana toimitettu SOCKS5-kuuntelija on 9050:ssä – mutta 1080 on IANA:n määrittämä oletusarvo.
Miksi Tor käyttää SOCKS5:tä HTTP:n sijaan?
SOCKS5 voi tunneloida minkä tahansa TCP-protokollan, ei vain HTTP:tä. Tor-käyttäjät haluavat reitittää IRC:tä, sähköpostia, mukautettuja sovelluksia ja paljon muuta – ei vain verkkoliikennettä. SOCKS5 välittää myös verkkotunnusten nimet välityspalvelimelle, mikä antaa Torille mahdollisuuden ratkaista ne verkon sisällä sen sijaan, että se vuotaisi hakua paikallisesti.
Pystyykö SOCKS käsittelemään UDP:tä?
SOCKS5 lisäsi UDP-associate-komennon, jonka avulla asiakas tunneli UDP-datagrammit välityspalvelimen kautta. Tuki on epätasaista – monet SOCKS-palvelintoteutukset tekevät vain TCP:tä – mutta tekniset tiedot ovat olemassa, ja Tor ja Shadowsocks käsittelevät UDP-pohjaista DNS:ää juuri näin.
Pitäisikö minun suosia SOCKS5:tä vai VPN:ää?
Koko laitteen yksityisyyden takaamiseksi VPN – se tunneloi kaiken ja salaa linkin. SOCKS5 on oikea työkalu tietyn sovelluksen tunnelointiin tai ketjuttamiseen Torilla. Nämä kaksi täydentävät toisiaan, eivät kilpaile keskenään.
SOCKS-välityspalvelimet selitetty: Kuinka SOCKS4, SOCKS5 ja SOCKS TLS:n yli toimivat