Всё о прокси: виды, как пользоваться, как проверить качество прокси

Оглавление

1. Что такое прокси, чем они различаются, виды прокси

2. Анонимность прокси

3. Где скачать списки прокси

4. Как включить прокси

5. Как самому проверить анонимность прокси

6. Другие способы выявления прокси

7. Заголовки запроса браузера Tor

Заключение


Что такое прокси, чем они различаются, виды прокси

В этой статье мы рассмотрим всё самое важное о прокси: что такое прокси, какие бывают виды прокси, чем они различаются. Мы заглянем во внутрь их работы: увидим, как эти прокси раскрывают наш настоящий IP в своих заголовках и научимся самостоятельно перепроверять анонимность прокси.

Прокси — это программа, которая выполняет действие для другой программы, то есть является посредником. Весь этот процесс называется проксированием.

Веб прокси — это разновидность прокси, которые предназначены для выполнения запросов к веб-сайтам и веб-приложениям.

Веб-прокси могут быть использованы для следующих целей:

  • ускорения загрузки веб-сайтов;
  • тестирования онлайн сервисов;
  • обхода ограничений Администратора локальной сети на доступ к определенным адресам веб-сайтов;
  • сокрытия реального IP-адреса и анонимного доступа к веб-сайтам;
  • получения доступа к веб-сайтам закрытым для просмотра пользователей определенных стран;
  • и многих других целей.

На самом деле, что прокси, что веб-прокси — это собирательное название, которое включает в себя много различных программ и протоколов для выполнения данной функции.

Поскольку иногда прокси используются для анонимности и сокрытия реального IP адреса, необходимо чётко представлять как они работают и варианты их настройки, чтобы точно понимать возможные риски.

Зададимся вопросом: использование веб-прокси означат ли, что наш IP адрес обязательно скрыт от сайта, к которому мы обращаемся? Ответим на этот вопрос чуть позже.

Рассмотрим виды прокси с технической точки зрения, а именно по видам протоколов:

HTTP прокси: позволяют посещать веб-сайты и загружать файлы по протоколу HTTP (запросы передаются в виде обычного текста, без шифрования).

HTTPS прокси: (также называются SSL прокси): с этими прокси вы можете просматривать сайты по протоколам HTTP и HTTPS (данные передаются в зашифрованном виде). Со специальным программным обеспечением они могут использоваться с любым протоколом, таким как SOCKS прокси.

Необходимо отметить, что рассмотренные выше прокси не скрывают перед третьей стороной (к которой они делают запрос) тот факт, что к ней обращается прокси. Довольно часто они добавляют HTTP заголовки, характерные для прокси, а иногда даже (в зависимости от настроек) могут показывать в заголовках IP адрес узла, для которого они делают запрос. То есть, использование прокси не означает что ваш IP адрес надёжно скрыт от сайта, к которому вы обращаетесь!

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

Можно ещё упомянуть другие свойства прокси: аптайм (какую долю времени они доступны, то есть работают), их пропускную способность, принадлежность к стране и другие характеристики.

Где скачать списки прокси

Смотрите статью Списки прокси.

Подготовленные списки прокси (спарсенные адреса и порты записаны в удобном для применения формате):

Как включить прокси

Прокси можно включить на уровне приложения или на уровне операционной системы.

При включении прокси в определённой программе, только она будет выходить в Интернет через прокси, а остальные приложения будут подключаться напрямую.

При включении прокси на уровне операционной системы это не гарантирует, что все программы будут выходить в Интернет через прокси — некоторые программы игнорируют системные настройки прокси.

О включении прокси на уровне операционной системы смотрите разделы (в самих статья рассказывается о проксировании трафика через Tor, но настройка прокси идентичная — просто указывайте IP и порт своего прокси):

  1. Настройка мобильного телефона (Android) для использования прокси
  2. Настройка использования прокси в Windows
  3. Настройка использования прокси в Linux
  4. Настройка использования прокси виртуальными машинами VirtualBox

Включение прокси в веб-браузерах

Браузеры 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 заголовки, которые пришли с вашей стороны, если имеются специфичные для прокси заголовки, они будут подсвечены красным:

Как видно, заголовками, которые выдают использования прокси, являются:

X-Proxy-ID: 707650095
X-Forwarded-For: 171.5.240.234
Via: 1.1 192.168.0.254 (Mikrotik HttpProxy)

