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

0. Настройте свой домен и веб-сервер

Прежде чем приступить к выполнению приведенных ниже инструкций, необходимо сначала настроить свой домен и веб-сервер. Обратитесь к первой части Руководства по WebTunnel, чтобы узнать, как настроить веб-сервер.

1. Установите Голанг

Чтобы собрать двоичный файл сервера WebTunnel, вам необходимо установить Golang. Вы можете установить Go на Debian, запустив:

$ sudo apt install golang

2. Клонирование и компиляция

Клонируйте git-репозиторий WebTunnel:

$ git clone https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/webtunnel

И скомпилируйте двоичный файл сервера WebTunnel:

$ cd webtunnel/main/server
$ go build

Наконец, скопируйте двоичный файл в другое место:

$ sudo cp server /usr/local/bin/webtunnel

3. Установите Tor

В системе, похожей на Debian, установите Tor из репозитория Tor Debian.

$ sudo apt install apt-transport-https lsb-release

И запустите эти команды, чтобы включить репозиторий Tor Debian:

$ CODENAME=$(lsb_release -cs)

$ cat <<EOF > /etc/apt/sources.list.d/tor.list
   deb     [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org $CODENAME main
   deb-src [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org $CODENAME main
EOF

Импортируйте брелок проекта Tor:

$ wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | sudo tee /usr/share/keyrings/tor-archive-keyring.gpg >/dev/null

Наконец, обновите список пакетов и установите Tor:

$ sudo apt update && sudo apt install tor deb.torproject.org-keyring -y

4. Отредактируйте свой torrc

Отредактируйте файл конфигурации Tor, обычно расположенный в /etc/tor/torrc, и замените его содержимое на:

  • url=https://yourdomain/path с URL-адресом вашего веб-туннеля, включая ваш домен и секретный путь;
  • <address@email.com> with your contact email address;
  • Никнейм WebTunnetTest с ником вашего моста.
BridgeRelay 1
ORPort 127.0.0.1:auto
AssumeReachable 1
ServerTransportPlugin webtunnel exec /usr/local/bin/webtunnel
ServerTransportListenAddr webtunnel 127.0.0.1:15000
ServerTransportOptions webtunnel url=https://yourdomain/path
ExtORPort auto
ContactInfo <address@email.com>
Nickname WebTunnelTest
SocksPort 0

5. Перезапустите Tor

Включите и запустите тор:

$ sudo systemctl enable --now tor.service

А если Tor уже работает, перезапустите, чтобы изменения вступили в силу:

$ sudo systemctl restart tor.service

6. Отредактируйте и перезагрузите разрешение AppArmor tor

Чтобы разрешить tor запускать ваш двоичный файл веб-туннеля, отредактируйте профиль AppArmor system_for в /etc/apparmor.d/system_tor и добавьте запись, позволяющую tor запускать WebTunnel:

  # During startup, tor (as root) tries to open various things such as
  # directories via check_private_dir().  Let it.
  /usr/local/bin/webtunnel ix,

Перезагрузите профиль AppArmor:

$ sudo apparmor_parser -r /etc/apparmor.d/system_tor

После изменения профиля и его перезагрузки проверьте, может ли процесс tor теперь выполнять /usr/local/bin/webtunnel без каких-либо отказов AppArmor. Проверьте системные журналы (например, dmesg или /var/log/syslog), чтобы убедиться, что ошибка не появится снова.

7. Следите за своими журналами

Чтобы убедиться, что ваш мост работает без проблем, вы должны увидеть что-то вроде этого (обычно в /var/log/syslog или запустите sudo Journalctl -e -u tor@default):

[notice] Your Tor server's identity key fingerprint is '<NICKNAME> <FINGERPRINT>'
[notice] Your Tor bridge's hashed identity key fingerprint is '<NICKNAME> <HASHED FINGERPRINT>'
[notice] Tor has successfully opened a circuit. Looks like client functionality is working.
[notice] Bootstrapped 100%: Done

Вы можете отслеживать использование вашего моста WebTunnel в Relay Search. Просто введите <HASHED FINGERPRINT> вашего моста в форму и нажмите “Поиск“. После настройки моста требуется примерно три часа, чтобы мост появился в поиске реле.

8. Заключительные замечания

Ваш мост WebTunnel по умолчанию будет автоматически распространяться через сайт " Мосты", также известный как дистрибьютор HTTPS. Это значение по умолчанию применяется, если оператор явно не настроит параметр Мост распределения в файле torrc на другой вариант. Если установлено любое значение, отличное от HTTPS, мост не будет распространяться среди пользователей. Если у вас возникли проблемы с настройкой моста, загляните в наш раздел помощи.

Если ваш мост запущен, вы можете проверить его, скопировав и вставив строку вашего моста в Tor Browser. Чтобы построить линию моста WebTunnel, вам нужно скопировать свой мост FINGERPRINT, но не путайте его с хешированным отпечатком пальца, который вы найдете на веб-сайте Tor Relay Search. Если вы скопируете хешированный отпечаток пальца вместо отпечатка моста, вы не сможете подключиться. Вы можете найти свой отпечаток моста в файле /var/lib/tor/fingerprint. Не забудьте скопировать только отпечаток пальца и не включать псевдоним моста.

Наконец, вы можете заменить содержимое URL адреса своим доменом и секретным путем. Вы можете найти это в строке torrc в разделе ServerTransportOptions.

Теперь просто замените содержимое ниже, чтобы создать линию моста WebTunnel. 10.0.0.2:443 - это просто случайный IP-адрес, который никогда не используется. Он там просто потому, что спецификация подключаемого транспорта требует наличия IP-адреса.

webtunnel 10.0.0.2:443 FINGERPRINT url=https://yourdomain/path