DNS tunneling over 53 udp and ssh: различия между версиями

Материал из AlexNook
Перейти к навигацииПерейти к поиску
Строка 46: Строка 46:


===Установка программ под Windows===
===Установка программ под Windows===
Под Windows на понадобится [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html putty], драйверы [http://www.winpcap.org/ WinPcap], а так же [http://www.cs.uit.no/~daniels/PingTunnel/#download PingTunnel] (Запуская программу с различными опциями мы можем давать ей выполнять роль демона или клиента).
Прикрепляю версии программ (бинарники), которые я использовал для тестирования под Windows 7 64 bit.
* [[Media:putty_0.6.7z|Putty]] 0.6
* [[Media:WinPcap_4_1_2.7z|WinPcap]] 4.1.2
* [[Media:ptunnel_0.7.7z|PingTunnel]] 0.7
Устанавливаем всё необходимое программное обеспечение. Далее запускаем консоль Windows.
{{note|<nowiki>start -> Search Programms and Files, где вводим cmd -> правой кнопкой мыши Run as administrator (возможно необязательно запускать её от имени администратора) </nowiki>}}


==ССылки==
==ССылки==

Версия 19:06, 9 марта 2012

Если вы столкнулись с проблемой урезания трафика вашим провайдером, или злым админом, или родителями или ещё кем-то, когда некоторые порты закрыты, когда доступ к некоторым веб сайтам обрезан, когда вырублена аська и тому подобное, то возможно данное решение вам поможет.

Приготовления в созданию тунеля через 53 порт

Если вас урезали дальше некуда фаерволами и другими программами, и не оставили открытым почти ничего кроме нескольких веб сайтов и пары основных портов, то выход есть. Практически во всех случаях остаётся открытым порт 53TCP/UDP по которому идут DNS запросы, без которых как правило работать нельзя. Эти запросы помогают человеку не помнить кучу IP адресов ресурсов, или же размещать на одном IP несколько разных веб ресурсов, например, сайтов.

Если порт 53 открыт, то шанс поднять зашифрованный Socks туннель есть. Для этого нужно иметь:

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

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

В качестве компьютера, который находится в локальной сети, где идёт жёсткий контроль трафика и режутся все соединения прокси сервером или фаерволом будет выбран обычный комп под управлением ОС Windows 7 64 bit.

Описание схемы работы тунеля

В кратце постараюсь описать функционирование тунеля.

Т.к. у нас на нашей машине, которая запрятана за фаерволом открыт порт 53, то весь трафик мы будем пускать именно по этому порту. Соединяться по этому порту мы будем с нашим сервером, который стоит во вне, и именно он будет обслуживать все наши запросы, перенаправляя их куда следует. Рассмотрим краткий пример такой транзакции. Мы посылаем запрос с нашего Windows компьютера на 53-й порт, адресованный нашему серверу, тот в свою очередь принимает его и переадресует уже по абсолютно другому адресу и другому порту, который как раз и может быть заблокирован на нашей Windows машине. Далее получив ответ от третьего сервера, наша машина в интернете переправляет его обратно нам на нашу Windows машину. Всё вроде просто: 53 порт открыт, пы через него общаемся с посредником, который имеет полную связь с внешиним миром, который в свою очередь транслирует наши запросы куда нам будет угодно, не забывая возвращать ответы.

Всё кажется хорошим, но есть одно но, весь трафик идёт полностью открытым, и любому легко будет его перехватив просмотреть. А именно тем лицам, которые и ограничивают использование интернета на нашей Windows машине. Вторым но является неудобство того, что надо каждый раз при создании сеанса указывать а куда именно наш посредник в интернете должен перекидывать запрос, сперва это может быть сайт Yandex.ru, но потому нам может понадобится Google.com и т.д. Что делать. Решение проблемы простое - это поднятие внутри нашего тунеля ещё одного, который будет идти по протоколу ssh. Это решит вопрос шифрования, а т.к. программа putty позволяет легко динамически перекидывать порты, мы ещё и получим socks прокси, который нам позволит выходить динамически на нужный нам порт и нужный адрес в сети.

Установка необходимого программного обеспечения

Какое же программное обеспечение нам потребует? Рассмотрим оба компьютера, как под Windows, так и под Gentoo.

Самое важное и первонеобходимое, что нам нужно это крохотная програмка, которая и будет выполнять всё чёрную работу по поднятию первого, основного туннеля - PingTunnel. Так же нам потребуется SSH демон, а так же клиентское ПО для соединения по SSH из-под Windows - putty.

Note: Поднятие соединения под Linux с динамическим перебрасыванием портов под Linux выполняется одной командой:

Установка программ под Gentoo

Нам необходимо поставить PingTunnel

emerge -v net-proxy/pingtunnel

После этого можно запустить screen и уже внутри стартовать необходимую программу. Это поможет нам видеть, все её информационные сообщения.

screen

Теперь запускаем сам PTunnel:

ptunnel -udp -x PASSWORD

Первая опция

-udp

показывает, что мы будем работать с 53 портом udp (без этой опции программа по умолчанию будет работать с ICMP 'echo') Вторая опция

-x PASSWORD

задаёт пароль на соединение с нашим прокси сервером как PASSWORD. Если её опустить, то любой сможет подсоединиться к нашему прокси сервису.

На этом установки на стороне сервера заканчиваются.

Установка программ под Windows

Под Windows на понадобится putty, драйверы WinPcap, а так же PingTunnel (Запуская программу с различными опциями мы можем давать ей выполнять роль демона или клиента).

Прикрепляю версии программ (бинарники), которые я использовал для тестирования под Windows 7 64 bit.

Устанавливаем всё необходимое программное обеспечение. Далее запускаем консоль Windows.

Note: start -> Search Programms and Files, где вводим cmd -> правой кнопкой мыши Run as administrator (возможно необязательно запускать её от имени администратора)

ССылки