Поднимаем свой Matrix Synapse + Element в Tor сети на Docker контейнерах

STREETBEAT SUPPORT

⭐️⭐️⭐️⭐️⭐️⭐️⭐️ ЛУЧШАЯ ЗП В РФ
Support
Сообщения
2.471
Реакции
16.763
main_статьи_v2.png

Привествую уважаемый читатель. Данный гайд будет больше направлен на владельцев шопов или кому надо придерживать анонимную и безопасную связь с работниками или коллегами, чем на обычного юзера даркнет сети.
Здесь расскажу как поднять "свой мессенджер" в сети ТОР.
Много где находил вопросы по поводу поднятия Element в сети Тор, и подумал а почему бы и не создать статейку.
Последнее время, я куча своих проектов держу на Docker контейнерах, и подумал, а что если, всё объеденить. Матрикс сеть + Элемент + Тор и всё на изолированных контейнерах.
Вы можете подумать вначале - звучит как то уже сложно и нужны определенные навыки программирования. На самом деле - всё очень легко
, нужны несколько конфигураций и установленных пакетов для работы нашего сервиса. Да собирать это всё и изучать - ушло много сил и времени, поэтому я вам придподнесу всё готовенькое, где вы без труда по моим уже готовым шагам поднимите на своём сервере данный сервис.
Так же постарался чтобы весь проект был компактным и с четкой иерархией
, нигде чтобы не были разбросаны файлы по системе и всё было в одном месте. Так же для большей безопасности я добавил самописные сертификаты https в Тор сеть, считайте двойной защитой, Тор сеть шифрует трафик + сертификаты.
image.png

СОДЕРЖАНИЕ:​

  1. Что из себя представляет проект
  2. VPS/VDS
  3. Установка необходимых компнентов
  4. Структура проекта
  5. Создание проекта
    Tor-контейнер
    (docker-compose.tor.yml)
    Matrix-контейнер (docker-compose.matrix.yml)
    Element-контейнер (docker-compose.element.yml)
    Nginx-контейнер (docker-compose.nginx.yml)
  6. Установка прав доступа внутри хост машины
  7. Запуск проекта
image.png

1.jpg

Начнём сначала с краткой информации что вообще из себя что представляет​

Matrix Synapse - Это сервер для общения через сеть Matrix. Представьте это как свой приватный хостинг для чатов и файлов. Вы ставите его у себя чтобы общаться с коллегами или кем надо, а он всё шифрует.
Element - Это веб оболочка/клиент для нашего Matrix сервера. Напоминает discord + telegram.
TOR - Это прокси сеть, которая скрывает ваш сервер и делает его доступным только через специальный .onion адрес.
Docker - Это инструмент изоляции и развёртывания разных проектов, который упрощает установку и запуск всего этого (Matrix Synapse, Element, Tor). Представьте коробки, куда всё упаковано отдельно от вашей системы(дома) и кто залезет в вашу коробку (к примеру мышь) она не сможет вылезти за пределы этой коробки.
image.png

2.png

VPS/VDS​

VPS/VDS - выделенный сервер, стоит не так дорого. Выбираем сервер с хорошей сетью (должен принимать оплату криптой и не должен верифицировать личность или принуждать давать данные о пользователе) и устанавливаем Linux (Debian).

Что учитывать при выборе VPS:​

  1. Методы оплаты
    Убедитесь, что провайдер принимает криптовалюту (Bitcoin, Ethereum, Monero и другие).
  2. Не требовать верификации личности
    Идеально, если провайдер не требует верификации и не запрашивает документы, подтверждающие вашу личность. Такой сервис будет соблюдать вашу приватность и не создаст лишних препятствий при регистрации.
  3. Приватность и анонимность
    Проверьте, насколько провайдер защищает вашу конфиденциальность. Он должен избегать хранения логов или других данных, которые могут раскрыть вашу активность. Смотрите на политику конфиденциальности провайдера, чтобы убедиться, что он не делится вашими данными с третьими лицами.
  4. Географическое расположение серверов
    Выбирайте серверы в странах с лояльными законами по защите данных и без строгой интернет-цензуры.
    Я лично основном выбираю сервера Германия/Нидерланды. А в качестве провайлера/сервиса использую VDSina, вы можете выбрать любой подходящий под эти критерии.
image.png

Установка необходимых компонентов​


Bash:
ssh root@<IP-адрес вашего сервера>
<IP-адрес вашего сервера> - замените на ip указанный в SSH access VPS (без скобок). Подтвердите запрос на fingerprint, введя "yes". Введите пароль.
Bash:
apt install sudo
Устанавливаем пакет прав супер пользователя, будут нужны в дальнейшем и чтобы не было лишних проблем с правами.
Bash:
sudo apt update && sudo apt upgrade -y
Обновляем систему
Bash:
sudo apt install -y ca-certificates curl gnupg certbot
Необходимые зависимости и сертификаты
Bash:
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo tee /etc/apt/keyrings/docker.asc > /dev/null
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Добавление репозиториев Docker
Bash:
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-compose
Установка Docker
Bash:
sudo usermod -aG docker $USER
newgrp docker
Добавление docker в группу для запуска без sudo

Bash:
docker network create --driver bridge matrix-net
Создаём для докера изолированную сеть matrix-net
Bash:
mkdir matrix-data
Создаём папку для нашего проекта - где будет всё храниться, у меня такой путь и все дальнейшие конфигурации привязаны к нему /home/user/matrix-data
Название и куда засунуть можете сами решать, я просто дал пример как я настраивал у себя и все настройки под данный путь и папку
image.png

Структура проекта​

matrix-data/
├── element/
│ └── config.json
├── matrix/
│ └── homeserver.yaml
├── nginx/
│ ├── nginx.conf
│ └── certs/
├── tor/
│ ├── torrc (автоматически создастся при первом запуске контейнера tor)
│ └── hostname (автоматически создастся при первом запуске контейнера tor)
├── docker-compose.matrix.yml
├── docker-compose.element.yml
├── docker-compose.tor.yml
└── docker-compose.nginx.yml
И вот вся структура необходимая вам, да это текстовые конфигурации которые создадут контейнеры со всем необходимым для работы.
image.png

Создание проекта​

Для начала перейдём в нашу рабочую папку
Bash:
cd /home/user/matrix-data
Работать будем только здесь, никаких разбросанных файлов в системе, сложностей с открытием портов и настроек кучей конфигураций в разных местах. Только одна папка с проектом. Легко забекапить, легко развернуть на новом сервере.
image.png

docker-compose.tor.yml​

Создадим наш конфиг:
Bash:
nano docker-compose.tor.yml
Bash:
services:
  tor:
    image: osminogin/tor-simple:latest
    container_name: tor-matrix
    restart: always
    networks:
      - matrix-net
    volumes:
      - /home/user/matrix-data/tor:/etc/tor
      - /home/user/matrix-data/tor/torrc:/etc/tor/torrc
    cap_add:
      - NET_ADMIN
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"
networks:
  matrix-net:
    external: true
Нажимаем Ctrl+X и вводим Y
И так что вообще делает данный конфиг он запускает в нашей изолированной сети matrix-net проксирование в ТОР сеть, даёт нам сам доменное имя адреса , подключает папки с изоляции докера в папку проекта
Запускаем 1 раз и сразу выключаем для получения hostname и torrc
Bash:
docker compose -f docker-compose.tor.yml up -d
Ждём 1 минуту
Bash:
docker compose -f docker-compose.tor.yml down
Bash:
cat /home/user/matrix-data/tor/hostname
И здесь нам выведет название наего .onion ресурса
Где я буду помечать ваш-hostname.onion - вставляйте туда этот адресс
Создадим конфиг torrc
Bash:
nano tor/torrc
Bash:
HiddenServiceDir /etc/tor/hidden_service
HiddenServicePort 80 nginx-matrix:443
HiddenServicePort 443 nginx-matrix:443
HiddenServicePort 8008 matrix:8008
HiddenServicePort 8448 matrix:8008
SocksPort 127.0.0.1:9050
Log notice stdout
Нажимаем Ctrl+X и вводим Y
Данный конфиг выбирает что конкретно будет проксироваться из контнтейнеров в Tor сеть на наш .onion
image.png

docker-compose.matrix.yml​

Создадим наш конфиг:
Bash:
nano docker-compose.matrix.yml
Bash:
services:
  matrix:
    image: matrixdotorg/synapse:latest
    container_name: matrix
    restart: always
    networks:
      - matrix-net
    volumes:
      - /home/user/matrix-data/matrix:/data
    user: 999:999
    environment:
      - SYNAPSE_SERVER_NAME=dookshccjyxexfekm67we7dcprs7opi3wj7ow5zatpi4wdodyj4nwsad.onion
      - SYNAPSE_REPORT_STATS=false
      - SYNAPSE_ENABLE_REGISTRATION=true
networks:
  matrix-net:
    external: true
