ZOKNI

A SOCKS  az OSI modell munkamenet-szintű hálózati protokollja , amely lehetővé teszi a csomagok továbbítását a klienstől a kiszolgálóhoz egy proxyszerveren keresztül transzparens módon (láthatatlanul számukra), és így a tűzfalak (tűzfalak) mögötti szolgáltatásokat használja .

A SOCKS5 újabb verziója hitelesítést feltételez, így csak a jogosult felhasználók férhetnek hozzá a szerverhez.

Bevezetés

A tűzfal mögötti ügyfelek , amelyeknek külső szerverekhez kell hozzáférniük, ehelyett SOCKS proxyszerverhez csatlakozhatnak . Egy ilyen proxyszerver kezeli a kliens külső erőforrásokhoz való hozzáférési jogait, és továbbítja a kliens kérését a külső szervernek. A SOCKS fordítva is használható, szabályozva a külső kliensek azon jogait, hogy tűzfal mögött kapcsolódjanak belső szerverekhez .

A HTTP proxytól eltérően a SOCKS minden adatot továbbít a klienstől anélkül, hogy bármit hozzáadna magától, vagyis a végső szerver szempontjából a SOCKS proxytól kapott adatok megegyeznek azokkal az adatokkal, amelyeket a kliens közvetlenül továbbítana. , proxy nélkül. A SOCKS általánosabb, nem függ az alkalmazási réteg konkrét protokolljaitól ( az OSI modell 7. rétege ), és a TCP kapcsolatok szintjén működik ( az OSI modell 4. rétege ). Másrészt a HTTP - proxy gyorsítótárazza az adatokat, és alaposabban tudja szűrni a továbbított adatok tartalmát.

A protokollt David Koblas MIPS rendszergazda fejlesztette ki . Miután 1992-ben a MIPS a Silicon Graphics Corporation részévé vált , Koblas előadást tartott a SOCKS-ról a Usenix Security Symposiumon, és a SOCKS nyilvánosan elérhetővé vált. A protokoll negyedik verzióját Ying-Da Lee fejlesztette ki a NEC -től .

A SOCKS szerverek általában a 1080-as portot használják [1] .

SOCKS 4 protokoll

A SOCKS 4-et úgy tervezték, hogy hitelesítés nélkül működjön tűzfalon keresztül a TCP protokollon keresztül futó kliens-szerver alkalmazásoknál , mint például a Telnet , az FTP és az olyan népszerű kommunikációs protokollok, mint a HTTP , WAIS és Gopher . Lényegében a SOCKS kiszolgálót tűzfalnak tekinthetjük, amely támogatja a SOCKS protokollt.

Egy tipikus SOCKS 4 kérés így néz ki:

Ügyfél kérése a SOCKS szerverhez:

A méret Leírás
1 bájt SOCKS verziószám, 1 bájt (0x04-nek kell lennie ennél a verziónál)
1 bájt Parancs kód:
  • 0x01 = TCP/IP kapcsolat létrehozása
  • 0x02 = TCP/IP port hozzárendelés (kötés)
2 bájt Port száma
4 bájt IP-cím
n+1 bájt Felhasználói azonosító. Változó hosszúságú karakterlánc NUL bájttal (0x00) végződik. A mező célja a felhasználó azonosítása (lásd: Azonosító )

Szerver válasza a SOCKS kliensnek:

A méret Leírás
1 bájt NUL bájt
1 bájt Válasz kód:
  • 0x5a = kérés teljesítve
  • 0x5b = kérés elutasítva vagy érvénytelen
  • 0x5c = A kérés meghiúsult, mert az identd nem fut (vagy nem érhető el a szerverről)
  • 0x5d = A kérés meghiúsult, mert az ügyfélazonosító nem tudja érvényesíteni a kérésben szereplő felhasználói azonosítót
2 bájt Önkényes adatok, figyelmen kívül kell hagyni
4 bájt Önkényes adatok, figyelmen kívül kell hagyni

SOCKS 5 protokoll

