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

konstrukt

МИГАЛКИ КЛУБ
Проверенный продавец
Продавец
Подтвержденный
Регистрация
19.09.18
Сообщения
855
Реакции
41
Продаж
3
Telegram
Всем привет. Разберу как поднять полностью приватный 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 https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg<br>echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(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 http://localhost:8448<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) и введи:


http://abcdefghijklmnop.onion:8448<br>

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



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


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



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


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



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


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


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


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



Итог


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