• Единственный, у кого стоит до победного конца
    • Быстрая подача заявок на добавление в WhiteList Украины
    • Гибкие цены и условия сотрудничества
    • Работа через гаранта до фактической верификации терминала
Важный момент: бывшие в использовании тарелки либо те, которые уже пытались верифицировать, не берём!

    • Высокий доход. Отсутствие рисков.
📢 У форума есть зеркало в TOR Открыть
🔥Новый чат и канал DarkMoney в Telegram Открыть Telegram

Как поднять свой Matrix-сервер через onion-адрес — полная приватность группового чата без доверия третьей стороне

  • Автор темы Автор темы konstrukt
  • Дата начала Дата начала
  • Рекомендуемый

konstrukt

Цифровая безопасность. Работа в поле
.
.
.
.
13.11.18
1,473
3,000,000 ₽
23
Всем привет. Разберу как поднять полностью приватный Matrix-сервер, доступный только через onion-адрес — без домена, без открытого IP, без необходимости доверять чужой инфраструктуре. Это тот случай когда контроль над сервером даёт принципиально другой уровень приватности чем даже самый зашифрованный мессенджер на чужих серверах.




Зачем это нужно, если есть Element с обычным Matrix


Element по умолчанию подключается к серверу matrix.org или любому другому публичному серверу. Этот сервер видит реальный IP при каждом подключении, видит метаданные — кто с кем в каком чате состоит, когда был онлайн, даже если содержимое сообщений зашифровано сквозным шифрованием.


Свой сервер через onion-адрес закрывает именно это. Сервер видит только IP выходного узла Tor. Владелец сервера полностью контролирует железо и логи, и никто кроме него не решает как долго хранятся данные.




Что нужно перед началом


VPS-сервер, оплаченный анонимно — например через Njalla, 1984 Hosting или Frantech, оплата криптовалютой, регистрация через Tor Browser с временным email. Для теста хватит минимальной конфигурации — 1-2 ГБ RAM, 20 ГБ диска.


Доступ к серверу по SSH.


Любая машина с Linux для управления и последующего подключения через Element.




Шаг 1 — подключение к серверу и базовая подготовка


Подключаешься к VPS по SSH из терминала:


ssh root@ip_адрес_сервера<br>

Обнови систему:


apt update &amp;&amp; apt upgrade -y<br>



Шаг 2 — установка Synapse (серверная часть Matrix)


apt install -y lsb-release wget apt-transport-https<br>

Добавь официальный репозиторий Matrix:


wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg <br>echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/matrix-org.list<br>

Установи:


apt update<br>apt install matrix-synapse-py3<br>

В процессе установки спросит server name — это принципиальный момент, о котором ниже.




Шаг 3 — устанавливаем Tor и настраиваем hidden service


apt install tor -y<br>

Открываем конфиг Tor:


nano /etc/tor/torrc<br>

Добавляем в конец:


HiddenServiceDir /var/lib/tor/matrix/<br>HiddenServicePort 443 127.0.0.1:8448<br>HiddenServicePort 8448 127.0.0.1:8448<br>

Сохраняем, перезапускаем Tor:


systemctl restart tor<br>

Смотрим свой onion-адрес:


cat /var/lib/tor/matrix/hostname<br>

Получишь что-то вроде abcdefghijklmnop.onion — это и есть адрес сервера, который никогда не меняется если не пересоздавать hidden service.




Шаг 4 — критически важный момент про server_name


Открываем главный конфиг Synapse:


nano /etc/matrix-synapse/homeserver.yaml<br>

Находим строку:


server_name: "..."<br>

Здесь вписываем именно тот onion-адрес который получили на предыдущем шаге:


server_name: "abcdefghijklmnop.onion"<br>

Это нельзя изменить после создания первого пользователя — если поменять server_name позже, все аккаунты станут недействительны и придётся начинать с нуля. Прежде чем двигаться дальше — убедись что вписал правильно.




Шаг 5 — настройка TLS и портов


В том же homeserver.yaml находим раздел listeners:


listeners:<br> - port: 8448<br> tls: false<br> type: http<br> x_forwarded: true<br> bind_addresses: ['127.0.0.1']<br> resources:<br> - names: [client, federation]<br> compress: false<br>

Обрати внимание — tls: false. Это нормально и правильно в данной схеме, потому что весь трафик уже идёт через зашифрованный Tor-туннель, дополнительный TLS поверх избыточен и только усложняет настройку.




Шаг 6 — регистрация пользователей


Отключаем открытую регистрацию, чтобы посторонние не могли создать аккаунт на сервере:


enable_registration: false<br>

Создаём первого пользователя вручную:


