Tor exit node настройка

Обновлено: 07.07.2024

Если ты считаешь, что Tor – это исключительно средство для обеспечения приватности в сети, то ты неправ дважды. Во-первых, его распределенную сеть можно использовать в разных целях. А, во-вторых, не так уж безопасен черт, как его малюют. Увы.

Замечательный инструмент для обеспечения анонимности и сохранности данных в сети хорош по многим причинам. Сразу остаются не у дел любые сниферы, в том числе установленные и на интернет-маршрутизаторах, потому как весь трафик передается через цепочку узлов исключительно в зашифрованном виде. Крайне затруднительно или, если полностью поверить разработчикам, то даже невозможно становится отследить источник отправки данных благодаря постоянно меняющимся цепочкам специальных узлов-посредников, через которые передаются данные. Кто не пробовал использовать Tor, чтобы банально сменить свой IP? Минус на первый взгляд один – скорость работы. Каждый из нодов, входящих в цепочку, вносит серьезную задержку, как по времени отклика, так и банально по ширине канала. В результате получаем анонимное соединение. Анонимное и модемное . Но диалапный коннект – это не самая главная проблема активных пользователей Tor. Гораздо сильнее их должно волновать, что любые данные можно перехватить и, черт подери, сделать это просто!

Откуда берутся… ноды
Чтобы пустить трафик приложения через Tor, достаточно указать в настройках прокси – адрес локального SOCKS-сервера. В случае, если такой возможности не предусмотрено можно использовать соксофикатор (например, Sockcap), но помнить при этом, что через сокс можно пустить только TCP-трафик. Впрочем, для большинства пользователей намного более интересны будут готовые сборки (так называемые Bundles), включающие сам Tor, а также преконфигурированные браузер Firefox и IM-клиент Pidgin. Поставил и все работает! Кстати говоря, для большего удобства для Firefox’а реализован плагин Torbutton.
Щелкнул – и весь безопасно трафик уже передается через цепочку промежуточных узлов. Что вообще представляют собой эти узлы и как в принципе устроен Tor?
Попробуем разобраться.

Где зарылась собака?
Итак, маршрут постоянно меняется, данные через промежуточные узлы проходят в виде белиберды, т.е. в зашифрованном виде – где подвох? Он есть. Ведь, как серьезно бы ни защищались данные, как изощренно не выбирался и запутывался маршрут, где-то на выходе данные все равно нужно расшифровывать. Ведь только так их можно доставить до места назначения. Эта операция осуществляется на последней ноде в цепочке – так называемой выходной нодой (Exit Node). Если на таком узле установить снифер, то данным ничего больше не останется, как прямиком попасть в логи .

htw1_ru.jpg

htw2_ru.jpg

htw3_ru.jpg

Ты можешь подумать, что система такого положения дел не допускает и поднять Tor для работы выходной ноды нельзя? Запросто! Вся система строится на большом количестве энтузиастов, участвующих в проекте и предоставляющие свои домашние компьютеры как ноды, и в том числе выходные. Несколько строчек кода в конфиге – твой билет их ряды.

Да здравствует Exit node!
Ну что ж, приступим. Для экспериментов нам понадобится любой никсовый дистрибутив, пускай даже это будет Backtrack, запущенный с флешки, или Ubuntu на виртуальной машине – это совершенно не важно.
Далее потребуется последняя версия Tor (на момент публикации – 0.2.1.19). Любители GUI также могут скачать и установить Vidalia – мы же будем работать в консоли. Итак скачиваем пакет, распаковываем и устанавливаем. Я думаю на этой стадии никаких проблем быть не должно.
Ловись-ловись, рыбка
Итак, выходная нода настроена, запущена, добавлена в базу – кто-нибудь обязательно ею воспользуется уже в самое ближайшее время. Что ж, остается только запустить любимый снифер Wireshark, выбрать Интерфейс, смотрящий во внешнюю сеть и включить захват пакетов. А дальше нужно чуть подождать. В большинстве случаев пакеты начинают сыпаться в логи уже очень скоро )..


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

Держать Exit Node – задача для крепких парней
Надо понимать, что работая в качестве Exite Node’ы, человек серьезно подставляет себя. Ведь именно его IP светиться во время взломов и т.д. В процессе написания статьи через мой сервер дважды пытались провести атаку типа SQL-injection. Так что держи ухо востро, за такие вещи можно запросто схлопотать от правоохранительных органов или от провайдера. Вот лишь
некоторые примеры:

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

В 2007 г.
Национальная полиция Швеции арестовала известного эксперта по компьютерной безопасности Дена Эгерстада по обвинению в неправомерном доступе к компьютерной информации. 22-летний сотрудник компании Deranged Security опубликовал на своем рабочем сайте пароли к электронной почте посольств, негосударственных организаций, коммерческих фирм и правительственным агентств разных стран. По его словам, он в качестве эксперимента создал 5 выходных серверов Tor и перехватывал через них незашифрованный трафик.

WARNING
Данная статья не является инструкцией или побуждением к действиям. Она призвана лишь показать, что даже программы, создаваемые ради благих целей, могут быть использованы во зло.
++
Сеть Tor изначально разрабатывалась и внедрялась в рамках проекта по созданию лукового маршрутизатора Военно-Морской Исследовательской Лаборатории (Naval Research Laboratory) третьего поколения. Изначально сеть была разработана с расчетом на Военно-Морской Флот США, главной целью при этом была защита правительственных коммуникаций. Сегодня, сеть ежедневно используется по широкому спектру причин военными, журналистами, сотрудниками правоохранительных органов, активистами и множеством других людей.

Безопасность и работоспособность сети Tor напрямую зависит от количества узлов, отвечающих за пересылку трафика, — relay nodes. Организация EFF даже открыла соревнование Tor Challenge с целью простимулировать как можно большее число пользователей настроить и запустить такие узлы. Собственно говоря, именно этому нехитрому действию и посвящена статья.

Нам потребуется сервер — машина, на которой Tor Relay будет работать. Можно воспользоваться своим домашним компьютером, можно перенастроить умный роутер. Я предлагаю другой способ — использовать VPS (Virtual Private Server). Программное обеспечение Tor довольно неприхотливо и легко уживается даже на VPS с минимальной конфигурацией. Хватает 256 Mb памяти, скорее всего хватит и 128Mb. Дисковые требования также минимальны: меньше гигабайта. Стоимость такого сервера в месяц близка к стоимости чашки кофе в какой-нибудь кофейне.

Итак, регистрируем себе VPS. Для нас главное, чтобы у нее был честный внешний IP адрес. Мне нравится Yourserver, но можно использовать любой другой VPS с Linux или *BSD на борту. Как правило, после покупки вы получаете сервер, на который уже установлен один из дистрибутивов Linux. Выбирайте сами, какой вам по душе. Я буду рассказывать на примере Debian.

Сначала на VPS надо установить Tor:

По умолчанию Tor будет работать в режиме клиента сети: вы можете им воспользоваться для работы с сетью, но для для других этот экземпляр будет бесполезен. Чужой трафик через него идти не будет. Необходимо включить режим Tor Relay (пересылки пакетов). Еще мы включим Directory Service &mdsah; сервис каталогов, отвечающий за распространение информации о других tor серверах. В принципе, ничто не мешает использовать для пересылки и для каталога произвольные порты. Конфигурационный файл по умолчанию предлагает использовать порт 9001 для пересылки пакетов и 9030 для сервиса каталогов. Но, поскольку этот VPS больше ни для чего использоваться не будет, мы можем чуть схитрить и облегчить жизнь людям, сидящим за строгими межсетевыми экранами. Мы сделаем наш сервер доступным по портам 443 и 80 — по портам, которые обычно используются для www трафика.

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


В строчке Nickname вписываем какое-нибудь имя для этого сервера. По нему мы потом сможем контролировать работу сервера через специальные сервисы на TorProject.

В строчку ContactInfo можно вписать свои контактные данные (на случай, если кому-то захочется с вами связаться). А можно ее просто опустить, тогда наш сервер тоже никому не сможет рассказать, кто его владелец.

Последние две строчки запрещают использовать наш сервер в качестве точки выхода (Exit Node) трафика. В противном случае, Tor будет пытаться использовать наш сервер для передачи исходящего трафика сети на внешние сервера. К сожалению, не все используют Tor с благими намерениями, а если трафик покидает Tor через ваш сервер, все проблемы и последствия свалятся в том числе и на вашу голову.

С помощью iptables мы сейчас настроим необходимую связь между портами.

Если в выбранном дистрибутиве есть специальные средства настройки сетевого экрана iptables, можно воспользоваться ими. Проще и нагляднее сделать все ручками.

Этим мы разрешаем работу с нашим сервером tor и доступ к ssh для удаленного администрирования.
Осталось прописать загрузку этих правил. Обычно я прописываю запуск iptables-restore в /etc/network/interfaces:

На Yourserver файл /etc/network/interfaces переписывается каждый раз при перезапуске, поэтому можно сделать чуть иначе.
Например, вставить загрузку правил iptables в /etc/rc.local. Для этого в конец файла перед exit 0 вставляем строчку


В заключение перезапускаем сервер tor:


Проверяем, что мы все сделали правильно. Через некоторое время после перезапуска в файле /var/log/tor/log должна появиться строчки:

Поначалу через новый сервер трафик идти не будет. Жизненный путь Tor Relay — это тема отдельной статьи.

где вместо DISTRIBUTION вписываем версию вашего дистрибутива (например, jessie или saucy). Выполняем

Важными состовляющими сети TOR являются Relay(ретранстляторы), Bringe(мосты) и Exit Node(выходные точки). Так же можно ещё упомянуть об TOR Socks Proxy, Obfsproxy(прокси с поддержкой обфускации траффика) и Hidden Service(скрытые сервисы TOR, доступные только внутри самой сети), но о них чуть позже. Рассмотрим всё по порядку, т.е. что это всё из себя представляет, поехали ))

1) Relay - это публичные ретрансляторы в сети TOR. Получить список ретрансляторов можно здесь → Globe, Atlas. Главная задача ретрансляторов состоит в том, что бы перегонять через себя транзитный трафик, т.е. ретранслятор является посредником в цепочке нодов, но точно так же есть возможность настроить ретранслятор на работу в режиме выходной точки и одновременно TOR Socks Proxy .

2) Bridge - мост, является точкой входа в саму сеть TOR. Может являться публичным мостом или не публичным. В случае с развёртыванием не публичного моста(не публичные мосты стоит развёртывать, если вы хотите предоставлять сход в сеть TOR пользователям стран с сильной цензурой), он не будет доступен по ссылкам приведённым в описании Relay и что бы пользователь мог получить мосты для подключения к сети нужно настроить TOR клиент для работы через мост, либо (если в вашей стране закрыт доступ к мостам TOR) написать письмо в Tor Project с просьбой прислать вам несколько IP адресов с мостами (в основном вам пришлют 3 рандомных адреса). Так же bridge может работать в решиме проски сервера с поддержкой обфускации трафика, Obfsproxy(используется для того, что бы обойти DPI. Так же имеется возможность прикрутить авторизацию, для использования нашего моста.

3) Exit Node - собственно завершающее звено в сети. Точка из которой выходят запросы клиентов к внешним ресурсам. По сути дела мало чего можно рассказать про то, чем является Exit Node. Но стоит сказать то, что выходной нодой может являтся как relay, так и bridge(не рекомендуется делать мост одновременно и точкой выхода, особенно есть ваш мост не публичный !!).