Нажимаем Ctrl+X и вводим Y (Далее запомните это для сохранения конфигураций и текстовых файлов)
Данный конфиг запускает Matrix Synapse
Запускаем matrix и выключаем его
Bash:
docker compose -f docker-compose.matrix.yml up -d
Ждём 1 минуту
Bash:
docker compose -f docker-compose.matrix.yml down

Редактируем конфиг :
Bash:
nano matrix/homeserver.yaml
Bash:
server_name: "ваш_hostname.onion"
public_baseurl: "ваш_hostname.onion:8008"
pid_file: /data/homeserver.pid
listeners:
  - port: 8008
    tls: false
    type: http
    bind_addresses: ['0.0.0.0']
    resources:
      - names: [client, federation]
        compress: false

database:
  name: sqlite3
  args:
    database: /data/homeserver.db
log_config: "/data/log.config"
media_store_path: /data/media_store
enable_authenticated_media: false
enable_media_repo: true
enable_thumbnail_generation: true
max_upload_size: "50M"
registration_shared_secret: "оставляем_как_в_оригинальном_файле"
macaroon_secret_key: "оставляем_как_в_оригинальном_файле"
form_secret: "=оставляем_как_в_оригинальном_файле"
signing_key_path: "/data/ваш_hostname.onion.signing.key"
enable_registration: true
enable_registration_without_verification: true
federation: {}
report_stats: false
trusted_key_servers: []

# vim:ft=yaml
Тут более тонкие настройки нашего matrix сервера, такие как ключи шифрования, загрузки файлов, ограничение по весу, подключение папки медиа и настройки под неё, включение регистрации и указание базы данных, отключение передачи Федерации на матрикс сервера(это нужно чтобы на официальные matrix сервера не отправлялись никакие наши данные).
Обратите внимание на пункты:
ваш_hostname.onion
оставляем_как_в_оригинальном_файле

image.png

docker-compose.element.yml​


Создадим наш конфиг:
Bash:
nano docker-compose.element.yml
Bash:
services:
  element:
    image: vectorim/element-web:latest
    container_name: element
    restart: always
    networks:
      - matrix-net
    volumes:
      - /home/user/matrix-data/element/config.json:/app/config.json:ro
      - /home/user/matrix-data/img/lake.jpg:/app/themes/element/img/backgrounds/lake.jpg:ro
networks:
  matrix-net:
    external: true
Далее создаём папку element
Bash:
mkdir element
Создадим конфиг config.json
Bash:
nano element/config.json
Bash:
{
  "default_server_config": {
    "m.homeserver": {
      "base_url": "http://ваш_hostname.onion:8008",
      "server_name": "ваш_hostname.onion"
    }
  },
  "default_device_display_name": "Tor Element session",
  "disable_custom_urls": true,
  "disable_guests": false,
  "disable_3pid_login": true,
  "disable_login_language_selector": false,
  "disable_service_worker": true,
  "mobile_redirect": false,
  "brand": "DarknetBunker",
  "default_theme": "dark",
  "features": {
    "feature_secure_backup": true,
    "feature_e2ee": true,
    "feature_service_worker": false
  }
}
Что делают данные конфигурации - указывают подключение к нашему Матрикс Синапс, отключает подключение к другим серверам матрикса, отключает гостевой режим, оставляет выбор языка, отключает авторизацию по номеру телефона или почты, brand - можете указать любое название, ну и тема тёмная, так же настройки для приватных ключей и их сохранение.
Обратите внимание на пункты:
ваш_hostname.onion

БОНУС:
/home/user/matrix-data/img/lake.jpg
в этот путь вы можете загрузить любое изображение с именем и форматом lake.jpg и у вас это будует на приветвенном экране сайта​
image.png

docker-compose.nginx.yml​

Создадим наш конфиг:
Bash:
nano docker-compose.nginx.yml
Bash:
services:
  nginx:
    image: nginx:latest
    container_name: nginx-matrix
    restart: always
    networks:
      - matrix-net
    ports:
      - "443:443"
    volumes:
      - /home/user/matrix-data/nginx/nginx.conf:/etc/nginx/nginx.conf
      - /home/user/matrix-data/nginx/certs:/etc/nginx/certs
networks:
  matrix-net:
    external: true
Здесь мы делаем проксирование с http на https с нашими сертификатами которые будут подхватыватся с настроек nginx.conf
Далее создаём папку nginx
Bash:
mkdir nginx
Создадим конфиг nginx.conf
Bash:
nano nginx/nginx.conf
Bash:
events {}

