dns2tcp: пропускать порталы и работать в Интернете без ограничений

Обычно публичный Сети Wi-Fi иметь пленники порталов чтобы аутентифицировать нас, если мы не аутентифицируемся на этих пленных порталах, мы не сможем получить доступ к Интернету. Если мы находимся в общественном месте, кафетерии, отеле, ресторане или любом другом месте с общедоступным Wi-Fi-соединением, очень вероятно, что существуют неформальные порталы.

Эти порталы обычно запрашивают у вас личные данные, такие как полное имя, e-mail, возраст, среди прочего, в зависимости от того, где принадлежит эта сеть. Если вы пропустите захватывающий портал или закроете окно аутентификации, вы не сможете получить доступ к Интернету, даже если у вас есть локальное подключение. Сегодня в этой статье мы покажем вам инструмент dns2tcp, что позволит нам избежать подобных порталов и иметь неограниченное подключение к Интернету

Хорошо помнить, что DNS протокол выполняет функцию разрешения доменных имен, которые мы хотим. Это чрезвычайно полезно, потому что, если его не было, в адресной строке нашего браузера мы всегда должны писать IP-адреса, и это практически невозможно поддерживать. В этом руководстве мы конкретно поговорим о DNS-туннелях, которые помогут нам обойти ограничения доступа, такие как брандмауэры и порталы авторизации.

dns2tcp: пропустить порталы

Тем не менее, можно запускать эти типы туннелей, поскольку сетевой администратор не установил соответствующие параметры конфигурации, чтобы заблокировать его. Практический способ узнать, можем ли мы выполнить туннель DNS, - ввести командную строку и выполнить следующее:

nslookup www.google.com

Нажмите «Enter», и вы увидите данные как в общем захвате. Если это так, вы можете запустить туннель DNS. Первое, что нам понадобится, это инструмент под названием dns2tcp этот инструмент используется для установки DNS-соединений. Именно это поможет нам игнорировать любой встроенный портал, настроенный в общедоступных сетях.

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

  • Когда клиент dns2tcp запускается, требуется безопасный ресурс SSH через порт 2222 с использованием транспортного протокола TCP. Весь генерируемый TCP-трафик маскируется и принимает форму поддельные DNS-запросы .
  • Затем SOCKS прокси открывается через порт 1080.
  • Эти поддельные DNS-запросы передаются на сервер dns2tcp, который отвечает за их снятие с маски и управляет их отправкой в ​​исходное место назначения.
  • Когда пункт назначения отвечает на запрос, этот ответ сначала проходит через сервер dns2tcp для инкапсуляции в ложный ответ DNS .
  • Маскированный ответ передается клиенту dns2tcp, который распаковывает его и, наконец, передает его пользователю

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

Запуск, установка и настройка Ubuntu на AWS

Если мы хотим применить это на практике, нам понадобится сервер, на котором установлен инструмент dns2tcp и собственный домен, который должен указывать на общедоступный IP-адрес сервера (также dns2tcp). Мы можем использовать дополнительный компьютер, который у нас есть, или использовать более функциональные и экономические ресурсы, такие как Raspberry Pi. Для последнего мы могли установить Linux дистрибутив, который мы хотим, например, Raspbian.

Однако выбор дополнительного оборудования представляет собой дополнительные расходы. Таким образом, мы можем выбрать бесплатные альтернативы, такие как Amazon Web Services , В этом руководстве мы сосредоточимся на наиболее важной части создания туннеля DNS: сервере, на котором размещен dns2tcp. Если у нас этого нет, начать нельзя.

Первое, что вы должны сделать, это ввести AWS портал и создать бесплатную учетную запись. Вы можете получить доступ к нескольким решениям в течение одного года без оплаты подписки. Важной деталью является то, что на одном из этапов вы должны ввести информацию о своей кредитной карте, но не беспокойтесь, плата не взимается. Затем перейдите к МОЙ АККАУНТ И выберите Консоль управления AWS опцию.

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

Он перенесет нас на панель инструментов, посвященную сервису EC2, и мы перейдем к Экземпляры .

Пойдем в синий Запустить экземпляр кнопка

Теперь у нас есть мастер создания для нашего пример , Это экземпляр, который будет содержать наш виртуализированный сервер, который, в свою очередь, будет содержать инструмент dns2tcp.

В этом случае мы выберем Ubuntu сервер и мы не будем сильно беспокоиться о версии для использования. Так как мы только тестируем. Затем мы нажимаем на синий Выберите .

Мы выбираем вариант, который подходит для использования с бесплатным планом (тот, который имеет право на бесплатный уровень) .

Позже появятся шаги, на которые нам не нужно обращать внимание в этот раз. Однако мы доберемся до шаг 6 (Безопасность Группы) и добавьте новое правило, которое позволит создавать туннели DNS: DNS протокол (УДП)

Как только мы выберем эту опцию, она автоматически укажет номер порта, который равен 53. Там, где написано «Source», мы можем указать опцию «Custom», а рядом с ней мы добавим IP-адрес. 0.0.0.0/0 . Затем нажмите Обзор и запуск .

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

На этом этапе вы должны выбрать Создать новую пару ключей вариант, чтобы он мог предоставить нам новую пару ключей. Где это говорит Название пары ключей мы указываем название пары, которую мы хотим. Мы рекомендуем использовать имя, по которому мы можем легко распознать файл при поиске. Что-то очень важное, что указывает на то, что файл будет сгенерирован за один раз, поэтому удобно сохранить его в безопасном месте на компьютере, и мы его помним. Затем мы нажимаем Скачать пару ключей скачать файл и Запустить экземпляры

Через несколько минут вы убедитесь, что статус вновь созданного экземпляра будет готов к его запуску и, следовательно, будет иметь доступ к нашему виртуализированному серверу. Что выделено красным, это то, что предупредит вас, если вы уже можете запустить свой экземпляр. Если он выглядит так, как в примере захвата, вы можете начать. Вы должны выбрать экземпляр, который вы создали, и нажать на Свяжитесь .

Появится окно, которое даст вам возможность подключиться к вашему экземпляру. В этом случае мы собираемся продемонстрировать, как подключиться с помощью клиента SSH. Поэтому нам понадобится программа под названием PuTTY .

Установите PuTTY за считанные секунды

Чтобы подключиться к нашему серверу Ubuntu, который мы создали с помощью экземпляра AWS, нам понадобится эта программа. Конкретно два, PuTTY и Шпатлевка Gen. Доступ к этому ссылке и посмотрите на обе программы, они довольно легкие и не требуют слишком много шагов установки.

Теперь давайте перейдем к Генератор шпатлевки этот инструмент поможет нам преобразовать файл пары ключей, который мы скачали, когда закончили создавать наш экземпляр в AWS. Чтобы понять, почему мы это делаем, PuTTY поддерживает файлы пар ключей в .ppk Формат, после того как мы выполнили преобразование, этот файл поможет нам подключиться через SSH к нашему виртуальному серверу Ubuntu.

At параметры Мы выбираем алгоритм шифрования RSA, который используется для SSH-2. Однако в настоящее время рекомендуется создавать ключи SSH с Ed25519 или с ECDSA, так как они наиболее безопасны. Затем в нагрузка мы будем искать .NS файл, который мы создали ранее в AWS.

Когда мы хотим открыть файл, убедитесь, что есть возможность просмотреть все файлы и избежать проблем с его поиском. Вы открываете его, и через несколько секунд вы увидите уведомление, что он был успешно импортирован:

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

Как подключиться к нашему виртуализированному серверу с помощью PuTTY

Теперь давайте найдем программу PuTTY, и у нас будет окно, подобное этому

Как мы уже упоминали, мы собираемся подключиться по протоколу SSH. Что нам нужно сделать, чтобы не делать следующий шаг снова и снова, так это исправить нашу сгенерированный закрытый ключ файл Генератор шпатлевки так что мы можем успешно подключиться, когда захотим.

