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

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

2. Установите epel-release

Для установки пакета tor в CentOS/RHEL нужно сначала разрешить использование репозитория EPEL. Чтобы это сделать, установите пакет epel-release:

# yum install epel-release

В последних версиях CentOS/RHEL вместо yum используется dnf:

# dnf install epel-release

Если у вас свежая версия с dnf, пожалуйста, продолжайте использовать её, несмотря на то, что в этом руководстве мы приводим примеры с yum.

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

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

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

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

Установили репозитории EPEL и Tor? Теперь можете установить пакет Tor:

# yum install tor

Пожалуйста, имейте в виду: когда устанавливаете первый пакет из репозитория EPE, вас попросят верифицировать подписывающий GPG-ключ EPEL. Пожалуйста, убедитесь, что ключ совпадает с одним из ключей на сайте Fedora Project. То же самое понадобится при первой установке пакетов из репозитория Tor (и вам также надо убедиться, что ключи совпадают).

5. Создайте и установите obfs4proxy.

В сильно устаревших версиях git команда go get может и не сработать. Если вы столкнулись с такой проблемой, попробуйте обновить git до более свежей версии.

Установите пакет golang и прочие зависимости:

# yum install git golang policycoreutils-python-utils

Теперь скомпилируйте исполнимый файл и перенесите его в нужную папку:

export GOPATH='mktemp -d'
go get gitlab.com/yawning/obfs4.git/obfs4proxy
sudo cp $GOPATH/bin/obfs4proxy /usr/local/bin/
# chcon --reference=/usr/bin/tor /usr/local/bin/obfs4proxy

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

RunAsDaemon 1
BridgeRelay 1

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

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

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

sudo semanage port -a -t tor_port_t -p tcp [OR port set earlier, in TODO1]

sudo semanage port -a -t tor_port_t -p tcp [obfs4 port set earlier, in TODO2]

В последних версиях CentOS/RHEL используется systemd:

# systemctl enable --now tor
... or restart it if it was running already, so configurations take effect
# systemctl restart tor

Если используете более старую версию, например, CentOS/RHEL 6:

# service tor enable
# service tor start

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

Доказательством того, что ваш мост работает без проблем, служит примерно такая запись (обычно в /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.

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

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