skip to content

Протокол SOCKS, версия 5

Протокол SOCKS5 [RFC-1928] предназначен для прозрачного и безопасного прохождения сложных протоколов прикладного уровня через межсетевойэкран типа посредник приложений (англ. application proxy). Одним из основных требований к безопасности в этом смысле является строгая аутентификация. SOCKS5 завоевал широкую популярность в Интернете из-за простоты своего функционирования  в сочетании с широкой универсальности выполняемых функций. Протокол разработан для обеспечения функционирования клиент/серверных приложений поверх TCP или UDP (в отличие от версии 4) и работает в виде некоей прослойки между прикладным и транспортным уровнями,  не предоставляя  никаких сервисов сетевого уровня Протокол различает работу TCP- и UDP-клиентов.

Когда TCP-клиент хочет установить соединение с сервером, который досту­пен только через межсетевой экран, он должен установить соединение с управляющим портом SOCKS-сервера (номер порта, зарегистрированный IANA, — 1080). В рамках управляющего соединения сервер обрабатывает запрос (рис. 22.23) и производит следующие действия:

  • согласовывает метод аутентификации клиента;
  • аутентифицирует клиента выбранным методом;
  • в случае необходимости производит трансляцию имени удаленного сер­вера в сетевой адрес (например, DNS-имени в IP-адрес).

Затем SOCKS-сервер устанавливает два соединения вне управляющего со­единения для передачи данных.

  • Соединение между собой и удаленным сервером, в рамках которого он от своего имени будет пересылать все запросы клиента и принимать от­веты на них; порт SOCKS-сервера в сторону удаленного ресурса выби­рается произвольно динамически, и в случае необходимости сообщается клиенту (в рамках управляющего соединения).
  • Соединение между собой и клиентом, в рамках которого клиентом б; передаваться запросы к удаленному серверу и возвращаться SOCKS-сервером ответы на них от удаленного ресурса; порт SOCKS-сервера сторону клиента выбирается произвольно динамически и всегда сообщается клиенту (в рамках управляющего соединения).