HTTPSSHSMTPUDPCUSTOMSOCKS5:1080INTERNET

SOCKS Proxies

10 lectura mínimaTreball en xarxa

SOCKS és el proxy independent del protocol. Quan els servidors intermediaris HTTP només entenen el trànsit web, un servidor intermediari SOCKS tunelitzarà qualsevol connexió TCP (i a SOCKS5, UDP), sense fer cap pregunta. Aquesta generalitat és la raó per la qual SSH envia suport SOCKS des de la caixa, per què Tor exposa un oient SOCKS5 i per què gairebé totes les eines de privadesa que volen reenviar trànsit d'aplicacions arbitraris l'acaben utilitzant.

El cos complet de l'article es proporciona en anglès a continuació.

SOCKS ("Socket Secure") va ser dissenyat a MIPS Computer Systems a principis de la dècada de 1990 per oferir als amfitrions amb tallafoc una manera neta d'arribar al món exterior. En lloc d'analitzar tots els protocols d'aplicació com ho fa un servidor intermediari HTTP, un servidor SOCKS només obre connexions TCP en nom del client i barreja bytes cap endavant i cap enrere. Sigui quin sigui el protocol que es trobi a la part superior (HTTP, SMTP, IRC, binari personalitzat), funciona sense canvis. Actualment està essencialment obsolet, però encara es veu àmpliament al programari heretat.

SOCKS5, definida a RFC 1928 (1996), és la versió en ús actiu. Afegeix:

  • IPv6 adreces de destinació
  • nom-domini destinacions (el servidor intermediari les resol, no el client, és important per a la privadesa)
  • PLZ21X
  • PLZ21
  • PLZ21PLZ21 el comú)
  • UDP associate: un canal de control que permet al client tunelitzar datagrames UDP, útil per a DNS, VoIP i protocols de jocs

El flux de connexió

A Sembla una conversa de SOCKS5 això:

  1. Client es connecta al servidor SOCKS al seu port d'escolta (normalment 1080).
  2. Client envia una llista greeting de mètodes d'autenticació compatibles. s'ha negociat l'auth, el client i el servidor la realitzen.
  3. Client envia una sol·licitud CONNECT anomenant l'amfitrió i el port de destinació.
  4. Server obre aquesta connexió TCP, respon amb èxit i l'adreça vinculada i, a partir de llavors, tot el que escriu el client es reenvia a la destinació i viceversa. versa.

Cinc viatges d'anada i tornada abans que es mogui el primer byte de l'aplicació. SOCKS no és compatible amb la latència, però és senzill.

SOCKS i DNS: d'on provenen les filtracions

Una característica subtil de SOCKS5 és com s'anomena la destinació. La sol·licitud CONNECT pot anomenar-la amb el nom de domini IPv4, IPv6 o . Si el client envia una IP, el client va fer la cerca DNS localment, i si estàveu intentant amagar-vos darrere del servidor intermediari, el vostre solucionador local només va veure el nom. Si el client envia l'domain, el servidor intermediari ho resol, que és el que volen els usuaris de Tor.

Aquesta és la causa principal d'innombrables fuites de DNS: aplicacions configurades per SOCKS5 que encara resolen els noms d'amfitrió localment. Curl necessita --socks5-hostname en lloc de --socks5. Firefox necessita network.proxy.socks_remote_dns = true. La nostra prova de fuites DNS detecta el mode de fallada.

SSH reenviament dinàmic

Un dels usos més pràctics de SOCKS és ssh -D 1080 user@server. SSH genera un oient local SOCKS5; qualsevol aplicació apuntada a ella té el seu trànsit TCP túnelitzat a través de la sessió SSH a server, que després fa la connexió de sortida. Gratuït, xifrat d'extrem a extrem entre tu i el servidor SSH, i encamina gairebé qualsevol restricció de xarxa local que permet que el port 22.

SOCKS vs HTTP CONNECT

HTTP CONNECT, el verb de túnel utilitzat pels servidors intermediaris HTTP per a HTTPS, és funcionalment similar a un túnel TCP SOCKS: tots dos estableixen un túnel SOCKS. Les diferències:

  • HTTP CONNECT s'executa a través d'HTTP, de manera que hereta l'autenticació HTTP i és compatible amb el tallafocs al port 80 o 443.
  • SOCKS és un protocol dedicat en un port dedicat, amb un suport UDP més net i una interacció i una autenticació més rica en interacció i CONNECT. inspeccionat per filtres compatibles amb HTTPS; SOCKS és més opac per a ells.

SOCKS sobre TLS

SOCKS no està xifrat: l'enllaç client/proxy és de text sense format, inclòs l'intercanvi d'autenticació. Per protegir l'enllaç, els desplegaments moderns embolcallen SOCKS en TLS o l'executen dins d'un túnel SSH. Shadowsocks va adoptar un enfocament diferent: va mantenir la idea SOCKS5 però va afegir xifratge i ofuscació per connexió per derrotar la inspecció profunda de paquets .

On SOCKS es troba al costat de VPNs

A VPN encamina el trànsit all des del vostre dispositiu a través d'un túnel. Un servidor intermediari SOCKS només encamina les aplicacions que hi apunteu. Això fa que SOCKS sigui excel·lent per al túnel selectiu (encamineu només el vostre navegador a través de Tor, deixeu els jocs a l'enllaç local) i menys fantàstic per a la protecció de tot el dispositiu. Alguns proveïdors de VPN comercials (Mullvad, IVPN) també exposen els punts finals SOCKS5 dins de les seves xarxes perquè pugueu encaminar una sola aplicació sense activar la VPN completa.

Preguntes freqüents

Està encriptat SOCKS5?
No: SOCKS5 és un protocol de transport, no un protocol de xifratge. Tant l'autenticació com les dades viatgen en text sense format entre tu i el servidor intermediari tret que l'emboliqueu tot en TLS o l'executeu a través d'un túnel SSH. No utilitzeu SOCKS en xarxes hostils sense una capa exterior de xifratge.
Quin port utilitza SOCKS?
Per convenció, 1080. No és un requisit difícil i molts desplegaments utilitzen altres ports (l'escolta SOCKS5 de Tor està a 9050), però 1080 és el valor predeterminat assignat per IANA.
Per què Tor utilitza SOCKS5 en lloc d'HTTP?
SOCKS5 pot tunelitzar qualsevol protocol TCP, no només HTTP. Els usuaris de Tor volen dirigir l'IRC, el correu electrònic, les aplicacions personalitzades i molt més, no només el trànsit web. SOCKS5 també passa noms de domini al servidor intermediari, cosa que permet a Tor resoldre'ls dins de la xarxa en lloc de filtrar la cerca localment.
Els SOCKS poden gestionar UDP?
SOCKS5 va afegir una ordre associada a UDP que permet al client tunelitzar datagrames UDP a través del servidor intermediari. El suport és desigual: moltes implementacions del servidor SOCKS només fan TCP, però les especificacions hi són, i és com Tor i Shadowsocks gestionen el DNS basat en UDP.
Hauria de preferir SOCKS5 o una VPN?
Per a la privadesa de tot el dispositiu, una VPN: ho túnel tot i xifra l'enllaç. Per tunelitzar una aplicació específica o per encadenar amb Tor, SOCKS5 és l'eina adequada. Els dos són complementaris, no competitius.
Explicació dels proxies SOCKS: com funcionen SOCKS4, SOCKS5 i SOCKS sobre TLS