Выбери свой туннель

Докучаев Дмитрий aka Forb

Xakep, номер #061, стр. 061-056-1

(forb@real.xakep.ru)

Все о туннелировании трафика

Одним из способов реализации бесплатного интернета у любимого провайдера является туннелинг трафика. Это куда безопаснее, чем смена MAC и IP-адреса. Более того, твой провайдер будет сам виноват, что ты им попользовался, поскольку официально этот способ вообще не запрещен.

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

Теория туннелинга предельно проста. К примеру, обычный proxy-сервер тоже является туннелем: ты запрашиваешь данные, прокси скачивает файл и шлет его тебе. Но это самый примитивный туннель. Существуют более интересные варианты передачи данных, основанные на интеграции различных протоколов.

Извращения с ICMP

Представь ситуацию: у тебя закончились деньги на инет... Ты почувствовал интернет-ломку, твое душевное состояние находится в упадке. Хочется опять торчать в Сети. И тут на помощь приходят гостевые логины. Многие провайдеры предоставляют гостевой доступ для активации карт (посещения родного сайта), при котором дальше ресурса провайдера не шагнуть. Попробуем пропинговать какой-нибудь сервер, например, www.ru. Пошли пакетики, да? Замечательно, сегодня твой день :). Уже давно известно, что трафик легко прогоняется через обычные ICMP запросы. Это выполняется с помощью специальной тулзы X-proxy. Ей была посвящена отдельная статья в Хакере.

Для организации туннеля необходимо наличие клиента и сервера. При этом принцип работы X-Proxy довольно прост: сервер устанавливается на рабочей машине с Win9x/NT. В его конфиге прописывается адрес реального proxy-сервера и порт. Клиент, установленный на локальной тачке, будет настроен на связь с сервером (с помощью утилиты config.exe). Таким образом, получаем туннель: клиент посылает ICMP-запрос серверу (с типом ECHO_REPLY). В пакете содержится адрес, который следует доставить. Сервак связывается с реальным проксиком и высылает данные клиенту. В итоге ты получаешь бесплатный инет через гостевой логин. Естественно, необходимо указать локальный адрес и порт в качестве proxy-сервера в твоем браузере.

Минусы этого метода: необходимо наличие настроенного сервера и рабочего проксика. Конечно, для крутого хакера это не проблема, но не все могут позволить себе такую роскошь :). Плюс туннелинга через ICMP: неплохая скорость передачи данных.

Сейчас провайдеров, открывающих ICMP в гостевом режиме, найти довольно тяжело, поэтому подобный прием с каждым днем теряет свою актуальность.

Хитрости с DNS

Если ICMP-туннель организовать удается далеко не всегда, то с DNS-туннелингом все намного проще. Об этом уже писалось на страницах твоего любимого журнала (03.2003), но про принципы передачи трафика все равно стоит рассказать.

Допустим, ты пытаешься пропинговать какой-нибудь сервер (все на том же гостевом логине) и не получаешь никакого ответа. Все пакеты режутся, но есть один нюанс: ты можешь резолвить адреса доменов. А что нам мешает передавать данные в пакете с DNS-запросами? Правильно, ничего :). Существует несколько технологий организации DNS-туннелинга. Одна из них – поднятие псевдоинтерфейса ethertap, через который будет осуществляться туннелинг трафика (при помощи программы nstx). Подробная настройка этого способа уже рассматривалась, поэтому более интересным будет рассказ об обмене трафиком между протоколами TCP и UDP.

Содержание  Вперед на стр. 061-056-2
ttfb: 3.7047863006592 ms