Это руководство поможет вам настроить мост WebTunnel, чтобы помочь подвергнутым цензуре пользователям подключаться к сети Tor.
WebTunnel — это подключаемый транспорт, который пытается имитировать действия по просмотру веб-страниц на основе HTTPT.
Требования для развертывания моста WebTunnel:
- Статический IPv4 (желательно);
- Возможность выставлять TCP-порты в Интернет (убедитесь, что NAT не мешает);
- Самостоятельный веб-сайт, включающий настраиваемый веб-сервер (например, NGINX или Apache) и домен под вашим контролем;
- Действующий сертификат 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.