14 лет назад 17 августа 2004 в 2:57 84

Это ужасно, но многие сотрудники офисов со строгой корпоративной дисциплиной лишены доступа к личному почтовому ящику, ftp/telnet-клиентам, пейджерам ICQ/IRC, платежным системам WebMoney/Yandex.Money… Им разрешен только веб-серфинг. Мы считаем такие меры серьезным нарушением прав человека и хотим, чтобы угнетенные служащие знали: запреты системного администратора можно обойти.

Прежде всего, можно подключить к офисному ПК свой собственный модем и забыть о проблемах с ограничениями доступа в интернет (против такого “лома” ни один администратор не устоит). Но существуют и более интересные способы, связанные с технологией клиент-серверного туннелирования по протоколу HTTP. Другими словами, клиент упаковывает запросы в допустимые пакеты и направляет их на серверный программный модуль по HTTP-протоколу через локальный прокси-сервер, который их с чистой совестью пропускает.

Затем серверная часть туннеля преобразует полученный пакет в первоначальные запросы и выполняет их уже от своего имени. Все ответы на такие запросы специально пакуются и через туннель по допустимому HTTP-протоколу отсылаются назад в клиент-программу на компьютере пользователя, которая передает их программным приложениям как обычные ответы на запросы. Отметим, что основная цель туннелирования – не скорость, а пробивная способность и трудность блокирования на прокси.

HTTPORT
Ярким представителем технологии HTTP-туннелирования является бесплатная программа HTTPort v.3 (www.htthost.com), написанная российским программистом Дмитрием Двойниковым. Поскольку обычный HTTP-трафик состоит из множества мелких запросов GET, именно на них и был основан протокол этого решения.

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

Интерфейс программы HTTPort выполнен полностью на английском языке, как, впрочем, и сайт самой программы. Это в некоторой степени затрудняет самостоятельную настройку HTTPort, но на помощь приходят заранее заложенные шаблоны для работы с SMTP/POP-серверами Yahoo.com, внешним прокси-сервером, новостным сервером news.microsoft.com и одним IRC-каналом.

Попробуем детально описать процесс установки полноценных отношений, например, программы The Bat!! с бесплатным почтовым сервером mail.rambler.ru (а в скобках дадим инструкции для службы Mail.ru).

Для начала устанавливаем и запускаем программу HTTPort. Выбираем закладку Port mapping и в поле Static TCP/IP port mappings (tunnels) удаляем все заготовленные шаблоны. Жмем кнопку ADD, в новообразовавшемся шаблоне подводим мышь к слову New mapping, правой кнопкой выбираем операцию Edit и вписываем Rambler SMTP (или, например, Mail SMTP).

Кроме того, в поле “Local port” изменяем значение 0 на любой свободный порт, например 9025 (или 1234, или 1235, или 1236… зачем это нужно, вы поймете немного позже). В поле Remote host правим адрес удаленного сервера на pop3.rambler.ru (или smtp.mail.ru для сервиса Mail.ru ). А в значение Remote port вместо 0 внесем стандартный порт любого SMTP сервера – 25 (точно такой же порт и у сервера smtp.mail.ru). Для отправки почты все готово. Теперь настроим прием писем.

Создаем новый туннель под именем Rambler POP. Вместо 0 в поле Local port вносим любой свободный порт, например 9110 (или 2222, или 2223, или 2224…). А вот в Remote host вносим сервер pop3.rambler.ru (а для сервиса Mail.ru , указываем pop.mail.ru). В поле Remote port указываем стандартный порт любого POP сервера – 110 (аналогичное значение и для порта сервера pop.mail.ru). Туннели, нужные для начала работы с The Bat!, созданы. Остается указать местные сетевые настройки для программы HTTPort.

В закладке Proxy в поле HTTP proxy to bypass вписываем имя локального прокси-сервера и его порта (при необходимости указываются логин и пароль для прокси-аутентификации). Как узнать имя прокси-сервера? Можно посмотреть в браузере Internet Explorer в поле ПРОКСИ-СЕРВЕР из меню СЕРВИС > СВОЙСТВО ОБОЗРЕВАТЕЛЯ > ПОДКЛЮЧЕНИЯ > НАСТРОЙКА LAN. Другой вариант – просто спросить у сетевого администратора, поскольку эта информация никак не скрывается и не влияет на безопасность. Кроме того, имеется ряд бесплатных утилит для определения IP-адреса локального прокси-сервера. А вот если в локальной сети используется прямой выход в интернет или FireWall, то оставляем поля раздела HTTP proxy to bypass пустыми.

В свою очередь, в программе The Bat!, в закладке ТРАНСПОРТ, в свойствах почтового ящика (например, pcw@rambler.ru) в полях “SMTP-сервер” и “POP-сервер” вписываем не pop3.rambler.ru (или smtp.mail.ru), а сервер localhost либо внутренний IP-адрес компьютера – 127.0.0.1 (что одно и то же). В качестве порта почтового SMTP сервера вписываем значение 9025 (помните, что именно этот порт нашего компьютера мы задействовали в туннеле Rambler SMTP), в поле порта POP-сервера записываем 9110. Сохраняем настройки и жмем кнопку доставки корреспонденции. (Не забудьте нажать кнопку Start из закладки Proxy программы HTTPort!)

Есть несколько важных замечаний по дальнейшей настройке нескольких почтовых адресов при работе с The Bat!: Если все другие почтовые ящики расположены на сервере mail.rambler.ru (или на проекте Mail.ru), то не надо создавать новых HTTP-туннелей в программе HTTPort. В The Bat! достаточно копировать содержание закладки ТРАНСПОРТ в свойствах почтовых ящиков. Разумеется, стоит лишь менять поля ПОЛЬЗОВАТЕЛЬ (ЛОГИН) и ПАРОЛЬ – править все остальные пункты нет смысла.

Если вы заводите другие почтовые записи на различных почтовых серверах, то нужно создавать новые туннели во вкладке Port mapping и вписывать очередные свободные порты (в нашем случае использовать локальные порты 9025 и 9110 уже нельзя, но есть, скажем, свободные значения 9026 и 9111).

В общем, любую программу и любой клиент можно настроить на работу через заранее созданные туннели. Главное – знать значения портов сервисов (стандартные значения таковы: HTTP – 80, SMTP – 25, POP3 – 110, Telnet – 23, NNTP (новостной сервер) – 119, ICQ – 5190 и т. д.) и помнить, что запрашивать надо не сервер, а заранее отведенный порт своего компьютера (то есть не www.russize.com, а 127.0.0.1:9080 или localhost:9080, где заранее под удаленным хостом (Remote host) замэпен сервер www.russize.com; для телнет-соединения надо будет в командной строке выполнить telnet localhost 9023).

К сожалению, у HTTPort, работающей в обычном режиме, есть один недостаток – медленная скорость работы соединения. Дело в том, что с внешней стороны туннеля стоит серверная часть решения HTTHost и именно она преобразует специальные HTTP-пакеты в необходимые запросы, которые вы делаете, не вникая в сложности технологии туннелирования. Такой публичный сервер, поддерживаемый автором программы HTTPort, всего один, и вы вынужденно делите его пропускную способность с сотнями других пользователей.

Но есть выход – использование программы HTTPort (вернее – серверной ее части HTTHost) на привилегированном сервере, который может создать и поддерживать любой владелец физического или виртуального сервера. Вам останется лишь указать адрес эксклюзивного сервера в поле Use personal remote host at в закладке Proxy программы HTTPort.

С более подробной информацией о разных общедоступных и платных серверах с программой HTTPort можно ознакомиться в разделе FAQ по адресу www.htthost.com/faq.boa. Кстати, там же на английском языке даны указания по настройкам различных программ (включая Donkey, Kazaa, Morpheus, WinMX, ICQ, Messenger, Pegasus, Eudora, FTP, IRC, AOL Instant Messenger, MSN Messenger, NNTP, PCAnywhere, Quake, Counter-Strike) и анонимных путешествий по интернету. Детальнейшие инструкции по подключению электронного кошелька WebMoney в локальной сети через программу HTTPort вы сможете изучить по адресу www.webmoney.ru/proxy_httport2.shtml.

В помощь администратору

Стоит ли администраторам беспокоиться и пытаться нейтрализовать практический эффект нашей статьи? Ответить однозначно сложно, но скорее всего – нет, не стоит. Все попытки изучить локальные логи и вычислить адрес HTTHost сервера несостоятельны. Количество таких серверных модулей постоянно растет, и новые HTTHost-адреса могут появляться ежедневно. Более того, каждый из сотрудников офиса может поставить свой бесплатный персональный модуль HTTHost в домашней локальной сети. А выявление всех домашних серверов HTTHost довольно затруднительно. Да и трафик, создаваемый HTTPort, относительно мал на общем рабочем фоне.

