1. Включите автоматическое обновление программ
Одно из главных условий защиты узла – своевременно устанавливать обновления безопасности. Лучше делать это автоматически, чтобы не забыть.
Следуйте инструкциям по включению автоматического обновления программ для вашей операционной системы.
2. Загрузите pkg
В этом руководстве подразумевается, что у нас установлена и запущена базовая FreeBSD.
Это значит, что никаких пакетов не установлено, даже собственно пакетного менеджера pkg
нет. Команда sudo
недоступна, мы выполняем команды с правами суперпользователя (root).
Чтобы скачать и установить pkg
:
# pkg bootstrap
# pkg update -f
2.1. Советы по настройке pkg
Чтобы оперативнее получать обновления, советуем изменить вариант 'quarterly', используемый pkg
, на 'latest'.
Ещё одно важное условие: получать пакеты/обновления по HTTPS. Для этого понадобится дополнительный пакет (ca_root_nss).
Чтобы установить пакет ca_root_nss
:
# pkg install ca_root_nss
Мы сохраним изначальные настройки, которые использует pkg
, но добавим новые, которые будут иметь приоритет. Для этого мы создадим новую папку и сохраним в ней файл с настройками: /usr/local/etc/pkg/repos/FreeBSD.conf
.
Создайте новую папку:
# mkdir -p /usr/local/etc/pkg/repos
Так должен выглядеть новый файл конфигурации: /usr/local/etc/pkg/repos/FreeBSD.conf
:
FreeBSD: {
url: pkg+https://pkg.freebsd.org/${ABI}/latest
}
После того, как все изменения вступят в силу, обновите список пакетов и проверьте, нет ли каких-то новых обновлений:
# pkg update -f
# pkg upgrade -y -f
3. Установите Tor
Рекомендуется установить стабильную версию:
# pkg install tor
Или установите альфа-версию:
# pkg install tor-devel
4. Установите obfs4proxy
# pkg install obfs4proxy-tor
5. Найдите файл настроек Tor (обычно тут: /usr/local/etc/tor
), откройте и замените содержимое на:
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
Log notice file /var/log/tor/notices.log
Не забудьте изменить опции ORPort
, ServerTransportListenAddr
, ContactInfo
и Nickname
.
Обратите внимание: и OR-порт Tor, и порт obfs4 должны быть доступны. Если ваш мост находится за межсетевым экраном или NAT, убедитесь, что оба порта открыты. Чтобы проверить, доступен ли obfs4-порт из Интернета, можете использовать наш тест.
Используете брандмауэр FreeBSD с настройкой "default deny" по умолчанию? Тогда убедитесь, что ваш obfs4proxy может установить связь с вашим процессом Tor через loopback-интерфейс. Не забудьте разрешить ExtORPort
в Tor.
6. Убедитесь, что опция random_id
sysctl включена
# echo "net.inet.ip.random_id=1" >> /etc/sysctl.conf
# sysctl net.inet.ip.random_id=1
7. Запустите демона и убедитесь, что он стартует при загрузке
# sysrc tor_setuid=YES
# sysrc tor_enable=YES
# service tor start
8. Следите за логами
Доказательством того, что ваш мост работает без проблем, служит примерно такая запись в /var/log/tor/notices.log
:
[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. В завершение
Если у вас проблемы с настройкой моста, обратите внимание на наш раздел помощи.
Если ваш мост работает прямо сейчас, загляните в примечания после установки.