Este guia ajudará você a configurar uma ponte WebTunnel compilada a partir do código-fonte para ajudar usuários censurados a se conectarem à rede Tor.

0. Configure seu domínio e servidor web

Antes de prosseguir com as instruções abaixo, é necessário configurar seu domínio e servidor web primeiro. Consulte a primeira parte do guia do WebTunnel para ver como configurar seu servidor web.

1. Instale Golang

Para construir o binário do servidor WebTunnel, você precisa instalar o Golang. Você pode instalar o Go no Debian executando:

$ sudo apt install golang

2. Clonar e compilar

Clone o repositório git do WebTunnel:

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

E compilar o binário do servidor WebTunnel:

$ cd webtunnel/main/server
$ go build

Por fim, copie o binário para outro local:

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

3. Instale o Tor

On a Debian-like system, install Tor from the Tor Debian repository.

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

E execute estes comandos para habilitar o repositório Debian Tor:

$ 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

Importe o chaveiro do Projeto Tor:

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

Por fim, atualize sua lista de pacotes e instale o Tor:

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

4. Edite seu torrc

Edite seu arquivo de configuração Tor, geralmente localizado em /etc/tor/torrc e substitua seu conteúdo por:

  • url=https://yourdomain/path com a URL do seu WebTunnel, incluindo seu domínio e caminho secreto;
  • <address@email.com> with your contact email address;
  • Nickname WebTunnetTest pelo apelido da sua ponte.
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. Reinicie o Tor

Habilitar e iniciar tor:

$ sudo systemctl enable --now tor.service

Ou reinicie-o se ele já estiver em execução, para que as configurações entrem em vigor:

$ sudo systemctl restart tor.service

6. Edite e recarregue a permissão do AppArmor tor

Para permitir que o tor execute seu binário do WebTunnel, edite o perfil system_tor do AppArmor em /etc/apparmor.d/system_tor e adicione uma entrada permitindo que o tor execute o 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,

Recarregue o perfil do AppArmor:

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

Depois de modificar o perfil e recarregá-lo, teste para ver se o processo tor agora pode executar /usr/local/bin/webtunnel sem nenhuma negação do AppArmor. Verifique os logs do sistema (por exemplo, dmesg ou /var/log/syslog) para garantir que o erro não reapareça.

7. Monitore seus registros

Para confirmar se sua ponte está funcionando sem problemas, você deve ver algo assim (geralmente em /var/log/syslog ou executar 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

Você pode monitorar o uso da sua ponte WebTunnel em Relay Search. Basta digitar o <HASHED FINGERPRINT> da sua ponte no formulário e clicar em "Pesquisar". Após configurar a ponte, leva aproximadamente três horas para que ela apareça na Pesquisa de Retransmissão.

8. Notas finais

Sua ponte WebTunnel será distribuída automaticamente por padrão através do site Bridges, também conhecido como distribuidor HTTPS. Este padrão se aplica a menos que um operador configure explicitamente a configuração BridgeDistribution no arquivo torrc para uma opção diferente. Se definido como qualquer opção diferente de HTTPS, a ponte não será distribuída aos usuários. Se você estiver tendo problemas para configurar sua ponte, dê uma olhada em nossa seção de ajuda.

Se sua ponte estiver funcionando, você pode testá-la copiando e colando a linha da ponte no Navegador Tor. Para construir sua linha de ponte do WebTunnel, você precisa copiar sua IMPRESSÃO DIGITAL de ponte, mas não a confunda com sua impressão digital com hash, que é a impressão digital que você encontrará no site Tor Relay Search. Se você copiar a impressão digital com hash em vez da impressão digital da ponte, não conseguirá se conectar. Você pode encontrar sua impressão digital de ponte no arquivo /var/lib/tor/fingerprint. Lembre-se de copiar apenas a impressão digital e não incluir o apelido da ponte.

Por fim, você pode substituir o conteúdo da URL pelo seu domínio e caminho secreto. Você pode encontrar isso na sua linha torrc em ServerTransportOptions.

Agora, basta substituir o conteúdo abaixo para criar sua linha de ponte do WebTunnel. 10.0.0.2:443 é apenas um endereço IP aleatório que nunca é usado. Ele está lá apenas porque a especificação de transporte conectável exige um endereço IP lá.

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