Точка доступа WiFi с анонимизацией через Tor

WiFi с анонимизацией через Tor

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

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

Зачем нужна точка доступа с Tor?

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

Как известно, Tor «из коробки» предоставляет как механизм проксирования (обхода блокировок), так и продвинутый механизм анонимности. Вся связь между узлами в сети Tor шифруется, а соединение с целевым узлом устанавливается посредством как минимум трех случайно выбранных узлов. Взяв за основу Tor и автоматизировав все процессы, происходящие при подключении к точке доступа (AP — Access Point), в результате мы получим весьма интересный инструмент, польза от которого отнюдь не исчерпывается обходом блокировок.

Настройка точки доступа

Для создания точки нам понадобится какое-нибудь устройство, на котором можно запустить операционую систему (виртуальная машина тоже вполне сгодится). В качестве операционной системы, управляющей точкой, подойдет любой Linux-дистрибутив. Конкретно я буду использовать Debian-based. Для превращения всего этого в точку доступа понадобится WiFi-адаптер.

Если все это выполнено, можно приступать к первичной настройке. Итак, в первую очередь подключаем WiFi-адаптер. Вывод ip addr show wlan0 (wlan0 — имя интерфейса адаптера, может быть другим) должен быть такой, как на скрине.

Детали сетевого интерфейса адаптера
Детали сетевого интерфейса адаптера

На данный момент сетевой интерфейс не сконфигурирован. Первым делом активируем WiFi, освободив его от влияния вездесущего Network Manager’а:

Теперь выберем и назначим интерфейсу адаптера IP-адрес, все адреса из маски которого будут назначаться в дальнейшем клиентским устройствам:

Третьим пунктом мы переведем адаптер в режим точки доступа: делать это мы будем одним из наиболее распространенных способов — с помощью утилиты hostapd, позволяющей сконфигурировать программную точку доступа. Hostapd присутствует в большинстве штатных репозиториев.

Далее нужно создать конфиг для hostapd (./hostapd.conf):

После этого уже можно будет запустить hostapd для перевода WiFi-адаптера в режим AP с описанной конфигурацией:

Hostapd и Network Manager

В некоторых версиях hostapd присутствует баг, связанный с блокировкой интерфейса Network Manager’ом и не позволяющий запускать беспроводную точку доступа. В результате запуска hostapd возникает следующая ошибка:

Подробно баг и возможный воркэраунд описан здесь.

Однако по понятным причинам подключиться к точке привычным образом пока будет невозможно.

Попытка подключения к точке доступа без DHCP
Попытка подключения к AP без DHCP

Для устранения этих причин нам понадобится другая утилита — dnsmasq, которая позволит развернуть службы DHCP и DNS. DHCP сейчас представляет больший интерес. Ставим dnsmasq из стандартного репозитория:

Dnsmasq также нуждается в предварительной настройке (./dnsmasq.conf):

Запускаем DHCP-сервер в составе dnsmasq:

Теперь подключение к WiFi точке доступа становится возможным с любых устройств. Чтобы наша точка наконец заработала в обычном режиме, осталось ответить на главный вопрос: откуда точка будет брать доступ в интернет. Для получения ответа предлагаю взглянуть на скрин ниже. Большинство наших посетителей, так или иначе соприкасавшихся с настройкой сетей, заметят на нем достаточно привычную схему связывания сетей. Именно этот способ мы и будем использовать.

Схема доступа в интернет через точку доступа WiFi
Схема доступа в интернет с AP

Как видно из рисунка, для доступа в интернет понадобится еще один сетевой интерфейс. Это может быть как Ethernet-подключение (eth0), так и второй Wi-Fi-модуль (wlan1). Например, при создании точки доступа из виртуальной машины такой интерфейс создается автоматически (eth0).

Сейчас у нас готово все, за исключением связи между интерфейсами (обозначенной красной линией). Эта связь представляет собой пересылку пакетов с одного интерфейса на другой. Для тестирования работоспособности нашей AP (точки доступа) пока сгодится и обычный механизм NAT:

На данном этапе AP заработала в обычном режиме: принимает клиентов и предоставляет им доступ в интернет с IP-адреса, выданного нам нашим провайдером. Это, конечно же, замечательно, но для наших целей недостаточно. Поэтому теперь настало время перенаправления всего клиентского трафика в Tor.

Перенаправление трафика точки доступа в Tor

Перед перенаправлением всего трафика AP в Tor необходимо установить сам Tor:

И настроить его как Transparent Proxy с помощью конфигурационного файла (расположенного здесь: /etc/tor/torrc):

Этих настроек для наших нужд вполне достаточно, поэтому можем запускать Tor как сервис:

На текущий момент вывод netstat -tunapl должен быть примерно таким, как на скрине ниже. Мы видим все запущенные нами сервисы на текущий момент.

Открытые порты на точке доступа WiFi
Открытые порты на AP

Если сейчас подключиться к точке доступа, то мы по-прежнему будем выходить в интернет с домашнего IP, поэтому осталось всего-навсего включить проксирование через Tor с помощью iptables:

Также нужно удалить предыдущее правило, включающее маскарад между сетевыми интерфейсами (NAT):

Двумя новыми правилами мы добились следующего: подмены пункта назначения всего TCP-трафика в момент появления пакетов на сетевом интерфейсе Wi-Fi-адаптера и редиректа DNS-запросов (протокол UDP). Подмененный пункт назначения — запущенный сервис Tor с Transparent Proxy. Стоит обратить внимание, что на этих двух правилах настройка iptables завершается.

Теперь можно убедиться в работоспособности настроенной Tor на точке доступа, посетив с любого подключенного к ней устройства какой-нибудь сервис проверки IP. В моем случае 2ip.ru.

Точка доступа WiFi с автоматической анонимизацией трафика через Tor
PoC

Raspberry Pi как точка доступа с Tor

Raspberry Pi  отлично подходит в качестве управляющего устройства точки доступа: всего несколько дополнительных действий с автоматической разверткой конфигурации при старте системы (systemd, initV), и останется всего лишь воткнуть USB-кабель в «розетку» для включения точки в любой нужный момент.

Практическое применение точки доступа с Tor

Имея собственную AP, с которой соединяются клиентские устройства, мы по умолчанию получаем возможность наблюдения за всем трафиком своей сети, как пассивного, так и активного. Перенаправление в Tor — это лишь один из вариантов применения AP в прикладных задачах.

Анализ трафика клиентских устройств

Пожалуй, самый очевидный вариант, который сразу же приходит в голову. Никто не запрещает запустить на AP Wireshark или tcpdump и захватывать трафик конкретного клиента либо всех клиентских устройств сразу до момента перенаправления трафика в Tor. Возможности для захвата здесь ограничены лишь уровнем защищенности конечного устройства, пользователя и приложения. Тема достаточно известная, поэтому подробно на ней останавливаться не будем.

Захват трафика по MAC-адресу на точке доступа
Захват трафика по MAC-адресу на AP

Анализ сетевой активности приложений

В информационной безопасности часто возникает задача проанализировать сетевую активность определенного приложения. Например, у нас имеется мобильное приложение, которое при работе использует несколько известных нам хостов. Мы хотим методом черного ящика проверить, не ведет ли приложение какие-либо скрытые передачи на дополнительные удаленные хосты. Причем на самом устройстве мы это сделать не можем — нет соответствующих прав на уровне ОС. Зато у нас есть точка доступа, находящаяся полностью под контролем и с максимальными правами! Ее использование будет практически аналогично анализу трафика на целевом устройстве. Для этой цели сгодится и tcpdump установленный на Android.

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

Скрытые передачи в данном случае не обязательно должны быть вредоносными — это могут быть механизмы антиспама (контроль того, что API приложения действительно используется с мобильного устройства), рекламы и так далее. Мы можем пропускать трафик методом белого ящика — запрещено все, что не разрешено:

Таким образом мы разрешили попадание в Tor только трафика с трех хостов определенного устройства, весь остальной трафик не покинет интерфейса wlan0, а следовательно, ничего скрытого передано не будет. Останется лишь убедиться, что в работе приложения не появилось дефектов.

Блокировка определенных хостов

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

Блокировку можно произвести прямо в таблице NAT:

Заблокированный в рамках сети AP хост
Заблокированный в рамках сети AP хост

Блокировка рекламных сетей с целью повышения анонимности

Уже давно известно, что скрипты рекламных сетей стараются скрытно собрать максимум возможной информации о посетителях сайтов, представляя таким образом дополнительную угрозу анонимности. К счастью, на собственной Access Point мы можем по умолчанию заблокировать для клиентов связь рекламных скриптов с рекламными сетями.

Для этого предлагаю вернуться к утилите dnsmasq: в качестве одной из опций своего конфига утилита предлагает дополнительный источник DNS-информации (наравне с /etc/hosts). Изменим файл с конфигом Dnsmasq (./dnsmasq.conf):

Содержимое файла имеет точно такой же формат, как и /etc/hosts, поэтому с его наполнением проблем быть не должно. Источник блокируемых ресурсов можно выбрать самостоятельно из репозитория на GitHub — там можно найти hosts-файлы под блокировки различных масштабов (в самой большой сборке было около 71 тысячи различных хостов).

Заключение

Вот таким незамысловатым способом мы создали точку доступа WiFi с автоматической анонимизацией трафика через Tor, а в качестве приятного бонуса мы получили возможность управлять всем проходящим через нее трафиком в собственных целях.

ВКонтакте
OK
Telegram
WhatsApp
Viber

4 комментария

  1. Анна Славинская

    Здравствуйте! Как можно с Вами связаться по поводу сотрудничества? Интересует размещение баннера. Буду очень благодарна, если Вы отпишитесь на мою электронную почту anna@abuyer.ru.

  2. km

    Здравствуйте сообщество spy-soft, не могли бы вы помочь разобрать похожую схему с проксированием ssh посредством redsock, так как в этой статье, видимо у него что то не допилено и у меня не получается это повторить.

    https://abidmujtaba.blogspot.com/2016/07/ubuntu-create-wifi-hotspot-access-point.html

  3. Дмитрий

    Очень долго настраивал, всё заработало, единственное есть две проблемы… dnsmasq по-моему настроен не правильно, подключается только одно устройсво.. На других IP не присваивает…

    Напишите пожалуйста на емайл, хочу обговорить попобдробнее настройку, исправить кое что можно, я исправлял чтобы заработало…

  4. Bob

    Ересь все это . Получаем доп. уровень абстракции в сети , также мини pc имеют низкую пропускную способность. Интересно на конечном маршрутизаторе типа openwrt или pfsense заворачивать именно заблокированный трафик в vpn либо тор в автоматическом режиме.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *