Matrix - альтернатива Jabber (XMPP)

MelGG

Новорег
Сообщения
21
Реакции
11
Баллы
4
Matrix - это открытый и свободный протокол для децентрализованного общения в реальном времени. Насчёт безопасности в сети не было и нет единого мнения, т.к. это всегда был и будет комплекс мер и знаний, используемых в повседневной жизни, одной волшебной таблетки от всего не существует, но на сегодняшний день уже довольно многими признано, что Matrix - всё же лучшая альтернатива морально устаревающему Jabber (XMPP).

Эта инструкция - пошаговое описание по официальной документации (Installation - Synapse) и без сторонних скриптов, как поднять свой Synapse Homeserver, работающий на протоколе Matrix, для последующего использования в клиенте Element. В сети уже достаточно гайдов по этой тематике, но почему-то подавляющее большинство инструкций либо кривые (есть в командах какие-то нелепые строки, из-за которых система просто не запустится), либо полуобрезанные, либо использующие систему конфигураций Ansible и т.п.

Итак, начнём.



1. Арендуем VPS сервер.

Ubuntu 22.04, 1GB of RAM, 1 CPU, 25GB SSD - для частного общения аренды такого железа будет более чем достаточно. Для работы команды 10-20 человек лучше начать с такого: Ubuntu 22.04, 2GB of RAM, 2 CPU, 60GB SSD.


2. Покупаем доменное имя.

После покупки доменного имени необходимо внести изменения в записи DNS, это возможно сделать в личном кабинете у абсолютно любого хостинг-регистратора, где был куплен домен, принцип везде один и тот же. Нужно создать запись типа А и указать IP адрес арендованного ранее VPS сервера, выглядит это следующим образом:

1.jpg


3. Обновляем ОС.

Заходим на VPS сервер и обновляем систему следующими командами:
apt update
apt upgrade



После ввода второй команды на появившийся вопрос "Do you want to continue? [Y/n]" отвечаем "y":

2.jpg

Если на момент установки будет (не будет - пропускаем этот шаг, идём сразу к п.4) уведомление о наличии нового ядра, то после нажатия "Ok" выбираем в списке все пункты (используя "пробел" на клавиатуре), затем "Ok":

3.jpg
4.jpg

Перезапускаем сервер:
reboot now
Соединение будет прервано, система перезагрузится. Спустя секунд 20 заходим на VPS.


4. Устанавливаем Matrix-Synapse.

Сначала запускаем инсталляцию пакетов для будущего ПО:
apt install -y lsb-release wget apt-transport-https

5.jpg

Документация Synapse рекомендует не использовать предустановленные пакеты в системе, поэтому загружаем всё с сайта проекта, добавляя ключ и официальный репозиторий:



wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg
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


6.jpg

Обновляем пакеты и устанавливаем непосредственно уже сам Matrix-Synapse:



apt update
apt install matrix-synapse-py3


После ввода второй команды, как и ранее на появившийся вопрос "Do you want to continue? [Y/n]" отвечаем "y".
Далее откроется окно, где вводим раннее приобретённое доменное имя и нажимаем "Ok":

7.jpg

Отказываемся от сбора статистики, выбрав "No":

8.jpg

Matrix-Synapse установлен, запускаем его и включаем автозапуск:
systemctl start matrix-synapse
systemctl enable matrix-synapse


5. Перенаправляем логи Matrix-Synapse.

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


nano /etc/matrix-synapse/log.yaml
Находим строчку "filename: /var/log/matrix-synapse/homeserver.log":

9.jpg

И меняем путь на "/dev/null":

10.jpg

Далее сохраняем изменения, нажав на клавиатуре сочетание Ctrl+O, затем Enter, после чего выходим из редактора - Ctrl+X.
Для применения изменений перезапускаем Matrix:


systemctl restart matrix-synapse

В итоге логи будут отправляться в "пустоту".


6. Создание SSL-сертификата.



Устанавливаем клиент Certbot:

apt install certbot

На вопрос "Do you want to continue? [Y/n]" отвечаем "y".
Далее генерируем сертификат (в конце команды редактируете текст, выделенный жёлтым, на своё доменное имя):


certbot certonly --rsa-key-size 2048 --standalone --agree-tos --register-unsafely-without-email -d tsum.shop

11.jpg


7. Настройка прокси для подключения клиентов через https.



Сначала устанавливаем Nginx:
apt install nginx


Как и ранее на вопрос "Do you want to continue? [Y/n]" отвечаем "y".
Далее открываем файл конфигурации:
nano /etc/nginx/nginx.conf


Находим комментарий "Logging Settings":

12.jpg

И ниже редактируем путь для логов, как делали это уже ранее, на "/dev/null" (в этом файле в конце каждой строчки ОБЯЗАТЕЛЬНО наличие ";"):

13.jpg

Сохраняем изменения, нажав на клавиатуре сочетание Ctrl+O, затем Enter, после чего выходим из редактора - Ctrl+X.
Далее создаём новый файл для управления входящими соединениями:
nano /etc/nginx/sites-available/matrix


Затем вставляем в него этот скрипт ("tsum.shop" меняем на своё доменное имя):


Код:
server {
    listen 80;
    server_name tsum.shop;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name tsum.shop;

    ssl_certificate /etc/letsencrypt/live/tsum.shop/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/tsum.shop/privkey.pem;

    location /_matrix {
        proxy_pass http://localhost:8008;
        proxy_set_header X-Forwarded-For $remote_addr;
        client_max_body_size 300M;
    }
}

server {
    listen 8448 ssl;
    server_name tsum.shop;

    ssl_certificate /etc/letsencrypt/live/tsum.shop/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/tsum.shop/privkey.pem;

    location / {
        proxy_pass http://localhost:8008;
        proxy_set_header X-Forwarded-For $remote_addr;
    }
}

14.jpg

Сохраняем изменения, нажав на клавиатуре сочетание Ctrl+O, затем Enter, после чего выходим из редактора - Ctrl+X.
Создаём ссылку на новый файл для Nginx и запускаем тест на отсутствие ошибок:


ln -s /etc/nginx/sites-available/matrix /etc/nginx/sites-enabled/
nginx -t


15.jpg

Прокси на базе Nginx установлен, перезапускаем его и включаем автозапуск:
systemctl restart nginx
systemctl enable nginx


16.jpg


8. Настраиваем брандмауэр.



Тут всё максимально просто:
for svc in ssh http https 8448
do
ufw allow $svc
done


17.jpg

Далее включаем брандмауэр (на вопрос, как всегда, соглашаемся, поставив "y") и в итоге проверяем правила:
ufw enable

ufw status numbered


18.jpg


9. Смена движка базы данных (если сервер используется для личных целей или для команды до 5 человек - данный шаг пропускаем и переходим к п. 10).

По умолчанию Matrix-Synapse работает с SQLite, и в официальной документации рекомендовано использовать его в целях тестирования или для серверов с небольшой рабочей нагрузкой. В ином случае стоит перейти на Postgres - более совершенный и производительный движок.

Сначала устанавливаем Postgres:


apt install postgresql postgresql-contrib
apt install libpq5


На вопрос "Do you want to continue? [Y/n]" отвечаем "y".
Далее заходим в движок, создаём там нового пользователя "synapse_user" (пароль сохраняем, он нам понадобиться чуть позже) и новую базу данных, вносим разрешение для его локального подключения к базе и обратно возвращаемся к системному пользователю root:
su - postgres

createuser --pwprompt synapse_user
createdb --encoding=UTF8 --locale=C --template=template0 --owner=synapse_user synapse

echo "local synapse synapse_user scram-sha-256" >> /etc/postgresql/14/main/pg_hba.conf
su - root


19.jpg

Открываем в редакторе основной файл конфигурации Homeserver:


nano /etc/matrix-synapse/homeserver.yaml
Удаляем 4 строки сочетанием клавиш Ctrl+K:

20.jpg


И вставляем новые ("Tsum_shop" меняете на свой пароль, сохранённый ранее при создании пользователя "synapse_user"):

Код:
database:
  name: psycopg2
  args:
    user: synapse_user
    password: Tsum_shop
    database: synapse
    host: localhost
    cp_min: 5
    cp_max: 10

21.jpg

Сохраняем изменения, нажав на клавиатуре сочетание Ctrl+O, затем Enter, после чего выходим из редактора - Ctrl+X.

Далее открываем в редакторе файл конфигурации Postgres:


nano /etc/postgresql/14/main/postgresql.conf
Там находим строку "#listen_addresses = 'localhost’", затем разкомментируем её, удалив знак "#" в начале:

22.jpg

Сохраняем изменения, нажав на клавиатуре сочетание Ctrl+O, затем Enter, после чего выходим из редактора - Ctrl+X.
Для применения изменений перезапускаем Matrix:
systemctl restart matrix-synapse


10. Проверка настроек.

Для проверки настроек на сервере заходим на Matrix Federation Tester и вводим своё доменное имя, нажав затем на кнопку "Go":

28.jpg


11. Регистрация нового пользователя.

Сначала добавляем в файл конфигурации Homeserver секретную фразу (можете заменить на любую свою, выделено жёлтым текстом), затем перезапускаем сервер, чтобы изменения вступили в силу, и регистрируем нового пользователя:

echo "registration_shared_secret: Tsum_shop" >> /etc/matrix-synapse/homeserver.yaml
systemctl restart matrix-synapse
register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml http://localhost:8008


23.jpg

Далее заходим в веб-клиент Element, либо скачиваем и устанавливаем его на свою ОС. Нажимаем “Войти”:

24.jpg

Выбираем "Изменить":

25.jpg

Водите своё доменное имя:

26.jpg

Вводите логин и пароль, нажимаете "Войти":

27.jpg

Не забудьте сразу зайти в настроках в раздел "Шифрование" и сгенерировать ключ безопасности.

Безопасного и приватного всем общения!
 
Последнее редактирование:
Недавно признали сервера matrix.org уязвимыми, поэтому лучше для элемента поднимать свой сервер.
 
Недавно признали сервера matrix.org уязвимыми, поэтому лучше для элемента поднимать свой сервер.
Этот гайд как раз о подъёме своего сервера. И не совсем верная информация насчёт matrix.org - при атаке на их сервер были обнародованы только не зашифрованные переписки пользователей.
 
Этот гайд как раз о подъёме своего сервера. И не совсем верная информация насчёт matrix.org - при атаке на их сервер были обнародованы только не зашифрованные переписки пользователей.
Разработчики платформы децентрализованных коммуникаций Matrix предупредили о выявлении критических уязвимостей в библиотеках matrix-js-sdk, matrix-ios-sdk и matrix-android-sdk2, позволяющих администраторам серверов выдавать себя за других пользователей и читать сообщения в чатах со сквозным шифрованием (E2EE). Уязвимости вызваны ошибками в отдельных реализациях протокола Matrix и не являются проблемами самого протокола. В настоящее время, проектом выпущены обновления проблемных SDK и части построенных на их основе клиентских приложений.
 
Слишком заморочено и не подтверждено, что это такой же или более анонимный мессенджер.Пока жаба топ
 
Слишком заморочено и не подтверждено, что это такой же или более анонимный мессенджер.Пока жаба топ
Ну ни XMPP, ни Matrix не создавались никогда, как проекты для анонимного общения, анонимность надо своими руками создавать, а то что последний протокол более совершенный и надёжный - это на сегодняшний день как бы уже не надо доказывать. Поэтому жаба не может быть топ ни по анонимности, ни тем более по своему функционалу или настройкам. По заморочености для поднятия своего Jabber (XMPP) сервера нужно будет делать практически такие же шаги. А если сравнение шло по аутсорсу своей безопасности публичным серверам, то акк под Matrix можно также, как и под жабу, создать в несколько кликов.
 
