See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
SOCKS — Википедия

SOCKS

Материал из Википедии — свободной энциклопедии

SOCKSсетевой протокол, который позволяет клиент-серверным приложениям прозрачно использовать сервисы за межсетевыми экранами (фаерволлами). SOCKS — это сокращение от «SOCKetS» (сокеты, гнёзда).

Клиенты за межсетевым экраном, нуждающиеся в доступе к внешним серверам, вместо этого могут соединяться с SOCKS прокси сервером. Такой прокси сервер контролирует права клиента для доступа к внешним ресурсам и передаёт запрос к серверу. SOCKS может использоваться и противоположным способом, разрешая внешним клиентам соединяться с серверами за межсетевым экраном (брандмауэром).

В отличие от HTTP прокси серверов, SOCKS передаёт все данные от клиента, ничего не добавляя от себя, то есть с точки зрения конечного сервера, SOCKS прокси является обычным клиентом. Так же SOCKS более универсален (поддерживает все протоколы), зато HTTP прокси кэширует данные и может более тщательно фильтровать контент.

Этот протокол был разработан Дэвидом Кобласом (David Koblas), системным администратором MIPS Computer Systems. После того, как в 1992 году MIPS вошла в состав Silicon Graphics (SGI), Коблас сделал доклад о SOCKS на Симпозиуме по Безопасности Usenix (Usenix Security Symposium), и SOCKS стал публично доступным. Протокол был расширен до четвёртой версии Ин-Да Ли (Ying-Da Lee) из NEC Systems Laboratory.

[править] Протокол SOCKS 4

SOCKS 4 предназначен для работы через фаерволл без аутентификации для приложений типа клиент-сервер работающих по протоколу TCP, таких как TELNET, FTP и таких популярных протоколов обмена информацией, как HTTP, WAIS и GOPHER.

Типичный запрос SOCKS 4 выглядит следующим образом (каждое поле — один байт):

Запрос Клиента к SOCKS-Серверу:

  • поле 1: номер версии SOCKS, 1 байт (должен быть 0x04 для этой версии)
  • поле 2: код команды, 1 байт:
    • 0x01 = установка TCP/IP соединения
    • 0x02 = назначение TCP/IP порта (binding)
  • поле 3: номер порта, 2 байта
  • поле 4: IP-адрес, 4 байта
  • поле 5: ID пользователя, строки переменной длины, завершается null-байтом (0x00)

Ответ Сервера SOCKS-Клиенту:

  • поле 1: null-байт
  • поле 2: код ответа, 1 байт:
    • 0x5a = запрос предоставлен
    • 0x5b = запрос отклонён или ошибочен
    • 0x5c = запрос не удался, потому что не запущен identd (или не доступен с сервера)
    • 0x5d = запрос не удался, поскольку клиентский identd не может подтвердить идентификатор пользователя в запросе
  • поле 3: 2 произвольных байта, должны быть проигнорированы
  • поле 4: 4 произвольных байта, должны быть проигнорированы

[править] Протокол SOCKS 5

SOCKS 5 расширяет модель SOCKS 4, добавляя к ней поддержку UDP, обеспечение универсальных схем строгой аутентификации и расширяет методы адресации, добавляя поддержку доменных имен и адресов IPv6. Начальное установка связи теперь состоит из следующего:

  • Клиент подключается, и посылает приветствие, которое включает перечень поддерживаемых методов аутентификации
  • Сервер выбирает из них один (или посылает ответ о неудаче запроса, если ни один из предложенных методов не приемлем)
  • В зависимости от выбранного метода, между клиентом и сервером может пройти некоторое количество сообщений
  • Клиент посылает запрос на соединение, аналогично SOCKS 4
  • Сервер отвечает, аналогично SOCKS 4

Методы аутентификации пронумерованы следующим образом:

  • 0x00 — аутентификация не требуется
  • 0x01 — GSSAPI
  • 0x02 — имя пользователя / пароль
  • 0x03-0x7F — зарезервировано IANA
  • 0x80-0xFE — зарезервировано для методов частного использования

Начальное приветствие от клиента:

  • поле 1: номер версии SOCKS (должен быть 0x05 для этой версии)
  • поле 2: количество поддерживаемых методов аутентификации, 1 байт
  • поле 3: номера методы аутентификации, переменная длина, 1 байт для каждого поддерживаемого метода

Сервер сообщает о своём выборе:

  • поле 1: Версия SOCKS, 1 байт (0x05 для этой версии)
  • поле 2: выбранный метод аутентификации, 1 байт, или 0xFF, если не было предложено приемлемого метода

Последующая идентификация зависит от выбранного метода.

Запрос клиента:

  • поле 1: номер версии SOCKS (должен быть 0x05 для этой версии)
  • поле 2: код команды, 1 байт:
    • 0x01 = установка TCP/IP соединения
    • 0x02 = назначение TCP/IP порта (binding)
    • 0x03 = ассоциирование UDP-порта
  • поле 3: зарезервированный байт, должен быть 0x00
  • поле 4: тип адреса, 1 байт:
    • 0x01 = адрес IPv4
    • 0x03 = имя домена
    • 0x04 = адрес IPv6
  • поле 5: назначение адреса
    • 4 байта для адреса IPv4
    • первый байт — длина имени, затем следует имя домена
    • 16 байт для адреса IPv6
  • поле 6: номер порта, 2 байта

Ответ сервера:

  • поле 1: номер версии SOCKS, 1 байт (0x05 для этой версии)
  • поле 2: код ответа, 1 байт:
    • 0x00 = запрос предоставлен
    • 0x01 = ошибка SOCKS-сервера
    • 0x02 = соединение запрещено набором правил
    • 0x03 = сеть недоступна
    • 0x04 = хост недоступен
    • 0x05 = отказ в соединении
    • 0x06 = истечение TTL
    • 0x07 = команда не поддерживается / ошибка протокола
    • 0x08 = тип адреса не поддерживается
  • поле 3: байт зарезервирован, должен быть 0x00
  • поле 4: тип последующего адреса, 1 байт:
    • 0x01 = адрес IPv4
    • 0x03 = имя домена
    • 0x04 = адрес IPv6
  • поле 5: назначение адреса
    • 4 байта для адреса IPv4
    • первый байт — длина имени, затем следует имя домена
    • 16 байт для адреса IPv6
  • поле 6: номер порта, 2 байта

[править] Ссылки


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -