Организация onion-сервера

Для начала я кратко обозначу, какая польза постигнет вас, если вы организуете свой собственный onion сервер.

1. У вашего сервера не будет IP. Он работает без DNS. Есть только неказистое имя, вроде t2zz6dgyudp4iowf.onion Это старый стандарт, когда в имени 16 знаков. Новый стандарт подразумевает 56 знаков. Вы не можете выбрать себе имя, зато его можно менять хоть каждый день. Вам не потребуется никакая регистрация. Сервер будет доступен под новым именем уже в следующую минуту. Некрасивость имени пускай вас не смущает. Все равно в сети используются гиперссылки, где имя явно не показывается.

2. Сайт будет виден, даже если у вашего компьютера «черный IP», не видимый из внешнего мира. В этой сети понятие IP вообще отсутствует как вид.

3. Сайт будет виден, даже если ваш провайдер заблокировал все входящие соединения из интернета к вам.

4. Сайт будет виден, если вы включите свой комп в любую чужую сеть. Вам ничего не нужно перестраивать. Он просто заработает.

5. Никто не узнает, где физически находится ваш сайт. Но и вы тоже не сможете понять, кто его посещает. Все соединения выглядеть так, будто заходят с вашего же компьютера. Все Фантомасы, но и вы тоже Фантомас.

Данная инструкция предназначена для линукса Debian, Ubuntu и похожих. Она вообще подойдет для любого юникса с незначительными нюансами. В качестве веб сервера используется Apache2. Можно использовать Nginx или что-то иное, но опять же отличия будут незначительными.

Установка софта

Предполагается, что у вас уже установлены sshd и apache. К сети onion они не относятся, поэтому установку мы пропустим. Теперь нам потребуется установть Tor:

apt-get install tor

Здесь и далее все команды нужно выполнять, зайдя в сиситему как root, а установку софта, кстати, мы уже закончили. Проверьте, что tor заработал.

ps ax | grep tor

Настройка сервисов

Откройте текстовым редактором файл /etc/tor/torrc И впишите следующие строчки:

HiddenServiceDir /var/lib/tor/matumba
HiddenServiceVersion 2
HiddenServicePort 80 127.0.0.1:80
HiddenServicePort 22 127.0.0.1:22

Похожее уже есть в конфигурации, закомментрованное. Вам нужно лишь поправить.

HiddenServiceDir - каталог где будут настройки onion сервера. Предположим, что ваш сервер называтся matumba. Имя может быть любым. Его все равно никто не увидит.

HiddenServiceVersion 2 - это строка нужна лишь тогда, когда вы хотите создать короткое имя сайта. Если это не указать, вам присвоится длинное имя из 56 символов. Это новый стандарт и он считается предпочтительным.

HiddenServicePort - тут мы указываем, какие сервисы открыть - sshd и httpd.

Теперь перезапустите tor:

systemctl stop tor
systemctl start tor

Если все пошло по плану, то в системе создался каталог /var/lib/tor/matumba Заглянем в него. Файл hostname содержит имя вашего сайта: dr2brcdyaopw3nga.onion или вроде того.

Включение сервисов

Поздравляю! Ssh сервер у вас уже есть. Можете проверить сами, если не верите.

torsocks ssh ВашеИмя@dr2brcdyaopw3nga.onion

Точно так же вы будете заходить на свой сервер из внешнего интернета.

Теперь делаем веб сервер.

Создаем каталог /var/www/matumba с правами 755. Здесь будет корень вашего сайта. Сделайте там тестовую страничку:

echo "Beware of dragons" > index.html

Создайте файл /etc/apache2/sites-available/matumba.conf и выполните конфигурацию вашего сайта. Самая простая конфигурация будет такой:

<VirtualHost *:80>
ServerName dr2brcdyaopw3nga.onion
DocumentRoot /var/www/matumba
</VirtualHost>

Включаем новый сайт в сеть:

a2ensite matumba
systemctl reload apache2

Готово. Ваш сайт dr2brcdyaopw3nga.onion виден через Tor Browser. Проверяем из командной строки:

my@host:~$ torsocks wget -q dr2brcdyaopw3nga.onion -O -
Beware of dragons
my@host:~$ 

При необходимости вы можете перенести свой сервер на другой хост, не потеряв имя. Для этого скопируйте файл /etc/tor/torrc и каталог /var/lib/tor/matumba на новое место.

Обсуждение

Олег, 2023/07/21 21:04
onion имена версии 2 (короткие) не поддерживаются с версии Tor (стека) 0.4.6.8, это конец 2021г. - https://www.comss.ru/page.php?id=9830&ysclid=lkcc0pz5t9625976977 : "В прошлом году мы объявили, что службы V2 Onion перестанут поддерживаться в конце 2021 года, и с выходом Tor Browser 10.5 стали предупреждать пользователей о завершении поддержки этих сервисов."

Олег, 2023/07/27 17:04, 2023/07/27 17:05
Есть простое и хорошее объяснение того, зачем нужен переход от имён v2 (16 символов) к именам v3 (56 символов) - https://www.linux.org.ru/forum/general/16156656?ysclid=lkcc0k74yq908283387 :

"К v3-сервису обращаются напрямую по ключу, а не по его хешу. То есть v3 — это ключ ed25519(алгоритм цифровой подписи Эдвардса EdDSA на базе эллиптической кривой Curve25519), а v2 — это хеш ключа RSA-1024(оба в base32), соответственно эти хэши должны распространяться с помощью DHT(распределённая таблица хешей), а для работы v2-сервисов нужны т.н. V2Dir.

v3 лишены подобных недостатков, то есть им не нужно распространение по DHT, их ключ(ed25519) намного более стойкий(~128 бит теоретической стойкости), чем у v2(для 128 бит по стандартам NIST нужно не RSA-1024, а RSA-3072), а слабый и морально устаревший короткий хэш(80 бит) не используется вообще.

Вот что получается в итоге: меньше нагрузка на ретрансляторы сети Tor, которые выступают в роли V2Dir, поиск и проверка доступности onion-сервисов НАМНОГО быстрее и точнее, нет нужды ждать connection timeout и делать несколько попыток подключения, используемая в v3 криптография намного устойчивее, современнее и быстрее, а также считается невзламываемой на данный момент(128 бит, как говорится, хватит всем!), даже при наличии огромных вычислительных ресурсов.

v2 уже успешно подбирали, для этого даже не нужно взламывать/подбирать точную копию ключа того или иного сервиса — достаточно подобрать очень короткий хэш, и мы получим два сервиса с разными ключами, но одинаковым именем, что запутает V2Dir и позволит противнику перехватывать подключения к v2-сервису."

Только авторизованные участники могут оставлять комментарии.
unix/onion_service_setup.txt · Последнее изменение: 2023/10/10 18:05 — 127.0.0.1
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki