Цей посібник допоможе вам налаштувати міст WebTunnel, щоб допомогти цензурованим користувачам підключатися до мережі Tor.
WebTunnel — це транспортний засіб, який можна підключити, який намагається імітувати дії веб-перегляду на основі HTTPT .ch/#Frolov2020b).
Вимоги до розгортання мосту WebTunnel:
- Статичний IPv4 (бажано);
- Можливість відкрити порти TCP для Інтернету (переконайтеся, що NAT не заважає);
- Самостійний веб-сайт, включаючи настроюваний веб-сервер (наприклад, NGINX або Apache) і домен під вашим контролем;
- Дійсний сертифікат TLS;
- Принаймні 1 ГБ оперативної пам’яті (рекомендовано 4 ГБ) для підтримки процесу Tor і транспорту WebTunnel.
Щоб дізнатися більше про системні вимоги, рекомендуємо прочитати сторінку Вимоги до ретрансляції Tor.
Розгортання мосту WebTunnel передбачає налаштування як веб-сервера, так і мосту Tor за допомогою цього транспорту, що підключається.
Перша частина цього посібника містить докладні інструкції щодо налаштування веб-сервера для підтримки WebTunnel.
У другій частині ви вибираєте між двома методами запуску моста WebTunnel: або за допомогою Docker, або шляхом компіляції з вихідного коду.
Зауважте, що якщо ви не відповідаєте вимогам для запуску WebTunnel або мосту obfs4, запустіть проксі-сервер Snowflake — чудовий спосіб пожертвувати пропускною здатністю, щоб допомогти користувачам обійти цензуру.
Конфігурація веб-сервера
Крок 1. Налаштуйте свій домен
Якщо у вас уже є домен веб-сайту, ви можете використовувати основний домен або створити субдомен.
У цьому посібнику міст WebTunnel розміщено на тому ж сервері, що й ваш веб-сайт, але його можна розмістити на іншому сервері.
Крок 2. Отримайте дійсний сертифікат
Якщо ваш веб-сайт не має сертифіката TLS, ви можете отримати його за допомогою acme.sh, який є клієнтом протоколу ACME, написаним мовою Shell .
2.1. Встановити ACME
Замініть my@example.com своєю електронною адресою:
$ curl https://get.acme.sh | sh -s email=my@example.com
Або
$ wget -O - https://get.acme.sh | sh -s email=my@example.com
2.2. Оформити сертифікат
Замініть example.com на домен свого веб-сайту.
$ ~/.acme.sh/acme.sh --issue --standalone --domain example.com
Крок 3. Встановіть NGINX
Щоб співіснувати з іншим вмістом на одному порту, вам слід встановити зворотний проксі-сервер, наприклад NGINX.
Встановити NGINX:
$ sudo apt install nginx
Крок 4. Налаштуйте NGINX
4.1. Згенерувати випадковий рядок
Коли клієнти підключаються до вашого веб-сервера, вони будуть перенаправлені на ваш проксі-сервер WebTunnel, коли вони використовують секретний шлях.
Ви можете створити випадковий рядок, виконавши цю команду:
$ echo $(cat /dev/urandom | tr -cd "qwertyuiopasdfghjklzxcvbnmMNBVCXZLKJHGFDSAQWERTUIOP0987654321"|head -c 24)
4.2. Створіть або відредагуйте віртуальний хост NGINX
Створіть новий файл vhost, наприклад /etc/nginx/sites-available/webtunnel-vhost, який перенаправлятиме трафік до мосту WebTunnel.
Ось повний NGINX vhost із прикладом WebTunnel.
Або якщо ви хочете використовувати існуючий vhost, ви можете просто відредагувати та додати до нього блок location {}.
Замініть $PATH на випадковий рядок.
# Приклад блоку vhost NGINX
location = /$PATH {
proxy_pass http://127.0.0.1:15000;
proxy_http_version 1.1;
### Встановити заголовки WebSocket ###
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
### Встановити заголовки проксі ###
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. Перевірте конфігурацію vhost і перезавантажте NGINX
sudo ln -s /etc/nginx/sites-available/webtunnel-vhost /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Крок 5. Налаштуйте міст Tor WebTunnel
Щиро вітаю! Ви успішно налаштували свій веб-сервер на надсилання запитів проксі до вашого мосту Tor.
Тепер ви повинні встановити та налаштувати свій міст для отримання цих запитів від веб-сервера.
Дотримуйтеся другої частини цього посібника.
У вас є два доступних варіанти: скомпілювати двійковий файл Go з source або використати Docker.