Небольшие примечания: Если вы собрались стать участником TOR, то вам необходимо знать несколько формальностей.

a) Не все провайдеры и сервисы, которые дают вам возможность арендовать виртуальный сервер, равнодушно дышат в сторону данной сети. Так что перед тем как на радостях бежать покупать VPS или арендовать юнит в стойке ЦОДа. Убедитесь в том, что ваш провайдер одобрит то, что вы держите у себя ретранслятор или выходную ноду. Список провайдеров и их отношений к TOR: List Но, если вы используете домашнего провайдера, то им, по большей части(если это конечно крупный провайдер), по барабану на то, что вы у себя дома храните.

b) Крайне не рекомендуется держать Exit Node у себя дома. Но если вы Джедай/Ситх/Чак/Плюшевая Борода/волшебный единорог/пиченюха (нужное подчеркнуть), то знайте, что в случае sql/xss/exploit/bruteforce/dos атак именно ваш IP будет в логах жертв атакующих. Так же были прицеденты к владельцу Exit Node, которая размещалась в ЦОДе Пруф. Хотя если учесть то, как в нашей стране реагируют на подобные случаи то… всё не так уж плохо.

c) Чтобы избежать проблем с синхронизацией вашего ретранслятора с остальными участниками TOR, вам необходимо убедиться в том, что NTP на вашем сервере корректно настроен на ваш часовой пояс !

d) В целях повышенной безопасности, имеется возможность запустить TOR в SandBox если указать в конциге опцию Sandbox 1. Но это не рекомендуется делать, из-за того, что пока это только экспериментальная возможность, поэтому если вы хотите стабильно работающий relay/bridge, то лучше вам этого не делать. Так же имеется возможность запустить tor в chroot, но в данной статье не буду заострять на это внимание, так как не тестировал данный метод запуска tor. Возможно позже дополню эту статью данной заметкой.

e) У ретранслатора TOR есть свой жизненный цикл Так что у вас не получится работать как полноценный «узел», сразу после запуска. Сначала стоит выдержать проверку временем и трафиком

f) Безопасное использование TOR - security

g) Ну и конечно же есть во многих негативных моментах свой пряник . И конечно же это футболки.

B. Deploy

В качестве дистрибутива я выбрал уже привычный для себя Debian 7 x64 (netinstall). И собираюсь описать то, как поднять ретранслятор с выходной нодой и socks proxy. А теперь вперёд в бой ))

2) Теперь добавим ключ данного репозитория:

И после этого вводим apt-get update && apt-get install tor tor-arm

3) После установки, должны установиться три пакета (tor, tor-arm и torsocks). В /etc/passwd появился пользователь deabin-tor а в /etc/group группа debian-tor. Основные файлы находятся в /etc/tor (основной конфиг), /var/lib/tor (секретные ключи а так же кэш), /usr/share/tor (дефолтный конфиг и базы GeoIP) ну и конечно же доки /usr/share/doc/tor и /usr/share/doc/tor-arm

C. Настройка.

1) Первым делом нам необходимо сгенерировать пароль для доступа к контрольной панели нашего TOR сервера.

tor –hash-password MySUpp3rT0Rp@sSw0rd

И зачищаем всю нашу историю. history -c && rm

/.bash_history P.S. Если используете snoopy кейлоггер, то так же уберите эту команду из файла /var/log/auth.log !
На выходе мы получим хэш, который вы должны либо временно переместить в буфер, либо куда-нибудь записать в файл. Этот хэш нам скоро понадобится.

2) Теперь добавьте вашего обычного пользователя, который не обладает какими-либо административными привилегиями в группу debian-tor. Так же переходим в каталог /etc/tor/ и вводим меняем права у файла torrc

chown root:debian-tor torrc && chmod 0640 torrc

3) Вскрываем наш основной конфиг /etc/tor/torrc
P.s. Держим на готове наш хэш

Вот основные параменты, которые нам нужны:

SocksPort 1.1.1.1:9050 ← устанавливаем сокет для прокси, в качестве адреса можно указать только порт и тогда socks proxy будет доступен только вам.

Log notice file /var/log/tor/log ← куда пишем логи. Доступные уровни логирования (err,warn,info,nocite,debug)

RunAsDaemon 1 ← устанавливаем параметр в 1, так как будем работать в «демоническом» режиме. Дефолтное значение 0

DataDirectory /var/lib/tor ← указываем директорию с ключами и кэшем, это домашняя директория пользователя debian-tor.

PidFile /var/run/tor/tor.pid ← можно и не указывать данную опцию, но почему-то из-за её отсутствия, на начале развёртывания у меня были ошибки в логах при перезупаске сервиса tor, которые ссылались на то, что не могут найти .pid файл демона.

ControlPort 9050 ← к данному порту мы будем подключаться для считывания статиски и управления нашим TOR сервером через tor-arm

HashedControlPassword <HASH> ← в данной опции нужно скопипастить наш хэш, который мы сгенерировали.

CookieAuthentication 0 ← выставляем данный параметр в 0, если используете аутентификацию по паролю. Иначе, даже при наличии пароля, будете подключаться через куки.

ORPort 443 NoListen
ORPort 1.1.1.1:9001 NoAdvertise ← эти два параметра отвечают за пересылку транзитного трафика и для общения с клиентами. Но, если вы планируете реализовывать веб-сервер, то тогда уберите строчку ORPort 443 NoListen . Но если же, данный сервер будет использоваться только как TOR, то лучше установить ORPort на 443, думаю, что понятно по каким причинам это лучше делать.

Address 1.1.1.1 ← вписываем наш адрес/dns. Эа опция вовсе не обязательна для указания, так как tor сервер сам определит адрес вашего ретранслятора.

Nickname MyExitRelay ← подключаем фантазию и придумываем имя нашему ретранслятору. Имя не обязательно должно быть уникальным, неоторые ретрансляторы/мосты имеют одинаковые имена.

DirPort 80 NoListen
DirPort 1.1.1.1:9030 NoAdvertise ← сокет, по которому клиенты будут получать списки TOR серверов. Поэтому, так же, если вы не планируете использовать web сервер, то установите опцию DirPort 80 NoListen .

ExitPolicy accept *:20 ← данный параметр определяет, какие порты и от каких адресов мы будем разрешать использовать на выходе (если вы планируете использовать свой сервер Exit Node). Если вы не хотите быть Exit Node а только ретранслятором, то просто напишите ExitPolicy reject *:*

ExitPolicy reject6 *:* ← «отрыгиваем» на выходе ipv6 трафик.

BridgeRelay 0 ← Так как мы деплоим relay, то устанавливаем параметр 0.

NumCPUs 1 ← указываем количество ядер, которые может отдать для TOR сервера.

PublishServerDescriptor 1 ← данная опцию говорит о том, что мы являемся публичным, т.е. общедоступным релеем.

User debian-tor ← указываем с правами какого пользователя мы будем запускать TOR. (Запускать от рута, либо пользователя с административными привилегиями, крайне не рекомендуется.)

GeoIPFile /usr/share/tor/geoip ← указываем файл с GeoIP данными.

AllowSingleHopExits 0 ← лучше установить данный параметр в 0, если вы relay. Опция говорит о том, что мы можем пропускать трафик на прямую от клиента до источника, минуя все остальные цепочки ретрансляторов.

IPv6Exit 0 ← запрещаем прохождение ipv6 трафика.

ExitPolicyRejectPrivate 0 ← разрешаем соединение с нашим TOR сервером от клиентов локальных сетей.

ExcludeNodes Nickname или fingerprint ← Пожно указать список (через запятую) хостов, которые вы можете исключить из «цепочки» нодов.

MyFamily <fingerprint> ← можно указать ретрансляторы, максимум 40 хостов, которые будут более приоритетными в цепочке трафика.

Ниже приведены опции ответственные за запуск Tor DNS . Настраивать это только по лично желанию.

Ну вот мы и разобрали все основные опции в конфиге TOR, на самом деле их гораздо больше чем я описал. Для того, чтобы увидеть их всех, вам необходимо ввести команду:
tor –list-torrc-options

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

man tor

3) Firewall.

В конфиге фаервола создаём таблицу nat с данными правилами перенаправления входящих пакетов. (Если вы не используете для TOR порты 80 и 443, то таблица nat вам не нужна)

*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -p tcp -m state –state NEW -m tcp –dport 443 -j REDIRECT –to-ports 9001
-A PREROUTING -p tcp -m state –state NEW -m tcp –dport 80 -j REDIRECT –to-ports 9030
COMMIT

В таблице filter, в цепочках INPUT и OUTPUT пишем:
-A INPUT -i eth0 -p tcp -m state –state NEW -m tcp -m multiport –dports 9001,9030,9050 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp –dport 53 -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m state –state NEW -m owner –uid-owner 109 -j ACCEPT

4) Ребутаем tor.

/etc/init.d/tor restart

И проверяем, что tor запущен от пользователя debian-tor ( lsof -c tor && ps aux | grep tor ) и смотрим в лог файл. Если в логах появится запись:

Self-testing indicates your ORPort is reachable from the outside. Excellent. Publishing server descriptor
Значит всё работает.

4.1) Тюнингуем ядрою

Записываем в файл /etc/sysctl.conf след. параметры:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
net.ipv4.tcp_fin_timeout = 13
net.ipv4.ip_local_port_range = 11000 65000
net.ipv4.tcp_fwmark_accept = 0
net.ipv4.tcp_keepalive_time = 1800
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_keepalive_intvl = 45

И применяем изменения sysctl -p

5) Мониторинг

tor-arm.
Теперь нам бы хотелось мониторить состояние нашего ретранслятора, сделать это можно при помощи tor-arm. Тут нам необходимо вспомнить про наш пароль, который мы генерировали при помощи команды tor –hash-password . Вводим команду arm и свой пароль (не стоит запускать данную команду от root пользователя).






Мне больше понравился globe, в отличии от atlas не такой «глючный». Но из миносов данных web сервисов, хотелось бы отметить не своевременное обновление информации.

Примечания:
a) Так же стоит иметь ввиду, что TOR, при старте своего сервиса, по дефолту, изначально читает конфиг из директории «/usr/share/tor/» и только после этого читает /etc/tor/torrc. В дефолтном конфиге уже прописаны такие параметры как DataDirectory. PidFile, RunAsDaemon, User, ControlSocket ControlSocketGroup, CookieAuthentication, CookieAuthFileGroupReadable, CookieAuthFile и Log notice file. Если вы не хотите, что бы демон tor читал дефолтный конфиг, то можно просто подредактировать init-скрипт /etc/init.d/tor изменив в нём значение переменной DEFAULT_ARGS на –defaults-torrc /etc/tor/torrc

b) При бэкапировании TOR сервера вам необходимо так же не забывать о сохранности важного приватного ключа secret_id_key, который находятся в директории /var/lib/tor/keys/ Это ваш универнальный идентификационный ключ, если вы его потеряете, то при восстановлении, вы уже будете «другим» ретранслятором. Так же если данный ключ попадёт к злоумышленнику, то он может представиться вами и получать ваш трафик.

c) Для развёртывания TOR Relay не обязательно иметь статический адрес. В случае, если вы решили развернуть relay на вашем домашнем компьютере, который находится на NAT и у вас нет белого адреса. То вам нужно убрать из конфига строчку Address а на вашем роутере сделать проброс портов (ORPort и DirPort).

d) У меня при нагрузке в 2700 коннектов потреблялось 520 Mb моего DDR2.

