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

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

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

Рекомендуемая настройка репозитория Tor Project для Debian/Ubuntu описана здесь. Пожалуйста, перед продолжением выполните эти шаги.

Внимание: пользователям Ubuntu следует использовать Tor из репозитория Tor Project.

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

Убедитесь, что обновили пакеты, потом устанавливайте через apt:

# apt update
# apt install tor

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

В Debian последняя версия пакета obfs4proxy доступна в стабильных бэкпортах. По умолчанию пакеты бэкпортов не устанавливаются, поэтому для установки последней версии obfs4proxy вам нужно использовать следующую команду sudo apt install -t Bullseye-backports obfs4proxy или закрепить пакет с конфигом, похожим на этот, который вы поместите его в /etc/apt/preferences.d/obfs4proxy.pref.

Объяснение: мета Tor, всегда запускайте последнюю версию obfs4proxy
Package: obfs4proxy
Pin: release a=bullseye-backports
Pin-Priority: 500

В Ubuntu пакеты Bionic, Cosmic, Disco, eoan и Focal есть. Если вы используете какой-либо из них, sudo apt-get install obfs4proxy должен работать.

Если не получилось, попробуйте создать из исходника.

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

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-порт из Интернета, можете использовать наш тест.

(Optional) Configure systemd to allow obfs4 binding on privileged ports

If you decide to use a fixed obfs4 port smaller than 1024 (for example 80 or 443), you will need to configure systemd and give obfs4 CAP_NET_BIND_SERVICE capabilities to bind the port with a non-root user:

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

To work around systemd hardening, you will also need to edit and change the configuration.

Run the command:

sudo systemctl edit tor@.service tor@default.service

In the editor, enter the following text, then save and quit.

[Service]
NoNewPrivileges=no

In the second editor that appears, enter the same text, then save and quit.

[Service]
NoNewPrivileges=no

If everything worked correctly, you will now have two files /etc/systemd/system/tor@.service.d/override.conf and /etc/systemd/system/tor@default.service.d/override.conf containing the text you entered.

Now restart tor service:

sudo service tor restart

There is no need to run systemctl daemon-reload because systemctl edit does it automatically. For more details, see ticket 18356.

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

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

# systemctl enable --now tor.service

А если Tor уже работает, перезапустите, чтобы изменения вступили в силу:

# systemctl restart tor.service

7. Следите за логами

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

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

8. В завершение

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