Скрытые сервисы Tor часто становятся жертвами:
- DoS-атак (атаки на отказ в обслуживании),
- атаки на интро-точки (где начинается соединение клиента с сервисом),
- создания большого числа соединений и потоков (streams), чтобы перегрузить сервис.
Tor внедрил PoW (Proof of Work) и DoS-защиты, чтобы защититься от подобных атак без ущерба для обычных пользователей.
Но важно установить последнюю версию сервера, как это сделать:
Код:
# 1) Ключ репозитория в keyring
sudo mkdir -p /usr/share/keyrings
wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc \
| gpg --dearmor \
| sudo tee /usr/share/keyrings/deb.torproject.org-keyring.gpg >/dev/null
# 2) Источник пакетов (bookworm)
echo 'deb [signed-by=/usr/share/keyrings/deb.torproject.org-keyring.gpg] https://deb.torproject.org/torproject.org bookworm main' \
| sudo tee /etc/apt/sources.list.d/tor.list >/dev/null
# 3) Обновление и установка
sudo apt update
sudo apt install -y tor deb.torproject.org-keyring
# (опционально) Проверить версию
tor --version
Далее для включения защиты достаточно добавить например такие настройки в /etc/tor/torrc:
Код:
HiddenServiceMaxStreams 64
HiddenServiceMaxStreamsCloseCircuit 0
HiddenServicePoWDefensesEnabled 1
HiddenServicePoWQueueRate 80
HiddenServicePoWQueueBurst 400
HiddenServiceEnableIntroDoSDefense 1
HiddenServiceEnableIntroDoSRatePerSec 15
HiddenServiceEnableIntroDoSBurstPerSec 60
И перезапустить сервис:
service tor restart


- Что делает: Устанавливает максимум потоков (streams) через одно соединение (circuit).
- Что такое stream в Tor: Каждый HTTP-запрос от клиента считается отдельным потоком.
- Почему важно:
Один circuit может использоваться повторно для нескольких запросов, и атакующий может открыть десятки/сотни потоков через одно соединение — это экономно для атакующего и дорого для сервера. - Значение 64: Разрешает до 64 параллельных потоков через один circuit. Это много. Обычно достаточно 8–16, особенно если сервис не предполагает кучу одновременных запросов.

HiddenServiceMaxStreamsCloseCircuit 0
- Что делает: Определяет, закрывается ли circuit, если достигнут лимит потоков (HiddenServiceMaxStreams).
- Значение 0: Circuit остаётся открытым, новые потоки не принимаются, но старые продолжают работу.
- Значение 1: Circuit закрывается, и клиенту придётся открыть новый.

HiddenServicePoWDefensesEnabled 1
- Что делает: Включает механизм защиты PoW (Proof-of-Work).
- Как работает:
- Перед установлением соединения с сервисом Tor требует от клиента решить криптографическую задачу.
- Это требует вычислений и делает атаки дороже.
- Законные пользователи почти не замечают этого, но боты и скрипты замедляются.

HiddenServicePoWQueueRate 80
- Что делает: Определяет, сколько запросов на соединение в секунду можно добавить в очередь без PoW.
- Если лимит превышен:
- Клиенту предлагается выполнить PoW для продолжения.


Если форум посещает 10 пользователей, каждый открывает 5 вкладок → 50 соединений.
Лимит 80 — адекватен.
Но если злоумышленник создаёт 500 соединений/сек — он будет наказан.
Значения нужно подбирать в зависимости от средней посещалки вашего сервиса, слишком большие значения задавать нет смысла, т.к. защиты не будет, слишком маленькие сильно будут задерживать пользователей.
HiddenServicePoWQueueBurst 400
- Что делает: Максимальное число соединений, которые могут быть поставлены в очередь до начала PoW-ограничений.
- Логика: Буфер на случай пиковых нагрузок (например, резкий всплеск активности).


HiddenServiceEnableIntroDoSDefense 1
- Что делает: Включает защиту интро-точек (introduction points).
- Введение:
В сети Tor клиент сначала подключается к интро-точке, которая связывает его с hidden-сервисом. Эти точки могут быть атакованы, чтобы:- исчерпать ресурсы сервиса,
- заставить его сменить точки и вызвать нестабильность.
- Защита DoS:
Tor будет блокировать/ограничивать клиентов, которые шлют слишком много интро-запросов.
⏱ HiddenServiceEnableIntroDoSRatePerSec 15
- Что делает: Определяет, сколько интро-запросов в секунду допускается с одного клиента/IP.


- Что делает: Разрешённый пик интро-запросов (burst), прежде чем включится защита.

Вот и всё, удачи !)