Русский
Русский
English
Статистика
Реклама

Почему я использую Matrix вместо Telegram

Привет, меня зовут Михаил Подивилов. Я специализируюсь на сетевых технологиях и преподаю в Сетевой академии Cisco.

Matrix замечательный, но недооценённый децентрализованный протокол обмена сообщениями с прилагающимся к нему клиентом Element, который я считаю достойной и жизнеспособной альтернативой Telegram.

Рассказываю, почему я использую Matrix вместо Telegram, как присоединиться к сети Matrix и настроить свой сервер.



Почему я использую Matrix вместо Telegram


На Хабре уже писали про Matrix, но я считаю, что этому протоколу нужна большая огласка: чем больше людей о нём узнает и начнёт его использовать тем лучше как для протокола, так и для айти-тусовки.

Matrix это открытый и децентрализованный протокол мгновенного обмена сообщениями, разрабатываемый энтузиастами из Matrix.org Foundation.

Спецификации протокола, равно как и клиент-серверная часть (Synapse как сервер и Element как клиент) находятся в открытом доступе в отличие от Telegram, который в настоящее время в открытом доступе держит только свой клиент, что вызывает немало вопросов по поводу безопасности использования протокола MTProto.

У протокола существует полноценная реализация федерации, которая позволяет бесшовно общаться, организовывать общие комнаты для общения пользователям разных серверов, совершать видео- и аудиозвонки.

Клиент Element обладает всеми современными функциями, которые присущи другим популярным мессенджерам (за исключением голосовых сообщений).

Чтобы не перечислять все преимущества, выделю некоторые из них, которые склонили меня к использованию этого протокола и мессенджера:

  • Децентрализация возможность поднять свой сервер для подключения к сети Matrix
  • Приватность сквозное шифрование
  • Групповые аудио- и видеозвонки для пользователей с разных серверов
  • Отличное API для ботов
  • Полнофункциональный веб-клиент
  • Консольные клиенты

Почему не Jabber?


Потому что протокол XMPP переполнен многочисленными XEP-ами, которые так и не были никогда не реализованы во многих его клиентах. Например, до сих пор не существует ни одного Jabber-клиента c нормальной синхронизацией истории с сервером.

Почему не Signal?


Потому что Signal не поддерживает децентрализацию.

Почему не Telegram?


Потому что исходные коды протокола MTProto, который используется в Telegram, никогда не были опубликованы.

Конечно, Telegram больше любят за его UI/UX но Element на данный момент почти ничем не уступает Telegram: там есть и мосты, и комнаты, и боты, и даже стикеры а вот людей относительно мало. К сожалению, проекту в действительности не хватает хорошего пиара.

Как подключиться к Matrix через чужой сервер


Это очень просто просто используйте веб-клиент Element или его десктопную версию. Регистрация не займёт у вас больше минуты.

Как подключиться к Matrix через свой сервер


Для этого необходимо настроить свой HomeServer на Synapse официальном сервере Matrix. Ниже я привёл инструкции, как это можно сделать.

Процесс настройки сервера Synapse мало чем отличается на разных дистрибутивах Linux основное отличие заключается в том, какую команду необходимо отдать операционной системе, чтобы та поняла, какой пакетный менеджер нужно использовать для установки.

Я буду объяснять на примере дистрибутива Ubuntu Server 20.04.

Шаг 1. Установка сервера Synapse


Подготавливаем нашу рабочую среду к установке сервера Synapse:

sudo apt install -y lsb-release wget apt-transport-httpssudo wget -qO /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpgecho "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) main" |    sudo tee /etc/apt/sources.list.d/matrix-org.list

Загружаем непосредственно сам Synapse:

sudo apt updatesudo apt install matrix-synapse-py3

В процессе установки пакета будет запрошено название доменного имени, на котором будет располагаться ваш сервер Synapse. Как правило, это домен вида matrix.example.com, где A-запись поддомена matrix указывает непосредственно на ваш сервер с запущенным Synapse.



После установщик спросит вас, хотите ли вы отправлять анонимную статистику разработчикам.



На этом установка сервера Synapse завершена. Теперь необходимо включить Synapse при загрузке операционной системы:

systemctl start matrix-synapsesystemctl enable matrix-synapse

Мы также можем убедиться, как идут дела у сервера и работает ли он в принципе:

systemctl status matrix-synapsess -plnt




Шаг 2. Настройка сервера Synapse


Используйте текстовый редактор (например, nano или vim) и откройте файл /etc/matrix-synapse/homeserver.yaml для редактирования.

Найдите строку listeners: и приведите секцию в следующий вид:

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

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

enable_registration: false

Сгенерируйте случайную строку и поместите её в раздел registration_shared_secret:

registration_shared_secret: ""

После сохранения файла с настройками не забудьте перезапустить Synapse:

systemctl restart matrix-synapse


Шаг 3. Настройка Let's Encrypt


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

Для начала необходимо установить certbot программу для выпуска сертификатов:

sudo apt install certbot -y


И выпустить сертификат для вашего доменного имени:
certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email example@example.com -d matrix.example.com


Готово. Ваш сертификат теперь находится по адресу /etc/letsencrypt/live/matrix.example.com/.

Шаг 4. Настройка Nginx в качестве Reverse Proxy



В этой конфигурации мы будем использовать 80 порт для незащищённого соединения, 443 для защищённого и 8448 для подключения к федерации Matrix.

server {    listen 80;    server_name example.com;    return 301 https://$host$request_uri;}server {    listen 443 ssl;    server_name example.com;    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;    location /_matrix {        proxy_pass http://localhost:8008;        proxy_set_header X-Forwarded-For $remote_addr;        # Nginx by default only allows file uploads up to 1M in size        # Increase client_max_body_size to match max_upload_size defined in homeserver.yaml        client_max_body_size 10M;    }}server {    listen 8448 ssl;    server_name example.com;    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;    location / {        proxy_pass http://localhost:8008;        proxy_set_header X-Forwarded-For $remote_addr;    }}


Не забудьте перезагрузить Nginx после внесения изменений в конфигурацию:

systemctl restart nginx


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


Теперь зарегистрируйте нового пользователя, под которым вы будете заходить на сервер:

sudo register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml http://localhost:8008New user localpart [root]: usernamePassword: Confirm password: Make admin [no]: yesSending registration request...Success!

Готово.

Мои поздравления, теперь вы полноценный участник сети Matrix с собственным сервером.

Давайте поговорим


Вместе с моим коллегой по цеху мы организовали чат для пользователей Хабра, чтобы вы могли проверить протокол Matrix в действии.

Подключайтесь!

Источник: habr.com
К списку статей
Опубликовано: 23.07.2020 02:15:38
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Open source

Децентрализованные сети

Информационная безопасность

Криптография

Сетевые технологии

Matrix

Telegram

Децентрализация

Mtproto

Категории

Последние комментарии

© 2006-2020, personeltest.ru