DeSoft.ru
236 subscribers
116 photos
10 videos
1 file
213 links
Авторский канал: ИТ, разработка, безопасность, администрирование.

Сайт: desoft.ru
Автор: @y_demin
Download Telegram
🔥 Компания Apple на регулярной основе выпускает патчи безопасности, не обошлось без обнов и в январском выпуске. Особый интерес как у исследователей, так и рядовых пользователей вызвала исправленная уязвимость CVE-2025-24085 в компоненте CoreMedia, позволяющая вредоносным приложениям повысить привилегии в системе iOS в версиях до 17.2, а значит, потенциально, получить доступ к данным.

⚡️ Случаев эксплуатации этой уязвимости до сих пор раскрыто не было, однако, подробности опубликованы, а значит существует риск. Поскольку исправления уже выпущены, всем пользователям iPhone и iPad настоятельно рекомендуется обновиться до версии 18.3.

📚 Источники: [1], [2], [3]

#security #leaks
👍4😱1
Про бэкапы в autobase (см. полную версию на сайте).

Текущая версия autobase в ui консоли не поддерживает управление резервным копированием, поэтому настроим эту опцию через предлагаемые конфигурации.

📦 Подготавливаем s3 хранилище

🔹 Ставим MinIO s3 локально или арендуем хранилище с большим диском у облачных провайдеров.
Для поддержки https протокола подключим самоподписанный сертификат.
docker run \
-p 9000:9000 \
-p 9001:9001 \
--name minio \
-v ~/autobase/minio/data:/data \
-v ~/autobase/minio/certs:/certs \
-e "MINIO_ROOT_USER=demouser" \
-e "MINIO_ROOT_PASSWORD=demouser" \
-e "MINIO_SCHEME=https" \
-e "SSL_CERT_FILE=/certs/public.crt" \
quay.io/minio/minio server /data --console-address ":9001" /data --certs-dir /certs


🔹 Идем в веб панель на порт 9001
- Создаем bucket autobase для хранения резервных копий.
- Создаем Access Key.
- В настройках прописываем регион хранилища.

⚒️ Настраиваем и пересобираем образ automation

🔹 Клонируем ветку актуального релиза autobase
git clone --branch 2.1.0 --single-branch https://github.com/vitabaks/autobase.git


🔹 Настраиваем pgbackrest под s3
Для включения бэкапов нужно внести корректировки в конфигурацию вспомогательного образа automation, который ранее подтягивался из dockerhub уже в готовом виде.
vi ./autobase/automation/vars/main.yml


‼️ pgbackrest требует работу через https. Регион хранилища также должен быть задан.

✔️ Находим секцию pgbackrest и заменяем значения на заготовленную конфигурацию для бэкапов в MinIO S3 из документации. Не забываем внести свои значения параметров доступа к развернутому ранее MinIO.

✔️ Устанавливаем расписание бэкапов в секции pgbackrest_cron_jobs (по умолчанию еженедельные полные бэкапы).

✔️ Указываем pgbackrest как метод создания реплик patroni.

✔️ Примеры конфигураций

🔹 Собираем локальный образ automation
cd ./autobase
docker build -t automation-pgrest:latest -f ./automation/Dockerfile .


🚀 Запускаем консоль autobase

🔹 Указываем в переменной окружения консоли PG_CONSOLE_DOCKER_IMAGE собранный выше локальный образ automation и запускаем.
docker run -d --name autobase-pgrest-console \
  --publish 80:80 \
  --publish 8080:8080 \
  --env PG_CONSOLE_API_URL=http://192.168.1.135:8080/api/v1 \
  --env PG_CONSOLE_AUTHORIZATION_TOKEN=secret_token \
  --env PG_CONSOLE_DOCKER_IMAGE=automation-pgrest:latest \
  --volume console_postgres:/var/lib/postgresql \
  --volume /var/run/docker.sock:/var/run/docker.sock \
  --volume /tmp/ansible:/tmp/ansible \
  --restart=unless-stopped \
  autobase/console:latest


🔹 Создаем и разворачиваем кластер согласно инструкции из первой части.

pgbackrest устанавливается как на основной хост кластера, так и на реплики. Для проверки и отладки работы программы можно отслеживать логи по пути, указанному в конфигурационном файле main.yml собственного образа automation, { option: "log-path", value: "/var/log/pgbackrest" }.

📌 Согласно информации от разработчика, ведется работа над Expert mode, который раскроет дополнительные опции в веб интерфейсе autobase, включая управление резервным копированием. Ожидаем появления нового режима в будущих релизах.

#db #tools #selfhosted
👍5
🥷 Тот, кто решил не разворачивать китайские модели локально для тестирования, как я предлагал ранее, а подключиться к API DeepSeek, используя разработанные клиентские решения, имел все шансы нарваться на любезно подготовленные злоумышленниками вредоносы в репозитории PyPI.

🔎 Исследователи из Positive Technologies обнаружили замаскированные под Python-клиенты инфостилеры в пакетах deepseek и deepseekai. Сбор и отправка информации на удаленный сервер (пользователь, машина, переменные окружения) происходят после запуска консольных команд установленных пакетов.

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

#security #leaks
👍3🔥1
🔧 Очередная подборка. Полезные инструменты для монтирования удаленных каталогов, дисков, хранилищ.

⭐️ В контексте организации доступа к данным по http протоколу была представлена утилита RClone, однако основное ее назначение как раз в работе с удаленными хранилищами. Поддержка широкого набора протоколов и облачных решений делает ее приоритетным инструментом для гибкой и быстрой настройки.

🔸 SSHFS - простая и удобная программа для подключения удаленных файловых систем по SFTP.

🔸 HTTPDirFS - монтирование http каталога, как локальной директории.

💥 SFTPGo - активно развивающийся инструмент для монтирования удаленных хранилищ. Поддержка протоколов и облачных провайдеров постепенно расширяется, бонусом идет наличие WebUI как для администрирования, так и для клиентского использования.

🔥 BTFS - монтирование .torrent файлов или magnet ссылок в качестве каталогов, доступных только на чтение. Содержимое загружается по требованию, а поскольку реализовано на базе виртуальной файловой системы, то и стандартные файловые операции также работают корректно.

#tools #mount #полезное
🔥3👍2
🔥 Добавил в управление каналом первую версию бота MiniDe на aiogram - анализатор ссылок в сообщениях через VirusTotal.

Логика несложная, как и сам скрипт:
✔️ Перехват сообщений
✔️ Поиск скрытых за текстом и прямых ссылок
✔️ Отправка найденного в VirusTotal через API
✔️ Обработка и представление результата в ответном сообщении.

🔎 Как попробовать самостоятельно

🔹 Заводим аккаунт на VirusTotal. По умолчанию выдается доступ к API с ограничением на проверку 4 ссылок в минуту и 500 в день - для тестовых запусков и ненагруженного ссылками потока сообщений более чем достаточно. Забираем API_KEY.

🔹 Создаем нового бота в @BotFather. Сохраняем token.

🔹 Добавляем бота в администраторы чата, сообщения из которого хотим получать для анализа, и куда будут поступать ответы с результатами. В моем случае это чат с комментариями к этому каналу. Запоминаем имя чата.

🔹 Забираем исходники бота minide из репозитория на gitverse.
Для работы потребуется docker. Можно запустить, к примеру, локально или на VPS сервере.

🔹 Прописываем в docker-compose.yml контейнера minide полученные ранее BOT_TOKEN, VIRUSTOTAL_API_KEY и CHANNEL_NAME.

🔹 Запускаем бота
docker compose up -d


🔹 Делаем отправку тестовых сообщений с ссылками или без, смотрим на результат.

💡 Что дальше

▫️ Добавить поддержку большего числа внешних сервисов проверки.
▫️ Проверять не только ссылки, но и файлы.
▫️ Сохранять историю.

#проекты
🔥4👏1
🔎 Для расширения перечня сервисов, задействованных в проверке файлов и ссылок с помощью представленного бота, собрал ряд инструментов, предоставляющих API для взаимодействия.

🔹 Платформа от Лаборатории Касперского

🔹 Уже примененный к решению задачи VirusTotal

🔹 Triage

🔹 Hybrid Analysis

🔹 Metadefender

🔹 Intezer

🔹 FileScan

🔹 URLQuery

🔹 urlscan

В большинстве случаев требуется завести аккаунт и получить API KEY для отправки запросов.

Каждый ресурс предоставляет разное количество бесплатных запросов, а также использует разный набор баз и движков для анализа, именно поэтому одного лишь источника будет недостаточно для получения более-менее достоверного результата.

#security #scan
👍3
📝 Несколько доработок для бота

Добавил простую проверку на сокращенные ссылки путем HEAD запросов и обработки статусов для забора локации редиректа.

Поправил некоторые ошибки обработки невалидных сообщений, разнес бота и сервисы проверки.

Если сервис сокращенных ссылок закрыт за CloudFlare - отправка запросов именно из docker контейнера не срабатывает. Если просто запустить на хосте - все отлично проходит. Попробовал обогатить запросы заголовками для обмана системы с помощью aiocfscrape, однако ошибка сохранилась, ловлю 403, также попробовал поиграться с сетью docker, вынести на host например, но и это не спасло. Надо отследить цепочку запросов дабы объяснить проблему.

🌐 Исходники

#проекты #changelog
👍4
Рассматривал ранее вариант построения виртуальной сети с помощью zerotier. На днях попробовал еще одно решение на эту тему - Nebula - инструмент для построения защищенных оверлейных сетей. Узлы сети устанавливают прямое vpn соединение между собой (p2p). Отличительная особенность системы - ее простота - все поставляется в комплекте, запускается посредством бинарника с раскиданными по хостам конфигурационными файлам и сертификатами, которыми подтверждается принадлежность к сети.

🗝 Ключ и сертификат сети

▪️ Забираем актуальную версию Nebula из релизов под любую систему.
▪️ Воспользуемся nebula-cert из архива для генерации ключа и сертификата для последующего выпуска сертификатов хостов сети.
./nebula-cert ca -name "DeSoft.ru"


🔖 Сертификаты хостов

▪️ Создаем и подписываем сертификаты для хостов системы
# контроллер сети и его внутрисетевой адрес
./nebula-cert sign -name "lighthouse-1" -ip "10.10.101.1/24"
# хост №1
./nebula-cert sign -name "vps-1" -ip "10.10.101.11/24" -groups "vps"
# хост №2
./nebula-cert sign -name "vps-2" -ip "10.10.101.12/24" -groups "vps"


⚙️ Конфигурационные файлы хостов

▪️ Берем конфигурационный файл из репозитория
curl -o config.yml https://raw.githubusercontent.com/slackhq/nebula/master/examples/config.yml


▪️ Готовим конфиг для контроллера сети, он же lighthouse
cp config.yml config-lighthouse.yaml


Раздел static_host_map оставляем пустым, в разделе lighthouse выставляем параметр am_lighthouse в true, а hosts также оставляем пустым.
static_host_map:
lighthouse:
am_lighthouse: true
hosts:


▪️ Готовим конфиг для хостов
cp config.yml config.yaml


В разделе static_host_map должен быть прописан внутренний и внешний адреса lighthouse сервера. По умолчанию используется udp порт 4242, не забываем оставить его открытым.
static_host_map:
"10.10.101.1": ["<vps ip>:4242"]


В разделе lighthouse в hosts прописываем внутренний адрес сервера lighthouse.
lighthouse:
am_lighthouse: false
interval: 60
hosts:
- "10.10.101.1"


❗️ Отдельно упомяну про раздел firewall, параметры которого позволяют разграничить трафик между хостами в сети. По умолчанию весь исходящий трафик открыт, а вот входящий заблокирован, кроме icmp пакетов. Также в конфиге представлен пример разграничения по группам, что добавляет гибкости в настройках взаимодействия между устройствами в сети.
firewall:
outbound:
- port: any
proto: any
host: any
inbound:
- port: any
proto: icmp
host: any
- port: 443
proto: tcp
groups:
- laptop
- home


🚀 Запускаем lighthouse

▪️ Скачиваем бинарник под систему, на которой будет располагаться lighthouse.
▪️ Переносим на сервер подготовленные ранее ca.cert, lighthouse-1.crt, lighthouse-1.key, config-lighthouse.yaml.
▪️ Поскольку в конфигурационных файлах указаны пути до рабочего каталога и файлов в нем (раздел pki), перенесем всю рабочую конфигурацию в этот каталог, соблюдая типовое наименование.
mkdir /etc/nebula
mv ca.crt /etc/nebula/ca.crt
mv lighthouse-1.crt /etc/nebula/host.crt
mv lighthouse-1.key /etc/nebula/host.key
mv config-lighthouse.yaml /etc/nebula/config.yaml

▪️ Стартуем
./nebula -config /etc/nebula/config.yaml


🚀 Запускаем host

▪️ Переносим на сервер подготовленные ранее ca.cert, vps-1.crt, vps-1.key, config.yaml.
▪️ Можно также создать каталог и перенести туда рабочую конфигурацию или внести корректировки в pki раздел config.yaml, указав собственные пути. Для единообразия оставим предложенную схему.
mkdir /etc/nebula
mv ca.crt /etc/nebula/ca.crt
mv vps-1.crt /etc/nebula/host.crt
mv vps-1.key /etc/nebula/host.key
mv config.yaml /etc/nebula/config.yaml

▪️ Стартуем
./nebula -config /etc/nebula/config.yaml

По аналогии настраиваем и запускаем nebula на втором хосте (vps-2).

🔎 Проверка

Осталось проверить поднятую сеть, но получится лишь пропинговать устройства как с хостов так и с контроллера. Для разрешения других протоколов смотри настройки firewall в конфигурационном файле.

#vpn #nebula
👍4🔥3
📝 Changelog анализатора ссылок

Добавил поддержку нового сервиса проверки - Kaspersky Threat Intelligence Portal.

Пришлось распиливать ссылку на составные части с помощью urllib.parse.urlsplit для определения наличия path, поскольку в запросе нужно отправлять домен на один endpoint, а если это ссылка на ресурс, то на другой. Заодно добавил метод по проверка ip адреса (да, у него тоже отдельная ручка), нужно будет валидацию ссылки на ip учесть в следующей версии.

Учел обработку ошибок запросов, прикрутил корректную обработку exception к каждому сервису.

Докинул параметров в переменные окружения.

🌐 Исходники

#проекты #changelog
🔥3👍1
🔥 Наткнулся на интересный сборник ресурсов по 10 направлениям в AI. Как его характеризуют авторы - required reads для AI инженеров. Подборка и правда получилась "без воды", взял оттуда несколько занятных источников для изучения. Подойдет как практикующим специалистам, так и тем, кто только знакомится с областью.

📚 Разделы

1️⃣ Передовые языковые модели
2️⃣ Бенчмарки, тесты
3️⃣ Промпт
4️⃣ Генерация с расширенным поиском (RAG)
5️⃣ Агенты
6️⃣ Кодогенерация
7️⃣ Обработка и анализ изображений
8️⃣ Голос / речь
9️⃣ Генерация изображений / видео
🔟 Настройка / "тюннинг" моделей

🌐 Источник

#ai #полезное
🔥3
⚡️ Yandex опубликовали свою новую модель YandexGPT 5 Lite на 8B параметров в открытый доступ. Это pre-trained версия, т.е. обученная на универсальном наборе данных, и пригодная для дальнейшего дообучения под узкоспециализированные задачи.

📌 Некоторые особенности

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

🤗 Модель на HuggingFace.
🔎 Чат с Алисой, где уже доступна YandexGPT 5 Pro и скоро обещают прицепить Lite.

#ai #полезное
👍7
Помимо специализированных систем управления под конкретные базы данных, например, pgAdmin или MongoDB Compass, существует множество альтернатив, в том числе с открытым исходным кодом и возможностью подключения различных источников. Собрал некоторые из них в подборку вместе с сопутствующими инструментами.

📌 Универсальные админки

▫️ DBeaver
▫️ Bytebase
▫️ DBVisualizer
▫️ Adminer

📌 Low-code/no-code решения

▪️ NocoDB
▪️ Baserow
▪️ Mathesar
▪️ Appsmith

📌 Мониторинг, оптимизация

🔥 WAL-Listener - отслеживание изменений данных в базе PostgreSQL с отправкой событий в брокеры сообщений.
🔥 PgAssistant - мониторинг, трассировка, анализ, оптимизация и генерация запросов с возможностью подключения LLM.

📌 Визуальные редакторы схем

▫️ drawDB
▫️ ChartDB

#db #полезное
👍6
На неделе пропустил несколько запланированных публикаций. Две темы завершились безуспешно прямо во время проработки.

Откопал старенький роутер Asus RT-N12 C1. Поскольку скорости выдает небольшие по современным меркам, то как основной вряд ли захочется использовать, поэтому думал над иными вариантами его применения, чтобы не валялся без дела. Прошерстил 4PDA форум, изучал разные прошивки, как родные так и кастомные, и наткнулся на DD-WRT со сборками vpn, big и mega, как раз подходящие для рассматриваемого устройства. Сборки имеют на борту поддержку wireguard, что в свою очередь позволит организовать постоянное соединение с рабочей vpn и выделить для нее отдельный источник связи как с проводным так и беспроводным подключением.

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

Еще одной темой экспериментов было построение системы управления знаниями на базе RAG. Нашел занятный инструмент simba, реализующий задуманное, да еще и с веб интерфейсом и возможностью настройки на лету, судя по описанию и презентации.

Начал разбор и параллельно документировал процесс установки и настройки. Сразу бросилось в глаза большое число непредусмотренных зависимостей, которые нужно было "доставить". Отдельное раздражение вызвала необходимость вносить корректировки в пути сборочных файлов, подкручивание параметров для поддержки более свежей версии docker compose и прочее и прочее.

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

Под задачу с роутером нашел более свежего представителя, а значит тема будет доведена до своего логического завершения.

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

#fail
👍4😱1
📚 В процессе освоения новых языков, фреймворков, инструментов через решение далеких от реальности задач часто можно столкнуться с ситуацией недопонимания ради чего выполняется то или иное задание, какова итоговая цель учебных теоретических или практических материалов, что в свою очередь снижает эффективность переваривания приобретенной информации, а также напрочь убивает мотивацию к продолжению развития в выбранном направлении.

На помощь в данном случае приходят несколько отличных репозиториев - сборников для обучения через практику на очень даже интересных полноценных проектах, и это не змейка или калькулятор или список ToDo. К примеру, написать свой BitTorrent клиент, клон SQLite, Git, поисковый движок или вовсе операционную систему. Подход позволит не только погрузиться в разработку полезного проекта на интересующем языке, но и изучить принцип работы того или иного сервиса изнутри в ходе реализации.

🔥 Project Based Learning

🔥 Build your own x

#полезное
👍3
Поборол наконец прошивку старого роутера Asus RT-N12 C1, о проблемах с которым говорил ранее. По рекомендации поставил open-wrt. Поддержка устройства закончилась еще в 2022, поэтому версия довольно старая - 19.07.10. Судя по описанию, слабые характеристики устройства, а именно 4/32 flash/ram, не позволяют использовать более современные версии. Текущая поддерживаемая - 22.03.7, однако разработчики не рекомендуют ее конкретно на этой модификации роутера.

Ставил open-wrt впервые, поэтому сразу столкнулся с несколькими неудобными ситуациями.
1️⃣ Для управления в LAN подключал ноутбук, а на WAN основной домашний роутер, от которого был получен адрес автоматически через DHCP, только вот адрес этот был в той же самой сети, что и сеть по умолчанию на установленной прошивке. Меняем внутреннюю сеть, чтобы разрешить конфликт.
▪️ Подключаемся к старому роутеру по ssh
▪️ Тут сразу загвоздка. Современная версия ssh оболочки на linux не включает по умолчанию поддержку устаревшего алгоритма RSA/SHA1 (ssh-rsa) - ее нужно активировать отдельно.
▪️ Прописываем дополнительный параметр подключения и попадаем на устройство
ssh -oHostKeyAlgorithms=+ssh-rsa  root@192.168.1.1

▪️ Меняем адрес lan и перезагружаем сетевой интерфейс
uci set network.lan.ipaddr="192.168.200.1"
uci commit network
/etc/init.d/network restart

▪️ Переподключаем кабель к ноутбуку. Новая сеть активирована, доступ через основной роутер наружу появился.

⁉️ Через веб интерфейс luci такое проделать можно, но проблематично. Устройство уходит в откат настроек автоматически, если не успеть вовремя переключиться на новую сеть на рабочей машине.

2️⃣ Цель сего мероприятия была организовать на выделенном устройстве постоянное подключение к рабочей vpn, поэтому доставил соответствующий пакет
opkg update && opkg install openvpn-openssl

Для настройки vpn через веб интерфейс luci нужен еще один пакет
opkg install luci-app-openvpn

После перезагрузки в панели управления появился раздел VPN, где можно подгрузить свой конфиг, создать зону для OpenVPN и настроить перенаправление трафика.

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

#vpn #openvpn #openwrt
👍2👏1
🌐 Nmap - одна из самых популярных утилит с открытым исходным кодом для сетевого обнаружения, сканирования портов, определения ОС, сбора сведений об активных службах на хостах. Инструмент нашел свое применение в разных областях сетевого анализа как подручное средство администратора так и мощное оружие пентестера.

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

📝 Для упрощения работы с Nmap и удобного представления результатов существует ряд полезных проектов.

🔹 Zenmap - графическая оболочка для Nmap от разработчиков системы.

🔹 DrawNmap - простой визуализатор результатов сканирования.

🔥 Nmap-did-what — проект с подготовленным python скриптом для парсинга результатов Nmap с сохранением их в SQLite базу данных и docker контейнером Grafana с предварительно настроенной панелью мониторинга для визуализации данных от Nmap, источником для которого и является собранная база.

🔹 Nmap Viewer - еще один вариант визуализатора результатов сканирования Nmap.

🔹 nmap-analyze - автоматизация процесса сравнения результатов сканирования с заданной спецификацией на хост.

🔹 Nmap-Analysis - сравнение нескольких результатов сканирования, автоматическая оценка и интерпретация результатов с помощью AI.

#security #tools #nmap #полезное
👏2👍1
В комментариях к заметке про построение защищенной виртуальной сети подсказали одно из opensource решений для размещения контроллера ZeroTier на собственном сервере с полноценной админкой - ZTNET. Проект развивается уже несколько лет и успел обзавестись расширенной функциональностью по сравнению с базовыми функциями контроллера. Возникновение подобных наработок было лишь вопросом времени, поскольку разработчики ZeroTier не выкладывают в открытый доступ свою панель администратора, но предоставляют исходный код самого контроллера.

🔥 Особенности

Помимо основного назначения - создание и управление виртуальными сетями, система предоставляет целый ряд дополнительных возможностей:

Наличие docker и standalone (под Debian / Ubuntu и FreeBSD) вариантов установки.
Гибкая настройка многопользовательского доступа (роли, группы, организации).
Двухфакторная аутентификация из коробки.
Поддержка OAuth2.
Наличие REST API для интеграции.
Отправка уведомлений по списку событий через Webhook.
Подключение к SMTP серверу для почтовых уведомлений.
Создание организаций со встроенным пользовательским чатом.
BETA версия (на момент публикации v0.7.3).

⚒️ Установка с помощью docker

🔹 Забираем compose файл из репозитория
wget -O docker-compose.yml https://raw.githubusercontent.com/sinamics/ztnet/main/docker-compose.yml


✖️ Запускаю на виртуалке ради теста, поэтому домен и https не прикручиваю. Остается лишь сменить адрес в переменной окружения NEXTAUTH_URL сервиса ztnet на ip виртуалки. В документации подсказывают как это сделать с помощью sed.
sed -i "s|http://localhost:3000|http://$(hostname -I | cut -d' ' -f1):3000|" docker-compose.yml


🔹 Стартуем
docker compose up -d

Через 3000 порт доступна веб панель системы.

❗️ Первый зарегистрированный пользователь получает права администратора.

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

🔖 Standalone варианты установки представлены в документации - Debian / Ubuntu и FreeBSD.

🌐 Создание собственной планеты

Также отмеченным в комментариях был вопрос касательно публичного сервера-координатора или "планеты" от разработчиков ZeroTier, который используется zt контроллером по умолчанию. ZTNET позволяет создать собственную планету и перенаправить задачи организации сетевого взаимодействия на нее.

▪️ Открываем раздел Контроллер ZT - СОЗДАТЬ PLANET. Endpoints заполнится адресом хоста, на котором запущена система. Также можно указать адреса дополнительных резервных серверов, на которых развернут zt контроллер. Важный момент - endpoints должны быть глобальными, т.е. доступными всем клиентам сети.

▪️ Чтобы контроллер подхватил изменения, необходимо перезапустить сервис zerotier, например, так docker restart zerotier.

▪️ Чтобы клиенты смогли использовать созданную планету, скачиваем архив с параметрами - СКАЧАТЬ КОНФИГ, внутри которого найдем файл planet, который и нужно передать всем клиентам сети для применения.

▪️ Файл planet подменяется на стороне клиентского приложения ZeroTier. Инструкция по замене под разные системы здесь.

#vpn #zerotier
🔥3👍2
📦 Подборка простых, но в тоже время функциональных встраиваемых СУБД, для которых не требуется поднимать отдельный сервер. Могут размещаться в одном файле или вовсе в памяти. Доступ через специальное API, отчего получаем высокую скорость и возможности гибкой интеграции.

⚡️ Реляционные

💥 SQLite - самая популярная однофайловая СУБД.

🔥 DuckDB - PostgreSQL совместимая высоко-производительная СУБД.

📝 Документо-ориентированные

▪️ LiteDB

▪️ TinyDB

▪️ LowDB

📚 Key-Value хранилища

▫️ LevelDB - key-value хранилище с хранением на диске.

▫️ SlateDB - key-value хранилище память-s3, минуя диск.

▫️ RocksDB - ответвление от LevelDB с уклоном в производительность / быстрые хранилища.

#db #субд #tools #полезное
👍6
🔗 На фоне обострения ситуации вокруг активной борьбы разработчиков самых передовых браузеров с блокировщиками рекламы и внедрения все новых и новых методов слежки за пользователями, доверие к популярным производителям оказалось подорвано. Специалисты "Лаборатории Касперского" разобрали эту тему в своем блоге.

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

💡 Ниже приведу как предложенные варианты из статьи, так и несколько, на мой взгляд, интересных проектов, на которые стоит обратить внимание, если вопрос смены одного из важнейших инструментов пользователя стал для вас актуален.

Chrome

Arc
Brave
ungoogled-chromium


Mozilla

🔥 Zen Browser
Waterfox
LibreWolf
FireDragon
PaleMoon

#security #browser #полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍2👏1
Часто стал замечать, что на практике, вместо того, чтобы воспользоваться обширными возможностями протокола SSH, ищу какие-то узкоспециализированные программы, утилиты, сервисы для реализации того или иного способа подключения, передачи данных, монтирования, прокси, удаленного выполнения команд и прочего.

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

📚 Теоретические и практические гайды по SSH-туннелям

🔸 Развернутая статья про ssh-туннели от Академии Selectel
🔸 Давняя, но не потерявшая своей актуальности, статья от коллег с канала "Записки IT специалиста"
🔸 "SSH туннели на практике"
🔸 "Наглядное руководство по SSH-туннелям"
🔸 Красивый гайд с лабораториями для отработки материала
🔸 Примеры использования ssh-туннелей для решения конкретных задач
🔸 Объемный материал о продвинутых функциях ssh

⚒️ Инструменты автоматизации при работе с SSH

🔹 autossh - утилита для создания и автоматического перезапуска ssh-туннелей в случае разрыва соединения.
▫️ Инструкция 1
▫️ Инструкция 2

🔹 SSH Commander - инструмент для управления ssh-подключениями и параллельного выполнения команд сразу на нескольких серверах.

🔹 boring - менеджер ssh-туннелей для командной строки с поддержкой автоматического переподключения и удобной конфигурацией.

#ssh #полезное
👍3🔥2👏2🤝1
💥 Несколько интересных новостей из мира ИИ

💡 Docker решили не отставать от тренда и выпустили плагин для Docker Desktop для запуска ИИ моделей локально - Docker Model Runner (Quickstart).

Некоторые особенности:
▪️ Поддержка GPU
▪️ Управление из командной строки
▪️ API для интеграции
▪️ Свое хранилище моделей

⚡️ Состоялся релиз нового поколения открытых моделей - Llama 4 (Подробное описание на Хабре).

Ключевые особенности:
▫️ Мультимодальность - нативная поддержка работы с текстовыми и визуальными данными.
▫️ Новая архитектура обработки токенов, которая позволяет задействовать лишь часть параметров модели, что в свою очередь значительно снижает вычислительные затраты при сохранении качества.
▫️ Поддержка контекстного окна в 10 млн токенов.

#ai #news
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2