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.png

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

  • вкючаем ПО 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.png

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

_images/tor_edit_acl.png

На скриншоте демонстрируются настройки 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.png

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

_images/tor_onion_services_routing_edit.png

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

  • Правило применяется для службы 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.png

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

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

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

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

yq6ywms44xx3i3vn.onion n7oZgUi78njYfViWD4XxUB # client: example_client

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

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

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

_images/tor_client_auth.png

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

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

  • Входные узлы (entry node)
  • Посреднические узлы (middleman node)
  • Выходные узлы (exit node)

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

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

Примечание

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

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

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

_images/tor_bridge_relay_settings.png

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

  • Включена ретрансляция
  • Узел настроен как мост, который слушает TCP порт 9001
  • Отсутствие каких-либо ограничений скорости для подключащихся клиентов
  • Запрет на доступ к «серым» IP-адресам (RFC 1918)

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

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

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

_images/tor_exit_node_acl_edit.png

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

  • ACL включена
  • ACL действует для IPv4
  • ACL является разрешающей
  • ACL разрешает обращение в любую целевую IP-сеть
_images/tor_exit_node_acl_list.png