Это руководство поможет вам настроить мост WebTunnel, чтобы помочь подвергнутым цензуре пользователям подключаться к сети Tor. WebTunnel — это подключаемый транспорт, который пытается имитировать действия по просмотру веб-страниц на основе HTTPT.

Требования для развертывания моста WebTunnel:

  1. Статический IPv4 (желательно);
  2. Возможность выставлять TCP-порты в Интернет (убедитесь, что NAT не мешает);
  3. Самостоятельный веб-сайт, включающий настраиваемый веб-сервер (например, NGINX или Apache) и домен под вашим контролем;
  4. Действующий сертификат TLS.

Развертывание моста WebTunnel включает настройку веб-сервера и моста Tor с использованием этого подключаемого транспорта. В первой части этого руководства представлены подробные инструкции по настройке веб-сервера для поддержки WebTunnel. Во второй части вы будете выбирать между двумя методами запуска моста WebTunnel: либо с помощью Docker, либо путем компиляции из исходного кода.

Обратите внимание: если вы не соответствуете требованиям для запуска моста WebTunnel или obfs4, запуск Snowflake proxy — это отличный способ пожертвовать свою пропускную способность, чтобы помочь пользователям обойти цензуру.

Конфигурация веб-сервера

Шаг 1. Настройте свой домен

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

Шаг 2. Получите действующий сертификат

Если у вашего веб-сайта нет сертификата TLS, вы можете получить его с помощью acme.sh, который представляет собой клиент протокола ACME, написанный на языке Shell. .

2.1. Установить ACME

Замените my@example.com на свой адрес электронной почты:

$ curl https://get.acme.sh | sh -s email=my@example.com

Или

$ wget -O - https://get.acme.sh | sh -s email=my@example.com

2.2. Выдать сертификат

Замените example.com на домен вашего сайта.

$ ~/.acme.sh/acme.sh --issue --standalone --domain example.com

Шаг 3. Установите NGINX

Чтобы сосуществовать с другим контентом на одном порту, вам следует установить обратный прокси-сервер, например NGINX. Установите НГИНКС:

$ sudo apt install nginx

Шаг 4. Настройте NGINX

4.1. Создать случайную строку

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

$ echo $(cat /dev/urandom | tr -cd "qwertyuiopasdfghjklzxcvbnmMNBVCXZLKJHGFDSAQWERTUIOP0987654321"|head -c 24)

4.2. Создайте или отредактируйте виртуальный хост NGINX

Создайте новый файл vhost, например /etc/nginx/sites-available/webtunnel-vhost, который перенаправляет трафик на мост WebTunnel. Вот полный виртуальный хост NGINX с примером WebTunnel.

Или, если вы хотите использовать существующий виртуальный хост, вы можете просто отредактировать и добавить к нему блок location {}. Замените $PATH случайной строкой.

# Пример блока vhost NGINX
location = /$PATH {
        proxy_pass http://127.0.0.1:15000;
        proxy_http_version 1.1;

        ### Установка заголовков WebSocket ###
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        ### Установка заголовков прокси ###
        proxy_set_header        Accept-Encoding   "";
        proxy_set_header        Host            $host;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto $scheme;
        add_header              Front-End-Https   on;

        proxy_redirect     off;
        access_log  off;
        error_log /dev/null;
}

4.3. Проверьте конфигурацию виртуального хоста и перезагрузите NGINX

sudo ln -s /etc/nginx/sites-available/webtunnel-vhost /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Шаг 5. Настройте мост Tor WebTunnel

Поздравляем! Вы успешно настроили свой веб-сервер для прокси-запросов к вашему мосту Tor. Теперь вам необходимо установить и настроить мост для получения этих запросов от веб-сервера. Пожалуйста, следуйте второй части этого руководства. У вас есть два варианта: либо скомпилировать двоичный файл Go из source, либо использовать Docker.

Настройка WebTunnel Docker

Как запустить мост WebTunnel в Docker

Скомпилируйте и запустите WebTunnel из исходного кода

Как запустить мост WebTunnel из исходного кода