Мы предполагаем, что вы уже ознакомились с руководством по узлам и техническими аспектами. Эта страница предназначена для операторов, которые хотят включить выход на своем узле.

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

Обратная просмотр DNS и WHOIS

Прежде чем обращать узел без выхода в выходной, убедитесь, что вы установили обратный просмотр DNS (PTR), чтобы было более очевидно, что это выходной узел tor. Что-то вроде "tor-exit" в его названии является хорошим началом.

Если ваш провайдер предлагает это, убедитесь, что ваша запись WHOIS содержит четкие указания о том, что это выходной узел Tor.

Используйте доменное имя, которым вы владеете. Ни в коем случае не используйте «torproject.org» в качестве доменного имени для обратного DNS.

HTML-страница уведомления о выходном узле

Для более явной демонстрации того, что это выходной узел Tor, вы должны обслуживать HTML-страницу уведомления о выходном узле Tor. Tor может сделать это за вас: если ваш DirPort находится на TCP-порту 80, вы можете использовать функцию tor DirPortFrontPage для отображения HTML-файла на этом порту. Этот файл будет показан любому, кто направит свой браузер на IP-адрес вашего выходного узла Tor.

Если вы не настроили это ранее, к вашему torrc должны быть применены следующие строки конфигурации:

DirPort 80
DirPortFrontPage /path/to/html/file

Мы предлагаем пример HTML-файла уведомления о выходе Tor, но вы можете изменить его в соответствии со своими потребностями.

У нас также есть отличный пост в блоге с некоторыми дополнительными советами по запуску выходного узла.

Примечание: DirPort устарел с Tor 0.4.6.5, и самодиагностика не отображается в журналах tor. Для получения дополнительной информации прочитайте release notes и тикет #40282.

Политика исходящего трафика

Определение политики исходящего трафика является одной из наиболее важных частей конфигурации выходного узла. Политика исходящего трафика определяет, какие порты назначения вы хотите переслать. Это влияет на количество писем о злоупотреблениях, которые вы получите (меньше портов – меньше писем, но выходной узел, допускающий только несколько портов, также менее полезен). Если вы хотите быть полезным выходным узлом, вы должны разрешить по крайней мере порты назначения 80 и 443.

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

Чтобы стать выходным узлом, измените значение параметра ExitRelay с 0 на 1 в конфигурационном файле torrc и перезапустите демон tor.

ExitRelay 1

DNS на выходных узлах

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

  • Разрешение DNS может оказать значительное влияние на производительность и надежность, обеспечиваемые выходным узлом.
  • Не используйте ни один из больших сопоставителей DNS (Google, OpenDNS, Quad9, Cloudflare, 4.2.2.1-6) в качестве основного или резервного, чтобы избежать централизации.
  • Мы рекомендуем запускать локальный кэширующий и DNSSEC-проверяющий сопоставители без использования каких-либо серверов пересылки (конкретные инструкции приведены ниже, для различных операционных систем).
    • Если вы хотите добавить второй сопоставитель DNS в качестве запасного варианта к вашей конфигурации /etc/resolv.conf, выберите сопоставитель в вашей автономной системе и убедитесь, что это не первая запись в этом файле (первая запись должна быть вашим локальным сопоставителем).
    • Если локальный сопоставитель, такой как unbound, не подходит для вас, используйте сопоставитель, который ваш провайдер запускает в той же автономной системе (чтобы узнать, находится ли IP-адрес в том же AS, что и ваш узел, воспользуйтесь сервисом bgp.he.net).
  • Избегайте добавления более двух сопоставителей в файл /etc/resolv.conf, чтобы ограничить воздействие DNS-запросов на уровне AS.
  • Убедитесь, что ваш локальный сопоставитель не использует какой-либо исходящий исходный IP-адрес, который используется каким-то выходным узлом или узлом без выхода Tor, потому что нередко IP-адреса Tor (временно) блокируются, а заблокированный IP-адрес источника распознавателя DNS может иметь широкое влияние. Для unbound вы можете использовать опцию outgoing-interface (исходящий интерфейс), чтобы указать исходные IP-адреса для связи с другими DNS-серверами.
  • Крупные операторы выхода (> =100 Мбит/с) должны приложить усилия для мониторинга и оптимизации времени ожидания разрешения DNS Tor. Для этого можно использовать экспортер Prometheus Tor (MetricsPort). Следующая метрика может использоваться для мониторинга времени ожидания, как видно из Tor:
tor_relay_exit_dns_error_total{reason="timeout"} 0

Существует несколько вариантов программного обеспечения DNS-сервера. Unbound стал довольно популярным, но не стесняйтесь использовать любое другое удобное для вас программное обеспечение. При выборе программного обеспечения сопоставителя DNS убедитесь, что оно поддерживает проверку DNSSEC и минимизацию QNAME (RFC7816). Установите программное обеспечение сопоставителя через менеджер пакетов операционной системы, чтобы обеспечить его автоматическое обновление.

Используя собственный сопоставитель DNS, вы менее уязвимы для цензуры на основе DNS, которую может наложить ваш вышестоящий сопоставитель.

Ниже приведены инструкции по установке и настройке Unbound – сопоставителя DNSSEC-проверки и кэширования – на вашем выходном узле. Unbound имеет много опций настройки, но здесь мы приводим простые и краткие инструкции; базовая настройка отлично подойдет для большинства операторов.

После переключения на Unbound убедитесь, что он работает должным образом, разрешив допустимое имя узла. Если это не сработает, вы можете восстановить старый файл /etc/resolv.conf.

Debian/Ubuntu

Следующие команды устанавливают unbound, создают резервную копию конфигурации DNS и сообщают системе использовать локальный сопоставитель:

# apt install unbound
# cp /etc/resolv.conf /etc/resolv.conf.backup
# echo nameserver 127.0.0.1 > /etc/resolv.conf

Чтобы избежать нежелательные изменения конфигурации (например, DHCP-клиентом):

# chattr +i /etc/resolv.conf

Конфигурация Debian поставляется с включенной по умолчанию минимизацией QNAME (RFC7816), поэтому вам не нужно включать её явно. Только что установленный сопоставитель Unbound также выполняет проверку DNSSEC.

Если вы используете systemd-resolved с его прослушивателем-заглушкой, вам, возможно, придется выполнить дополнительные настройки. Пожалуйста, обратитесь к справочной странице resolved.conf.

CentOS/RHEL

Установите пакет unbound:

# yum install unbound

Если вы используете последнюю версию CentOS/RHEL, пожалуйста, используйте dnf вместо yum.

В поле /etc/unbound/unbound.conf замените строку:

  qname-minimisation: no

на

  qname-minimisation: yes

Включите и запустите unbound:

# systemctl enable --now unbound

Укажите системе использовать локальный сопоставитель:

# cp /etc/resolv.conf /etc/resolv.conf.backup
# echo nameserver 127.0.0.1 > /etc/resolv.conf

Чтобы избежать нежелательных изменений конфигурации (например, DHCP-клиентом):

# chattr +i /etc/resolv.conf

Если вы используете systemd-resolved с его прослушивателем-заглушкой, вам, возможно, придется выполнить дополнительные настройки. Пожалуйста, обратитесь к справочной странице resolved.conf.

FreeBSD

FreeBSD поставляется с unbound в базовой системе, но тот, что в портах, обычно следует за восходящим потоком более тесно, поэтому мы устанавливаем пакет unbound:

# pkg install unbound

Замените содержимое в /usr/local/etc/unbound/unbound.conf следующими строками:

server:
    verbosity: 1
    qname-minimisation: yes

Включите и запустите unbound:

# sysrc unbound_enable=YES
# service unbound start

Укажите системе использовать локальный сопоставитель:

# cp /etc/resolv.conf /etc/resolv.conf.backup
# echo nameserver 127.0.0.1 > /etc/resolv.conf

Чтобы избежать нежелательных изменений конфигурации (например, DHCP-клиентом):

# chflags schg /etc/resolv.conf