Proxy
Доброго времени суток,в этой статье мы поговорим о том, какие бывают виды прокси, как ими пользоваться и как проверить качество прокси.
Что такое прокси, чем они различаются, виды прокси
В этой статье мы рассмотрим всё самое важное о прокси: что такое прокси, какие бывают виды прокси, чем они различаются. Мы заглянем во внутрь их работы: увидим, как эти прокси раскрывают наш настоящий IP в своих заголовках и научимся самостоятельно перепроверять анонимность прокси.
Прокси — это программа, которая выполняет действие для другой программы, то есть является посредником. Весь этот процесс называется проксированием.
Веб прокси — это разновидность прокси, которые предназначены для выполнения запросов к веб-сайтам и веб-приложениям.
Веб-прокси могут быть использованы для следующих целей:
- ускорения загрузки веб-сайтов;
- тестирования онлайн сервисов;
- обхода ограничений Администратора локальной сети на доступ к определенным адресам веб-сайтов;
- сокрытия реального IP-адреса и анонимного доступа к веб-сайтам;
- получения доступа к веб-сайтам закрытым для просмотра пользователей определенных стран;
- и многих других целей.
На самом деле, что прокси, что веб-прокси — это собирательное название, которое включает в себя много различных программ и протоколов для выполнения данной функции.
Поскольку иногда прокси используются для анонимности и сокрытия реального IP адреса, необходимо чётко представлять как они работают и варианты их настройки, чтобы точно понимать возможные риски.
Зададимся вопросом: использование веб-прокси означат ли, что наш IP адрес обязательно скрыт от сайта, к которому мы обращаемся? Ответим на этот вопрос чуть позже.
Рассмотрим виды прокси с технической точки зрения, а именно по видам протоколов:
HTTP прокси: позволяют посещать веб-сайты и загружать файлы по протоколу HTTP (запросы передаются в виде обычного текста, без шифрования).
HTTPS прокси: (также называются SSL прокси): с этими прокси вы можете просматривать сайты по протоколам HTTP и HTTPS (данные передаются в зашифрованном виде). Со специальным программным обеспечением они могут использоваться с любым протоколом, таким как SOCKS прокси.
Необходимо отметить, что рассмотренные выше прокси не скрывают перед третьей стороной (к которой они делают запрос) тот факт, что к ней обращается прокси. Довольно часто они добавляют HTTP заголовки, характерные для прокси, а иногда даже (в зависимости от настроек) могут показывать в заголовках IP адрес узла, для которого они делают запрос. То есть, использование прокси не означает что ваш IP адрес надёжно скрыт от сайта, к которому вы обращаетесь!
SOCKS 4 прокси: может использоваться с любым TCP/IP протоколом, с любым адресом назначения и портом. В отличие от HTTP-прокси-серверов, SOCKS передаёт все данные от клиента, ничего не добавляя от себя, то есть с точки зрения конечного сервера, данные, полученные им от SOCKS-прокси, идентичны данным, которые клиент передал бы напрямую, без проксирования. SOCKS более универсален, он не зависит от конкретных протоколов уровня приложений и оперирует на уровне TCP-соединений. Зато HTTP-прокси кэширует данные и может более тщательно фильтровать содержимое передаваемых данных.
SOCKS 5: в дополнении к возможностям SOCKS 4, также может использовать UDP протокол, делать DNS запросы и использовать функцию BIND для перенаправления портов, поддерживает доменные имена и адреса IPv6. И, пожалуй, главной отличие-это поддержка аутентификации. То есть можно установить логин и пароль, без которых невозможно пользоваться прокси.
Какой тип прокси выбрать? В первую очередь это зависит от того, какие типы прокси поддерживает программа, которой вы собираетесь пользоваться. Если она поддерживает только один вид прокси, то ответ очевиден. Если поддерживается несколько видов прокси, то предпочтение можно отдать SOCKS 5 как самому универсальному варианту.
Анонимность прокси
Анонимность- это интересный вопрос, в данном случае мы говорим об анонимности для сайта, к которому выполняется запрос. Владелец прокси в любом случае видит IP. Но сам прокси может передавать IP адрес и сайту, для которого делается запрос. Рассмотрим следующую классификацию прокси по анонимности:
Без анонимности: удалённый хост знает ваш IP адрес и знает, что вы используете прокси.
Низкая анонимность (ещё называют прозрачными, транспарентными прокси): удалённый хост не знает ваш IP, но знает, что вы используете прокси.
Средняя анонимность: удалённый хост знает, что вы используете прокси и думает, что знает ваш IP, но этот IP не ваш (это обычно многосетевые прокси, которые для целевого хоста показывают свой входящий интерфейс как REMOTE_ADDR).
Высоко анонимные: удалённый хост не знает ваш IP и не имеет прямых доказательств использования прокси (строк HTTP заголовков, которые любят отправлять прокси). Если такие хосты не отправляют дополнительных строк заголовков, то их можно рассматривать как высоко анонимные. Если анонимный прокси поддерживает keep-alive, то его можно считать крайне анонимным. Тем не менее такие хосты скорее всего являются honey-pot (приманками, для наблюдения за действиями пользователей и выявления новых способов атак и совершённых взломов).
Нужно отметить, что такое разделение по видам анонимности применим только к HTTP прокси. И основывается такое разделение только на том, добавляют ли эти прокси заголовки к вашему запросу или нет — далее мы сможем своими глазами увидеть эти заголовки.
SOCKS4/5 в принципе не может ничего добавить к заголовкам HTTP протокола, поскольку работают на другом уровне (на уровне протокола TCP).
HTTPS (SSL) прокси также не могут добавить никакие заголовки, поскольку HTTPS трафик проходит через них в зашифрованном виде. Тем не менее обычно HTTPS прокси также поддерживают и работу с HTTP — и если с сайта придёт запрос с использованием этого протокола, то прокси может отправить ваш IP адрес в заголовке. Запомним это — эта информация нам очень скоро пригодиться: то есть заголовки можно добавлять только к HTTP трафику, но HTTPS прокси не является гарантией анонимности, поскольку сайт может отправить запрос по HTTP протоколу и мы не знаем, как поведёт себя прокси.
Можно ещё упомянуть другие свойства прокси: аптайм (какую долю времени они доступны, то есть работают), их пропускную способность, принадлежность к стране и другие характеристики.
Как включить прокси
Прокси можно включить на уровне приложения или на уровне операционной системы.
При включении прокси в определённой программе, только она будет выходить в Интернет через прокси, а остальные приложения будут подключаться напрямую.
При включении прокси на уровне операционной системы это не гарантирует, что все программы будут выходить в Интернет через прокси- некоторые программы игнорируют системные настройки прокси.
Включение прокси в веб-браузерах
Браузеры Google Chrome, Opera и Internet Explorer используют одни и те же настройки. Т.е. внесённые изменения будут действовать сразу для всех трёх браузеров. В любом из них перейдите к настройкам Прокси, откроется такое окно:
В окне нажмите «Настройка сети». В открывшемся новом окне поставьте галочку «Использовать прокси сервер для локальных подключений…»:
Станет активной кнопка «Дополнительно», нажмите её. Выберите нужный тип прокси и введите его IP и порт:
Нажмите во всех окнах ОК для сохранения сделанных настроек.
Для изменения настроек в Firefox перейдите в Настройки -> Дополнительные -> Сеть -> Настроить. В открывшемся окне поставьте переключатель на Ручная настройка сервера прокси. Введите IP и порт прокси сервера. Нажмите ОК для сохранения настроек.
Как самому проверить анонимность прокси
Нам необязательно доверять информации об уровне анонимности прокси- мы можем выполнить самостоятельную проверку.
Схема довольно проста:
- мы через прокси делаем запрос к нашему скрипту
- скрипт проверяет, какие заголовки к нему пришли
Для реализации необходим хостинг сайтов- любой, главное, чтобы была поддержка PHP. На этот хостинг закидываем файл с содержимым:
<?php foreach (getallheaders() as $name => $value) { echo "$name: $value<br>"; }
Теперь включаем прокси и открываем этот файл в веб-браузере.
Также есть небольшой сервис, который поможет определить уровень анонимности прокси- http://suip.biz/ru/?act=proxy-checker
Важно открыть адрес именно по HTTP протоколу,а не HTTPS.
Страница покажет все HTTP заголовки, которые пришли с вашей стороны, если имеются специфичные для прокси заголовки, они будут подсвечены красным:
Другие способы выявления прокси
Есть и другие способы косвенного подтверждения, что удалённый пользователь использует средства анонимизации. С ними можно познакомиться на соответствующих онлайн сервисах, которые пытаются найти прорехи в ваших прокси:
Многие способы привязаны к браузеру и JavaScript: утечка DNS, разные временные зоны IP и в браузере и так далее.
Более-менее универсальным способом является сканирование портов удалённого пользователя.
Заголовки запроса браузера Tor
Tor это тоже SOCKS5 прокси. Но SOCKS5 не добавляет какие-либо заголовки. Правда, сам браузер Tor удаляет (точнее, не отправляет) некоторые заголовки для повышения анонимности. Такое поведение выдаёт запросы от браузера Tor.
Сканирование портов тоже может дать намёки на использование Tor'а.
Заключение
В проверке анонимности прокси нет ничего сложного- достаточно просмотреть заголовки, которые приходят на удалённый сервер.
SOCKS прокси ничего не добавляют и не выдают IP адреса пользователя, но при использовании прокси всегда нужно помнить о HoneyPots.
Также нужно понимать, что прокси сервер может вести журнал в котором хранятся IP адреса пользователей.
Пример сайта для получения прокси: https://proxy-daily.com