e) Хорошим тоном было бы дать возможность сервису tor открывать большее количество файловых дескрипторов, чем по дефолту (примерно 1200). Это можно сделать отредактировав файл /etc/security/limits.conf Вписав туда строчку:

debian-tor hard nofile 8192

Ну вот и всё. Можете разворачивать и экспериментировать над своими TOR узлами, делиться опытом и советами. Ну и конечно же пополнить армию анонимусов инфраструктуру дополнительными нодами.

Tor - технология, обеспечивающая анонимность. Tor - это и программное обеспечение и анонимная сеть, поддерживаемая волонтерами по всему миру. Подробнее о Tor можно прочитать здесь.

В TING, ПО Tor реализовано в виде плагина os-tor.

В зависимости от того, как настроить ПО Tor, оно может обеспечить:

Анонимизацию исходящих подключений для приложений (основное применение технологии Tor)

Анонимизацию входящих подключений для серверов (Анонимные службы)

Работу сети Tor, помимо прочего, обеспечивают так называемые ретранслирующие узлы (relays). ПО Tor можно настроит в качестве узла сети Tor.

Общие настройка ПО Tor¶

Установка плагина os-tor

Пройдите в раздел Система -> Прошивка -> Обновления. На вкладке Плагины нажмите на кнопку + напротив плагина os-tor для его установки. После установки плагина os-tor, в разделе Службы -> Веб-прокси появляется подраздел Tor.

Общие настройки ПО Tor

Независимо от того, как Вы собираетесь использовать Tor, нужно осуществить общие настройки.

Пройдите в раздел Службы -> Tor, вкладка Общие настройки.

На данной вкладке присутствуют общие настройки Tor. Осуществите настройку в соответствии со скриншотом.

_images/tor_general_settings.jpg

Данные настройки означают, что мы:

  • вкючаем ПО Tor

  • запускаем его на указанных интерфейсах (LAN-интерфейс)

  • заставляем TOR-прокси слушать определенные порты (TCP/9050)

  • предписываем вести лог с занесением ошибок определенной степени серьезности (уровень Error)

  • не задействуем функционал прозрачного проксирования

  • не задействуем продвинутый функционал Tor (Fascist Mode, Transparent IP Pool, Map Host To IP Pool)

Приложения могут получить доступ к Tor-сети через SOCKS-прокси, который является частью ПО Tor. Иными словами, технология Tor предоставляет доступ к себе в виде специального SOCKS-прокси-сервера, который часто зовут просто Tor-прокси.

Настройки ПО Tor для анонимизации исходящих подключений¶

Выполнив требования раздела Общие настройка ПО Tor, мы фактически настроили ПО Tor для функции анонимизации исходящих подключений.

Остается только создать списки доступа для хостов, которые смогут пользоваться этой услугой.

Пройдите в раздел Службы -> Tor, вкладка SOCKS Proxy ACL.

SOCKS-прокси для Tor, по умолчанию, привязывается к адресу localhost (127.0.0.1 или ::1). Чтобы приложения со сторонних хостов смогли пользоваться Tor через данный SOCKS-прокси, нужно создать разрешающий список контроля доступа (ACL).

На скриншоте демонстрируется ACL для разрешения хостам из IP-сети 192.168.1.0/24 работать через Tor-прокси.

_images/tor_socks_proxy_acls.jpg

Для создания новой ACL кликните на кнопку +:

_images/tor_edit_acl.jpg

На скриншоте демонстрируются настройки ACL:

  • ACL включена

  • ACL действует для IPv4

  • ACL является разрешающей

  • ACL разрешает обращение из IP-сети 192.168.1.0/24

Настройки ПО Tor для анонимизации входящих подключений¶

Tor может обеспечивать анонимность для серверов, позволяя скрыть их IP-адрес, и как следствие, местонахождение.

Анонимные службы - это серверы, настроенные на получение входящих соединений только через анонимную сеть Tor.

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

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