http {
  server {
    listen 443 ssl;
    server_name ваш_hostname.onion;

    ssl_certificate /etc/nginx/certs/nginx.crt;
    ssl_certificate_key /etc/nginx/certs/nginx.key;

    location / {
      proxy_pass http://element:80;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-For $remote_addr;
      proxy_set_header X-Forwarded-Proto $scheme;
    }

    location /_matrix {
      proxy_pass http://matrix:8008;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-For $remote_addr;
      proxy_set_header X-Forwarded-Proto $scheme;
    }

    location /.well-known/matrix/server {
      default_type application/json;
      return 200 '{"m.server": "ваш_hostname:443"}';
    }

    location /.well-known/matrix/client {
      default_type application/json;
      return 200 '{"m.homeserver": {"base_url": "https://ваш_hostmame.onion"}}';
    }
  }
}
Обратите внимание на пункты:
ваш_hostname.onion
Далее создадим сертификаты для nginx и можно запускать наш проект:
Bash:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
  -keyout /home/user/matrix-data/nginx/certs/nginx.key \
  -out /home/user/matrix-data/nginx/certs/nginx.crt \
  -subj "/CN=ваш_адрес_hostaname.onion"
image.png

ПРАВА ДОСТУПА​

Bash:
chown -R 999:999 /home/user/matrix-data
Bash:
chmod 644 /home/user/matrix-data/docker-compose.element.yml
chmod 644 /home/user/matrix-data/docker-compose.matrix.yml
chmod 644 /home/user/matrix-data/docker-compose.nginx.yml
chmod 644 /home/user/matrix-data/docker-compose.tor.yml
chown root:root /home/user/matrix-data/docker-compose.*
Bash:
chmod 600 /home/user/matrix-data/element/config.json
chmod 600 /home/user/matrix-data/matrix/homeserver.yaml
chmod 600 /home/user/matrix-data/tor/torrc
chmod 644 /home/user/matrix-data/nginx/nginx.conf
chown 999:999 /home/user/matrix-data/element/config.json /home/user/matrix-data/matrix/homeserver.yaml
chown root:root /home/user/matrix-data/nginx/nginx.conf
Bash:
chmod 600 /home/user/matrix-data/nginx/certs/nginx.key
chmod 600 /home/user/matrix-data/nginx/certs/nginx.crt
chmod 600 /home/user/matrix-data/tor/hidden_service/hostname
Bash:
chmod 700 /home/user/matrix-data/element
chmod 700 /home/user/matrix-data/matrix
chmod 755 /home/user/matrix-data/matrix/media_store
chmod 700 /home/user/matrix-data/nginx
chmod 700 /home/user/matrix-data/nginx/certs
chmod 700 /home/user/matrix-data/tor
chmod 700 /home/user/matrix-data/tor/hidden_service
chmod 700 /home/user/matrix-data/tor/hidden_service/authorized_clients
chown root:root /home/user/matrix-data/element /home/user/matrix-data/nginx /home/user/matrix-data/nginx/certs /home/user/matrix-data/tor
chown 999:999 /home/user/matrix-data/matrix /home/user/matrix-data/matrix/certs /home/user/matrix-data/matrix/media_store

image.png

Запуск проекта​

Bash:
docker compose -f docker-compose.tor.yml up -d
docker compose -f docker-compose.matrix.yml up -d
docker compose -f docker-compose.element.yml up -d
docker compose -f docker-compose.nginx.yml up -d
Переходим в торе на наш адрес только не забудьте добавить https вначале заместо http
Screenshot_7.png

У вас выскочит такое окно, не переживайте, всё нормально, просто у агрегатора сертификатов нет возможности проверять .onion сайты, т.е. https сертификаты не особо расчитаны для Тор сети, но будет всё равно шифроваться Tor сетью и https
Screenshot_8.png

Просто принимаем их
Screenshot_9.png
Всё, вы готовы приватно общаться с вашей командой/сотрудниками и прочими людьми, просто поделитесь ссылкой и не забываем включить шифрование в настройках аккаунта!
Так как я работал с проектом 2 недели и мог что то упустить в этом гайде, если у вас возникли какие то ошибки или сложности, пишите тут в теме, с радостью расскажу как исправить и перейти к следущему этапу!​
 
Человек крайне не понимает что пишет, так как скорее всего это копипаста или плохие его технические навыки

Во первых
В вашей теме предлагается установить как docker-compose-plugin, так и docker-compose, однако установка обоих пакетов избыточна,
так как docker-compose-plugin уже включает функциональность для команды docker compose, а отдельный docker-compose может вызвать путаницу.
По этому рекомендуется установить только docker-compose-plugin для соответствия официальным рекомендациям Docker.

Во вторых что касается конфигурация Tor
В файле torrc указаны строки HiddenServicePort 8008 matrix:8008 и HiddenServicePort 8448 matrix:8008, которые открывают прямой доступ к Matrix Synapse через Tor.
Это ненужно, так как весь трафик должен проходить через обратный прокси (Nginx), что обеспечивает дополнительный уровень безопасности.
Такие настройки могут создать риск несанкционированного доступа к Synapse, поэтому их следует удалить.

В третих
В файле Docker Compose для Nginx указано ports: - "443:443", что открывает порт 443 на хосте.
Это может привести к экспозиции сервиса на IP-адресе хоста, что противоречит цели использования только Tor для доступа.
Рекомендуется удалить эту настройку, чтобы сервис был доступен исключительно через скрытую службу Tor.

Прежде чем писать данный мануал стоило ознакомится с данной документацией


 
Человек крайне не понимает что пишет, так как скорее всего это копипаста или плохие его технические навыки

Во первых
В вашей теме предлагается установить как docker-compose-plugin, так и docker-compose, однако установка обоих пакетов избыточна,
так как docker-compose-plugin уже включает функциональность для команды docker compose, а отдельный docker-compose может вызвать путаницу.
По этому рекомендуется установить только docker-compose-plugin для соответствия официальным рекомендациям Docker.

Во вторых что касается конфигурация Tor
В файле torrc указаны строки HiddenServicePort 8008 matrix:8008 и HiddenServicePort 8448 matrix:8008, которые открывают прямой доступ к Matrix Synapse через Tor.
Это ненужно, так как весь трафик должен проходить через обратный прокси (Nginx), что обеспечивает дополнительный уровень безопасности.
Такие настройки могут создать риск несанкционированного доступа к Synapse, поэтому их следует удалить.

В третих
В файле Docker Compose для Nginx указано ports: - "443:443", что открывает порт 443 на хосте.
Это может привести к экспозиции сервиса на IP-адресе хоста, что противоречит цели использования только Tor для доступа.
Рекомендуется удалить эту настройку, чтобы сервис был доступен исключительно через скрытую службу Tor.

Прежде чем писать данный мануал стоило ознакомится с данной документацией


Ну авторитет новорега внушает сомнения сказанного, как найдёте хоть что то похожее на мою статью, просьба скинуть сюда, как подтверждение ваших слов о копипасте (вы не найдёте не одного похожего материала)
Если вы такой хороший программист так укажите уязвимость к которой можете попасть, а не теории от вас.
Только с портом 443 в nginx соглашусь что надо поставить заглушку
Обновлённый конфиг docker-compose.nginx.yml:

Bash:
services:
  nginx:
    image: nginx:latest
    container_name: nginx-matrix
    restart: always
    networks:
      - matrix-net
#    ports:
#      - "443:443"
    volumes:
      - /home/user/matrix-data/nginx/nginx.conf:/etc/nginx/nginx.conf
      - /home/user/matrix-data/nginx/certs:/etc/nginx/certs
networks:
  matrix-net:
    external: true
 
Какая разниуа новерег или не новорег, вы допустили ошибки, я их нашел опираясь на официальные источники
Суть в том что ваша ошибка стоила бы многим возможно свободой или еще чем то
И получаеться что ошиблись вы один, а из за вашей ошибки потом ошиблись сотни других

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

Еще раз дублирую для изучения


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

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

Еще раз дублирую для изучения


Я что то не вижу у вас плашки Технический специалист) только теория которую вы проталкиваете, без реальной уязвимости. Стоила бы ошибка - свободой - ваша теория лишь только. Как найдете реальную уязвимость просьба обпубликовать сюда со скринами и пруфами.
 
Опять 25, то новорег, то плашки он не видит

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

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

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

Я не буду тебе искать не какие уязвимости, я думаю что у модераторов есть технические специалисты с плашкой как ты говоришь, которые посмотрят и увидят тоже самое что и я увидел
Вы мне прикрепили ошибки которые вы нашли через ChatGPT прогнав мою статью, молодец , и они не критичны, от слова совсем. Ну хоть частично текст разбавили своим, уж сильно выделяется ваш типичный текст среди GPT, вы хоть бы поинтересовались конкретикой у нейросети насколько реальную угрозу создают эти "ошибки")
Ну кончено я рад, что кто то же создал специально новый акк для хейта и дискридитации статьи. Ну ок. Будет объективная критика заходите, а так набор теорий из нейросети без реальной угрозы)
В принципе я понимаю тебе главное выйграть халявного бабла, а то что ты ошибся в трех моментах тебе не важно, а самое что страшное, что тебе все равно если ошибутся остальные
Я не понимаю только одного, для чего создвать акк, прогонять мою статью через нейросеть в поисках любых "ошибок" и быть персональным моим "хейтером"?))
 
