Panduan ini akan membantu Anda menyiapkan bridge WebTunnel untuk membantu pengguna yang disensor terhubung ke jaringan Tor. WebTunnel adalah pluggable transport yang berupaya meniru aktivitas browsing web berdasarkan HTTPT.

Persyaratan untuk men-deploy bridge WebTunnel adalah:

  1. IPv4 statis (sebaiknya);
  2. Kemampuan untuk mengekspos port TCP ke Internet (pastikan NAT tidak menghalangi);
  3. Situs web yang di-host sendiri, termasuk web server yang dapat dikonfigurasi (seperti NGINX atau Apache) dan domain di bawah kendali Anda;
  4. Sertifikat TLS yang valid;
  5. Setidaknya 1 GB memori RAM (4 GB direkomendasikan) untuk mendukung proses Tor dan transport WebTunnel.

Untuk detail lebih lanjut tentang persyaratan sistem, kami merekomendasikan membaca halaman persyaratan relay Tor.

Men-deploy bridge WebTunnel melibatkan konfigurasi web server dan sebuah bridge Tor dengan pluggable transport ini. Bagian pertama dari panduan ini memberikan instruksi terperinci untuk mengonfigurasi web server Anda agar mendukung WebTunnel. Pada bagian kedua, Anda akan memilih di antara dua metode untuk menjalankan bridge WebTunnel: menggunakan Docker atau dengan mengompilasi dari source code.

Harap dicatat bahwa jika Anda tidak memenuhi persyaratan untuk menjalankan bridge WebTunnel atau obfs4, menjalankan proxy Snowflake adalah cara yang bagus untuk menyumbangkan bandwidth Anda untuk membantu pengguna menghindari sensor.

Konfigurasi web server

Langkah 1. Konfigurasikan domain Anda

Jika Anda sudah memiliki domain situs web, Anda dapat menggunakan domain utama atau membuat subdomain. Dalam panduan ini, bridge WebTunnel di-host pada server yang sama dengan situs web Anda, tetapi dimungkinkan untuk meng-host-nya di server yang berbeda.

Langkah 2. Dapatkan sertifikat yang valid

Jika situs web Anda tidak memiliki sertifikat TLS, Anda dapat memperolehnya dengan menggunakan acme.sh, yaitu klien protokol ACME yang ditulis dalam bahasa Shell.

2.1. Instal ACME

Ganti my@example.com dengan alamat email Anda:

$ curl https://get.acme.sh | sh -s email=my@example.com

Atau

$ wget -O - https://get.acme.sh | sh -s email=my@example.com

2.2. Terbitkan sertifikat

Ganti example.com dengan domain situs web Anda.

$ ~/.acme.sh/acme.sh --issue --standalone --domain example.com

Langkah 3. Instal NGINX

Untuk dapat berdampingan dengan konten lain pada satu port, Anda sebaiknya menginstal reverse proxy, seperti NGINX. Instal NGINX:

$ sudo apt install nginx

Langkah 4. Konfigurasikan NGINX

4.1. Buat string acak

Saat klien terhubung ke web server Anda, mereka akan dialihkan ke proxy WebTunnel Anda ketika mereka menggunakan secret path. Anda dapat membuat string acak dengan menjalankan perintah ini:

$ echo $(cat /dev/urandom | tr -cd "qwertyuiopasdfghjklzxcvbnmMNBVCXZLKJHGFDSAQWERTUIOP0987654321"|head -c 24)

4.2. Buat atau edit vhost NGINX

Buat file vhost baru seperti /etc/nginx/sites-available/webtunnel-vhost yang meneruskan lalu lintas ke bridge WebTunnel. Berikut adalah contoh vhost NGINX lengkap dengan WebTunnel.

Atau jika Anda ingin menggunakan vhost yang sudah ada, Anda cukup mengedit dan menambahkan blok location {} ke dalamnya. Ganti $PATH dengan string acak tersebut.

# Contoh blok vhost NGINX
location = /$PATH {
        proxy_pass http://127.0.0.1:15000;
        proxy_http_version 1.1;

        ### Set header WebSocket ###
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        ### Set header Proxy ###
        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. Uji konfigurasi vhost dan reload NGINX

sudo ln -s /etc/nginx/sites-available/webtunnel-vhost /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Langkah 5. Konfigurasikan bridge Tor WebTunnel Anda

Selamat! Anda telah berhasil mengonfigurasi web server Anda untuk mem-proxy permintaan ke bridge Tor Anda. Sekarang, Anda harus menginstal dan mengonfigurasi bridge Anda agar menerima permintaan-permintaan ini dari web server. Silakan ikuti bagian kedua dari panduan ini. Anda memiliki dua opsi yang tersedia: baik mengompilasi binary Go dari source atau menggunakan Docker.

Penyiapan WebTunnel Docker

Cara menjalankan bridge WebTunnel di Docker

Kompilasi dan jalankan WebTunnel dari source

Cara menjalankan bridge WebTunnel dari source