A SOCKS 5 [2] a SOCKS 4 protokoll inkompatibilis kiterjesztése, amely támogatja az UDP -t , általános erős hitelesítési sémákat biztosít és kiterjeszti a címzési módszereket, valamint támogatja a tartományneveket és az IPv6 -címeket . A kezdeti kommunikációs beállítások most a következőkből állnak:

A hitelesítési módszerek az alábbiak szerint vannak számozva:

0x00 Nincs szükség hitelesítésre
0x01 GSSAPI
0x02 RFC 1929 felhasználónév/jelszó
0x03-0x7F Az IANA lefoglalta
0x03 PASAS
0x04 Nem foglalt
0x05 Kihívás-válasz (hitelesítés)
0x06 SSL
0x07 NDS hitelesítés
0x08 Többtényezős hitelesítési keretrendszer
0x09 JSON paraméterblokk
0x0A–0x7F Nem foglalt
0x80-0xFE Magánhasználati módokra fenntartva

Az ügyfél első üdvözlése:

A méret Leírás
1 bájt SOCKS verziószám (ennél a verziónál 0x05-nek kell lennie)
1 bájt A támogatott hitelesítési módszerek száma
n bájt Hitelesítési módszerek számai, változó hosszúságú, 1 bájt minden támogatott metódushoz

A szerver jelenti a választását:

A méret Leírás
1 bájt SOCKS verziószám (ennél a verziónál 0x05-nek kell lennie)
1 bájt Kiválasztott hitelesítési módszer, vagy 0xFF, ha nem kínáltak elfogadható módszert

A későbbi azonosítás a választott módszertől függ.

Ügyfél kérése:

A méret Leírás
1 bájt SOCKS verziószám (ennél a verziónál 0x05-nek kell lennie)
1 bájt Parancs kód:
  • 0x01 = TCP/IP kapcsolat létrehozása
  • 0x02 = TCP/IP port hozzárendelés (kötés)
  • 0x03 = UDP port társítás
1 bájt Lefoglalt bájt, 0x00-nak kell lennie
1 bájt Cím típusa:
  • 0x01 = IPv4-cím
  • 0x03 = domain név
  • 0x04 = IPv6-cím
A cím típusától függ Cím hozzárendelés:
  • 4 bájt IPv4-címhez
  • Az első bájt a név hossza, ezt követi a domain név a befejező null nélkül
  • 16 bájt IPv6-címhez
2 bájt Portszám, sorrendben a magastól az alacsonyig ( big-endian )

Szerver válasz:

A méret Leírás
1 bájt SOCKS verziószám (0x05 ennél a verziónál)
1 bájt Válasz kód:
  • 0x00 = kérés teljesítve
  • 0x01 = SOCKS szerverhiba
  • 0x02 = Szabálykészlet által megtagadva a kapcsolat
  • 0x03 = a hálózat nem elérhető
  • 0x04 = a gazdagép nem érhető el
  • 0x05 = a kapcsolat elutasítva
  • 0x06 = TTL lejárat
  • 0x07 = a parancs nem támogatott / protokollhiba
  • 0x08 = a címtípus nem támogatott
1 bájt A bájt lefoglalva, 0x00-nak kell lennie
1 bájt Nyomon követési cím típusa:
  • 0x01 = IPv4-cím
  • 0x03 = domain név
  • 0x04 = IPv6-cím
A cím típusától függ Cím hozzárendelés:
  • 4 bájt IPv4-címhez
  • Az első bájt a név hossza, ezt követi a domain név a befejező null nélkül
  • 16 bájt IPv6-címhez
2 bájt Portszám, sorrendben a magastól az alacsonyig ( big-endian )

Megvalósítások

Lásd még

Jegyzetek

  1. A szolgáltatás neve és a szállítási protokoll portszámának nyilvántartása . IANA. Hozzáférés időpontja: 2016. január 8. Az eredetiből archiválva : 2016. március 3.
  2. Marcus Leech <mleech@bnr.ca>. SOCKS Protokoll  5 -ös verzió . tools.ietf.org. Letöltve: 2020. június 6. Az eredetiből archiválva : 2020. október 18.

Linkek