В этом руководстве показано, как настроить onion-ресурс для вашего сайта. Технические подробности о том, как работает протокол onion-ресурса, см. на нашей странице протокола onion-ресурса.

Шаг 0: Получить рабочий Tor

В рамках этого руководства мы предполагаем, что у вас имеется функциональный Tor на вашей машине. Чтобы настроить Tor, следуйте Руководству по установке Tor. Tor должен быть настроен и запущен правильно, чтобы это руководство работало. Вы также должны знать, где находятся конфигурационные файлы Tor.

Шаг 1: Запустить работу веб-сервера

В качестве первого шага вы должны настроить веб-сервер локально, например Nginx, Apache или другой предпочитаемый вами веб-сервер. Настройка веб-сервера может быть сложной. Если вы застряли или хотите сделать больше, найдите друга, который может помочь вам или присоединяйтесь к нашему списку рассылки tor-onions, чтобы общаться с другими операторами.

В качестве примера мы рассмотрим, как настроить onion-сайт с 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/. Then try putting a file in the main HTML directory, and make sure it shows up when you access the site.

Шаг 2: Настройка onion-ресурса Tor

Следующим шагом является открытие файла конфигурации Tor (torrc) и выполнение соответствующих настроек для настройки onion-ресурса. В зависимости от вашей операционной системы и настроек ваш файл конфигурации Tor может находиться в другом месте или выглядеть иначе.

Вам нужно будет поместить следующие две строки в файл torrc:

 HiddenServiceDir /var/lib/tor/my_website/
 HiddenServicePort 80 127.0.0.1:80

Строка HiddenServiceDir указывает каталог, который должен содержать информацию и криптографические ключи для вашего onion-ресурса. Вы захотите изменить строку HiddenServiceDir, чтобы она указывала на фактический каталог, который читается/записывается пользователем, который будет запускать Tor.

Строка HiddenServicePort указывает virtual port (то есть порт, который люди, посещающие вашу onion-ресурс, будут использовать), и в приведенном выше случае он говорит, что любой трафик, входящий на порт 80 вашего onion-ресурса, должен быть перенаправлен на127.0 .0.1: 80 (это то, что прослушивает веб-сервер из шага 1).

Совет: Хорошей практикой во избежание утечки onion-ресурса в локальную сеть является запуск onion-ресурсов через сокеты 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 снова запустится - отлично. В противном случае что-то не так. Сначала посмотрите на подсказки в своих лог-файлах. Tor выдаст некоторые предупреждения или сообщения об ошибках. Это должно дать вам представление о том, что пошло не так. Обычно это могут быть опечатки в torrc или неправильные права доступа к каталогу (см. FAQ по ведению журнала, если вы не знаете, как включить или найти ваш файл журнала.)

Когда Tor запускается, он автоматически создает указанный вами HiddenServiceDir (при необходимости). Убедитесь, что это так.

Шаг 4: Проверьте, работает ли ваш onion-ресурс

Теперь, чтобы получить адрес onion-ресурса, перейдите в каталог HiddenServiceDir и найдите файл с именем hostname. Файл hostname в каталоге конфигурации вашего onion-ресурса содержит имя хоста для нового onion-ресурса v3. Другие файлы являются вашими служебными onion-ключами, поэтому крайне важно, чтобы они оставались конфиденциальными. В случае утечки ключей другие люди могут выдать себя за ваш onion-ресурс, выставляя его скомпрометированным, бесполезным и опасным для посещения.

Now you can connect to your Onion Service using Tor Browser, and you should get the HTML page you set up back in Step 1. Если это не сработает, поищите в журналах подсказки и продолжайте экспериментировать, пока всё не заработает.

Важно отметить, что onion-ресурс, настроенный таким образом, будет доступен для чтения любому, кто знает или обнаруживает его адрес. Вы можете сделать так, чтобы onion-ресурсы требовали аутентификацию, в этом случае только пользователи с закрытым ключом будут получать доступ к ресурсу. Подробнее о документации Авторизация клиента.

(Опционально) Шаг 5: Запуск нескольких onion-ресурсов

Если вы хотите перенаправить несколько виртуальных портов для одного onion-ресурса, просто добавьте больше строк HiddenServicePort. Если вы хотите запускать несколько onion-ресурсов из одного клиента 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

Если вы запускаете несколько onion-сайтов на одном веб-сервере, не забудьте отредактировать файл виртуального хоста своего веб-сервера и добавить 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: Советы по безопасности и другие советы

The default version of Onion Services is version 3 and its address is 56 characters long, without the http:// and .onion parts. Onion services version 2 is deprecated and is no longer supported since the 0.4.6.1-alpha Tor release, in 2021. Пожалуйста, прочтите пост в блоге График прекращения поддержки версии Onion-ресурса для получения дополнительной информации.

Некоторые операторы сайтов могут не захотеть раскрывать местонахождение своего onion-ресурса. Следовательно, вам необходимо настроить свой веб-сервер так, чтобы он не выдавал никакой информации о вас, вашем компьютере или вашем местонахождении. Это непростая задача, и эти ресурсы помогут вам в этом:

Наконец, если вы планируете поддерживать доступность своего ресурса в течение длительного времени, вы можете сделать резервную копию файла private_key.

Теперь, когда у вас работает onion-сайт, вы можете развернуть Onion-Location или использовать такие инструменты, как Docker, Heroku, Terraform, Ansible или stem для автоматизации управления вашими onion-ресурсами. Если у вас есть статический веб-сайт, но вы никогда не устанавливали Nginx или Apache, другим проектом, который стоит попробовать, является OnionShare, где запустить onion-сайт будет проще: посредством графического интерфейса и с минимальной конфигурацией.