Это руководство поможет вам настроить мост 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. Заключительные замечания

Your WebTunnel bridge will by default be automatically distributed via the Bridges website, also known as the HTTPS distributor. This default applies unless an operator explicitly configures the BridgeDistribution setting in the torrc file to a different option. If set to any option other than HTTPS, the bridge will not be distributed to users. Если у вас возникли проблемы с настройкой моста, загляните в наш раздел помощи.

If your bridge is now running, you can test it by copying and pasting your bridge line into Tor Browser. Чтобы построить линию моста WebTunnel, вам нужно скопировать свой мост FINGERPRINT, но не путайте его с хешированным отпечатком пальца, который вы найдете на веб-сайте Tor Relay Search. Если вы скопируете хешированный отпечаток пальца вместо отпечатка моста, вы не сможете подключиться. Вы можете найти свой отпечаток моста в файле /var/lib/tor/fingerprint. Не забудьте скопировать только отпечаток пальца и не включать псевдоним моста.

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

Теперь просто замените содержимое ниже, чтобы создать линию моста WebTunnel:

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