Каким образом работать с системой WebMoney через прокси сервер? Возможны несколько вариантов:
1. Сделать соксификацию программы WM Keeper.
2. Подменить адреса центров сертификации на локальные и сделать port mapping через прокси.
3. Использовать WM Keeper Light.
Поскольку WM Keeper Classic не умеет работать с прокси, нам необходимо произвести его соксификацию. Как это сделать, читайте в нашем proxy FAQ. Однако учтите, что не все программы поддаются соксификации: этот метод может не сработать. Вы можете попробовать использовать различные программы для соксификации (не ограничиваясь только SocksCap)
Вначале нужно определить IP адрес центра сертификации. Для этого нужно открыть командную строку Windows (или Сеанс MS-DOS) и набрать:
ping wmsc.webmoney.ru
После чего записать IP адрес (4 числа, разделенных точками) центра сертификации.
После этого необходимо внести изменения в файл hosts. В WindowsNT/2000/XP/2003 он размещается в подкаталоге System32/drivers/etc, в Windows9x - в корневом каталоге системы (Все пути даны относительно корневого каталога системы - это обычно c:\windows или c:\winnt ). В Windows 9x вместо файла hosts может находиться только файл hosts.sam. В этом случае создайте файл hosts и скопируйте в него содержимое файла hosts.sam.
Добавьте в конец файла hosts новые строки:
127.0.0.1 wmsc.webmoney.ru
127.0.0.1 wmsc1.webmoney.ru
127.0.0.1 wmsc2.webmoney.ru
После перезагрузки WebMoney Keeper при обращении к центрам сертификации будет обращаться на Ваш же компьютер (127.0.0.1 - это локальный адрес). WebMoney Keeper использует порт 2802 и Вам нужно "отмаппить" этот локальный порт на IP адрес центра сертификации (который у Вас уже записан). В качестве локального порта указывайте порт 2802.
Как организовать port mapping через прокси сервер - читайте в нашем proxy FAQ.
Запустите WM Keeper Classic. Если все настроено правильно, он должен подсоединиться к серверу сертификации. При возникновении ошибки сообщение о ней можно прочитать в поле "Errors ..." закладки "System".
3 Использование WM Keeper Light
Вы также можете использовать WM Keeper Light, работа с которым осуществляется через браузер (например Internet Explorer или Opera). В этом случае Вам достаточно в браузере прописать анонимный прокси сервер (который поддерживает работу с https:// адресами) - и этого достаточно для того, чтобы вся Ваша работа с системой WebMoney была полностью анонимна.
В статье использованы материалы с сайта WebMoney.
В случае использования метода CONNECT (подключение к https:// сайтам, построение прокси в цепочку, port mapping через прокси и т.д.), либо в случае использования SOCKS proxy:
- полностью запретить использование метода CONNECT (или отключения SOCKS proxy), тогда не будет работать ICQ и нельзя будет подключаться к любым https:// сайтам;
- запретить подключение через прокси к определенным серверам (например login.icq.com, и т.д.);
- запретить подключение через прокси к определенным портам, например: на 25-й порт (SMTP), на 6667 порт (IRC), на порт 5190 (ICQ);
- запретить подключение через прокси к любым портам кроме указанных, например: кроме 443 (тогда это будет HTTPS proxy).
Чего прокси не может делать
- Использовать эвристический анализатор - то есть производить семантический анализ содержимого страниц и запрещать ВСЕ сайты, содержащие статьи на определенную тему, независимо от ключевых слов.
- При использовании метода CONNECT (или в SOCKS proxy) - фильтровать передаваемую информацию (скажем блокировать страницы по определенным ключевым словам).
- Пропускать обратные соединения из интернета (SOCKS 5 это может делать, но это тоже нетривиальная задача).
- и многое многое другое
Резюме: прокси сервер - это компьютерная программа и, как любой программе, ему присущи как достоинства, так и недостатки. Если администратор настроил прокси и забыл о нем, то прокси сервер почти всегда можно "обойти". В противном случае Ваши попытки обхода прокси - это борьба с системным администратором, и любые Ваши решения в этой области будут временными - пока системный администратор не обнаружит очередную "дыру" у прокси и не "заткнет" ее.
Anti-proxy
Как Вы уже знаете, существуют анонимные proxy, используя которые Вы можете анонимно путешествовать по Internet. А существуют ли способы "вычислить" посетителя, пользующегося анонимными proxy серверами?
Да, существуют. Имеются средства, позволяющие как определить посетителя, который пользуется разными анонимными proxy, так и определить Ваш IP адрес, даже если Вы используете анонимный proxy сервер.
Cookies
На первый взгляд, cookies не имеют никакого отношения к proxy. Cookie - это небольшая порция информации, которую сервер может передавать клиенту в дополнение к запрошенной web-странице. Эту дополнительную информацию браузер клиента сохраняет у себя и выдает по запросу сервера. Cookies могут быть как на время одной сессии (после чего они удаляются), так и постоянно храниться на компьютере клиента.
Для чего нужны cookies? К примеру, при входе на сайт у Вас запрашивается пароль (скажем, на почте). После ввода пароль сохраняется в cookies и при переходе со страницы на страницу (когда Вы читаете сообщения) вместо того чтобы каждый раз спрашивать у Вас пароль, сервер берет его из cookies.
Что дает cookie для определения proxy? IP адрес с помощью cookie не определить. Однако, при первом входе на web сайт, IP адрес клиента (определенный сервером, т.е. IP proxy) сервер может сохранить в cookies. А когда Вы в следующий раз входите на сайт, сервер вновь определяет Ваш IP и сравнивает его с сохраненным в cookies. И если IP адреса (старый и новый) различаются, сервер "может сделать выводы". И если Вы не запретите у себя cookies, никакой proxy Вам не поможет (анонимайзеры могут запретить cookies прямо у себя, не пропуская их к Вашему компьютеру).
JavaScript / VBScript
Это специальные подпрограммы (скрипты), которые выполняются на компьютере пользователя. Поэтому как Вы ни настраивайте браузер (если только Вы не запретите выполнение активных сценариев - этих скриптов), Ваш реальный IP адрес скрыть не удастся. Эти скрипты являются простыми программами и обладают довольно ограниченным набором функций, однако теоретически они могут определить Ваш IP и множество различных настроек Вашего браузера. Кроме того, они (в принципе) могут даже изменить настройки Вашего браузера!
Защита от этих скриптов является многоступенчатой, Вы можете ограничивать доступ скриптов к тем или иным возможностям браузера. Однако наиболее надежным вариантом защиты является полный запрет выполнения активных сценариев. Запретить скрипты Вы можете и прямо в анонимайзерах.
Java
В отличие от JavaScript, Java является полноценным языком программирования и (как следствие) программы на Java обладают значительно более широкими возможностями (в частности, это касается определения настроек Вашего браузера и различных функций для работы с Internet). То есть программы на Java могут легко определить Ваш IP и практически любые настройки браузера.
Что касается защиты от определения Вашего IP адреса с помощью Java, то тут все сложнее: самым надежным (и вероятно практически единственным) способом является полный запрет Java, поскольку Java имеет очень много различных сетевых функций и проблематично запретить их все.
ActiveX и plug-ins
ActiveX и plug-ins - это подключаемые к браузеру модули и различные дополнения для браузера. Эти модули являются на самом деле полноценными программами, которые выполняются на компьютере пользователя. Поэтому они обладают гораздо более широкими возможностями, чем Java и JavaScript. Они могут легко определить любые настройки браузера, "вычислить" Ваш реальный IP адрес, и даже легко изменить настройки proxy!
Защитой от них является полный запрет ActiveX и запрет автоматической установки plug-ins.
RBL
Существует еще один довольно эффективный способ "вычислить" proxy сервер. Он не дает 100% гарантии (не все прокси можно определить таким образом), однако от него нельзя защититься, меняя любые настройки на своем компьютере.
В чем суть проверки proxy по RBL? В Intenet существуют так называемые "черные списки" ("блеклисты", RBL - Realtime Blackhole List), которые изначально были предназначены для борьбы со спамом (достаточно сделать поиск в Яндексе по фразе "что такое RBL", чтобы узнать об этом подробнее). В настоящее время в эти RBL вносятся не только SMTP сервера (через которые можно рассылать спам), но и многие прокси сервера (через которые также можно рассылать спам). Эти списки являются (как следует из названия: RBL - realtime) постоянно обновляемыми и наиболее оперативными (прокси сервер может попасть в них в течение нескольких часов после того, как через него был разослан спам).
Как узнать, находится ли прокси в этих списках? Очень просто: надо определить IP адрес прокси, а потом сделать поиск в каждом из RBL (этих списков очень много, так же, как, например, поисковых систем). Примеры RBL:
www.spamcop.net ,
www.mail-abuse.com , opm.blitzed.org , dsbl.org и т.д.
Как сайт узнает, что конкретный прокси сервер - в одном из RBL? Это довольно просто. Прежде всего: когда Вы открываете сайт, сайту становится известен IP адрес клиента (подробнее об этом читайте в статье "Анонимность прокси"). Клиент (в случае, если Вы подключаетесь через прокси) - это прокси сервер. Зная IP адрес прокси (для любопытных: это переменная REMOTE_ADDR), сайт посылает запрос на каждый RBL, чтобы узнать, находится ли этот IP в данном "черном списке". Какой запрос посылается? Читайте тут: SpamCop FAQ.
Борьба "брони и снаряда"
Противостояние желающих быть анонимными в Internet с желающими знать все о своих клиентах будет вечным. Будут появляться новые средства для сокрытия информации о своих перемещениях по Сети и будут новые средства, "пробивающие" или "обходящие" эту защиту.
Защититься от определения Вашего IP можно несколькими способами:
1. Запреты
- запретить cookies
- запретить выполнение активных сценариев
- запретить Java
- запретить ActiveX
2. Использовать соксификацию браузера. При этом вся информация, которую отправляет и принимает Ваш браузер (или другая программа), "перехватывается" и направляется на proxy сервер.
3. Использовать "чистые" (т.е. еще не попавшие в RBL, non-RBL) прокси серверы. То есть каждый прокси перед использованием нужно проверить хотя бы в 1-2 (лучше в 10-20) наиболее популярных RBL. Есть специальные программы, которые позволяют проверять прокси на наличие в RBL.
В 1-м случае "пробить" такую защиту очень просто: достаточно построить сайт на основе Java / JavaScript / Cookies (например динамические меню и т.д.). В этом случае при отключении активных сценариев сайт станет просто "нерабочим" (а на web почту с отключенными cookies могут просто не пустить).
Во втором случае нет 100% гарантии, что Ваш IP будет действительно "спрятан". Объясняем подробнее: для определения Вашего IP есть 2 метода:
Java программа обращается напрямую в Internet, минуя proxy (она это может, даже если Ваш браузер настроен на работу через proxy) и сервер "сообщает" программе, какой у Вас реальный IP адрес
анализируются настройки Windows и IP адрес выявляется из настроек
Так вот, соксификация может защитить от 1-го способа определения IP, но не от 2-го!
В третьем случае, если IP адрес все-таки имеется в RBL (и сайт проверяет наличие IP клиента в различных RBL), то не поможет никакая анонимность прокси (даже high anonymous / socks4 / socks5), запрет ActiveX / Java / .... Главное - чтобы IP адрес прокси сервера был "чистым" ("не засветившимся" в "черных списках"). На данный момент (начало 2005 года) очень немногие сайты проверяют наличие IP адреса в RBL.
Так что же делать, если очень нужно и анонимным быть и чтобы Java / JavaScript / ActiveX были?
Давайте рассмотрим, в чем именно состоит суть задачи: чтобы, с одной стороны, анализируя настройки компьютера, нельзя было узнать реальный внешний IP адрес, и, в то же время, чтобы нельзя было подключиться в Internet напрямую (минуя анонимный proxy сервер).
Возможны 2 варианта решения этой проблемы:
1. Вам нужно организовать корпоративную сеть, со внутренними IP адресами (192.168.1.x или что-то в этом роде). Корпоративный proxy сервер (это другой компьютер и он имеет 2 IP адреса: внутренний и внешний) переадресует все запросы на анонимный бесплатный прокси (для того, чтобы это сделать, Вам нужны полномочия (и знания) системного администратора). Минуя корпоративный прокси, в Internet подключиться невозможно (поскольку у компьютера нет внешнего IP адреса), анализируя настройки компьютера - тоже. Если даже Java / ActiveX скрипт определит (и "выдаст" web серверу) Ваш внутренний IP адрес (192.168.1.x), это не раскроет Вашу анонимность. В общем, можно считать это 100% анонимностью.
2. Вам необходимо установить на своем компьютере Firewall, в котором запретить все соединения с Internet из браузера (кроме как с тем прокси сервером, который Вам нужен). При этом желательно сделать port mapping на этот бесплатный прокси сервер, а в браузере прописать "прокси" 127.0.0.1 и локальный порт из port mapping. Но тут возможна проблема - поскольку у Вас реальный и внешний IP адрес, он может быть передан серверу (скрипт проанализирует настройки Windows и "выдаст" Ваш IP).
И последнее: любой proxy сервер (а тем более бесплатный) ведет лог-файл (протокол своей работы), в котором подробно расписано, какой IP адрес в какое время куда обращается. И человек (или организация), который располагает соответствующими полномочиями (доступом к любой информации) и запасом времени, всегда сможет выяснить, куда Вы ходили и что Вы делали, даже если Вы будете использовать цепочки из 10 анонимных proxy серверов в разных концах планеты.
Анонимность proxy
Обмен информацией в Internet осуществляется по модели "клиент-сервер". Клиент посылает запрос (какие файлы ему нужны), а сервер посылает ответ (запрошенные файлы). Для тесного взаимодействия (так сказать, "полного взаимопонимания") между клиентом и сервером клиент посылает дополнительную информацию о себе: версию и название операционной системы, конфигурацию браузера (включая название и номер версии Вашего браузера) и т.д. Эта информация может быть необходима серверу, чтобы знать какую web страницу предоставить клиенту: для разных конфигураций браузеров могут быть разные варианты web-страниц. Однако, поскольку обычно содержимое web страниц не зависят от браузеров, имеет смысл скрыть от web сервера часть этой информации.
Какая информация передается web серверу (эту информацию в основном передает браузер, однако часть информации может добавлять от себя прокси сервер):
- название и версия операционной системы
- название и версия браузера
- настройки браузера (разрешение экрана, глубина цвета, поддержка java / javascript, ...)
- IP адрес клиента (если используется proxy, то заменяется proxy сервером на IP proxy)
- используется ли proxy сервер (если используется proxy, то IP клиента - это IP proxy) - добавляется proxy сервером
- если используется proxy, то Ваш реальный IP адрес - добавляется proxy сервером
- другая информация
Важнейшей частью этой информации (и "совершенно ненужной" web серверу) является информация о IP адресе и о факте использования proxy. Ведь используя Ваш IP, о Вас можно узнать очень многое:
- страну, где Вы находитесь
- город
- название Вашего провайдера и его e-mail
- Ваш физический адрес! (иногда)
Информация, передаваемая клиентом серверу, доступна для сервера в виде так называемых переменных окружения (environment variables). Каждая единица этой информации является значением какой-либо переменной. Если же какая-то часть информации не передается, то соответствующая ей переменная будет пустая (ее значение будет неопределенным).
Какие бывают переменные окружения:
REMOTE_ADDR - IP адрес клиента
HTTP_VIA - если не пустая, значит используется proxy. Значение - адрес (или несколько адресов) proxy сервера.
HTTP_X_FORWARDED_FOR - если не пустая, значит используется proxy. Значение - реальный IP адрес клиента (Ваш IP).
HTTP_ACCEPT_LANGUAGE - какой язык используется в браузере по умолчанию (на каком языке лучше отображать страницу)
HTTP_USER_AGENT - так называемый "агент пользователя". Для большинства браузеров это будет Mozilla. Кроме того, тут же указывается название и версия браузера (например MSIE 5.5) и операционная система (например Windows 98)
HTTP_HOST - имя web-сервера.
Здесь перечислена лишь малая часть переменных окружения. На самом деле их гораздо больше (DOCUMENT_ROOT, HTTP_ACCEPT_ENCODING, HTTP_CACHE_CONTROL, HTTP_CONNECTION, SERVER_ADDR, SERVER_SOFTWARE, SERVER_PROTOCOL, ...) и их количество может зависеть от конфигурации (настроек) как сервера, так и клиента.
Пример значений переменных:
REMOTE_ADDR = 194.85.1.1
HTTP_ACCEPT_LANGUAGE = ru
HTTP_USER_AGENT = Mozilla/4.0 (compatible; MSIE 5.0; Windows 98)
HTTP_HOST =
www.webserver.ru HTTP_VIA = 194.85.1.1 (Squid/2.4.STABLE7)
HTTP_X_FORWARDED_FOR = 194.115.5.5
Анонимность при работе в Internet определяется тем, какие из переменных окружения "скрываются" от web сервера.
Для фильтрования передаваемой серверу информации существуют системы, называемые Firewall (брандмауэры). Proxy сервер также может выполнять (в определенной степени) роль Firewall, "удаляя" информацию о IP адресе клиента.
Если proxy сервер не используется, то переменные окружения выглядят следующим образом:
REMOTE_ADDR = Ваш IP
HTTP_VIA = не определена
HTTP_X_FORWARDED_FOR = не определена
По тому, какие переменные окружения подменяют / "скрывают" proxy серверы, существуют несколько видов proxy.
Прозрачные (обычные, transparent) proxy
Они не скрывают информацию о Вашем IP адресе:
REMOTE_ADDR = IP proxy
HTTP_VIA = IP или имя proxy (используется proxy сервер)
HTTP_X_FORWARDED_FOR = Ваш IP
Функцией таких proxy серверов не является повышение Вашей анонимности в Internet. Они предназначены для кэширования информации, организации совместного доступа в Internet нескольких компьютеров и т.д.
Анонимные прокси (anonymous proxy)
Все proxy серверы, тем или иным способом скрывающие IP адрес клиента, называют анонимными. Хотя существуют несколько вариантов анонимных proxy, как правило, говоря "анонимный proxy сервер" имеют в виду их все, не различая подвиды.
простые анонимные прокси (anonymous proxy)
Эти proxy серверы не скрывают того факта, что используется proxy, однако они подменяют Ваш IP на свой:
REMOTE_ADDR = IP proxy
HTTP_VIA = IP или имя proxy (используется proxy сервер)
HTTP_X_FORWARDED_FOR = IP proxy
Эти proxy наиболее распространены из всех видов анонимных proxy серверов.
искажающие proxy (distorting proxy)
Как и простые анонимные proxy серверы, эти proxy не скрывают того факта, что используется proxy сервер. Однако IP адрес клиента (Ваш) подменяется на другой (в общем случае произвольный, случайный) IP:
REMOTE_ADDR = IP proxy
HTTP_VIA = IP или имя proxy (используется proxy сервер)
HTTP_X_FORWARDED_FOR = случайный IP
элитные анонимные proxy (high anonymous / elite proxy)
В отличие от других видов анонимных proxy серверов элитные прокси скрывают даже сам факт использования прокси сервера:
REMOTE_ADDR = IP proxy
HTTP_VIA = не определена
HTTP_X_FORWARDED_FOR = не определена
То есть значения этих переменных такие же, как и в ситуации, когда proxy не используется, за исключением очень важной "мелочи": вместо Вашего IP адреса стоит IP адрес proxy сервера.
Резюме
В зависимости от целей, с которыми они создавались, существуют прозрачные и анонимные proxy. Однако учтите, что используя анонимный proxy, Вы скрываете от web сервера только Ваш IP, а вся остальная информация (о конфигурации браузера) остается доступной!