Сколько же статей на руторе про настройку серверов для матрикс. Но нет ни одной действительно полезной статьи от людей с реальным опытом.

Вот скажите мне, автор, за каким лешим здесь используете nginx? Просто, что бы он был? Какую функцию он выполняет? Он же тут как табуретке пятая нога. Без него же лучше работает, ну или как минимум не хуже.

я вам придподнесу всё готовенькое, где вы без труда по моим уже готовым шагам поднимите на своём сервере данный сервис.
Все готовенькое - это когда сделан плейбук ансибл. Когда нажал на кнопку и ждешь окончания настройки серверов.
А ну ладно. На работу скольких человек рассчитан ваш сервер, что вы используете sqlite вместо стандартного postgres?
enable_registration: true
enable_registration_without_verification: true
Вы оставляете на сервере открытую регистрацию, да еще и без верификации или хотябы банальной капчи.
Ваш сервер абузится в одну-две команды утилитами torsocks, ab, curl, wget.
отключение передачи Федерации на матрикс сервера(это нужно чтобы на официальные matrix сервера не отправлялись никакие наши данные)
Какие данные будут отправляться и куда? Да ваш сервер с такой конфигурацией и так не попадёт в белый список серверов сообщества.

enable_media_repo: true
enable_thumbnail_generation: true
max_upload_size: "50M"
Отличный вариант для дешевого VPS.
Конечно, те ребята, что берут сервер на 2-5 человек, подключат любой S3 для хранения аттачмента.
А у вас ведь серьёзная VDSina. При таких раскладах можно хранить вложения в соседней от конфига папке.
У вас выскочит такое окно, не переживайте, всё нормально, просто у агрегатора сертификатов нет возможности проверять .onion сайты, т.е. https сертификаты не особо расчитаны для Тор сети, но будет всё равно шифроваться Tor сетью и https
Агрегатор сертификатов - это вы так расшифровали CA?
Хотябы оставили бы ссылки на пруфы, что https не для tor.
Вот например такую:


Или даже получить сертификат используя утилиту certbot бесплатно по алгоритмам ACME:


Да и платных сертификатов выдаёт каждый второй регистратор.

Вы объясните, что https не для tor авторам RFC 9799


Вот еще хорошая инструкция

registration_shared_secret: "оставляем_как_в_оригинальном_файле"
macaroon_secret_key: "оставляем_как_в_оригинальном_файле"
form_secret: "=оставляем_как_в_оригинальном_файле"
Мдаааа... тут я оставлю без комментариев.

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

С компьютера web-версией Element из TorBrowser пользоваться еще можно, а вот с мобильного телефона - ну вы попробуйте сами.

Лучше бы написали статью о том, как правильно бэкапить данные и восстанавливать из бэкапа. А то про установку этого заезжаного Synapse уже и так вагон статей. А вот про бэкапы ни одной. Та и понятное дело - кто задумывается о бакапах sqlite не выбирает в качестве БД.
 
Вот скажите мне, автор, за каким лешим здесь используете nginx? Просто, что бы он был? Какую функцию он выполняет? Он же тут как табуретке пятая нога. Без него же лучше работает, ну или как минимум не хуже.
Для https сертификатов, да без него будет просто http
А ну ладно. На работу скольких человек рассчитан ваш сервер, что вы используете sqlite вместо стандартного postgres?
ну учитывая личный опыт, без тор сети, компанию на 10-20 пользователей тянуло без проблем
ну я согласен если там уже 50-100 аудитории то нужна более лучшая БД
Вы оставляете на сервере открытую регистрацию, да еще и без верификации или хотябы банальной капчи.
Ваш сервер абузится в одну-две команды утилитами torsocks, ab, curl, wget.
Часто ваш онион адрес дудосят? Или заходят левые и начинают там спамить?
Я пробывал как то ReCapcha поставить не особо получилось и она как бы по сути не нужна если это будет сервер-чат рассчитанный на малую аудиторию, когда разговоры от 100 человек и публикуется везде где только можно, да не спорю это надо
Я дал базу от которой можно отталкиваться и изменить конфиги под себя
Или даже получить сертификат используя утилиту certbot бесплатно по алгоритмам ACME:
Мой личный опыт с этим не знаком, на досуге ознакомлюсь с этим
Сочувствую я пользователям вашего сервера, которые будут вынуждены общаться через мобильный жутко тормозной TorBrowser вместо подключения человеческих клиентов для всех платформ. Но ведь ни один клиент не подключится к серверу с самоподписным сертификатом, лишь TorBrowser дает возможность обойти это ограничение безопасности.

С компьютера web-версией Element из TorBrowser пользоваться еще можно, а вот с мобильного телефона - ну вы попробуйте сами.
Так то клиенты тоже работают на которых тор сеть стоит, проверенно, я именно с мобильного тестил. Вебклиент для мобилы да не адаптирован, но можно просто скачать Element пустить тор сеть и подключиться к серверу своему.
В данном гайде я дал базу по настройке и развертыванию сервера, а что там можно настроить и как, уже за правом пользователей которые будут разворачивать. Я лишь подеделился как поднять в сети тор Матрикс(где я в интернете не одного гайда не встретил), и расчёт был что для общения малых команд. Это не гайд как сделать даркнет форум XenForo типо RuTor в даркнете, где нужно защиту от DDoS прорабатывать и ещё тысячи уязвимостей тестить и переписывать код и т.д
 
Для https сертификатов, да без него будет просто http
С чего вы так решили? Почитайте внимательнее . TLS прекрасно поддерживается, прописываете сертификат и ключ - будет https.
Да, они не вешать сервер на порт ниже 1024. Но у вас уже есть одна реверс-проски - это TOR. Зачем вам ещё одна?
ну учитывая личный опыт, без тор сети, компанию на 10-20 пользователей тянуло без проблем
тут все субъективно. Смотря сколько строчат сообщений.
И опять же, смотря сколько времени проработает ваша сборка.
Если учитывать, что она дольше месяца работать не будет, то норм.
Но даже легковесные серверы matrix рекомендуют только Postgres.
Часто ваш онион адрес дудосят?
про ддос я не писал. я писал о том, что нельзя расходовать никакие ресурсы сервера, пока не убедишься, что пользователь не бот. сначала капча - а потом регистрация.
Или заходят левые и начинают там спамить?
разные боты заходят. в их числе и поисковые, и всякие неизвестные. Некоторые боты ищат на страницах формы для автоматического тестирования XSS.
В любом случае, могут положить сервак несколькими обкатками. Но в отличии от безобидного временного ддоса, у вас будет переполнен диск.
А если сервер перезагрузится, то самостоятельно загрузиться уже не сможет. А это значит, что придется загружаться в однопользовательский режим и удалять базу, так как выполнить sql-запрос у вас не будет хватать места. Возможно получится выкачать полностью виртуалку и отчищать базу вручную от мусора на компьюторе локально, но это точно не самое приятное занятие.
но можно просто скачать Element пустить тор сеть и подключиться к серверу своему.
Да не подключится он к серверу с самоподписанным сертификатом.
 
Да не подключится он к серверу с самоподписанным сертификатом.
Подключится))
photo_2025-08-15_16-00-28.jpg
photo_2025-08-15_16-00-29.jpg

С чего вы так решили? Почитайте внимательнее . TLS прекрасно поддерживается, прописываете сертификат и ключ - будет https.
при чём тут Synapse, когда говорим за веб интерфейс element... по https подключаешься к element, вы можете для наглядности скинуть свою конфигурацию на docker контейнерах как бы вы сделали, а не кормить документациями и ссылками "аля вот читай там всё сказано") Если ко всему есть документации, то для чего делают гайды, хммм...
Но даже легковесные серверы matrix рекомендуют только Postgres.
Если так охота, то добавлю сюда обновлённый конфиг с Postgres и с капчей попозже)
 
Бро, да ты тролишь чтоли? Ты читал сообщение то со своего скриншота? :Lol11:
Да даже если не регистрировался никогда и первый раз заходишь, пятнадцать раз перекрестишься во время чтения.
Та самая технология, которая должна тебя предупредить, что идёт что-то не по плану - либо сам накосячил, либо за тебя накосячили ребята из Европола.

Ну реально же, выглядит как молдованин в салоне продаёт БМВ: "Мамой клянусь, нулёвый, не бит, не крашен... А то, что Check Engine горит - так это у всех БМВ так горит от завода до первого столба... Пятихатку скину, за 15 мильёнов возьмешь?"

Тоха с форума XSSis тоже как бы думал... Ну то отпечатки OTR меняются периодически у собеседников (а кому не западло разбираться в таких пустяках??).
А в итоге выяснилось, что один из самых популярнейших среди хакеров серверов жаббера thesecurebiz французские правоохранители читали на протяжении двух лет.

при чём тут Synapse, когда говорим за веб интерфейс element... по https подключаешься к element, вы можете для наглядности скинуть свою конфигурацию на docker контейнерах как бы вы сделали, а не кормить документациями и ссылками "аля вот читай там всё сказано") Если ко всему есть документации, то для чего делают гайды, хммм...
Бро, я тебе как раз про Synapse говорю. Element - это код клиента. Тупо статичные файлы js, css и изображений. Они могут загружаться хоть откуда угодно. Хочешь - из любой папки synapse, хочешь - https://<username>.github.io/. Можно даже на dropbox. А если бы они по человечески собрали бандл без необходимости дозагрузок, то его можно было бы открывать с флешки двойным кликом по html-файлу.


Если так охота, то добавлю сюда обновлённый конфиг с Postgres и с капчей попозже)
Да дело то в другом. Ты просто пишешь статью с наукой о том, как вместо того, чтобы взять готовый скрипт, прописать в конфиг ip сервера и пароль ssh, затем запустить и подождать 5 минут до готового к использованию сервера, ты проповедуешь серьёзный hardened-тюнинг превращая такую простую вещь как matrix-server в дикую головную боль. Но не говоришь, с какой целью надо избрать именно этот путь, а не обычный. А получается то с огромными упущениями.

И статей же на эту тему вагон. А вот самое интересное ты оставил за кадром - например, а что было сделано для защиты от вмешательства третьих сил со стороны хостинга? Упрощая, как защитить скрипты от изменений системным администратором хостинга сервера?
 
Идея неплохая. Сейчас всякие Докеры с Кубернетесами шибко вошли в моду.
 
Идея неплохая. Сейчас всякие Докеры с Кубернетесами шибко вошли в моду.
А смысл? При таком конфиге автоматически обновлять при выходе новых версий не будет же. Тупо двойной пердолинг.
 
Похвально само по себе, что ТС пытается присандалить инструменты DevOps к решению имеющейся проблемы. А по реализации - я бы предпочёл не ЕлеМент :) (Итить твою, погоняло-то какое!), а поднять свой сервер джаббера, что уже есть дело вкуса.
 
‼️‼️‼️ @KRAKEN_hot2_botновый наш ТГ-бот KRAKEN (для тех, кто потерял прошлый) ‼️‼️‼️

Прошлый снесли :(

tg.jpg
kr.jpg
 
Последнее редактирование:
Привет всем
 
Такой бы гайд по телеге)чтоб лежал в контейнере, когда надо по коду в приложение вошел(новая сессия) и вышел не потеряв аккаунт
 

Похожие темы

В условиях усиливающейся интернет-цензуры важно иметь надёжный инструмент для обхода блокировок и защиты данных. Один из лучших способов — установка Shadowsocks или VLESS на VPS/VDS, что позволит создать личный VPN-сервер, устойчивый к современным ограничениям. Мы применим «китайский метод»...
Ответы
31
Просмотры
Набор self-host анонимуса Добро пожаловать в мою новую статью. В ней я поведаю вам, о том какие существуют self-host приложения для замены популярных сайтов. Вместо того, чтобы доверять ваши данные провайдеру какой-то услуги, вы можете хостить аналоги этих сервисов самостоятельно. Мы...
Ответы
8
Просмотры
В данной статье рассмотрим создание собственного Matrix сервера для общения, про протокол Matrix можете прочитать отдельно, в данной статье его плюсы и минусы рассматриваться не будут. Для создания собственного сервера нам понадобится выделенный сервер и домен, связанный с вашим сервером. В...
Ответы
14
Просмотры
Давайте ознакомимся с основными анонимными или претендующими на анонимность сетями. Каждая из них по своему интересна. С каждой я знаком лично. На самом деле большинство дел проще всего делать в тор. Так как она стала своего рода мейнстримом. Однако если вам хочется большего погружения...
Ответы
15
Просмотры
  • Закрыта
Здравствуйте, Мои Дорогие Друзья!:) Милый бард Гудо решил поизучать сайтостроение и то, как происходит реализация сайта в Нашей Любимой Сети TOR. И вот, после того, как я потратил на изучение этого действа две недели, отдавая себя всего, я готов представить вам мой гайд о том, как создать свой...
Ответы
43
Просмотры
11К
Назад
Сверху Снизу