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:
- IPv4 statis (sebaiknya);
- Kemampuan untuk mengekspos port TCP ke Internet (pastikan NAT tidak menghalangi);
- Situs web yang di-host sendiri, termasuk web server yang dapat dikonfigurasi (seperti NGINX atau Apache) dan domain di bawah kendali Anda;
- Sertifikat TLS yang valid;
- 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.