Многие ошибочно полагают, что сеть Tor — это такой набор бесплатных (и очень медленных) прокси-серверов в обычный интернет. Такой вариант использования Tor, конечно же, возможен, но куда большая ценность «даркнета» , на мой взгляд, заключается в его внутренних .onion ресурсах. Из этой статьи вы узнаете не только об обоих вариантах использования Tor, но и о том, как поднять собственный .onion ресурс, или как установить TCP-соединение через Tor, даже если клиент и сервер находятся за NAT.

Вариант 1: использование tor и Chromium

Существует по крайней мере два способа подключиться к сети Tor. Первый заключается в том, чтобы установить сервис tor и настроить ваш браузер, в данном примере — Chromium, так, чтобы он использовал этот сервис в качестве прокси. Для опытов я использовал Arch Linux , но в других дистрибутивах последовательность шагов будет почти такой же.

Установка сервиса:

sudo pacman -S tor torsocks

Запуск, остановка, и так далее производятся, как обычно:

sudo systemctl start tor
sudo systemctl stop tor

Сервис Tor работает, как socks-прокси на 127.0.0.1:9050. Любую программу можно заставить работать через Tor при помощи утилиты torify:

curl https: // remontka.com / ip / -o
torify curl https: // remontka.com / ip / -o

Если torify по какой-то причине не работает (я сталкивался с таким на старых версиях Ubuntu), попробуйте также утилиту proxychains. Она по умолчанию настроена на использование Tor, поэтому даже конфиг (/etc/proxychains.conf) не придется трогать.

Теперь — запуск Chromium:

chromium —proxy-server = «socks5://127.0.0.1:9050»
—host-resolver-rules = «MAP * 0.0.0.0 , EXCLUDE 127.0.0.1»
—incognito http: // godnotaba36dsabv.onion /

Первый ключ говорит использовать указанный socks-прокси, второй — перенаправлять через него в том числе и DNS трафик. Заметьте, что чтобы это работало, Chromium сначала нужно закрыть.

Вариант 2: использовать Tor Browser

Использовать Chromium плохо как минимум по трем причинам. Во-первых, по умолчанию в нем включен JavaScript, что может использоваться для деанонимизации пользователя. Во-вторых, никому не известно, сколько и какой статистики он будет сливать в Google в очередной новой версии. В-третьих, иногда он глючит и считает, что .onion ресурс в адресной строке — это на самом деле такой запрос к поисковой системе. Поэтому для работы с Tor крайне рекомендуется использовать Tor Browser .

В Arch Linux он устанавливается из AUR (см заметку Управление пакетами в Arch Linux с помощью ABS и pacman ). Tor Browser не только лишен всех названных выше недостатков, но и чуть удобнее за счет того, что не требует отдельной установки сервиса tor.

Заходим на .onion ресурсы

В сети Tor существуют поисковые системы, например, Torch и Candle . Но они не очень хорошо работают сразу по нескольким причинам. Многие ресурсы требуют авторизации, поэтому индексировать их бесполезно. Самих ресурсов меньше (следовательно, меньше ссылок на другие ресурсы), а поведенческие факторы практически недоступны. Таким образом, традиционные алгоритмы ранжирования использовать трудно, и сортировка в выдаче никакая.

На помощь приходят старые-добрые каталоги сайтов. Вот некоторые из них:

С их помощью вы без труда найдете все остальные внутренние ресурсы сети — форумы, торренты, почту, jabber, магазины, обменники валют, и многие другие. Кстати, на счет валюты. Большой популярностью пользуется Bitcoin. Ему при желании можно посвятить отдельную небольшую статью. Здесь скажу лишь, что неплохим клиентом является Electrum . В настройках можно очень легко заставить его работать через Tor.

Поднимаем свой .onion ресурс

Для поднятия своих ресурсов не требуется внешний IP, поэтому все описанные действия можно произвести даже в поднятой на ноутбуке виртуалке.

Ставим Nginx :

sudo pacman -S nginx
sudo systemctl enable nginx
sudo systemctl start nginx
curl localhost: 80 -o

Должны увидеть знаменитое Welcome to nginx! .

Ставим Tor:

sudo pacman -S tor torsocks

Дописываем в файл /etc/tor/torrc:

HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:80
# можно указывать несколько портов:
HiddenServicePort 22 127.0.0.1:22

Запускаем Tor:

sudo systemctl enable tor
sudo systemctl start tor

Обязательно делайте резервную копию /var/lib/tor/hidden_service/ — без нее вы не сможете перенести свой сайт на другую машину, сохранив доменное имя. В файле hostname вы увидите сгенерированное доменное имя. Можно вбить его в Tor Browser и убедиться, что вы увидите Welcome to nginx! . Заметьте, что весь трафик уже шифруется, и вы эффективно получаете SSL/TLS безо всяких там центров сертификации!

Можно подрубиться и по SSH:

torify ssh eax @ g5a6wykhm2ajtwvk.onion

Помимо прочего, можно использовать этот прием для подключения по SSH к своему домашнему компьютеру, находящемуся за NAT.

Рассмотрим еще небольшой пример. Настроим проброс порта 3003, как это было описано выше. Затем скажем:

sudo pacman -S gnu-netcat
nc -l -p 3003

На другой машине говорим:

torify telnet g5a6wykhm2ajtwvk.onion 3003

В итоге получили анонимный чат с end to end шифрованием! Для большего удобства можно использовать специализированный LAN-чаты. Например, iptux ( AUR ) имеет GUI и поддерживает обмен файлами. Также для обмена файлами через Tor существует программа OnionShare ( AUR ).

Fun fact! Существует софт для генерации красивых .onion адресов . Но таких адресов лучше избегать. Как минимум, довольно легко сгенерировать похожий адрес, отличающийся от настоящего всего на пару символов, и заставить перейти по нему пользователя.

Заключение

Еще из интересных тем можно назвать настройку relay и exit node, но они производятся тривиально по комментариям в файле torrc. Только имейте в виду, что поднимая relay, вы рискуете, так как когда к вам придут трехбуквенные агенства, будет поздно объяснять, что это не вы лично что-то делали, а один из пользователей сети Tor. В случае с exit node риск еще больше.

Дополнение: Тема инстант мессенджеров для сети Tor продолжена в статье Шифрование сообщений в Jabber при помощи OTR . Также вас могут заинтересовать статьи об OpenVPN и sshuttle .

EnglishRussianUkrainian