register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml <br>

Программа спросит username, пароль, и права администратора — да/нет.




Шаг 7 — запуск сервиса


systemctl enable matrix-synapse<br>systemctl start matrix-synapse<br>systemctl status matrix-synapse<br>

Убедись что статус active (running), без ошибок.




Шаг 8 — подключение через Element


Подключаться нужно обязательно через Tor, иначе весь смысл теряется. Открой Element через Orbot на телефоне или через torsocks на десктопе:


torsocks element-desktop<br>

При входе не выбирай стандартный matrix.org, нажми Изменить сервер домашнего пространства (Edit → Homeserver URL) и введи:


<br>

Вводишь логин и пароль которые создал на шаге 6 — готово, аккаунт в приватной Matrix-сети активен.




Приглашение других участников


Каждому новому участнику нужно: создать аккаунт на сервере (регистрация отключена для посторонних, поэтому создаёт только администратор через ту же команду register_new_matrix_user), передать ему onion-адрес и логин безопасным каналом — например через OnionShare или Signal.




Что это архитектурно даёт


Никакой сторонний сервер не видит метаданные переписки. IP всех участников скрыт через Tor с обеих сторон. Полный контроль над retention policy — сколько хранятся сообщения решает только владелец сервера. Логирование можно отключить полностью на уровне сервера.




Что стоит знать заранее


Сервер должен быть постоянно онлайн чтобы участники могли получать сообщения — в отличие от разовых инструментов передачи файлов, тут нужна инфраструктура которая живёт постоянно.


Если сервер конфискуют или потеряется доступ — все сообщения, если retention включён, физически хранятся там, значит стоит настроить минимальное хранение через redaction и retention policy отдельно.


Обновлять Synapse нужно регулярно — уязвимости в серверном ПО закрывают быстро, но только если следить за обновлениями.




Итог


Это не самый простой вечер настройки, но результат — полностью независимый приватный чат-сервер без единой точки доверия третьей стороне. Для команды из нескольких человек, координации редакции, или просто закрытого круга людей которым важна приватность без компромиссов — это принципиально более сильная позиция чем любой публичный мессенджер, каким бы зашифрованным он ни был.
 
Приветствую.

Хотел бы уточнить один важный момент:

Открой Element через Orbot на телефоне

Вам не следует использовать клиент, который получает уведомления через Google/Apple, иначе всё написанное выше не имеет никакого смысла.

Вам нужен уже подготовленный/настроенный девайс(с ntfy) или клиент, который не получает уведомления через сервисы, которые я упомянул ранее. Также вам необходимо понимать, что происходит, когда вы устанавливаете клиент Element на свой смартфон:

При первом запуске Element сразу зарегистрирует ваш девайс в FCM (google сервис) и присвоит ему токен. Сам клиент Element отправляет этот токен на ваш сервер и говорит ему, что когда придет сообщение, отправь push вот сюда, после этого, когда приходит сообщение на ваш сервер, он формирует push запрос и идет наружу в push gateway matrix.org, который в свою очередь преобразует его в формат FCM. В этот момент Google получает запрос и сопоставляет токен с конкретным смартфоном (вашим), после чего отправляет уведомление. Для айфона всё то же самое, только вместо FCM там APNS.

Повторюсь: если ваш девайс не подготовлен, то все запросы к FCM/APNS идут с вашего белого IP в обход Tor.

Вы можете использовать vpn mode в Orbot'e, но даже здесь вы столкнетесь с проблемами, например, когда ваш Orbot упадет и смартфон сделает запрос к сервису/наружу как по IPv4, так и по IPv6.
Даже с Always-on VPN стоит понимать, в android 16 есть уязвимость, которую Google отказался исправлять, когда вредоносное ПО может обойти VPN туннель и отправить пакеты с вашего IP.

Сам токен, который формирует и присваивает вашему девайсу Element, привязывается к вашему Google аккаунту, в который был выполнен вход на устройстве.

Если вы в разработке и у противника уже есть доступ к вашей инфраструктуре или девайсам ваших подельников, то для вас это = деанон, так как метаданные, которые приходят в ваших push заголовках, напрямую коррелируются с событиями.

Пример: на сервер Х пришло сообщение в 00:00:01, девайс Y получил push в 00:00:24. И так у всех, кто на сервере.
Из этого следует, что вашей деятельности осталось примерно 2 понедельника.

Самые уязвимые места в безопасности - это человек и его смартфон. Противник находит и атакует самое слабое звено в вашей команде. Этим звеном всегда оказывается человек.

Доверять свою безопасность смартфону достаточно самонадеянно, но если решили делать это - правильно подготовьте его.
 
Назад
Сверху