• Atos

    lvl 654
  • Изменено

12 марта, 2024 года во Всемирный день борьбы с киберцензурой, команда по борьбе с цензурой Tor Project рада официально объявить о выпуске WebTunnel, нового типа моста Tor, предназначенного для помощи пользователям в регионах с жёсткой цензурой в подключении к сети Tor. WebTunnel, присоединился к нашей коллекции технологий обхода цензуры, разработанных и поддерживаемых The Tor Project.
Разработка различных типов мостов имеет решающее значение для того, чтобы сделать Tor более устойчивым к цензуре и опережать злоумышленников в очень динамичном и постоянно меняющемся ландшафте цензуры. Это особенно верно, поскольку мы переживаем глобальный мегацикл выборов 2024 года, роль технологий обхода цензуры становится решающей в защите свободы интернета.

Что такое WebTunnel и как он работает?
WebTunnel — это устойчивый к цензуре подключаемый транспорт, предназначенный для имитации зашифрованного веб-трафика (HTTPS), вдохновленный HTTPT. Он работает, оборачивая соединение полезной нагрузки в HTTPS-соединение, похожее на WebSocket, которое выглядит для сетевых наблюдателей как обычное соединение HTTPS (WebSocket). Таким образом, для стороннего наблюдателя, не знающего скрытого пути, это выглядит как обычное HTTP-соединение с сервером веб-страницы, создающее впечатление, что пользователь просто просматривает веб-страницы.
На самом деле, WebTunnel настолько похож на обычный веб-трафик, что может сосуществовать с веб-сайтом на одной конечной точке сети, то есть с тем же доменом, IP-адресом и портом. Такое сосуществование позволяет стандартному прокси-серверу обратного трафика перенаправлять как обычный веб-трафик, так и WebTunnel на соответствующие серверы приложений. В результате, когда кто-то пытается зайти на сайт по общему сетевому адресу, он просто воспринимает содержимое этого адреса веб-сайта и не замечает существования секретного моста (WebTunnel).

Сравнение WebTunnel с мостами obfs4.
WebTunnel можно использовать в качестве альтернативы obfs4 для большинства пользователей Tor. В то время как obfs4 и другой полностью зашифрованный трафик нацелены на то, чтобы быть полностью различимыми и неузнаваемыми, подход WebTunnel к имитации известного и типичного веб-трафика делает его более эффективным в сценариях, где существует список разрешенных протоколов и запрещенная по умолчанию сетевая среда.
Рассмотрим механизм цензуры сетевого трафика как машину для сортировки монет, где монеты представляют собой поток трафика. Традиционно такая машина проверяет, подходит ли монета к известной форме, и пропускает ее, если подходит, или отбрасывает, если нет. В случае полностью зашифрованного, неизвестного трафика, как показано в опубликованном исследовании «Как Великий китайский файрвол обнаруживает и блокирует полностью зашифрованный трафик, который не соответствует какой-либо конкретной форме, он будет подвергаться цензуре. В нашей аналогии с монетой, монета не только не должна соответствовать форме какого-либо известного заблокированного протокола, она также должна соответствовать признанной разрешенной форме, иначе она будет отброшена. Трафик obfs4, не совпадающий ни с одним известным разрешенным протоколом или текстовым протоколом, будет отклонен. В отличие от этого, трафик WebTunnel, напоминающий трафик HTTPS, разрешенный протокол, будет проходить.

Если система только что установлена и вы не устанавливали пакетов необходимо загрузить пакетную базу репозиториев.
sudo apt update
Устанавливаем Go для сборки транспóрта.
sudo apt install golang
Делаем текущим каталог шифрованного раздела.
cd ~/Persistent
Клинируем репозиторий с исходными текстами транспóрта
git clone https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/webtunnel
Создаём каталог для библиотек необходимых для сборки. Go не сможет загрузить их автоматически через прокси.
mkdir -p ~/go/pkg/mod/cache/download/gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib/\@v/
Делаем созданный каталог текущим.
cd ~/go/pkg/mod/cache/download/gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib/\@v/
Загружаем библиотеки для сборки.
wget https://proxy.golang.org/gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib/@v/v1.5.0.zip
и
wget https://proxy.golang.org/gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib/@v/v1.5.0.mod
Делаем текущим каталог репозитория для сборки клиента.
cd ~/Persistent/webtunnel/main/client
Собираем клиент.
go build
Задаём владельца собранного файла транспóрта.
sudo chown root:root client
Создаём каталог для транспорта и конфигурационных файлов.
sudo mkdir /home/amnesia/Persistent/webtunnel_start
Копируем в созданный каталог файл транспóрта.
sudo cp client /home/amnesia/Persistent/webtunnel_start/webtunnel-client
Копируем в созданный каталог конфигурационный файл tor.
sudo cp /etc/tor/torrc /home/amnesia/Persistent/webtunnel_start/torrc
Копируем в созданный каталог профиль AppArmor для tor.
sudo cp /etc/apparmor.d/system_tor /home/amnesia/Persistent/webtunnel_start/system_tor
Создаём файл скрипта для подключения WebTunnel.
sudo nano /home/amnesia/Persistent/webtunnel_start/webtunnel_start.sh
Помещаем в файл текст

#!/bin/sh
cp /home/amnesia/Persistent/webtunnel_start/webtunnel-client /usr/bin/webtunnel-client
cp /home/amnesia/Persistent/webtunnel_start/torrc /etc/tor/torrc
cp /home/amnesia/Persistent/webtunnel_start/system_tor /etc/apparmor.d/system_tor
apparmor_parser -r /etc/apparmor.d/system_tor
systemctl restart tor

Сохраняем изменения нажимаем Ctrl+O, нажимаем Enter и выходим из текстового редактора Ctrl+X.
Задаём права на выполнение для скрипта.
sudo chmod 700 /home/amnesia/Persistent/webtunnel_start/webtunnel_start.sh
Открываем профиль AppArmor для tor.
sudo nano /home/amnesia/Persistent/webtunnel_start/system_tor
Между имеющимися в файле фигурными скобками { и } добавляем строчку
/usr/bin/webtunnel-client ix,
Сохраняем изменения в файле и выходим из текстового редактора.
Открываем конфигурационный файл tor torrc.
sudo nano /home/amnesia/Persistent/webtunnel_start/torrc
Находим строчки начинающиеся на Bridge obfs4 и ClientTransportPlugin и добавляем в начало этих строк знак #.
Было:

Bridge obfs4…
ClientTransportPlugin…

Стало:

#Bridge obfs4…
#ClientTransportPlugin…

Добавляем строки:

Bridge мост_webtunnel
ClientTransportPlugin webtunnel exec /usr/bin/webtunnel-client

Вместо текста мост_webtunnel вставьте мост webtunnel с сайта https://bridges.torproject.org/
Добавляем строчку
Log notice file /var/log/tor/tor.log
Для просмотра за ходом установки соединения.

Пример torrc из Tails 6.15.

## Default SocksPort
SocksPort 127.0.0.1:9050 IsolateDestAddr IsolateDestPort
## SocksPort for other Tails-specific applications
SocksPort 127.0.0.1:9062 IsolateDestAddr IsolateDestPort
## SocksPort used by the Upgrader to download IUKs with
## tails-iuk-get-target-file
# We disable isolation flags so there's at least a chance that the
# circuit used to connect to Mirrorbits is reused for the actual
# download, thus benefiting from the fact Mirrorbits uses GeoIP to
# select the mirror.
SocksPort 127.0.0.1:9063 NoIsolateDestAddr NoIsolateDestPort NoIsolateClientProtocol
## SocksPort for the default web browser (address is defined in tails-create-netns)
SocksPort 10.200.1.1:9050 IsolateSOCKSAuth KeepAliveIsolateSOCKSAuth ExtendedErrors

## The port on which Tor will listen for local connections from Tor
## controller applications, as documented in control-spec.txt.
ControlPort 127.0.0.1:9052

## Torified DNS
DNSPort 5353
AutomapHostsOnResolve 1
AutomapHostsSuffixes .exit,.onion

## Transparent proxy
TransPort 127.0.0.1:9040

## Enable the Seccomp sandbox. It will disabled later (by the
## tor-pt-configuration-helper) if we configure any pluggable transport
## in TCA; note that old-school "simple" bridges will still
## have the sandbox enabled.
#Sandbox 1

## Misc
AvoidDiskWrites 1
RunAsDaemon 0
UseBridges 1

## Disable default warnings on StartTLS for email. Let's not train our
## users to click through security warnings.
WarnPlaintextPorts 23,109

## Log to the systemd Journal
Log notice file /var/log/tor/tor.log
#Log notice syslog

## Tor Launcher will enable the network access for Tor once the user
## has provided the configuration they desire.
#DisableNetwork 1

Bridge webtunnel

ClientTransportPlugin webtunnel exec /usr/bin/webtunnel-client

Сохраняем изменения в файле и выходим из текстового редактора.
Закрываем окно Помощник подключения к TOR, для поделючения к tor с помощью WebTunnel оно не понадобится. Но вы можете как и прежде подключаться по obfs4 с его помощью.
Запускаем скрипт.
sudo /home/amnesia/Persistent/webtunnel_start/webtunnel_start.sh
Просматриваем файл журнала tor
sudo cat /var/log/tor/tor.log
Ожидаем установки соединения с tor. После установки соединения луковица справа сверху бкдет не зачёркнута, в файле журнала tor будет написано Bootstrapped 100% (done): Done.
Сообщение в терминале после повторного запуска скрипта cp: невозможно создать обычный файл '/usr/bin/webtunnel-client': Текстовый файл занят не указывает на причину отсутствия подключения к tor сети.

Если вы не можете подключиться к Tor и собрать транспорт, так как рабочих мостов obsf4 больше нет…

Подключаетесь к Tor из другой операционной системы, где есть такая возможность. Например из Android c помощью InviZible Pro Эта программа поддерживает соединение с Tor через WebTunnel.
Скачиваете файлы

https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/webtunnel/-/archive/main/webtunnel-main.zip
https://proxy.golang.org/gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib/@v/v1.5.0.zip

Скачиваете образ Debian LiveUSB и записываете на USB накопитель аналогично Tails. Загружаетесь в Debian, подключаетесь к интернету. Переносите в домашний каталог файлы webtunnel-main.zip и v1.5.0.zip
Открываете текстовый редактор. Вставляете в него текст

module gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib

go 1.11

Сохраняете в домашний каталог с именем v1.5.0.mod.
Открываете терминал. Распаковываете архив webtunnel-main.zip 7z x ~/webtunnel-main.zip Создаёте каталог
mkdir -p ~/go/pkg/mod/cache/download/gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib/\@v/
Переносите в него файлы v1.5.0.zip и v1.5.0.mod. Устанавливаете golang sudo apt install golang Переходите в каталог cd ~/webtunnel-main/main/client собираете транспорт go build Переносите файл ~/webtunnel-main/main/client/client в домашний каталог пользователя Tails. Копировать его можно с помощью графического интерфейса на отдельный USB накопитель. Меняете владельца файла
amnesia@amnesia:~$ sudo chown root:root ~/client Далее делаете всё описанное с начала руководства, но вместо sudo cp client /home/amnesia/Persistent/webtunnel_start/webtunnel-client копируйте файл client из домашнего каталога sudo cp ~/client /home/amnesia/Persistent/webtunnel_start/webtunnel-client.

    19 дней спустя

    Новое, враг хорошего.

    • Atos ответили на это сообщение.

      pronet Новое, враг хорошего.

      Новые блокировки в интернете вводят враги хорошего. 💯

        Atos 12 марта, 2024 года во Всемирный день борьбы с киберцензурой

        Благодарю за шеринг статьи, обязательно вникну.

        • Atos оценил это.

        Спасибо,новое подчерпнул. А про китайцев, на сайте ТОРа писали, что в тг бот с мостами, типа для китайцев и они не зарегистрированные, для обхода файервола и т.д.

        • rembo2 оценил это.
        • rembo2 ответили на это сообщение.
          11 дней спустя
          20 дней спустя

          Atos я подключаюсь по прокси в тэйлс, вплне все работает, только иногда отлетают мосты

          • Atos ответили на это сообщение.

            kalmar только иногда отлетают мосты

            Какие мосты используете? Obfs4? Тут собственно о том и речь. Последнее время много не рабочих заблокированных obfs4 мостов. Рабочих мостов WebTunnel гораздо больше. Кроме того в среднем скорость подключения по WebTunnel выше, чем по obfs4.

            13 дней спустя

            Подключаясь по WebTunnel,а не по obfs4 сайты будут видеть меня, как обычного юзера без ТОР браузера или это касается только интернет провайдера, чтобы трафик был похожий на типичный?

            • Atos ответили на это сообщение.
              • Atos

                lvl 654

              OneLive это касается только интернет провайдера, чтобы трафик был похожий на типичный?

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

              Atos изменил(а) название на "#3.1 Tails [WebTunnel]".
              • Coach

                  lvl 155

                @Atos Здравствуйте, начать хотелось бы с глубокой благодарности за ваши труды. Вы просто шоколадка в кондитерской знаний и бриллиант на короне анонимности. Начать хотелось бы с того, что я не слабо так потрепал свою флешку, тэйлс после всех насильственных действий грузится стал раза в три дольше, но это ода лишь моей криворукости. Если вас не затруднит я бы хотел задать пару вопросов :

                Atos Он работает, оборачивая соединение полезной нагрузки в HTTPS-соединение, похожее на WebSocket,

                1. Есть ли разница подключения WebTunnel после подключения к мосту obfs4 или просто подключившись к сети и запустив скрипт (без обфс4) ? влияет ли это на уровень анонимности ?
                2. После выхода в сеть через мост obfs4 провайдер и сторонние наблюдатели видят лишь поток в сеть тор без возможности узнать что там именно делают (даже если просто смотрят ютуб) ,а что видит провайдер используя ВебТуннель ? подключение к какому-то сайту? (Какому именно)
                3. Накосячив с инструкцией, можно ли испортить свою анонимность или просто выход в сеть будет недоступен ?

                Заранее благодарю за возможные ответы, Хорошего вам дня и я правда буду ждать от вас пару строк

                • Atos ответили на это сообщение.
                  • Atos

                    lvl 654
                  • Изменено

                  Coach тэйлс после всех насильственных действий грузится стал раза в три дольше

                  USB-накопитель это расходник. Сделайте копию на новый, и физически уничтожьте старый.

                  Coach Есть ли разница подключения WebTunnel после подключения к мосту obfs4 или просто подключившись к сети и запустив скрипт (без обфс4) ? влияет ли это на уровень анонимности ?

                  Нет, только на скорость готовности к началу работы, и отсутствие необходимости поиска рабочих мостов obfs4.

                  Coach или просто подключившись к сети и запустив скрипт

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

                  Coach После выхода в сеть через мост obfs4 провайдер и сторонние наблюдатели видят лишь поток в сеть тор

                  Нет. Tor заблокирован, если есть возможность однозначно определить Tor-трафик то его блокируют.

                  Coach без возможности узнать что там именно делают (даже если просто смотрят ютуб)

                  Да. Передача пакетов по неизвестному шифрованному протоколу. По этому принципу могут ограничивать скорость передачи данных.

                  Coach а что видит провайдер используя ВебТуннель ? подключение к какому-то сайту? (Какому именно)

                  Atos по умолчанию в Whonix-Gateway отключён DNS. Или узнав в хостовой системе ip адрес хоста моста [user ~]% tor-resolve bridge.com добавить его вручную в `/etc/hosts.whonix ip bridge.name.

                  Да, подключение очень мало отличающееся от подключения браузера по протоколу https, к сайту host.name указанному в мосте запрашиваемом на BridgeDB. Вида:
                  webtunnel [xxxx:xxx:xxxx:xxxx:xxxx:xxx:xxxx:xxxx]:443 yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy url=https://host.name/zzzzzzzzzzzzzzzzzzzzzzz ver=0.0.1
                  по порту 443.

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

                  Я не выкладываю готового собранного транспорта. Это простой пересказ на русском инструкции от разработчиков. Так что либо у вас транспорт не соберётся, либо вы что-то не так напишите в конфигах. В случае любой ошибки вы всего лишь не сможете подключиться к Tor через WebTunnel.

                  • Coach оценил это.
                  • PGP01

                    lvl 531

                  Atos Скажите пожалуйста, а можно в место Persistent использовать стороннюю флешку, для всех этих конфигураций? Что бы зашел и перекинул файлы, либо как нибудь еще. Типа, прописал пару команд, а все файлы уже готовые на другой флешке? Иначе очень муторно это все постоянно вводить. Спасибо.

                  • Atos ответили на это сообщение.
                    • Atos

                      lvl 654
                    • Изменено

                    PGP01 можно в место Persistent использовать стороннюю флешку, для всех этих конфигураций?

                    Можно. На сторонней флешке нужно точно так же сделать раздел LUKS, внутри файловая система ext4. Файловая система fat32 не поддерживает права доступа. После загрузки системы разблокировать раздел LUKS вводом пароля и смонтировать файловую систему. Скрипты с такой флешки не будут стартовать автоматически, нужно будет запускать их вручную и внести правки в пути к файлам в этих скриптах. Монтироваться автоматически после ввода пароля сторонняя флешка будет в каталог /media/amnesia/метка_раздела.

                    • PGP01 оценил это.
                    • PGP01 ответили на это сообщение.
                      • PGP01

                        lvl 531

                      Atos Спасибо

                      месяц спустя

                      Всем привет! Поддержу ребят сверху, и поблагодарю автора за его труд и помощь людям в ней нуждающихся!
                      Тема очень нужная, и хорошо что ее затрагивают в рунете.
                      Вот в чем вопрос, стоит ли вобще заморачиваться и что то делать с настройками для реализации WebTunnel в Tails OS, если, у меня в данном случае, прекрасно работают мосты obfs4? Я понимаю что инструкция написана вроде подробно, но честно говоря, я в ужасе от этих команд и строк кода, и вопросов больше чем ответов.
                      И вопросов действительно много:
                      -скрывает ли использование obfs4 и WebTunnel факт использования сети Tor от провайдера?
                      -какой протокол VPN лучше использовать для роутера, если уже даже старые и забытые PPTP и L2TP начали блокировать в росии, не говоря уже о IKEv2, WireGuard, OpenVPN и прочих.
                      -если взять неплохой и более менее мощный роутер, на что лучше его прошить: OpenWRT, DD-WRT и др? И где найти нормальную инструкцию для чайников вроде меня, так как везде на форумах пишут какие то гики для других гигов, и что то там понять просто невозможно?
                      Это конечно только часть вопросов...
                      Заранее спасибо за ответы)

                      • Atos ответили на это сообщение.

                        Да, то что WebTunnel скрывает факт использования Тор от провайдера маскируя трафик под HTTPS я понял) А мосты obfs4 скрывают, или есть какие то нюансы?

                        • Atos ответили на это сообщение.
                          • Atos

                            lvl 654

                          Troy11 А мосты obfs4 скрывают, или есть какие то нюансы?

                          Tor заблокирован. Если можно однозначно определить что это соединение с tor то блокируют.

                          Troy11 у меня в данном случае, прекрасно работают мосты obfs4

                          Тогда вам не нужен ни WebTunnel ни VPN. Разве что в образовательных целях. В таком случае начните со сборки транспорта, настройка роутера сложнее.