[Open source, Децентрализованные сети, Информационная безопасность, Криптография, Сетевые технологии] Почему я использую Matrix вместо Telegram
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Привет, меня зовут Михаил Подивилов. Я специализируюсь на сетевых технологиях и преподаю в Сетевой академии Cisco.
Matrix — замечательный, но недооценённый децентрализованный протокол обмена сообщениями с прилагающимся к нему клиентом Element, который я считаю достойной и жизнеспособной альтернативой Telegram.
Рассказываю, почему я использую Matrix вместо Telegram, как присоединиться к сети Matrix и настроить свой сервер.
Для вашего удобства статья поделена на три части:
1. Ответ на вопрос «Почему я использую Matrix вместо Telegram»
2. Как подключиться к Matrix через чужой сервер
3. Как подключиться к 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, никогда не были опубликованы.
Как подключиться к Matrix через чужой сервер
Это очень просто — просто используйте веб-клиент Element или его десктопную версию. Регистрация не займёт у вас больше минуты.
Как подключиться к Matrix через чужой сервер
Для этого необходимо настроить свой HomeServer на Synapse — официальном сервере Matrix. Ниже я привёл инструкции, как это можно сделать.
Процесс настройки сервера Synapse мало чем отличается на разных дистрибутивах Linux — основное отличие заключается в том, какую команду необходимо отдать операционной системе, чтобы та поняла, какой пакетный менеджер нужно использовать для установки.
Я буду объяснять на примере дистрибутива Ubuntu Server 20.04.
Шаг 1. Установка сервера Synapse
Подготавливаем нашу рабочую среду к установке сервера Synapse:
sudo apt install -y lsb-release wget apt-transport-https
sudo wget -qO /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" |
sudo tee /etc/apt/sources.list.d/matrix-org.list
Загружаем непосредственно сам Synapse:
sudo apt update
sudo apt install matrix-synapse-py3
В процессе установки пакета будет запрошено название доменного имени, на котором будет располагаться ваш сервер Synapse. Как правило, это домен вида matrix.example.com, где A-запись поддомена matrix указывает непосредственно на ваш сервер с запущенным Synapse.
После установщик спросит вас, хотите ли вы отправлять анонимную статистику разработчикам.
На этом установка сервера Synapse завершена. Теперь необходимо включить Synapse при загрузке операционной системы:
systemctl start matrix-synapse
systemctl enable matrix-synapse
Мы также можем убедиться, как идут дела у сервера и работает ли он в принципе:
systemctl status matrix-synapse
ss -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
systemctl enable nginx
Шаг 5. Регистрация нового пользователя
Теперь зарегистрируйте нового пользователя, под которым вы будете заходить на сервер:
sudo register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml http://localhost:8008
New user localpart [root]: username
Password:
Confirm password:
Make admin [no]: yes
Sending registration request...
Success!
Готово.
Мои поздравления, теперь вы — полноценный участник сети Matrix с собственным сервером.
Давайте поговорим
Вместе с моим коллегой по цеху мы организовали чат для пользователей Хабра, чтобы вы могли проверить протокол Matrix в действии.
Подключайтесь!
===========
Источник:
habr.com
===========
Похожие новости:
- [История IT, Криптография] Редкий экземпляр «Энигмы» продали на аукционе за $437 тысяч
- [Распределённые системы, Сетевые технологии, Тестирование IT-систем] RIPE Atlas
- [Информационная безопасность, Сетевые технологии] Концепция Network 2030: как изменится интернет через 10 лет
- [IT-инфраструктура, Информационная безопасность, Сетевые технологии] 1. Group-IB. Комплексная защита сети. Архитектура TDS
- [API, Google API, Здоровье, Информационная безопасность] Google заподозрили в сборе геоданных через приложения для отслеживания контактов больных COVID
- [Информационная безопасность, Сетевые технологии, Системное администрирование] 1. Check Point SandBlast Agent Management Platform
- [IT-инфраструктура, Информационная безопасность, Системное администрирование] OpenVPN с двухуровневой иерархией ЦС
- [Git, IT-компании, Open source] Microsoft выпустила утилиту ProcMon (Process Monitor) для Linux
- [Информационная безопасность] Атака «BadPower» позволяет вызвать возгорание устройства
- [Информационная безопасность, Софт] «Росатом» переходит на российское ПО
Теги для поиска: #_open_source, #_detsentralizovannye_seti (Децентрализованные сети), #_informatsionnaja_bezopasnost (Информационная безопасность), #_kriptografija (Криптография), #_setevye_tehnologii (Сетевые технологии), #_matrix, #_telegram, #_detsentralizatsija (децентрализация), #_kriptografija (криптография), #_mtproto, #_open_source, #_detsentralizovannye_seti (
Децентрализованные сети
), #_informatsionnaja_bezopasnost (
Информационная безопасность
), #_kriptografija (
Криптография
), #_setevye_tehnologii (
Сетевые технологии
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 14:44
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Привет, меня зовут Михаил Подивилов. Я специализируюсь на сетевых технологиях и преподаю в Сетевой академии Cisco. Matrix — замечательный, но недооценённый децентрализованный протокол обмена сообщениями с прилагающимся к нему клиентом Element, который я считаю достойной и жизнеспособной альтернативой Telegram. Рассказываю, почему я использую Matrix вместо Telegram, как присоединиться к сети Matrix и настроить свой сервер. Для вашего удобства статья поделена на три части: 1. Ответ на вопрос «Почему я использую Matrix вместо Telegram» 2. Как подключиться к Matrix через чужой сервер 3. Как подключиться к Matrix через свой сервер Почему я использую Matrix вместо Telegram На Хабре уже писали про Matrix, но я считаю, что этому протоколу нужна бо́льшая огласка: чем больше людей о нём узнает и начнёт его использовать — тем лучше как для протокола, так и для айти-тусовки. Matrix — это открытый и децентрализованный протокол мгновенного обмена сообщениями, разрабатываемый энтузиастами из Matrix.org Foundation. Спецификации протокола, равно как и клиент-серверная часть (Synapse как сервер и Element как клиент) находятся в открытом доступе — в отличие от Telegram, который в настоящее время в открытом доступе держит только свой клиент, что вызывает немало вопросов по поводу безопасности использования протокола MTProto. У протокола существует полноценная реализация федерации, которая позволяет бесшовно общаться, организовывать общие комнаты для общения пользователям разных серверов, совершать видео- и аудиозвонки. Клиент Element обладает всеми современными функциями, которые присущи другим популярным мессенджерам (за исключением голосовых сообщений). Чтобы не перечислять все преимущества, выделю некоторые из них, которые склонили меня к использованию этого протокола и мессенджера:
Почему не Jabber? Потому что протокол XMPP переполнен многочисленными XEP-ами, которые так и не были никогда не реализованы во многих его клиентах. Например, до сих пор не существует ни одного Jabber-клиента c нормальной синхронизацией истории с сервером. Почему не Signal? Потому что Signal не поддерживает децентрализацию. Почему не Telegram? Потому что исходные коды протокола MTProto, который используется в 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-https
sudo wget -qO /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" | sudo tee /etc/apt/sources.list.d/matrix-org.list Загружаем непосредственно сам Synapse: sudo apt update
sudo apt install matrix-synapse-py3 В процессе установки пакета будет запрошено название доменного имени, на котором будет располагаться ваш сервер Synapse. Как правило, это домен вида matrix.example.com, где A-запись поддомена matrix указывает непосредственно на ваш сервер с запущенным Synapse. После установщик спросит вас, хотите ли вы отправлять анонимную статистику разработчикам. На этом установка сервера Synapse завершена. Теперь необходимо включить Synapse при загрузке операционной системы: systemctl start matrix-synapse
systemctl enable matrix-synapse Мы также можем убедиться, как идут дела у сервера и работает ли он в принципе: systemctl status matrix-synapse
ss -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
systemctl enable nginx Шаг 5. Регистрация нового пользователя Теперь зарегистрируйте нового пользователя, под которым вы будете заходить на сервер: sudo register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml http://localhost:8008
New user localpart [root]: username Password: Confirm password: Make admin [no]: yes Sending registration request... Success! Готово. Мои поздравления, теперь вы — полноценный участник сети Matrix с собственным сервером. Давайте поговорим Вместе с моим коллегой по цеху мы организовали чат для пользователей Хабра, чтобы вы могли проверить протокол Matrix в действии. Подключайтесь! =========== Источник: habr.com =========== Похожие новости:
Децентрализованные сети ), #_informatsionnaja_bezopasnost ( Информационная безопасность ), #_kriptografija ( Криптография ), #_setevye_tehnologii ( Сетевые технологии ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 14:44
Часовой пояс: UTC + 5