В них X-Forwarded-For содержит реальный IP пользователя прокси! Заголовок Via содержит какие-то данные о самом прокси — иногда его IP, иногда его локальный IP, хотя может содержать что-угодно.

Реальный IP пользователя могут выдать следующие HTTP заголовки, которые добавляет прокси:

  • X-Forwarded-For
  • X-Real-IP
  • Forwarded

На эти заголовки нужно обращать особое внимание.

Некоторые прокси добавляют типичные заголовки (то есть выдают факт использования прокси), но при этом скрывают настоящий IP пользователя:

Рассмотрим популярные заголовки, которые добавляют прокси:

Forwarded

Раскрывает информацию о клиенте, подключённому к веб-серверу через HTTP прокси. Эта информация меняется или теряется, когда прокси является одним из промежуточных звеньев в запросе.

Примеры заголовка:

Forwarded: for=192.0.2.60;proto=http;by=203.0.113.43
Forwarded: for=192.0.2.43, for=198.51.100.17

X-Forwarded-For

Фактический стандарт для определения исходного IP-адреса клиента, подключающегося к веб-серверу через HTTP-прокси или балансировщик нагрузки. Вытесняется заголовком Forwarded.

Пример заголовка:

X-Forwarded-For: 171.5.240.120

X-Forwarded-Host

Фактический стандарт для идентификации исходного хоста, запрошенного клиентом, в заголовке HTTP-запроса Host, поскольку имя хоста и/или порт обратного прокси-сервера (балансировщика нагрузки) может отличаться от исходного сервера, обрабатывающего запрос. Вытесняется заголовком Forwarded.

X-Forwarded-Proto

Фактический стандарт для идентификации исходного протокола HTTP-запроса, поскольку обратный прокси-сервер (или балансировщик нагрузки) может связываться с веб-сервером с использованием HTTP, даже если запрос к обратному прокси-серверу — HTTPS. Альтернативная форма заголовка (X-ProxyUser-Ip) используется клиентами Google, общающимися с серверами Google. Вытесняется заголовком Forwarded.

Пример заголовка:

X-Forwarded-Proto: https

Via

Информирует конечный сервер о прокси, через который был отправлен запрос. Этот заголовок добавляется прямыми и обратными прокси, он может появиться в заголовках запросов и заголовках ответов.

Примеры реальных заголовков:

Via: 1.1 89.250.19.173 (Mikrotik HttpProxy)
Via: 1.1 vps663608 (squid/3.5.12)
Via: 1.1 sgssl3 (squid/3.4.8)
Via: 1.1 centos-32gb-nbg1-1 (squid/3.5.20)

X-Proxy-ID

Я не нашёл описание этого заголовка — по названию можно понять, что это идентификатор прокси сервера, либо идентификатор конкретного запроса.

Другие способы выявления прокси

Есть и другие способы косвенного подтверждения, что удалённый пользователь использует средства анонимизации. С ними можно познакомиться на соответствующих онлайн сервисах, которые пытаются найти прорехи в ваших прокси:

Многие способы привязаны к браузеру и JavaScript: утечка DNS, разные временные зоны IP и в браузере и так далее.

Более-менее универсальным способом является сканирование портов удалённого пользователя. Суть техники простое: у прокси открыты определённые порты, если при сканировании портов удалённого пользователя удалось найти стандартные для прокси порты, значит запрос пришёл через прокси. Этот сервис также сканирует несколько портов и выводит о них информацию. Пример удачно найденного порта прокси:

Заголовки запроса браузера Tor

Tor это тоже SOCKS5 прокси. Но SOCKS5 не добавляет какие-либо заголовки. Правда, сам браузер Tor удаляет (точнее, не отправляет) некоторые заголовки для повышения анонимности. Такое поведение выдаёт запросы от браузера Tor:

Сканирование портов тоже может дать намёки на использование Tor'а:

Но, самое главное — список IP адреса Tor общедоступен.

Заключение

Как мы увидели, в проверке анонимности прокси нет ничего сложного — достаточно просмотреть заголовки, которые приходят на удалённый сервер.

SOCKS прокси ничего не добавляют и не выдают IP адреса пользователя. Но при использовании прокси всегда нужно помнить о HoneyPots.

Также нужно понимать, что прокси сервер может вести журнал в котором хранятся IP адреса пользователей.

Рекомендуется Вам:

Добавить комментарий

Ваш e-mail не будет опубликован.