HTTPSSHSMTPUDPCUSTOMSOCKS5:1080INTERNET

SOCKS Proxy

10 min prečítanévytváranie sietí

SOCKS je proxy server bez ohľadu na protokol. Tam, kde servery proxy HTTP rozumejú iba webovému prenosu, server proxy SOCKS vytuneluje akékoľvek pripojenie TCP (av SOCKS5, UDP) bez akýchkoľvek otázok. Táto všeobecnosť je dôvod, prečo SSH dodáva podporu SOCKS hneď po vybalení, prečo Tor odhaľuje poslucháča SOCKS5 a prečo ho takmer každý nástroj na ochranu osobných údajov, ktorý chce posielať svojvoľný aplikačný prenos, ho nakoniec používa.

Celé telo článku je uvedené v angličtine nižšie.

SOCKS ("Socket Secure") bol navrhnutý v MIPS Computer Systems na začiatku 90-tych rokov s cieľom poskytnúť hostiteľom s firewallom čistý spôsob, ako sa dostať do vonkajšieho sveta. Namiesto analýzy každého aplikačného protokolu tak, ako to robí HTTP proxy, server SOCKS len otvára TCP spojenia v mene klienta a premiešava bajty tam a späť. Bez ohľadu na protokol, ktorý je na vrchu vrstvený – HTTP, SMTP, IRC, vlastný binárny kód – funguje bez zmeny.

SOCKS4 vs SOCKS5

SOCKS4, štandardizovaný v roku 1992, podporuje iba IPv4 a TCP a nemá žiadnu autentifikáciu. Dnes je v podstate zastaraný, ale stále sa bežne používa v staršom softvéri.

SOCKS5, definovaná v RFC 1928 (1996), je verzia, ktorá sa aktívne používa. Pridáva:

  • IPv6 cieľové adresy
  • Názov-domény ciele (rozlišuje ich server proxy, nie klient – dôležité pre súkromie)
  • password sú bežné metódy jeden)
  • UDP pridružený — riadiaci kanál, ktorý klientovi umožňuje tunelovať datagramy UDP, užitočné pre DNS, VoIP a herné protokoly Server SOCKS na svojom načúvacom porte (zvyčajne 1080).
  • Client odošle pozdrav zoznam podporovaných metód autorizácie.
  • Server vyberie jednu a odpovie.
  • Ak bola vykonaná autorizácia,5 ClX odošle klient a server45 ClXPLZ PLZ Požiadavka CONNECT s názvom cieľového hostiteľa a portu.
  • Server otvorí toto TCP spojenie, odpovie s úspešnou odpoveďou a naviazanou adresou a potom sa všetko, čo klient napíše, preposiela do cieľa a naopak. SOCKS nie sú vhodné pre latenciu, ale sú jednoduché.

    SOCKS a DNS: odkiaľ pochádzajú úniky

    Jednou jemnou vlastnosťou SOCKS5 je, ako je pomenovaná destinácia. Požiadavka CONNECT ho môže pomenovať IPv4, IPv6 alebo názov domény. Ak klient odošle IP, klient vykonal vyhľadávanie DNS lokálne – a ak ste sa pokúšali skryť za proxy, váš lokálny prekladač práve videl názov. Ak klient odošle doménu , proxy to vyrieši, čo používatelia Tor chcú.

    Toto je hlavná príčina nespočetných únikov DNS: aplikácie nakonfigurované pre SOCKS5, ktoré stále rozlišujú názvy hostiteľov lokálne. Curl potrebuje --socks5-hostname namiesto --socks5. Firefox potrebuje network.proxy.socks_remote_dns = true. Náš test úniku DNS zachytáva režim zlyhania.

    SSH dynamické preposielanie

    Jedným z najpraktickejších použití SOCKS je ssh -D 1080 user@server. SSH vytvorí miestneho poslucháča SOCKS5; ktorákoľvek aplikácia, na ktorú sa na ňu odkazuje, má svoj TCP prenos tunelovaný cez reláciu SSH na server , ktorý potom vytvorí odchádzajúce spojenie. Bezplatne šifrovaný end-to-end medzi vami a SSH serverom a smeruje okolo takmer akéhokoľvek obmedzenia lokálnej siete, ktorý umožňuje port 22.

    SOCKS vs HTTP CONNECT

    HTTP CONNECT, sloveso tunelovania používané HTTP proxy pre HTTPS. Obe sú funkčne podobné tunelu SOCKS. Rozdiely:

    • HTTP CONNECT beží cez HTTP, takže zdedí HTTP autentifikáciu a je vhodný pre firewall na porte 80 alebo 443.
    • SOCKS je vyhradený protokol na vyhradenom porte s čistejšou podporou UDP a bohatším overením pomocou CONNECT intercepted. filtre podporujúce HTTPS; SOCKS je pre nich viac nepriehľadný.

    SOCKS cez TLS

    SOCKS sám o sebe nie je šifrovaný — odkaz klient/proxy je obyčajný text, vrátane výmeny autentifikácie. Na ochranu prepojenia moderné nasadenia zabaľujú SOCKS do TLS alebo ich spúšťajú v tuneli SSH. Shadowsocks zvolil iný prístup: zachoval myšlienku SOCKS5, ale pridal šifrovanie a zahmlievanie podľa pripojenia, aby porazil hĺbkovú kontrolu paketov.

    Kde sú SOCKS vedľa sietí VPN

    A VPN smeruje všetku prevádzku z vášho zariadenia cez tunel. Proxy server SOCKS smeruje iba aplikácie, na ktoré ste namierili. Vďaka tomu sú SOCKS skvelé na selektívne tunelovanie (smerujte iba svoj prehliadač cez Tor, hry nechajte na lokálnom odkaze) a menej skvelé na ochranu celého zariadenia. Niektorí komerční poskytovatelia VPN (Mullvad, IVPN) tiež vystavujú koncové body SOCKS5 vo svojich sieťach, takže môžete smerovať jedinú aplikáciu bez toho, aby ste spustili plnú sieť VPN.