Мы ищем SSH раздел, который находится в Категории , то Auth и где это говорит Файл закрытого ключа для аутентификации мы загружаем наши .ppk файл, который мы только что преобразовали в Шпатлевка Gen. Мы возвращаемся в AWS и ищем только что созданный экземпляр, выбираем его и нажимаем Свяжитесь , Еще раз, окно, которое мы видели выше, появляется, и мы копируем информацию, упомянутую в шаг 4 , который является нашим публичным DNS.

Мы идем в замазку и в Сессия в разделе Hostname В поле мы ставим следующее:

nombredeusuario@DNSpublico

Поскольку мы виртуализируем сервер Ubuntu, в пользователях мы просто пишем Ubuntu в нижнем регистре с последующим @ и общедоступный DNS, который мы скопировали раньше, без пробелов

ubuntu@dnspublico-ABC-123-dEf

Мы сохраняем номер порта 22 и отправлять адресату Сохраненные сеансы мы вводим любое имя для записи нашего соединения с сервером Ubuntu, нажимаем Сохранить чтобы записать его, а затем нажмите Откройте .

Впервые вы увидите предупреждение, и вы должны нажать Да :

И готово, подождите несколько секунд до начала соединения, и мы увидим окно, подобное этому. У нас есть доступ к нашему виртуализированному серверу Ubuntu!

После создания виртуальной машины в AWS и подключения через SSH все, что нам нужно сделать, - это использовать сам инструмент dns2tcp.

Установка и настройка dns2tcp в Ubuntu

Первое, что мы должны будем сделать на нашем Сервер Ubuntu это установить инструмент dns2tcp:

sudo apt install dns2tcp

После установки, как на клиенте, так и на сервере, нам придется внести некоторые небольшие изменения.

Конфигурирование и запуск сервера dns2tcp

Нам нужно будет сделать краткую настройку, отредактировав файл конфигурации, который находится в /etc/dns2tcp.conf и который содержит следующее:

root@debian-vm:/home/bron# cat /etc/dns2tcpd.conf
listen = 127.0.0.1
port = 53
# If you change this value, also change the USER variable in /etc/default/dns2tcpd
user = nobody
chroot = /tmp
domain = your.domain.tld
resources = ssh:127.0.0.1:22 , smtp:127.0.0.1:25
root@debian-vm:/home/bron#

Мы должны отредактировать его следующим образом:


listen = 0.0.0.0
port = 53
# If you change this value, also change the USER variable in /etc/default/dns2tcpd
user = nobody
chroot = /tmp
domain = EL_DOMINIO_DE_AWS
key= redeszone
resources = ssh:127.0.0.1:22 , smtp:127.0.0.1:25
root@debian-vm:/home/bron#

Поле «ключ» является необязательным, но рекомендуется иметь аутентификацию, чтобы никто не мог подключиться. Мы должны выполнить это следующим образом:

root@debian-vm:/home/bron# sudo dns2tcpd -F -d 3 -f /etc/dns2tcpd.conf
18:52:08 : Debug options.c:97 Add resource ssh:127.0.0.1 port 22
18:52:08 : Debug options.c:97 Add resource smtp:127.0.0.1 port 25
18:52:08 : Debug socket.c:55 Listening on 0.0.0.0:53 for domain your.domain.tld
Starting Server v0.5.2...
18:52:08 : Debug main.c:132 Chroot to /tmp
16:52:08 : Debug main.c:142 Change to user nobody

Как только это будет сделано, нам нужно будет только связаться с нашим клиентом.

Конфигурация клиента для подключения через dns2tcp

Самый простой способ подключения - это запустить командную строку, в которой есть все, что вам нужно, затем вы можете подробно увидеть, как подключиться, и автоматически создайте сокет для SSH на порту 2222.

dns2tcpc -z EL_DOMINIO_DE_AWS -k redeszone -r ssh -l 2222

Теперь мы можем установить соединение с SSH следующим образом, и связь будет зашифрована и аутентифицирована:

ssh bron@127.0.0.1 -p 2222 -D 8080

Наконец, нам нужно будет настроить ПРОКСИ-СОКИ в нашем браузере, например, в Firefox это было бы так:

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