Автоматизировать процесс блокировки серверных частей HTTP-туннелей тоже не получится: на низком уровне, послав запросы в туннель, администратор получит ответы в виде обычных HTML-страничек со странными тегами типа или
.

Можно попробовать перекрыть “кислород” свободы по паттерну доступа. Но в HTTP-туннелях нет особой точности, и запросы появляются с разной периодичностью. Обычно локальный прокси видит нерегулярные, частые пакеты запросов, перемежающиеся с регулярными. Конечно, попытаться блокировать подобный паттерн можно, но это может сломать, например, ту же ICQ, осуществляющую туннелирование самостоятельно.

А учитывая подход протокола SOAP и веб-сервисы, подобный паттерн может оказаться типичным для какого-то важного приложения, работающего через тот же прокси. Кроме того, жизнь не стоит на месте и стоит ожидать скорого появления генератора SOAP-запросов в подобных программах туннелирования.

А теперь посмотрите приведенный во врезке список программ HTTP-туннелирования: у каждой из них множество своих загадок серверных частей. Так не проще ли администратору пойти навстречу продвинутым коллегам и облегчить жизнь себе и зависящим от него людям?
конец врезки

АЛЬТЕРНАТИВЫ
Основной конкурент HTTHost — программа HTTP-tunnel (www.http-tunnel.com). Это такая же клиент-серверная система, как и HTTHost. Здесь туннелирование идет внутри одного запроса POST. Таким образом, прокси видит один долгоживущий запрос с большим трафиком. За счет этого соединение между клиентом и сервером HTTP-tunnel присутствует всегда. И, как следствие, достигается скорость, которую HTTPort на сериях GET дать не может, поскольку тратит слишком много времени на обработку каждого конкретного запроса.

Проблема лишь в том, что один пятиминутный POST-запрос привлекает внимание администратора. Многочисленные запросы через небольшие промежутки времени (как это сделано в HTTPort) тоже, конечно, выглядят подозрительно, но зато заблокировать их сложнее. Поэтому возьмем на себя смелость утверждать, что программа HTTPort надежнее HTTP-tunnel. К минусам последней отнесем запутанный интерфейс и отметим, что она ко всему прочему еще и платная, а в демо-режиме есть возможность работы только с 80 портами удаленных серверов – даже The Bat! не настроить для тестов.

Впрочем, есть у HTTP-tunnel и серьезное достоинство – поддержка SOCKS5 и UDP. Дело в том, что такая поддержка является необходимым условием для функционирования многих программ – с SOCKS5, к примеру, работает полезнейшая утилита SmartWhoIS (www.tamos.ru).

Чуть лучше дела обстоят с программой Socks2HTTP (www.totalrc.net). Здесь можно нормально работать первые 15 дней. Программа Socks2HTTP легко устанавливается и автоматически определяет параметры вашей локальной сети. Как и HTTP-tunnel, программа Socks2HTTP поддерживает Socks5. Отличительной особенностью Socks2HTTP является интуитивно понятный интерфейс, хотя у этой программы, написанной Дэвидом Когосовым, англоязычные заголовки, меню и диалоги.

Надо сказать, что поддержку русского языка мы встретили только в программе туннелирования уфимских программистов – Socks Connector (www.winfiles32.com/SC). В то же время надо заметить, что эта программа не является продуктом для HTTP-туннелирования – она работает через SOCKS. При разработке Socks Connector позиционировался как adware-продукт, поэтому платой за его использование является просмотр баннера.

Обязательно посетите сайт этой программы – он не только содержит много ценной информации по HTTP-туннелированию и настройке Socks Connector, но и реализован на понятном русском (и английском).

К сожалению, программа Socks Connector так и не заработала у нас в полном объеме. Скорее всего, это “заслуга” нашего локального прокси-сервера и его администратора. И все же мы хотели бы поддержать программистов из Уфы, известных в России и по другой полезной программе – iNet Shaper, предназначенной (www.inetshaper.com) для предоставления и контроля доступа в интернет.

Аналогичные программы

AntiFirewall (www.antifirewall.com)
PortTunnel (www.steelbytes.com)
Httptunnel (www.nocrew.org/software/httptunnel.html)
Zebedee: Secure IP tunnel (www.winton.org.uk/zebedee)
Hopster (www.hopster.com)
SocksCap32 (www.socks.permeo.com)
SocksChain (www.ufasoft.com/socks)