このガイドでは、ソースから WebTunnel ブリッジをコンパイルして、検閲下のユーザーが Tor ネットワークに接続できるようにする方法について説明します。
0. ドメインとウェブサーバーの設定
以下の手順に進む前に、まずドメインとウェブサーバーを設定する必要があります。
ウェブサーバーを設定する方法については、WebTunnel ガイドの前半を確認してください。
1. Golang のインストール
WebTunnel のサーバーのバイナリーをビルドするには、Golang のインストールが必要です。
Debian で Go は以下を実行するとインストールできます。
$ sudo apt install golang
2. クローンとコンパイル
WebTunnel の Git リポジトリをクローンします。
$ 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 のインストール
On a Debian-like system, install Tor from the Tor Debian repository.
$ 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 Project のキーリングをインポートします。
$ 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 に、ドメインとシークレットパスを含む WebTunnel の URL を設定します。
<address@email.com> with your contact email address;
Nickname WebTunnetTest に、ブリッジの Nickname を設定します。
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 を再起動
Tor を有効にして開始します。
$ sudo systemctl enable --now tor.service
または、すでに起動している場合は再起動し、設定を有効にします。
$ sudo systemctl restart tor.service
6. AppArmor の tor の権限を編集して再読み込み
Tor が WebTunnel のバイナリーを実行できるようにするには、/etc/apparmor.d/system_tor にある 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 のプロセスが AppArmor により拒否されず /usr/local/bin/webtunnel を実行できるかどうかテストします。
システムログ (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 のブリッジの使用状況はリレー検索で確認できます。
ブリッジの <HASHED FINGERPRINT> をフォームに入力して「検索」をクリックしてください。
ブリッジを設定した後、リレー検索で表示されるまでおよそ3時間かかります。
8. 備考
あなたの WebTunnel ブリッジは、デフォルトで自動的にブリッジウェブサイト (HTTPS ディストリビューターとも) で配布されます。
このデフォルトは、オペレーターが torrc ファイルの BridgeDistribution 設定を別のオプションに明示的に構成しない限り適用されます。
HTTPS 以外のオプションを設定した場合、ブリッジはユーザーに配布されません。
ブリッジの設定に問題がある場合は、ヘルプセクションをご覧ください。
ブリッジが動作している場合、ブリッジラインをコピーして Tor Browser に貼り付けてテストできます。
WebTunnel ブリッジラインをビルドするには、ブリッジの FINGERPRINT をコピーする必要がありますが、これは Tor リレー検索サイトで表示されるハッシュ化されたフィンガープリントとは異なるので、それらを混同しないようご注意ください。
ブリッジのフィンガープリントの代わりにハッシュ化されたフィンガープリントをコピーすると、接続できなくなります。
ブリッジのフィンガープリントは /var/lib/tor/fingerprint のファイルにあります。
フィンガープリントだけをコピーしてください。ブリッジの Nickname は含めないでください。
最後に、URL をあなたのドメインとシークレットパスに置き換えることができます。
これは torrc の ServerTransportOptions の下の行にあります。
その後、以下の内容を置き換えて WebTunnel ブリッジラインを作成します。10.0.0.2:443 は実際には使用されないランダムな IP アドレスです。Pluggable Transport の仕様で IP アドレスが必要なため、そうなっているだけです。
webtunnel 10.0.0.2:443 FINGERPRINT url=https://yourdomain/path