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. Build lyrebird (obfs4proxy) and move it into place.

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

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

# yum install git golang policycoreutils-python-utils

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

git clone https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/lyrebird
cd lyrebird
make build
sudo cp .//lyrebird /usr/local/bin/
# chcon --reference=/usr/bin/tor /usr/local/bin/lyrebird

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

RunAsDaemon 1
BridgeRelay 1

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

ServerTransportPlugin obfs4 exec /usr/local/bin/lyrebird

# Замените "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. В завершение

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