Často kladené otázky

Sú SOCKS5 šifrované?
Nie – SOCKS5 je transportný protokol, nie šifrovací protokol. Autentifikácia aj údaje putujú medzi vami a serverom proxy ako obyčajný text, pokiaľ celú vec nezabalíte do TLS alebo nespustíte cez tunel SSH. Nepoužívajte SOCKS v nepriateľských sieťach bez vonkajšej vrstvy šifrovania.
Aký port používa SOCKS?
Podľa konvencie 1080. Nie je to náročná požiadavka a mnohé nasadenia používajú iné porty – pribalený poslucháč SOCKS5 od Toru je na 9050 – ale 1080 je predvolená hodnota priradená IANA.
Prečo Tor používa SOCKS5 namiesto HTTP?
SOCKS5 dokáže tunelovať akýkoľvek TCP protokol, nielen HTTP. Používatelia Tor chcú smerovať IRC, e-mail, vlastné aplikácie a ďalšie – nielen webovú prevádzku. SOCKS5 tiež odovzdáva názvy domén proxy, čo umožňuje Tor ich vyriešiť v rámci siete, namiesto toho, aby lokálne prepúšťal vyhľadávanie.
Zvládnu SOCKS UDP?
SOCKS5 pridal príkaz spojený s UDP, ktorý umožňuje klientovi tunelovať datagramy UDP cez proxy. Podpora je nerovnomerná – mnohé implementácie serverov SOCKS používajú iba TCP – ale špecifikácia existuje a Tor a Shadowsocks spracovávajú DNS založené na UDP.
Mám uprednostniť SOCKS5 alebo VPN?
Pre súkromie celého zariadenia VPN – všetko tuneluje a zašifruje odkaz. Na tunelovanie jednej konkrétnej aplikácie alebo na reťazenie s Torom je SOCKS5 tým správnym nástrojom. Tieto dve veci sa dopĺňajú, nekonkurujú si.
Vysvetlenie proxy SOCKS: Ako fungujú SOCKS4, SOCKS5 a SOCKS cez TLS