SOCKS

SOCKS

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

Содержание

Введение

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

В отличие от HTTP прокси серверов, SOCKS передаёт все данные от клиента, ничего не добавляя от себя, то есть с точки зрения конечного сервера, SOCKS прокси является обычным клиентом. SOCKS более универсален — не зависит от конкретных протоколов уровня приложений (7-го уровня модели OSI) и базируется на стандарте TCP/IP — протоколе 4-го уровня. Зато 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-сервер можно рассматривать как межсетевой экран, поддерживающий протокол SOCKS.

Типичный запрос 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). Поле предназначено для идентификации пользователя (см. Ident)

Ответ Сервера 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 байта

Реализации

  • Sun Java System Web Proxy Server — кеширующий прокси сервер для Solaris, Linux, Windows. Поддерживает HTTPS, NSAPI I/O фильтры, динамическую реконфигурацию и обратный прокси.
  • DeleGate — многофункциональный шлюз прикладного уровня и прокси сервер, работающий на различных платформах. Кроме SOCKS также поддерживает HTTP(S), FTP, NNTP, SMTP, POP, IMAP, LDAP, Telnet, DNS и другие протоколы.
  • 3proxy - легкий прокси-сервер с поддержкой SOCKS-proxy
  • WinGate — многопротокольный прокси сервер с поддержкой SOCKS для Windows.
  • OpenSSH позволяет динамически создавать туннели, заданные через подмножество протокола SOCKS.

См. также

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Полезное


Смотреть что такое "SOCKS" в других словарях:

  • SOCKS — is an Internet protocol that allows client server applications to transparently use the services of a network firewall. SOCKS is an abbreviation for SOCKetS [ [http://www.hummingbird.com/products/nc/socks/faq.html#stand Hummingbird SOCKS FAQ] ]… …   Wikipedia

  • SOCKS — Saltar a navegación, búsqueda SOCKS es un protocolo de Internet que permite a las aplicaciones Cliente servidor usar de manera transparente los servicios de un firewall de red. SOCKS es una abreviación de SOCKetS [1]. Los clientes que hay detrás… …   Wikipedia Español

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

  • Socks — im Briefing Room des Weißen Hauses Betty Currie und Socks …   Deutsch Wikipedia

  • Socks — sobre el pupitre de la Sala de Prensa de la Casa Blanca. Socks (en español: Calcetines, marzo de 1989 20 de febrero de 2009) fue el gato de la familia del Presidente de los Estados Unidos Bill Clinton durante su presidencia. Fue la única mascota… …   Wikipedia Español

  • SOCKS —   [Abk. für Socket Secure Server], ein spezielles Proxy Protokoll, das einem Rechner im »internen Netzwerk« den Zugriff auf Ressourcen im »externen Netzwerk« (z. B. über Internet bzw. TCP/IP Dienste wie ftp, Telnet oder WWW) ermöglicht, ohne dass …   Universal-Lexikon

  • SOCKS — Pour les articles homonymes, voir Socks (homonymie). Pile de protocoles 7.  Application 6.  …   Wikipédia en Français

  • Socks — Pour les articles homonymes, voir Socks (homonymie). Socks sur le pupitre de la Salle de presse de la Maison Blanche. Socks (mars 1989 20 février …   Wikipédia en Français

  • SOCKS — Das SOCKS Protokoll ist ein Internet Protokoll, das Client Server Anwendungen erlaubt, protokollunabhängig und transparent die Dienste eines Proxyservers zu nutzen. SOCKS ist eine Abkürzung für „SOCKetS“. Clients hinter einer Firewall, die eine… …   Deutsch Wikipedia

  • SOCKS —    A proxy protocol that provides a secure channel between two TCP/IP (Transmission Control Protocol/Internet Protocol) systems, usually a Web browser running on an internal corporate intranet and a Web server on the Internet.    SOCKS provides… …   Dictionary of networking


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»