1. Включите автоматическое обновление программ

Одно из главных условий защиты узла – своевременно устанавливать обновления безопасности. Лучше делать это автоматически, чтобы не забыть. Следуйте инструкциям по включению автоматического обновления программ для вашей операционной системы.

2. Настройте репозиторий Tor Project

Настройка репозитория Tor Project для Fedora состоит, главным образом, в изменении /etc/yum.repos.d/Tor.repo на следующие строки:

[tor]
name=Tor for Fedora $releasever - $basearch
baseurl=https://rpm.torproject.org/fedora/$releasever/$basearch
enabled=1
gpgcheck=1
gpgkey=https://rpm.torproject.org/fedora/public_gpg.key
cost=100

Подробнее об этом см. здесь.

3. Установите tor

Когда вы закончите с настройкой репозитория Tor, можете установить пакет:

# dnf install tor

4. Установите obfs4proxy

Мы будем устанавливать и использовать obfs4 как подключаемый транспорт. Поэтому нужно установить obfs4proxy.

В отличие от других дистрибутивов Linux Fedora предлагает исполнимый пакет. Это стало возможным с версии Fedora 33.

Пакет называется obfs4. Его-то и нужно установить:

# dnf install obfs4

Подробнее об установке и создании obfs4proxy из исходника, пожалуйста, читайте в официальной документации.

5. Найдите файл настроек Tor (обычно тут: /etc/tor/torrc), откройте и замените содержимое на:

RunAsDaemon 1
BridgeRelay 1

# Замените "TODO1" портом Tor по своему выбору. Этот порт должен быть доступен
# Избегайте порта 9001. Он обычно ассоциируется с Tor. Цензоры
# могут знать об этом, просматривая Интернет.
ORPort TODO1

ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy

# Замените "TODO2" портом obfs4 по своему выбору. Этот порт должен быть
# доступен извне и отличаться от порта ORPort.
# Избегайте порта 9001. Он обычно ассоциируется с Tor
# Цензоры могут знать об этом, просматривая Интернет.
ServerTransportListenAddr obfs4 0.0.0.0:TODO2

# Местный коммуникационный порт между Tor и obfs4. Всегда выбирайте значение "auto".
# "Ext" значит "расширенный", а не "внешний". Не пытайтесь установить конкретный
# номер порта или слушать 0.0.0.0.
ExtORPort auto

# Замените "<address@email.com>" вашим адресом email, чтобы мы могли связаться с вами
# в случае проблем с вашим мостом. Это необязательно, но желательно.
ContactInfo <address@email.com>

# Выберите название для своего моста. (Это необязательно).
Nickname PickANickname

Не забудьте изменить опции ORPort, ServerTransportListenAddr, ContactInfo и Nickname.

  • Обратите внимание: и OR-порт Tor, и порт obfs4 должны быть доступны. Если ваш мост находится за межсетевым экраном или NAT, убедитесь, что оба порта открыты. Чтобы проверить, доступен ли obfs4-порт из Интернета, можете использовать наш тест.

6. Отключите SeLinux

Проверьте, установлено ли для SeLinux значение "Enforcing":

# getenforce

Если установлено значение "Enforcing", измените статус на "Permissive":

# setenforce 0

Чтобы сделать изменения постоянными:

# nano /etc/selinux/config

И измените SELINUX=enforcing на SELINUX=permissive.

7. Откройте порты в брандмауэре Fedora

Для obfs4 и ORPort, которые вы выбрали в файле torrc:

# firewall-cmd --add-port XXX/tcp --permanent

После того как вы сделали это для обоих портов, выполните команду:

# firewall-cmd --reload

(Опционально) Настройте systemd для допуска obfs4 к привязке к привилегированным портам

Если вы решите использовать фиксированный порт obfs4, меньший 1024 (например, 80 или 443), вам нужно будет настроить systemd и предоставить obfs4 CAP_NET_BIND_SERVICE возможности для привязки порта с пользователем, не являющимся пользователем root:

# setcap cap_net_bind_service=+ep /usr/bin/obfs4proxy

8. Перезапустите Tor

# systemctl enable --now tor

9. Контролируйте журналы

Доказательством того, что ваш мост работает без проблем, служит примерно такая запись (обычно в /var/log/tor/log или /var/log/syslog):

[notice] Your Tor server's identity key fingerprint is '<NICKNAME> <FINGERPRINT>'
[notice] Your Tor bridge's hashed identity key fingerprint is '<NICKNAME> <HASHED FINGERPRINT>'
[notice] Registered server transport 'obfs4' at '[::]:46396'
[notice] Tor has successfully opened a circuit. Looks like client functionality is working.
[notice] Bootstrapped 100%: Done
[notice] Now checking whether ORPort <redacted>:3818 is reachable... (this may take up to 20 minutes -- look for log messages indicating success)
[notice] Self-testing indicates your ORPort is reachable from the outside. Excellent. Publishing server descriptor.

10. Заключительные заметки

Если у вас проблемы с настройкой моста, обратите внимание на наш раздел помощи. Если ваш мост работает прямо сейчас, загляните в примечания после установки.