TGViewer
LinuxSkill - Сводки с прода и Шпаргалки LinuxSkill - Сводки с прода и Шпаргалки @linuxskill · 10.7K subscribers
Post #1119 4.93K
🆕 Прощай, слежка? Запускаем клон сервера MAX за 5 минут. Гайд для параноиков

Помните, мы разбирали, как мессенджер MAX сканирует сеть и наличие VPN? Энтузиасты провели реверс-инжиниринг протокола и выкатили полностью открытый бэкенд.

Сегодня у нас на разборе проект OpenMAX - эмулятор сервера для мессенджеров MAX и TamTam. Разберем архитектуру, посмотрим в исходники и учимся разворачивать независимую инфраструктуру.

Проект написан на Python 3.12+ с активным использованием асинхронности (asyncio). Разработчик под ником Alexey Polyakov проделал огромную работу по реверсу официального API (api.oneme.ru и api.tamtam.chat).

Стек технологий выглядит привычно и надежно для любого сисадмина:
- Сетевое взаимодействие строится на websockets и TCP.
- Для упаковки и сжатия трафика применяются msgpack и lz4.
- В качестве базы данных поддерживаются MySQL, MariaDB и легкий SQLite (через aiosqlite).

Судя по дампу SQL-таблиц, сервер локально хранит профили пользователей, токены авторизации, чаты, контакты и сами сообщения в формате JSON-объектов.

Интересная деталь: автор проекта жестко выступает против современных трендов вайбкодинга. В правилах проекта (CODE_OF_CONDUCT.md) прямо указано, что OpenMAX не принимает правки и Pull Requests, написанные с использованием искусственного интеллекта и нейросетей. Только ручной хардкор.

Как переключить на свой сервер?
Просто скачать официальное приложение из стора и вбить IP-адрес не выйдет. Сервер требует модификации клиента.
У вас есть два пути:
1. Использовать пропатченный мобильный клиент MAX для Android или iOS (в репозитории есть раздел с инструкциями по патчингу IPA и APK).
2. Собрать открытый клиент Komet из исходного кода, жестко заменив адреса серверов на свои локальные.

Развертывание и настройка
Проект пока находится на ранней стадии и не рекомендуется для сурового продакшена, но для тестирования закрытого корпоративного контура подходит.

Для старта серверу обязательно требуются SSL-сертификаты. Если у тебя нет валидных сертификатов от Let's Encrypt, можно сгенерировать самоподписанные прямо в терминале.

# Генерация самоподписанного сертификата X.509 на 365 дней
openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 365


Далее нужно настроить переменные окружения. Сервер слушает сразу несколько портов для совместимости с разными клиентами.

# Пример минимальной конфигурации .env файла
host = "0.0.0.0"
oneme_tcp_port = "443"
tamtam_tcp_port = "4433"
oneme_ws_port = "81"
tamtam_ws_port = "82"
log_level = "debug"
db_type = "sqlite"
db_file = "openmax.db"
certfile = "cert.pem"
keyfile = "key.pem"


Что делать, если хочется попробовать?
Авторы сами предупреждают в README: проект находится на ранней стадии разработки, вероятно полон багов и категорически не рекомендован для профессиональной среды. На данный момент у сервера нет опубликованных релизов, стабильных версий и changelog-ов.

Под капотом:
- Весь код написан на Python и лежит в директории `src/`.
- Реализован собственный TCP/WS-стек через модули `oneme_tcp`, `tamtam_tcp` и `tamtam_ws`.
- Конфигурация задается через файл `.env` (шаблон доступен в `.env.example`).
- Схема базы данных описана в файле `tables.sql`.

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

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



❗️❗️❗️ Нравится формат? Ставь 👍

👉 Рубрика: #News@LinuxSkill

#MAX #OpenSource #Python #Security #SelfHosted #ReverseEngineering
  • 👍 17
  • 👎 2
  • 👀 1
More from @linuxskill
  1. Oct 6, 2026GitOps-практики: развёртываем сервис через ArgoCD Классический CI/CD запускает деплой. Но…
  2. Oct 5, 2026Post #1241
  3. Oct 2, 2026📊 Диск тормозит, а iostat показывает норму? Ищем хвост задержек Приложение подвисает на з…
  4. Sep 30, 2026💀 CPU под 100%, а в top пусто? Ловим невидимые процессы через eBPF Сервер греется, в шапк…
  5. Sep 28, 2026🔥 Знаешь только ip a? 10 неочевидных команд ip для Linux Большинство админов знают про ip…
  6. Sep 25, 2026Разобрать строку штатным <regex.h> и не получить молчаливое «нет совпадения». Проверял на…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →