Что такое socks прокси
Чем отличается HTTP Proxy от SOCKS Proxy?
HTTP Proxy — это прокси, которые работают по протоколу http, в этом подходе работают обычные функции для процессинга данных такие как кэширование и туннелирование веб-страниц. Обычный http-протокол не защищает IP-адрес клиента.
А вот SOCKS Proxy весь сетевой трафик обрабатывает не направляя его клиенту. Благодаря этому видно более низкое количество хэдеров, что препятствует раскрытию IP-адреса клиента.
HTTP-прокси сейчас более распространен в работе с сайтами в web-браузерах. На данный момент прокси http являются самыми популярными прокси-серверами, используемыми для получения доступа к сайтам с ограниченным доступом. Их самая главная функция — это сокрытие реального IP-адреса клиента, также благодаря кэшированию веб-страниц сайты загружаются быстрее.
Если просто использовать http-протокол, то они не будут анонимными (анонимные proxy сервера), поэтому реальный IP-адрес может быть виден в заголовках передаваемых данных. Http прокси очень популярные, имеют поддержку во всех браузерах и операционных системах и для их настройки не нужно много времени.
SOCKS-протокол сделан для более лучшего использования с другими протоколами. SOCKS-proxy — это прокси сервера, которые не передают заголовки браузера клиента и являются очень гибкими благодаря поддержке сетевых протоколов TCP и UDP. Также при использовании SOCKS-серверов не изменяются заголовки передаваемых данных, что позволяет обходить веб-ресурсы с защитой от прокси.
Конечно, SOCKS был разработан с оглядкой на недостатки http-proxy и позволяют быть более анонимными для веб-ресурсов. Однако ценой является более сложное обслуживание и настройка socks прокси, нужно устанавливать специальные программы и настраивать браузер.
Чем различаются HTTP прокси от Socks5 прокси
При работе с прокси очень важно выбрать правильный тип прокси под ваши задачи, чтобы избежать возможных проблем и достигнуть поставленных целей. Чаще всего используются HTTP прокси и Socks5 прокси. Отличия между ними заключаются в степени анонимности, используемому протоколу, способу передачи данных, используемых при работе прокси, а также в некоторых дополнительных функциях. Давайте разберём каждый тип прокси отдельно.
Особенности HTTP прокси
Начнём с HTTP прокси. При своей работе они используют HTTP протокол, который предназначен для посещения сайтов, загрузки и передачи файлов, и при работе с некоторыми программами, которые используют этот протокол для соединения через прокси. Запросы, выполняемые при работе с HTTP прокси серверами, не отправляются напрямую, а используют прокси сервер как посредника, отправляя запросы от его имени.
Также в HTTP протоколе прокси доступно кэширование, что ускоряет загрузку страниц за счёт использования сохранённых файлов, а ещё контроль и фильтрация сетевого трафика, установка ограничения скорости, блокирование нежелательных ресурсов, сбор статистики путём сохранения логов и.т.д.
Прокси этого протокола отличаются по степени анонимности. Выделяются следующие типы HTTP прокси по анонимности:
Прозрачные прокси, которые не маскируют настоящий IP адрес, а также не скрывают факт использование прокси сервера для доступа к ресурсу. Такие прокси используются редко, в основном, чтобы перенаправить пользователя на другой прокси сервер,
Анонимные Прокси. Передают информацию о том, что используются прокси, однако, ваш IP адрес маскируется и подменяется другим IP адресом, предоставляя надёжный уровень безопасности.
Элитные прокси. Скрывают использование прокси, а также надёжно маскируют IP адрес, что делает их самыми безопасными среди HTTP прокси. Сервер, к которому вы попытаетесь получить доступ будет считать, что ваше подключение осуществляется напрямую, без использования прокси сервера.
Отдельно стоит выделить HTTPS прокси, которые используют протокол SSL. Они представляют собой подвид HTTP протокола, который использует защищённое соединение. Сетевой трафик, передаваемый этими прокси надёжно зашифрован, что гарантирует высочайший уровень анонимности. Как правило, такие прокси используются для обеспечения безопасности банковских сетей, в коммерческих организациях для создания безопасных корпоративных сетей и в прочих подключениях, требующих безопасности. Остальные особенности такие же, как и у HTTP протокола.
Особенности Socks5 прокси
Socks5 прокси, поддерживают следующие сетевые протоколы: HTTP, HTTPS, FTP и их особенности: кеширование, SSL соединение, аутентификация. Помимо этого, прокси протокола Socks5 используют UDP и TPC соединения, что расширяет сферу их применения и делает их наиболее функциональными из современных прокси серверов. Изначально Socks5 протокол предназначался для работы с программным обеспечением. По этой причине, большинство программ поддерживает этот протокол для подключения через прокси. А ещё прокси сервера Socks5 имеют приятную особенность, которая позволяет выстраивать цепочки из прокси серверов, что полезно для решения некоторых задач при работе в интернете.
Если сравнивать прокси HTTP и Socks5, то предпочтительней использовать вторые. Так как они анонимней, поддерживают больше функций, а также работают с любыми сайтами и программами, поддерживающие соединение через прокси. Купить быстрые прокси вы можете у нас на сайте, оформив заказ в личном кабинете.
Комментарии
Добавлять комментарии могут только пользователи! Войти
ПРОКСИ БЛОГ
Что такое прокси? Как установить прокси на адроид? Чем отличается http от socks? Как соблюдать анонимность в интернете? На эти и многие другие вопросы, вы найдете ответы на страницах нашего блога. Помимо этого здесь же мы будем публиковать все связанное с работой сервиса и проводимых акциях. Следите за новостями!
Что такое SOCKS5 протокол и как он работает?
Прокси-сервер — это устройство или программа, которая действует как промежуточное звено для передачи данных в режиме онлайн. В более широком смысле, любое устройство между вами и сервером сайта, который вы посещаете, действует как прокси, но мы склонны применять термин прокси к устройствам, программам и серверам, которые принимают конкретные решения о том, как передавать данные.
Типы прокси
Сервер VPN также является своего рода прокси, как и программное обеспечение VPN, установленное на вашем компьютере. Большинство прокси созданы только для веб-трафика, например, по протоколу HTTP, но программное обеспечение VPN предназначено для перенаправления всех данных, отправляемых вашим компьютером. VPN-соединения обычно зашифрованы, но это может отличаться от поставщика к поставщику, и многие провайдеры предлагают несколько протоколов.
Также существуют разные протоколы для HTTP-прокси. Чаще всего веб-прокси используются для пересылки простых HTTP-запросов. Для тех, кто работает на собственном сервере, чаще всего выбирают apache или nginx — популярные веб-прокси, используемые для предоставления контента посетителям сайта. Примером такого веб-прокси тоже может служить сеть доставки контента.
Что такое протокол SOCKS?
SOCKS (Socket Secure) — очень распространенный прокси-протокол, используемый для маршрутизации пакетов. Он может запускаться в качестве приложения на локальной машине или удаленно на сервере. Его можно использовать для маршрутизации любых данных, но сначала необходимо установить HTTP-соединение между вами и сервером SOCKS.
В отличие от VPN, ваши приложения, такие как браузер или кошелек Bitcoin, должны поддерживать протокол SOCKS, чтобы иметь возможность его использовать. Также можно установить инструмент, который захватывает весь ваш сетевой трафик и отправляет его на прокси-сервер SOCKS, но такие инструменты используются нечасто.
SOCKS был запущен в 1992 году. Появление новых версий не заняло много времени, и его четвертая итерация под названием SOCKS4 используется до сих пор. Последняя версия, SOCKS5, была выпущена в 1996 году и с тех пор работает на бесчисленном количестве компьютеров.
SOCKS5: надежный стандарт
Наиболее вероятное место, где вы столкнетесь с настройками конфигурации SOCKS5, — это сетевые приложения, установленные на вашем компьютере, такие как инструменты обмена файлами, Dropbox, IP-приложения для голосовой связи, приложения для чата и кошельки Bitcoin. Самым распространенным приложением SOCKS5, которое вы могли установить, является Tor.
После запуска Tor на компьютере, вы можете настроить эти SOCKS5-совместимые приложения для маршрутизации всего трафика через сеть Tor, введя данные вашего прокси Tor SOCKS5 (IP и порт: 127.0.0.1:9050). Поскольку Tor работает на вашей локальной машине, вы, скорее всего, не будете настраивать его с помощью аутентификации, но для сервера SOCKS5, работающего на удаленном сервере, это важная функция.
На видео: Создаем свой прокси сервер SOCKS5 для обхода блокировок
SOCKS5 vs VPN
Многие VPN не предлагает прокси SOCKS5 на своих серверах или в приложениях, на самом деле в этом нет особого смысла. Хотя и SOCKS5, и VPN могут предоставить разные IP-адреса, чтобы скрыть ваше местоположение и личность, только VPN предлагает онлайн-безопасность, защищая ваши данные. Приложение VPN направляет весь трафик с вашего устройства через безопасный зашифрованный туннель на сервер VPN, откуда он достигает своего конечного пункта назначения.
Разбор. Как работает SOCKS-прокси: плюсы, минусы, отличия от других технологий
В современном интернете, где все острее встает вопрос обеспечения анонимности, многие люди начинают задумываться о том, какие инструменты для этого им использовать. Здесь часто возникает путаница, поскольку не все разбираются в аспектах существующих технологий. А их огромное количество, и даже решение одной и той же задачи сокрытия реального IP-адреса может быть реализовано по-разному.
Сегодня мы расскажем о технологии SOCKS-прокси, принципах ее работы, преимуществах и отличиях от других инструментов обеспечения анонимности в интернете.
Примечание: это разбор для тех, кто не совсем в курсе деталей работы этой технологии и ее отличий от других инструментов, в данном топике мы не претендуем на глубокий анализ.
Что это такое
SOCKS – это интернет-протокол, который используется для передачи пакетов с данными от сервера к клиенту с помощью промежуточного прокси-сервера. На сегодня это наиболее продвинутая массовая технология для организации прокси. При ее использовании трафик проходит через прокси-сервер, который использует собственный IP-адрес, с которого уже идет финальное подключение к нужному адресату.
Наиболее свежая спецификация протокола – это SOCKS5. Она использует UDP- и TCP-соединения для пересылки трафика. Также в SOCKS5 используются несколько способов аутентификации:
Зачем используют SOCKS-прокси
Существует несколько причин применения SOCKS-прокси, вот две главных:
Обход блокировок
Самое очевидное применение прокси – сокрытие реального IP-адреса с какой-то целью, например для обхода блокировок. Например, если определенный IP-адрес попал в черный список какого-то сайта, до для доступа к нему будет достаточно использовать прокси.
В некоторых случаях таким способом можно преодолеть и блокировки, наложенные государственными органами. Однако здесь есть свои ограничения – при использовании технологии DPI (deep packet inspection), трафик будет блокироваться на уровне интернет провайдера еще до того, как он дойдет до сайта. В этом случае просто прокси не поможет.
Важный момент. Некоторые HTTP-прокси могут работать только с веб-страницами, а SOCKS5 умеет обрабатывать любой трафик. Такие прокси работают на более низком уровне
Повышение скорости и производительности
Другие разновидности технологии SOCKS работали с протоколом TCP, а новые прокси умеют обрабатывать и UDP-трафик.
TCP – это протокол с гарантированной доставкой сообщений между клиентом и сервером. TCP – это протокол с гарантированной доставкой сообщений между клиентом и сервером. Кроме того, это потоковый протокол. В UDP доставка всех пакетов не является гарантированным условием, и это пакетный протокол. Его использование позволяет пересылать трафик быстрее, поскольку не тратится время на повторную отправку недошедших пакетов, и разбор пакетов данных осуществляется быстрее, чем потоков.
SOCKS5-прокси никогда не изменяют заголовки пакетов с данными, что случается при использовании прокси других типов. Это позволяет улучшить производительность при пересылке трафика. Впрочем, здесь есть и свои минусы – заголовки могут содержать и персональные данные пользователей, а значит их, в теории, можно будет узнать.
SOCKS и VPN: в чем разница
Не все прокси-провайдеры пишут об этом, но основная разница при использовании SOCKS и VPN заключается в уровне анонимности, которого можно добиться. В случае VPN все передаваемые данные шифруются, чего нет в случае SOCKS-прокси.
Важно понимать, что прокси позволяют скрывать IP-адрес и решать ряд других задач (вроде обхода блокировок), но сами по себе они не являются инструментом обеспечения приватности. Пользователя прокси можно вычислить и перехватить его трафик.
Однако использование прокси в комбинации с VPN позволяет добиться хорошей скорости работы и лучше защитить чувствительную информацию.
Защищённые прокси — практичная альтернатива VPN
В интернете есть достаточное количество информации по теме шифрования и защиты трафика от вмешательств, однако сложился некоторый перекос в сторону различных VPN-технологий. Возможно, отчасти он вызван статьями VPN-сервисов, которые так или иначе утверждают о строгом превосходстве VPN-решений перед прокси. При этом многие решения тех же VPN-провайдеров, не смотря на маркетинговое позиционирование в качестве VPN, технически являются прокси.
На практике прокси больше подходят для повседневной защиты веб-трафика, не создавая при этом неудобств в виде заметной потери скорости и неизбирательности туннелирования. То есть при использовании хорошего прокси не стоит необходимость его отключать для комфортного пользования интернетом.
В этой статье расказано о преимуществах защищённого прокси перед VPN и предложены различные реализации, готовые к использованию.
В чём различие между VPN и прокси?
VPN — это общее название технологий для объединения внутренних сетей на уровне сетевых пакетов или кадров через соединение, установленное поверх другой сети (чаще всего публичной).
Прокси — это серверное приложение, осуществляющее соединения или запросы от своего имени и сетевого адреса в пользу подключившегося к нему клиента, пересылая в результате ему все полученные данные.
VPN осуществляет пересылку полезной нагрузки, находящейся на третьем или втором уровне сетевой модели OSI. Прокси осуществляют пересылку полезной нагрузки между четвёртым и седьмым уровнями сетевой модели OSI включительно.
И VPN, и прокси могут иметь или не иметь шифрования между клиентом и сервером. Обе технологии пригодны для того, чтобы направить трафик пользователя через доверенный сервер, применяя шифрование по пути до него. Однако, подключение через прокси делает это более прямолинейным способом, не привнося дополнительную инкапсуляцию сетевых пакетов, серые адреса самой VPN сети и изменения таблицы маршрутизации, которые привносит VPN просто лишь для того, чтобы сетевой стек системы пользователя направил трафик через нужный сервер.
Преимущества прокси
Требования к прокси
Выбирая для себя реализацию защищённого прокси-сервера, я отметил несколько критериев, которым она должна удовлетворять:
Особенности obfs4
В спецификации протокола obfs4 есть места, которые вызывают вопросы. В рукопожатии со стороны клиента используется номер часа от начала эпохи UNIX, который потом участвует в HMAC-подписи. Сервер, принимая такой пакет от клиента проверяет его, подставляя номер часа по своему времени. Если всё верно, то отвечает своей частью рукопожатия. Для борьбы с разбросом часов сервер должен ещё проверять предыдущий и следующий час.
Зная такое характерное поведение, можно проверить сервер на границе следующего и послеследующего часа, воспроизведя одно из прошлых записанных рукопожатий со стороны клиента. Если сервер перестанет отвечать своей частью рукопожатия в это самое время, то это достаточное основание, чтобы судить, что сервер обслуживает протокол obfs4.
Судя по всему, автор со временем осознал эту проблему и в коде obfs4 реализована защита от обнаружения через воспроизведение. В спецификации она нигде не описана.
Однако, такая защита наоборот упрощает работу по блокировке протокола: сетевому фильтру достаточно в случае сомнений задержать отправку рукопожатия от клиента, перехватив её, а затем отправить сообщение с рукопожатием первым. Таким образом он спровоцирует защиту от воспроизведения уже против клиента, вынуждая сам сервер блокировать клиента.
Следующий момент, вызывающий сомнения это формат «кадра» с данными. Выглядит он следующий образом:
Первые два байта каждого кадра это длина пакета, гаммированная с ключом, который вычисляется от предыдущих ключей. Как он вычисляется ключ не столь важно, главное, что настоящая длина пакета подвергается операции побитового исключающего ИЛИ каким-то ключом. Это значит, что можно инвертировать бит в этой части данных и подмена не будет сразу замечена. Если инвертировать младший значащий бит этого поля, то длина кадра станет либо на единицу меньше истинной, либо на единицу больше. В первом случае это приведёт к сбросу соединения через небольшое случайное время из-за ошибки распаковки NaCl secretbox.
Второй случай более интересный: сервер будет ждать ещё один байт для того, чтобы начать распаковку криптобокса. Получив ещё ровно один байт он также сбросит соединение из-за ошибки распаковки криптобокса. Это поведение можно считать специфичным для obfs4 и можно судить, что мы с высокой вероятностью имеем дело с ним. Таким образом, удачно разрушив одно из соединений клиента, можно с примерно 50%-ным шансом обнаружить obfs4.
Конечно, определение границ одного кадра в потоке тоже может представлять непростую задачу, но нет чётких гарантий, что нерешаемую. В случае обмена короткими сообщениями границы одного кадра могут совпасть с границами TCP-сегмента.
Ну и последняя особенность заключается в том, что сам по себе протокол внешне не похож ни на один из общепринятых. Он спроектирован с предположением, что DPI играет по правилам и незнакомые протоколы просто не трогает. Суровая реальность может показать, что это не так.
По всем этим соображениям я воздержался от использования obfs4.
TLS и SSH в качестве криптографического транспорта
Разумно было бы воспользоваться стандартными защищёнными сетевыми протоколами вроде TLS или SSH для обёртывания соединений с прокси. Действительно, к таким протоколам обычно не возникает претензий со стороны DPI, потому что ими может быть зашифрован легетимный трафик. Что же касается активных проб со стороны DPI, этот вопрос можно решить в частном порядке, в зависимости от конкретного протокола прокси.
Ниже будут представлены несколько готовых решений на базе этих протоколов, пригодных для повседневной постоянной защиты трафика.
SOCKS5 внутри SSH
Вариант с использованием функции dynamic port forwarding у OpenSSH рассматривался выше, но он имеет большие проблемы со скоростью. Единственный способ избавиться от мультиплексирования соединений — это использовать альтернативную реализацию клиента SSH, который обеспечивал бы каждое проксируемое соединение отдельной SSH-сессией.
Я проделал такую работу и реализовал его: Rapid SSH Proxy. Эта реализация обеспечивает каждое проксируемое соединение отдельной SSH-сессией, поддерживая пул подготовленных SSH-сессий для удовлетворения поступающих запросов подключения с минимальной задержкой.
Следует особо отметить ключевую особенность: никакого стороннего ПО не нужно устанавливать на сервер — rsp работает как ssh-клиент с обычным сервером OpenSSH. Сервером может быть любая unix-подобная операционная система, а так же Windows и Windows Server (в новых версиях OpenSSH теперь доступен в компонентах системы).
Приведу сравнение скорости через сервер в США:
SOCKS5 внутри TLS
В случае с TLS очевидным решением было бы использовать stunnel или аналогичную TLS-обёртку для TCP-соединений с SOCKS5-сервером. Это действительно вполне хорошо работает, но возникает следующая проблема: рукопожатие TLS для каждого нового соединения занимает дополнительное время и появляется заметная на глаз задержка при установлении новых соединений из браузера. Это несколько ухудшает комфорт при веб-серфинге.
Для того, чтобы скрыть эту задержку, я подготовил специализированную замену stunnel на клиенте, которая поддерживает пул уже установленных, готовых к запросу TLS-соединений. Даже целых два — первый из них послужил прототипом:
HTTP-прокси внутри TLS aka HTTPS-прокси
Есть небольшая путаница в отношении сочетания слов «HTTPS» и «прокси». Есть два понимания такого словосочетания:
Примечательно, что ни в одном браузере нет простой возможности задать в настройках HTTPS-прокси через пользовательский интерфейс (то поле HTTPS-прокси, которое там есть, как раз относится к первому случаю). Но это не представляет собой большой трудности.
Поперебирав различные готовые варианты, я решил написать свой HTTP(S) прокси-сервер: dumbproxy.
Ключевой особенностью получившегося решения является то, что современные браузеры (Firefox и семейство Chrome, включая новый MS Edge) могут работать с ним без какого-либо дополнительного ПО на клиенте (см. руководство по настройке клиентов).
Следует отметить особенности реализации в отношении противодействия активным пробам со стороны DPI. HTTP-прокси легко распознать, подключившись к нему и осуществив попытку какого-либо запроса стороннего ресурса. Если прокси имеет авторизацию, то по стандарту он должен отвергнуть запрос с кодом 407, специфичным именно для HTTP-прокси, и предложить возможную схему для авторизации. Если прокси работает без авторизации, то он выполнит запрос, чем так же себя выдаст. Есть как минимум два способа решения этой проблемы (и оба они реализованы в dumbproxy).
Первый способ заключается в том, чтобы использовать аутентификацию клиентов по сертификатам ещё на этапе TLS-рукопожатия. Это самый стойкий метод, и это действительно корректная причина, по которой любой обычный веб-сервер мог бы отвергнуть клиента.
Второй способ заключается в том, чтобы скрыть от неавторизованных клиентов код ответа 407, возвращая вместо него любой другой ответ с ошибкой. Это вызывает другую проблему: браузеры не смогут понять, что для прокси требуется авторизация. Даже если браузер имеет сохранённый логин и пароль для этого прокси, ответ 407 важен для определения схемы авторизации, по которой эти учётные данные должны быть отправлены (Basic, Digest и т. д.). Для этого нужно позволить прокси генерировать ответ 407 на секретный запрос, чтобы браузер мог запомнить схему авторизации. В качестве такого секретного запроса используется настраиваемый секретный домен (не обязательно реально существующий). По умолчанию этот режим выключен. Подробности можно посмотреть в разделе об аутентификации.
Заключение
Я пользуюсь этими решениями уже один год и в итоге они мне полностью заменили VPN, вместе с этим сняв все проблемы, с которыми сопряжено его использование.
Надеюсь, что эта статья добавит к арсеналу читателей новые подходы к защите трафика и будет им полезной.