У цьому посібнику показано, як налаштувати службу Onion для вашого веб-сайту.
Щоб отримати технічну інформацію про те, як працює протокол Onion Service, перегляньте нашу сторінку протоколу Onion Service.
Крок 0: Отримайте робочий Tor
У рамках цього посібника ми припустимо, що у вас є функціональний Tor на вашій машині.
Щоб налаштувати Tor, дотримуйтеся посібника зі встановлення Tor.
Щоб цей посібник працював, Tor має бути запущено та працювати належним чином.
Ви також повинні знати, де знаходяться конфігураційні файли Tor.
Крок 1: запустіть веб-сервер
Як перший крок, ви повинні налаштувати веб-сервер локально, наприклад Nginx, Apache або ваш улюблений веб-сервер.
Налаштування веб-сервера може бути складним.
Якщо ви застрягли або хочете зробити більше, знайдіть друга, який може вам допомогти, або приєднайтеся до нашого tor-onions списку розсилки спілкуватися з іншими операторами.
Як приклад, ми розглянемо, як налаштувати onsite-сайт за допомогою Nginx і Apache на Debian.
Ми рекомендуємо вам встановити новий окремий веб-сервер для вашої служби Onion, оскільки, навіть якщо у вас уже встановлено один веб-сервер, ви можете використовувати його (або захочете використати пізніше) для звичайного веб-сайту.
На цій сторінці команди для керування веб-сервером базуються на операційних системах, подібних до Debian, і можуть відрізнятися від інших систем.
Перевірте документацію веб-сервера та операційної системи.
Apache
Apache доступний у головному сховищі кількох дистрибутивів Linux і *BSD.
Щоб встановити пакет apache2:
$ sudo apt install apache2
Nginx
Nginx доступний у головному сховищі кількох дистрибутивів Linux і *BSD.
Щоб встановити пакет nginx:
$ sudo apt install nginx
За замовчуванням наприкінці інсталяції веб-сервер працюватиме на localhost:80.
Якщо ви отримуєте повідомлення про помилку, щось пішло не так, і ви не можете продовжити, поки не зрозумієте, чому це не спрацювало.
Після налаштування веб-сервера переконайтеся, що він працює: відкрийте браузер і перейдіть на http://localhost/.
Потім спробуйте розмістити файл у головному каталозі HTML і переконайтеся, що він відображається під час доступу до сайту.
Крок 2: Налаштуйте службу Tor Onion
Наступним кроком є відкриття конфігураційного файлу Tor (torrc) і виконання відповідних конфігурацій для налаштування Onion Service.
Залежно від вашої операційної системи та налаштувань файл конфігурації Tor може бути в іншому місці або виглядати інакше.
Вам потрібно буде додати наступні два рядки до вашого файлу torrc:
HiddenServiceDir /var/lib/tor/my_website/
HiddenServicePort 80 127.0.0.1:80
Рядок HiddenServiceDir визначає каталог, який має містити інформацію та криптографічні ключі для вашого Onion Service.
Ви захочете змінити рядок HiddenServiceDir, щоб він вказував на фактичний каталог, доступний для читання/запису користувачем, який запускатиме Tor.
Рядок HiddenServicePort вказує віртуальний порт (тобто порт, який використовуватимуть люди, які відвідують вашу службу Onion Service), і в наведеному вище випадку вказано, що будь-який трафік, який надходить до порту 80 вашої служби Onion, має бути перенаправлено на 127.0.0.1:80 (де прослуховує веб-сервер із кроку 1).
Порада. Щоб уникнути витоку Onion Service у локальну мережу, варто запускати Onion Services через сокет Unix замість сокету TCP.
Вам потрібно буде додати наступні два рядки до вашого файлу torrc:
HiddenServiceDir /var/lib/tor/my-website/
HiddenServicePort 80 unix:/var/run/tor/my-website.sock
Крок 3: Перезапустіть Tor і перевірте, чи він працює
Тепер збережіть свій torrc і перезапустіть Tor.
$ sudo systemctl restart tor
Якщо Tor запуститься знову, чудово. Інакше щось не так. Спочатку подивіться на свої файли журналів, щоб отримати підказки.
Він надрукує деякі попередження або повідомлення про помилки. Це повинно дати вам уявлення про те, що пішло не так.
Як правило, є друкарські помилки в torrc або неправильні дозволи для каталогу (перегляньте запис поширені запитання щодо реєстрації, якщо ви не знаєте, як увімкнути або знайти ваш файл журналу.)
Коли Tor запускається, він автоматично створить HiddenServiceDir, який ви вказали (за потреби).
Переконайтеся, що це так.
Крок 4: Перевірте, чи працює ваш Onion Service
Тепер, щоб отримати адресу Onion Service, перейдіть до каталогу HiddenServiceDir і знайдіть файл під назвою hostname.
Файл hostname у вашому каталозі конфігурації Onion Service містить ім’я хоста для вашої нової служби onion v3.
Інші файли є вашими ключами Onion Service, тому вкрай важливо, щоб вони були конфіденційними.
Якщо ваші ключі витікають, інші люди можуть видавати себе за вашу службу Onion, вважаючи її скомпрометованою, марною та небезпечною для відвідування.
Тепер ви можете підключитися до вашої служби Onion за допомогою браузера Tor, і ви повинні отримати HTML-сторінку, яку ви налаштували на кроці 1.
Якщо це не працює, подивіться у своїх журналах, щоб знайти підказки, і продовжуйте грати з ним, поки він не запрацює.
Важливо зазначити, що такий налаштований Onion Service зможе прочитати будь-хто, хто знає або знайде адресу.
Ви можете змусити Onion Services вимагати автентифікації, і лише користувачі з закритим ключем матимуть доступ до служби.
Докладніше про документацію Авторизація клієнта.
(Необов’язково) Крок 5: Запуск кількох Onion Services
Якщо ви хочете перенаправити кілька віртуальних портів для однієї служби Onion, просто додайте більше рядків HiddenServicePort.
Якщо ви хочете запустити кілька Onion Services з одного клієнта Tor, просто додайте ще один рядок HiddenServiceDir.
Усі наступні рядки HiddenServicePort посилаються на цей рядок HiddenServiceDir, доки ви не додасте інший рядок HiddenServiceDir:
HiddenServiceDir /var/lib/tor/onion_service/
HiddenServicePort 80 127.0.0.1:80
HiddenServiceDir /var/lib/tor/other_onion_service/
HiddenServicePort 6667 127.0.0.1:6667
HiddenServicePort 22 127.0.0.1:22
Якщо на одному веб-сервері ви використовуєте декілька onionsites, не забудьте відредагувати файл віртуального хосту веб-сервера та додати onion-адресу для кожного веб-сайту.
Наприклад, у Nginx і використанні Tor із сокетами Unix конфігурація виглядатиме так:
server {
listen unix:/var/run/tor/my-website.sock;
server_name <your-onion-address>.onion;
access_log /var/log/nginx/my-website.log;
index index.html;
root /path/to/htdocs;
}
Or in Apache with Tor service listening on port 80:
<VirtualHost *:80>
ServerName <your-onion-address.onion>
DocumentRoot /path/to/htdocs
ErrorLog ${APACHE_LOG_DIR}/my-website.log
</VirtualHost>
Крок 6: Поради щодо безпеки та інші поради
Стандартною версією Onion Services є версія 3, а її адреса складається з 56 символів без частин http:// і .onion.
Служби Onion версії 2 застаріли та більше не підтримуються після випуску Tor 0.4.6.1-alpha у 2021 році.
Щоб дізнатися більше, прочитайте публікацію в блозі Графік припинення версії Onion Service.
Деякі оператори onionsite можуть не бажати розголошувати своє місцезнаходження Onion Service.
Тому вам потрібно налаштувати веб-сервер так, щоб він не передавав жодної інформації про вас, ваш комп’ютер або ваше місцезнаходження.
Це непросте завдання, і ці ресурси допоможуть зрозуміти, як це зробити:
Нарешті, якщо ви плануєте підтримувати доступність своєї служби протягом тривалого часу, ви можете десь створити резервну копію файлу private_key.
Тепер, коли у вас працює onionsite, ви можете розгорнути Onion-Locationабо скористатися такими інструментами, як Docker, Heroku, Terraform, Ansible або stem, щоб автоматизувати керування вашими Onion Services.
Якщо у вас є статичний веб-сайт, але ви ніколи не встановлювали Nginx або Apache, спробуйте інший проект OnionShare, де запустити onionsite буде легше: графічний інтерфейс і мінімальна конфігурація.