Последнее редактирование:
Разработчики платформы децентрализованных коммуникаций Matrix предупредили о выявлении критических уязвимостей в библиотеках matrix-js-sdk, matrix-ios-sdk и matrix-android-sdk2, позволяющих администраторам серверов выдавать себя за других пользователей и читать сообщения в чатах со сквозным шифрованием (E2EE). Уязвимости вызваны ошибками в отдельных реализациях протокола Matrix и не являются проблемами самого протокола. В настоящее время, проектом выпущены обновления проблемных SDK и части построенных на их основе клиентских приложений.
Эта новость - то же самое, как говорить про уязвимости любой ОС, любого IT-проекта, которые находят постоянно, а затем выкатывают обновления, латающие дыры, и в XMPP их далеко не меньше. А выполнив шаги по этой инструкции, я и буду администратором сервера, он же будет созданным мой)
 
Эта новость - то же самое, как говорить про уязвимости любой ОС, любого IT-проекта, которые находят постоянно, а затем выкатывают обновления, латающие дыры, и в XMPP их далеко не меньше. А выполнив шаги по этой инструкции, я и буду администратором сервера, он же будет созданным мой)
Тоже верно, безопасность крайне сложная штука)
 
Ну ни XMPP, ни Matrix не создавались никогда, как проекты для анонимного общения, анонимность надо своими руками создавать, а то что последний протокол более совершенный и надёжный - это на сегодняшний день как бы уже не надо доказывать. Поэтому жаба не может быть топ ни по анонимности, ни тем более по своему функционалу или настройкам. По заморочености для поднятия своего Jabber (XMPP) сервера нужно будет делать практически такие же шаги. А если сравнение шло по аутсорсу своей безопасности публичным серверам, то акк под Matrix можно также, как и под жабу, создать в несколько кликов.
Мажно не углубляться в технические детали, а посмотреть статистику приемок и посадок, тех кто пользуется жаббером и тех кто пользуется другими мессенджерами. Это самая лучшая реклама анонимности)
 
Для чего так заморачиваться? Если можно сидеть через джаббер в тейлс? Все же проверенно, работает нормально. Захотят найти, найдут.
 
Чем session не альтернатива?
Там и заморочек нет не каких..
 
Очень информативно, но довольно трудно в реализации
 
Имел ли кто опыт в установке клиента Matrix - Mirage? Из гитхаб
Уже 3 раза ломал свой kali при установке данного клиента, т.к для его установки необходимы пакеты других пакетов ядра, у меня KDE Plasma, а при установке как надо по гайду скачиваються другие пакеты которые ломают плазму
А так красивый интерфейс который напоминает тг и очень удобный, был один только удачный опыт с компилированием из исходников, когда действительно создался тот клиент, но результат такой что при перезагрузке те скаченные пакеты ломали так же систему... );
 
Bitmessage
Кто что знает за этот мессенджер? его позиционируют как лучший по анонимности, так как расшифровать сообщееие может только адресат, которому оно предназначается.
 
Для чего так заморачиваться? Если можно сидеть через джаббер в тейлс? Все же проверенно, работает нормально. Захотят найти, найдут.
С подходом "захотят найти, найдут" можно и через WhatsApp в Tailse свою деятельность вести, там используется один и тот же протокол - XMPP. Повторюсь: для поднятия своего сервера Jabber нужно совершить практически такие же действия, не стоит это путать с обычной регистрацией на одном из публичных серверов. Поэтому если нет желания заморачиваться, то акк под Matrix можно создать в несколько кликов, также как и под жабу. Статей в сети - миллион, нет никакого смысла их тут копипастить.
 
Последнее редактирование:
Мажно не углубляться в технические детали, а посмотреть статистику приемок и посадок, тех кто пользуется жаббером и тех кто пользуется другими мессенджерами. Это самая лучшая реклама анонимности)
И где эту статистику можно увидеть?
 
Верх Низ