В данном разделе мы говорим о клиентской и серверной стороне. Серверная сторона - сторона, где хостится служба. Сторона клиента - сторона, из которой работают клиентские программы, получающие доступ к службе.

ПО Tor разворачивается и настраивается в соответствии с рекомендациями в разделе Общие настройка ПО Tor на клиентской и серверной стороне. Далее, производятся настройки, уникальные для каждой из сторон.

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

Пройдите в раздел Службы -> Tor, вкладка Onion Services и кликните на кнопку +.

Имя службы может быть произвольным, но должно состоять из буквенно-цифровых символов, как на скриншоте:

_images/tor_onion_services.jpg

Для определения настроек маршрутизации, пройдите на вкладку Onion Service Routing и кликните на кнопку +.

_images/tor_onion_services_routing_edit.jpg

Скриншот демонстирует правило со следующими настройками:

  • Правило применяется для службы sampleservice

  • Правило задает виртуальный порт в сети Tor, через который можно обратится к службе (пользователи сети Tor будут обращаться к данной службе по виртуальному порту 80)

  • Реальный IP-адрес хоста, на котором выполняется служба (адрес 127.0.0.1 означает, что служба хостится локально, на той же машине, что и ПО Tor)

  • Реальный TCP-порт, который слушает служба (порт TCP/8080)

Если мы хотим иметь возможность обращаться к скрытой службе по разным портам, то нужно создать несколько записей на данной вкладке (по одной записи на порт).

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

Можно еще лучше защитить Onion-службу, предоставляя доступ к ней, только если клиент знает секретный cookie.

Например, можно настроить Onion-службу так, чтобы ее присутствие в Tor-сети не афишировалось (т.н. Stealth-служба).

Пример настройки демонстрируется на скриншоте:

_images/tor_stealth_onion_service.jpg

Мы выбрали следующие настройки:

  • Не афишировать присутствие Onion-службы в Tor-сети

  • Ограничить доступ к службе только для указанных клиентов

После этого, в файле /var/db/tor/sampleservice/hostname будет сохранено .onion-имя службы и секретный cookie, который необходимо сообщить клиенту onion-службы.

Пример содержания такого файла:

Настройки на клиентской стороне¶

Чтобы клиент смог обращаться к настроенной выше службе, в ПО Tor на стороне клинета, нужно сделать следующие настройки.

Пройдите в раздел Службы -> Tor, вкладка Onion Service Authentication.

_images/tor_client_auth.jpg

Настройка ПО Tor в качестве ретранслирующего узла сети Tor¶

Ретранслирующий узел - основа анонимной сети Tor. Обращения пользователей пропускаются через цепочку случайно выбираемых ретранслирующих узлов. Среди ретранслирующих узлов выделяют:

Посреднические узлы (middleman node)

Выходные узлы (exit node)

Выходной узел - последний узел в случайно выбранной цепочке. Выходные узлы полностью расшифровывают исходный трафик пользователя и досылают его на целевой сервер.

Настройка вашего ПО Tor в качестве выходного узла может иметь для Вас юридические последствия. В логах целевого сервера всегда видно от какого выходного узла происходило обращение.

Настройка мостового узла¶

Для настройки мостового узла пройдите в раздел Службы -> Tor, вкладка Relaying и укажите следующие настройки:

_images/tor_bridge_relay_settings.jpg

Мы выбрали следующие настройки:

  • Включена ретрансляция

  • Узел настроен как мост, который слушает TCP порт 9001

  • Отсутствие каких-либо ограничений скорости для подключащихся клиентов

  • Запрет на доступ к «серым» IP-адресам (RFC 1918)

Настройка выходного узла¶

Для того, чтобы настроить ПО Tor в качестве выходного узла, достаточно включить ретрансляцию и прописать разрешающий список контроля доступа (ACL) в разделе Службы -> Tor, на вкладке Exit Node ACL.

Читайте также: