✅ Охвачен список всех основных яп.
✅ Каждый инструмент сопровождается информацией о лицензии и рекомендацией к использованию.
✅ В дополнение к статическому, существует и подборка по динамическому анализу.
✅ На основе репозиториев собран сайт с расширенной информацией по каждому инструменту, включая оценку и комментарии от пользователей.
#tools #полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - analysis-tools-dev/static-analysis: ⚙️ A curated list of static analysis (SAST) tools and linters for all programming…
⚙️ A curated list of static analysis (SAST) tools and linters for all programming languages, config files, build tools, and more. The focus is on tools which improve code quality. - analysis-tools-...
🔥3
🥷🏻 Очередную виртуалку атакуют переборщики паролей десятками и сотнями итераций. Достаточно оставить публичную машину всего на ночь, и логи пополнятся большим списком попыток авторизации под разными стандартными и не только именами пользователей на разные порты.
Убедиться в этом можно, например, полистав логи
🔨 Сразу настраиваю на любой
📌 Идем в файл
📌 Настраиваем
📌 Настраиваем
Указываем количество попыток, после которых наступает бан, промежуток времени, в пределах которого считаются попытки, и длительность бана.
#linux #vps #ufw #fail2ban
Убедиться в этом можно, например, полистав логи
less /var/log/auth.log
🔨 Сразу настраиваю на любой
Linux VPS минимальный набор ограничений, чтобы отправить таких в бан или просто проигнорировать.📌 Идем в файл
/etc/ssh/sshd_config. Меняем порт SSH, отключаем вход по паролю (ключи же есть!). Можно и root вход заблокировать.Port 2202
PasswordAuthentication no
PermitEmptyPasswords no
PermitRootLogin no
📌 Настраиваем
firewall с помощью ufw# установка
apt update
apt install ufw -y
# базовые правила
ufw default deny incoming
ufw default allow outgoing
# открываем только нужные порты
ufw allow 2202/tcp # новый ssh порт
ufw allow http # 80
ufw allow https # 443
# отключаем ipv6
vi /etc/default/ufw
# IPV6=no
# перезапускаем
ufw disable && ufw enable
# проверяем
ufw status
📌 Настраиваем
fail2ban для автоматической блокировки ip адресов после множественных неудачных попыток авторизации. Для этого создадим jail и пропишем параметры.# устанавливаем утилиту
apt install python3-systemd fail2ban -y
# добавляем конфигурацию для мониторинга логов авторизации
vi /etc/fail2ban/jail.local
Указываем количество попыток, после которых наступает бан, промежуток времени, в пределах которого считаются попытки, и длительность бана.
[DEFAULT]
banaction = ufw
[sshd]
backend=systemd
enabled = true
maxretry = 4
findtime = 1h
bantime = 1d
ignoreip = 127.0.0.1
logpath = /var/log/auth.log
# перезапускаем сервис
systemctl restart fail2ban
# проверяем результаты работы
fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 887
| `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
|- Currently banned: 0
|- Total banned: 131
`- Banned IP list:
#linux #vps #ufw #fail2ban
👍8🔥1
На основе проведенных экспериментов собрал
📌 В общем виде цепочка действий выглядит следующим образом
▪️ Отправляем в систему ссылку на
▪️ Получаем транскрипцию видео.
▪️ Отправляем транскрипцию в
▪️ Полученный результат преобразуем в текстовый файл.
▪️ Отправляем файл в
📝 Теперь подробнее
1️⃣ Для старта
2️⃣ Для транскрипции воспользовался бесплатным доступом к сервису supadata (100 запросов). Регистрируем аккаунт - получаем
Они же разработали и опубликовали собственную ноду для
3️⃣ Полученный текст транскрипции направляется в
4️⃣ Результат обработки преобразовывается в обычный текстовый файл стандартной нодой
5️⃣ Далее снова
✔️ Создаем бота и получаем ключ
▫️ Идем в @BotFather.
▫️ Создаем бота, получаем ключ.
▫️ Используем ключ в Credentials
✔️ Находим свой Telegram идентификатор
Чат, куда нужно отправить документ, должен быть указан через ID, а значит надо получить собственный идентификатор, если мы хотим направить сообщение в личный чат между собой и ботом.
▫️ Идем в @userinfobot.
▫️
▫️ Вставляем ID в настройках ноды в поле
🚀 Таким образом, получаем несложную цепочку манипуляций для получения транскрипции видео и преобразования её в статью.
🌐 Весь
#ai #n8n #automation #tools
workflow в n8n для реализации задуманного.📌 В общем виде цепочка действий выглядит следующим образом
▪️ Отправляем в систему ссылку на
YouTube видео.▪️ Получаем транскрипцию видео.
▪️ Отправляем транскрипцию в
ChatGPT для преобразования в статью.▪️ Полученный результат преобразуем в текстовый файл.
▪️ Отправляем файл в
Telegram чат.📝 Теперь подробнее
1️⃣ Для старта
workflow в n8n требуется некий триггер - в текущей ситуации это сообщение с ссылкой на видео для последующей обработки. Удобно связать это дело с Telegram ботом, т.к. все необходимые ноды в библиотеке n8n уже существуют, но есть нюанс - перехватить сообщение из чата с ботом, ровно как и из какого-либо канала, можно только через предоставленный webhook на открытом адресе через https. Если n8n хостится локально, как у меня, то Telegram API заблокирует подобные попытки. Поэтому я обошелся внутренним чатом n8n для имитации отправленной ссылки извне.2️⃣ Для транскрипции воспользовался бесплатным доступом к сервису supadata (100 запросов). Регистрируем аккаунт - получаем
API KEY.Они же разработали и опубликовали собственную ноду для
n8n для взаимодействия с supadata, которую можно установить через веб интерфейс платформы. Репа ноды и инструкция по установке на github.3️⃣ Полученный текст транскрипции направляется в
OpenAI через ноду Message model. Модель CHATGPT-4O-LATEST, промпт - итоговый из предыдущей заметки. Для доступа нужен OpenAI API KEY.4️⃣ Результат обработки преобразовывается в обычный текстовый файл стандартной нодой
Convert to File.5️⃣ Далее снова
Telegram нода, но уже для отправки сообщения в чат с ботом - sendDocument. Сформированный файл отправляется в виде документа в указанный в параметрах чат.✔️ Создаем бота и получаем ключ
▫️ Идем в @BotFather.
▫️ Создаем бота, получаем ключ.
▫️ Используем ключ в Credentials
Telegram ноды.✔️ Находим свой Telegram идентификатор
Чат, куда нужно отправить документ, должен быть указан через ID, а значит надо получить собственный идентификатор, если мы хотим направить сообщение в личный чат между собой и ботом.
▫️ Идем в @userinfobot.
▫️
/start и сразу получаем свой ID.▫️ Вставляем ID в настройках ноды в поле
Chat ID.🚀 Таким образом, получаем несложную цепочку манипуляций для получения транскрипции видео и преобразования её в статью.
🌐 Весь
workflow выложил в репозиторий на gitverse в виде обычного json - можно легко импортировать (Import from file), прописать свои Credentials и попробовать самостоятельно. Не забываем, что нода от supadata - внешняя, поэтому ее нужно установить в библиотеку отдельно, чтобы импортированный workflow смог ее подхватить.#ai #n8n #automation #tools
👍5
🏠 Для вновь прибывших и тех, кто пропустил некоторые интересные публикации, собрал
🎈 Реализация бота MiniDe для канала
▪️ Telegram бот для проверки ссылок в сообщениях
🎈 Про PostgreSQL кластер на базе Autobase
▪️ Часть 1
▪️ Часть 2
🎈 Про бэкапы с помощью restic
▪️ Организация файловых бэкапов с удаленным хранилищем с помощью restic
▪️ Проверка, очистка и восстановление данных из бэкапов restic
🎈 Про агрегацию новостных лент
▪️ Собираем единую ленту новостей с сайтов и Telegram-каналов на своем сервере
▪️ Готовим агрегатор новостей с автоматической публикацией в своем Telegram-канале
🎈 Про инструменты организации рабочих VPN
▪️ Установка контроллера ZeroTier на свой сервер с помощью ZTNET
▪️ Построение защищенных виртуальных сетей с помощью Nebula
🎈 Цикл про работу с образами в Docker в трех частях
▪️ Часть 1
▪️ Часть 2
▪️ Часть 3
#топ #desoft
ТОП статей с сайта desoft.ru по количеству просмотров. Статьи частично или полностью дублируются в канал, а на сайте, как правило, только полные версии ввиду формата.🎈 Реализация бота MiniDe для канала
▪️ Telegram бот для проверки ссылок в сообщениях
🎈 Про PostgreSQL кластер на базе Autobase
▪️ Часть 1
▪️ Часть 2
🎈 Про бэкапы с помощью restic
▪️ Организация файловых бэкапов с удаленным хранилищем с помощью restic
▪️ Проверка, очистка и восстановление данных из бэкапов restic
🎈 Про агрегацию новостных лент
▪️ Собираем единую ленту новостей с сайтов и Telegram-каналов на своем сервере
▪️ Готовим агрегатор новостей с автоматической публикацией в своем Telegram-канале
🎈 Про инструменты организации рабочих VPN
▪️ Установка контроллера ZeroTier на свой сервер с помощью ZTNET
▪️ Построение защищенных виртуальных сетей с помощью Nebula
🎈 Цикл про работу с образами в Docker в трех частях
▪️ Часть 1
▪️ Часть 2
▪️ Часть 3
#топ #desoft
👍3
⚠️ Очередная беда настигла мою фоновую виртуалку в VirtualBox, которая крутится уже как родная в виндовой системе. Виртуальный диск приказал долго жить - толи
😕 Последний снимок делался 2 месяца назад - не годится, базы там давно устаревшие, терять данные на ровном месте не хотелось. Но именно на этой машине у меня были настроены ежедневные автоматические бэкапы через
🎉 На этот раз все прошло успешно, однако, повезло, что с хранилищем
‼️ К чему это все? Мало не забывать делать бэкапы автоматом или вручную - нужно проверять сами хранилища, куда вы складываете резервные копии (а их должно быть несколько), а также проводить тестовое восстановление, чтобы подобная ситуация уже не в домашних условиях, а вполне себе боевых, не застала врасплох.
#backup #restic #virtualbox #fail
grub поломался внезапно, толи случились повреждения памяти после очередного отключения электричества - глубоко копать не стал - надо восстанавливать!😕 Последний снимок делался 2 месяца назад - не годится, базы там давно устаревшие, терять данные на ровном месте не хотелось. Но именно на этой машине у меня были настроены ежедневные автоматические бэкапы через
restic, пример использования которого показывал здесь. restic бэкапил только базы и конфигурации, т.е. единственную важную информацию. Тут два варианта - поднимаем новую виртуалку, организуем все приложения заново и восстанавливаемся, либо откатываемся к снапшоту двухмесячной давности и восстанавливаемся. Последний вариант конечно проще и быстрее, чем собственно я и воспользовался.🎉 На этот раз все прошло успешно, однако, повезло, что с хранилищем
restic было все в порядке, а также со снапшотом, который взлетел без каких-либо проблем. И в том и в другом случае я не был уверен прям совсем, потому что ни разу не проверял и не делал восстановление из бэкапов 😱.‼️ К чему это все? Мало не забывать делать бэкапы автоматом или вручную - нужно проверять сами хранилища, куда вы складываете резервные копии (а их должно быть несколько), а также проводить тестовое восстановление, чтобы подобная ситуация уже не в домашних условиях, а вполне себе боевых, не застала врасплох.
#backup #restic #virtualbox #fail
Telegram
DeSoft.ru
На рабочей машине с Windows 10 x64 периодически пользую VirtualBox (v 7.0.18) для тестирования разных систем, инструментов и так далее, а одна из виртуалок и вовсе загружается и живет в фоне постоянно.
⚠️ С недавних пор стал ловить фризы системы - полное…
⚠️ С недавних пор стал ловить фризы системы - полное…
👍5
yaml файл, красивая и наглядная вьюшка.🌐 Узнал про нее от коллеги с канала ServerAdmin.ru. Оставлю ссылки на посты для тех, кто захочет попробовать ([1], [2]).
💡 Эта система подала идею для следующего
мини-проекта, который можно реализовать в рамках канала - контроль доступности сервисов и проверки сертификатов прямо в Telegram-боте.▫️ Пользователь стартует бота
▫️ Добавляет ссылки на интересующие ресурсы
▫️ Их актуальные статусы отображаются в чате
В первом приближении можно оставить ручную проверку, т.е. по запросу, а в дальнейшем развить и до автоматического контроля и обновления. С
n8n тоже завязать такую цепочку несложно, т.к. все необходимые ноды имеются - как по работе с данными, запросами, парсингом, так и интеграцией с Telegram.#monitoring #проекты
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - TwiN/gatus: Automated developer-oriented status page with alerting and incident support
Automated developer-oriented status page with alerting and incident support - TwiN/gatus
👍5🔥2
Forwarded from Технологический Болт Генона
У меня есть серия постов про то как наше железо привязывают всё больше к облакам, подпискам и прочей шляпе
https://t.me/tech_b0lt_Genona/5163
https://t.me/tech_b0lt_Genona/5166
https://t.me/tech_b0lt_Genona/5195
https://t.me/tech_b0lt_Genona/5197
Вот ещё два классных примера
На первом видео показан Mercedes в котором куча платных опций сделали: CarPlay - €360, подсветка - €9, обзор на 360° - €18, Distronic - €15, пакет приложений - €345.
На втором видео сюжет для "Чёрного зеркала" (ну или "Чёрное зеркало" просочилось в реальность). Это китайский общественный туалет с платной туалетной бумагой, чтобы получить её, необходимо посмотреть рекламу. Следующим шагом предлагаю открывать дверь в кабинку только просмотра двух рекламных роликов.
https://t.me/tech_b0lt_Genona/5163
https://t.me/tech_b0lt_Genona/5166
https://t.me/tech_b0lt_Genona/5195
https://t.me/tech_b0lt_Genona/5197
Вот ещё два классных примера
На первом видео показан Mercedes в котором куча платных опций сделали: CarPlay - €360, подсветка - €9, обзор на 360° - €18, Distronic - €15, пакет приложений - €345.
На втором видео сюжет для "Чёрного зеркала" (ну или "Чёрное зеркало" просочилось в реальность). Это китайский общественный туалет с платной туалетной бумагой, чтобы получить её, необходимо посмотреть рекламу. Следующим шагом предлагаю открывать дверь в кабинку только просмотра двух рекламных роликов.
😁4👍2
Технологический Болт Генона
У меня есть серия постов про то как наше железо привязывают всё больше к облакам, подпискам и прочей шляпе https://t.me/tech_b0lt_Genona/5163 https://t.me/tech_b0lt_Genona/5166 https://t.me/tech_b0lt_Genona/5195 https://t.me/tech_b0lt_Genona/5197 Вот ещё…
Анатолий Карпенко собрал коллекцию трендовых ситуаций магического превращения ваших ресурсов в "не ваши" 😁 купил машину, а без подписки коробка в "D" не встанет и зеркало не развернется, зато своя 🤷♂️ И дело касается не только новой модной техники или планшетов на колесах, но и всего "облачного", куда стремительно перебираются сотни и тысячи компаний.
Да, это несомненно удобно, когда в 2 клика развернута целая инфраструктура, обслуживается 24/7 не твоими инженерами и не на твои средства (на твои), но что в итоге? Твоя ли теперь коммерческая тайна или персональные данные сотрудников, защищен ли ты от порчи, изменения, слива, или вовсе уничтожения по щелчку или очередному закону, согласно которому провайдер свернет свою деятельность за день и самоликвидируется...
Не вижу здесь призыва избегать облачные ресурсы, но полагаться на них на 100%, увольняя персонал и радуясь высвобожденным средствам - не есть стратегический подход, как мне кажется.
👍2👏1
Пока экспериментирую с ботом для проверки доступности сервисов и сертификатов, открою новую рубрику "Linux по четвергам" для шпаргалок, твиков, утилит и прочей мелочи, поскольку так или иначе с серверами на базе
На канале уже было несколько шпаргалок и подборок на эту тему. Например, Работа с дисками в Linux или Монтирование устройств с помощью fstab.
🔄 Управление процессами
▪️
▪️
▪️
▪️
▪️
💡 Несколько твиков:
▫️
▫️
▫️
#linuxthursday #linux #шпаргалка
Linux сталкиваться приходится постоянно.На канале уже было несколько шпаргалок и подборок на эту тему. Например, Работа с дисками в Linux или Монтирование устройств с помощью fstab.
🔄 Управление процессами
▪️
htop - Интерактивный монитор процессовhtop -u username
-u: фильтр по пользователюF4: фильтрF6: сортировкаF9: убить процессShift + z: поставить на паузу обновление списка процессов▪️
pgrep/pkill - Поиск и завершение процессов по шаблону имениpgrep -f "python script.py"
pkill -f "my_process"
-f: поиск по полному имени процесса-u: по пользователю-x: точное совпадение▪️
nohup - Запуск команд в фоновом режимеnohup python long_script.py > output.log 2>&1 &
>: перенаправление stdout2>&1: stderr в stdout&: в фоновом режиме▪️
nice/renice - Запуск процесса с приоритетомnice -n 10 python priority.py &
renice -n -5 -p 1234
n: значение приоритета▪️
jobs/bg/fg - Управление фоновыми и активными задачамиjobs -l # список задач с PID
bg %1 # задача 1 в фоновый режим
fg %2 # задача 2 на передний план
💡 Несколько твиков:
▫️
ps aux --sort=-%cpu | head -10 - для быстрого поиска процессов, отсортированных по потреблению CPU.▫️
watch -n 2 'ps aux --sort=-%mem | head -10' - зацикливаем исполнение команды отображения списка процессов, отсортированных по потреблению памяти, раз в 2 секунды.▫️
strace -p2525462 -s9999 -e write - подключаемся к запущенному процессу по его PID и отслеживаем только события записи.#linuxthursday #linux #шпаргалка
👍5🔥3
По словам авторов, попасть в систему удалось из-за того, что разработчики «забыли отключить регистрацию». Дальнейший анализ API и GraphQL открыл возможность обходить проверку e-mail, а пароли хранились в открытом виде. С помощью отдельного вызова createToken исследователи смогли назначить себе права администратора на всей платформе.
Ошибки встречались и в других сервисах RBI. В системе заказа оборудования пароль оказался жёстко прописан в коде HTML. На планшетах для обслуживания клиентов в «драйв-тру» использовался пароль admin. Вдобавок хакеры нашли незащищённые аудиозаписи заказов, которые используются для обучения систем анализа качества работы ресторанов. Иногда в них содержались персональные данные клиентов.
Burger King не отстает от своих коллег по цеху (совсем недавно, в июле, случился инцидент с McDonald's). Мало того, что пароль admin, так он еще и жестко прописан в HTML 💪 Отчет исследователей предусмотрительно подтерли даже из веб архива, но поглумиться в интернетах успели вдоволь над таким ответственным подходом.🌐 Источник
#news #security #leaks
😁3👍2🤯1
🔥 Подготовил
Основные функции
✅ Добавление/удаление веб-ресурсов
🔍 Проверка доступности
🛡 Мониторинг
📊 Красивые отчеты с группировкой по статусам
💾 Сохранение данных в
Как говорил ранее, в первом приближении это будет вариант с ручной отправкой запросов на проверку. Стартуем бота, добавляем ссылки (они пишутся в обычную файловую базу с привязкой к Telegram ID пользователя), по кнопке список ресурсов пользователя опрашивается и проверяется.
⚒️ Подключил для этого небольшого проекта
💎 Исходный код в репе на gitverse
🔭 Сам бот для пробы @monid_bot
#monitoring #проекты
первую версию бота для мониторинга доступности веб-ресурсов и проверки актуальности сертификатов.Основные функции
✅ Добавление/удаление веб-ресурсов
🔍 Проверка доступности
HTTP/HTTPS ресурсов🛡 Мониторинг
SSL-сертификатов (срок действия, валидность)📊 Красивые отчеты с группировкой по статусам
💾 Сохранение данных в
DuckDBКак говорил ранее, в первом приближении это будет вариант с ручной отправкой запросов на проверку. Стартуем бота, добавляем ссылки (они пишутся в обычную файловую базу с привязкой к Telegram ID пользователя), по кнопке список ресурсов пользователя опрашивается и проверяется.
⚒️ Подключил для этого небольшого проекта
Claude для рефакторинга, комментариев, генерации README и прочих вспомогательных файлов. Прибрался он очень даже неплохо, получилось аккуратно, а также снабдил реализацию вспомогательными функциями.💎 Исходный код в репе на gitverse
🔭 Сам бот для пробы @monid_bot
#monitoring #проекты
🔥5👍2
🌚 Проекты от сторонних разработчиков,
🔸 microsandbox
🔸 bubblewrap
🔸 dify-sandbox
🔸 firejail
🔸 nsjail
🔸 kata-containers
#sandbox #security #полезное
Docker образы, pip и npm пакеты, скрипты, сервисы или целые системы, сгенерированные ИИ - все это потенциальные нарушители спокойствия любого админа, разработчика и даже рядового пользователя. Вызов недоверенных решений может привести к катастрофическим последствиям. Отсюда подборка песочниц для создания изолированных окружений и виртуальных машин с целью безопасного запуска программ.🔸 microsandbox
🔸 bubblewrap
🔸 dify-sandbox
🔸 firejail
🔸 nsjail
🔸 kata-containers
#sandbox #security #полезное
GitHub
GitHub - superradcompany/microsandbox: 🧱 easy fast local-first microVM runtime and library
🧱 easy fast local-first microVM runtime and library - superradcompany/microsandbox
👍5
Пополню коллекцию систем для организации защищенных виртуальных сетей еще одним, вероятно, самым мощным
В настройке
💎 Ключевые особенности
🔻 Zero Trust сегментация сети
Каждый клиент в сети имеет свой идентификатор и сертификат доступа. Сертификаты используются для установления безопасных каналов связи, а также для прохождения этапов аутентификации и авторизации. Каждая попытка доступа начинается с проверки наличия прав на подключение к тому или иному ресурсу, что позволяет изолировать клиентские приложения и сервисы и настраивать политики индивидуально. Связь между компонентами сети Ziti также подлежит обязательной авторизации.
🔻 End-to-End шифрование
Каждое соединение зашифровано даже в случае, если ваши приложения или сервисы не использую защищенные протоколы сами по себе.
🔻 Гибкая настройка режимов доступа
- Прямой доступ приложения к приложению
- Доступ от хоста к хосту
- Доступ к приватной сети
🔻 Интеграция с внешними провайдерами доступа.
🔻 Сбор метрик системы, включая Prometheus и Grafana.
🔻 Для организации подключения можно использовать как готовые приложения под большинство систем, так называемые Tunnelers, так и SDK под популярные языки для интеграции защищенного взаимодействия прямо в собственное приложение.
🔎 Основные компоненты
▪️ Контроллер (Controller) - центральный пункт управления идентификационными данными пользователей, устройствами и узлами, отвечает за аутентификацию и авторизацию каждого соединения в сети.
▪️ Маршрутизаторы (Routers) - точки входа в сеть для клиентских подключений. Отвечают за передачу трафика между узлами, включают в себя функцию мониторинга для выбора оптимальной маршрутизации трафика.
▪️ Конечные клиенты (Edge clients) - программы на базе Ziti SDK (готовые клиенты или пакеты для собственной разработки), обеспечивающие безопасное подключение к сети.
▪️ BrowZer - набор дополнительных компонентов для доступа к защищенным ресурсам через веб-браузер без необходимости устанавливать специализированное клиентское приложение.
📚 QuickStart версия для ознакомления с работой платформы
✖️ Для быстрой настройки и запуска всех компонентов системы - QuickStarts.
✖️ Для детальной настройки каждого компоненты системы - отдельный набор гайдов.
Документация очень проработанная, поэтому сразу начну с варианта установки с помощью
➡️ Скачиваем
➡️ В конфигурационном файле
➡️ Запускаем весь набор компонентов, включая ZAC (Ziti Admin Console) - веб панель администратора.
➡️ По адресу машины, где было развернуто решение, на порту
▫️ В консоли администратора в разделе
▫️ На клиентскую машину ставим клиента (например, виндового) для проверки подключения.
▫️
▫️ Подгружаем
▫️ Аналогично поступаем и с другими клиентскими машинами, чтобы связать устройства в сеть через единый контроллер и дефолтные роутеры.
Приложенные скриншоты иллюстрируют некоторые разделы консоли и десктопного клиента, подключенного к новой сети.
#vpn #openziti
opensource решением - OpenZiti. В настройке
OpenZiti значительно сложнее, чем рассмотренные ранее ZeroTier или Nebula ввиду обширных возможностей контроля и управления сетями, хостами, маршрутами, политиками доступа и т.д. Именно поэтому я выделил под эту тему несколько запланированных заметок, дабы на примере некоторых несложных топологий разобрать на практике варианты организации взаимодействия между распределенными машинами.💎 Ключевые особенности
🔻 Zero Trust сегментация сети
Каждый клиент в сети имеет свой идентификатор и сертификат доступа. Сертификаты используются для установления безопасных каналов связи, а также для прохождения этапов аутентификации и авторизации. Каждая попытка доступа начинается с проверки наличия прав на подключение к тому или иному ресурсу, что позволяет изолировать клиентские приложения и сервисы и настраивать политики индивидуально. Связь между компонентами сети Ziti также подлежит обязательной авторизации.
🔻 End-to-End шифрование
Каждое соединение зашифровано даже в случае, если ваши приложения или сервисы не использую защищенные протоколы сами по себе.
🔻 Гибкая настройка режимов доступа
- Прямой доступ приложения к приложению
- Доступ от хоста к хосту
- Доступ к приватной сети
🔻 Интеграция с внешними провайдерами доступа.
🔻 Сбор метрик системы, включая Prometheus и Grafana.
🔻 Для организации подключения можно использовать как готовые приложения под большинство систем, так называемые Tunnelers, так и SDK под популярные языки для интеграции защищенного взаимодействия прямо в собственное приложение.
🔎 Основные компоненты
▪️ Контроллер (Controller) - центральный пункт управления идентификационными данными пользователей, устройствами и узлами, отвечает за аутентификацию и авторизацию каждого соединения в сети.
▪️ Маршрутизаторы (Routers) - точки входа в сеть для клиентских подключений. Отвечают за передачу трафика между узлами, включают в себя функцию мониторинга для выбора оптимальной маршрутизации трафика.
▪️ Конечные клиенты (Edge clients) - программы на базе Ziti SDK (готовые клиенты или пакеты для собственной разработки), обеспечивающие безопасное подключение к сети.
▪️ BrowZer - набор дополнительных компонентов для доступа к защищенным ресурсам через веб-браузер без необходимости устанавливать специализированное клиентское приложение.
📚 QuickStart версия для ознакомления с работой платформы
✖️ Для быстрой настройки и запуска всех компонентов системы - QuickStarts.
✖️ Для детальной настройки каждого компоненты системы - отдельный набор гайдов.
Документация очень проработанная, поэтому сразу начну с варианта установки с помощью
Docker.➡️ Скачиваем
compose и .env файлы с официального сайтаcurl -so docker-compose.yaml https://get.openziti.io/dock/docker-compose.yml
curl -so .env https://get.openziti.io/dock/.env
➡️ В конфигурационном файле
.env сразу можно указать пароль администратора (если оставить пустым, то он будет сгенерирован автоматически при первом запуске). Все остальные параметры по умолчанию.ZITI_IMAGE=openziti/quickstart
ZITI_VERSION=latest
ZITI_USER=admin
ZITI_PWD=admin
ZITI_INTERFACE=0.0.0.0
➡️ Запускаем весь набор компонентов, включая ZAC (Ziti Admin Console) - веб панель администратора.
docker compose up -d
➡️ По адресу машины, где было развернуто решение, на порту
8443 будет доступна консоль.▫️ В консоли администратора в разделе
Identities создаем нового клиента специально под рабочую машину, с которой хотим подключиться. Забираем сформированный файл JWT.▫️ На клиентскую машину ставим клиента (например, виндового) для проверки подключения.
▫️
ADD IDENTITY - With JWT▫️ Подгружаем
JWT файл и проверяем подключение нового устройства.▫️ Аналогично поступаем и с другими клиентскими машинами, чтобы связать устройства в сеть через единый контроллер и дефолтные роутеры.
Приложенные скриншоты иллюстрируют некоторые разделы консоли и десктопного клиента, подключенного к новой сети.
#vpn #openziti
👍6🔥3
🚜 Linux по четвергам
🌐 Диагностика сети
🔸
ss - Современная замена netstatss -tulpn | grep :80
-t: TCP-u: UDP-l: прослушивающие-p: процессы-n: численно🔸
iftop - Мониторинг сетевого трафика на уровне интерфейсовiftop -i eth0 -P -N
-i: интерфейс-P: отображать порты-N: не преобразовывать порты в сервисные имена🔸
iperf3 - Тестирование производительности сети между двумя хостамиiperf3 -s # режим сервера
iperf3 -c server_ip -t 30 # клиентский тест на 30 секунд
-s: режим сервера-c: режим клиента-t: длительность теста🔸
tcpdump - Захват и анализ сетевых пакетов в реальном времениtcpdump -i eth0 -n host 192.168.1.1 and port 80
-i: интерфейс-n: не разрешать имена-w: записать в файл🔸
mtr - Комбинирует ping и traceroute для непрерывной диагностики сетиmtr --report --report-cycles 100 google.com
--report: режим отчета--no-dns: пропустить DNS разрешение💡 Бонус
ss -i для подробной статистики интерфейсов или netstat -i для счетчиков пакетов.#linuxthursday #linux #шпаргалка
👍8