🤔 Подготовили очередной #дайджест полезностей для DevOps
❎ Что такое утечка памяти — будет рассмотрено понимание утечек памяти, распространенные причины, инструменты и методы обнаружения утечек памяти
❎ Struggling Pods с нуля — как траблшутить Kubernetes, Refinery, OpenTelemetry Collector и Honeycomb
❎ Awesome Cyber Security University — список крутых и бесплатных образовательных ресурсов, которые фокусируются на обучении на практике
❎ Развертывание контейнеров с помощью контейнерных инструментов — основы работы с podman и контейнерами
❎ Развертывание Kubernetes на двух старых ноутбуках с помощью Gentoo — как запилить Kubernetes на Gentoo
❎ Что такое утечка памяти — будет рассмотрено понимание утечек памяти, распространенные причины, инструменты и методы обнаружения утечек памяти
❎ Struggling Pods с нуля — как траблшутить Kubernetes, Refinery, OpenTelemetry Collector и Honeycomb
❎ Awesome Cyber Security University — список крутых и бесплатных образовательных ресурсов, которые фокусируются на обучении на практике
❎ Развертывание контейнеров с помощью контейнерных инструментов — основы работы с podman и контейнерами
❎ Развертывание Kubernetes на двух старых ноутбуках с помощью Gentoo — как запилить Kubernetes на Gentoo
🔥16👍3❤1
🚍⏱️ Миграция с минимальным простоем виртуальных машин KVM между отдельными кластерами Proxmox VE
Автор статьи подробно рассказывает как решить задачу по переносу виртуальных машин KVM с одного кластера Proxmox VE на другой.
В PVE «из коробки» такой возможности нет, но онлайн‑миграцию виртуальных машин между кластерами можно выполнить средствами KVM.
Важные замечания
⚠️ Процедура протестирована для Proxmox VE 6.x
⚠️ На серверы кластера между которыми производится миграция должен быть настроен вход по SSH без пароля
Условные обозначения
✏️ pve-01 — сервер с которого будет выполняться миграцию
✏️ pve-02 — сервер на который будет выполняться миграции
✏️ 100 — исходный ID виртуальной машины
✏️ 120 — ID виртуальной машины после миграции
✏️ pc-i440fx-2.11 — чипсет виртуальной машины, в вашем случае может отличаться
✏️ 192.168.0.3 — IP-адрес сервера на который будет мигрироваться виртуалка
Подробнее тут
#гайд
Автор статьи подробно рассказывает как решить задачу по переносу виртуальных машин KVM с одного кластера Proxmox VE на другой.
В PVE «из коробки» такой возможности нет, но онлайн‑миграцию виртуальных машин между кластерами можно выполнить средствами KVM.
Важные замечания
⚠️ Процедура протестирована для Proxmox VE 6.x
⚠️ На серверы кластера между которыми производится миграция должен быть настроен вход по SSH без пароля
Условные обозначения
✏️ pve-01 — сервер с которого будет выполняться миграцию
✏️ pve-02 — сервер на который будет выполняться миграции
✏️ 100 — исходный ID виртуальной машины
✏️ 120 — ID виртуальной машины после миграции
✏️ pc-i440fx-2.11 — чипсет виртуальной машины, в вашем случае может отличаться
✏️ 192.168.0.3 — IP-адрес сервера на который будет мигрироваться виртуалка
Подробнее тут
#гайд
❤🔥11👍9
IT Elements — конференция про инфраструктуру и сеть — базовые элементы, которые создают надежный ИТ-фундамент компании
22-23 ноября на IT Elements будет 1000 экспертов, 50 спикеров, 20 кейсов, 20 демо, выставка ИТ-решений, обмен отраслевым опытом и нетворкинг.
Среди тем:
🔹 Есть ли в России SD-WAN?
🔹 DevNetOps. Автоматизация процесса эксплуатации и внедрения сети
🔹 Чем сервисная поддержка сетевого оборудования отличается от сервисной поддержки инфраструктуры?
🔹 Корпоративный ЦОД и Colocation. Разница в подходах: проектирование, строительство, эксплуатация
🔹 Состояние рынка WI-FI в России: доступные решения и перспективы
🔹 Классический подход к построению ЦОД или интеграция новых решений: практический смысл
Кому будет полезно
👉 Руководители инфраструктурных подразделений
👉 ИТ-архитекторы и инженеры по ИТ-инфраструктуре
👉 Сетевые инженеры и системные администраторы
#мероприятие
22-23 ноября на IT Elements будет 1000 экспертов, 50 спикеров, 20 кейсов, 20 демо, выставка ИТ-решений, обмен отраслевым опытом и нетворкинг.
Среди тем:
🔹 Есть ли в России SD-WAN?
🔹 DevNetOps. Автоматизация процесса эксплуатации и внедрения сети
🔹 Чем сервисная поддержка сетевого оборудования отличается от сервисной поддержки инфраструктуры?
🔹 Корпоративный ЦОД и Colocation. Разница в подходах: проектирование, строительство, эксплуатация
🔹 Состояние рынка WI-FI в России: доступные решения и перспективы
🔹 Классический подход к построению ЦОД или интеграция новых решений: практический смысл
Кому будет полезно
👉 Руководители инфраструктурных подразделений
👉 ИТ-архитекторы и инженеры по ИТ-инфраструктуре
👉 Сетевые инженеры и системные администраторы
#мероприятие
👍3❤1🔥1👏1
Linux Privilege Escalation Cheatsheet
Эта шпаргалка с примерами, предназначена тех, кто готовится к OSCP, чтобы помочь им понять различные методы повышения привилегий на компьютерах под управлением Linux и CTFS. Существует несколько способов выполнения одной и той же задачи.
В материале разбираются следующие темы:
➖ Абьюз прав Sudo
➖ SUID Binaries
➖ Capabilities
➖ Эскалация привилегий Lxd
➖ Эскалация привилегий Docker
➖ Эксплоит джобов Cron
➖ Запись в /etc/passwd
➖ Неправильно сконфигурированный NFS
➖ Эксплоит Wildcard
➖ Эскалация привилегий LD_Preload
➖ Эксплоит PATH Variable
➖ Python Library Hijacking
➖ Polkit (CVE 2021-3560)
➖ PwnKit (CVE 2021-4034)
➖ DirtyPipe (CVE 2022-0847)
#туториал
Эта шпаргалка с примерами, предназначена тех, кто готовится к OSCP, чтобы помочь им понять различные методы повышения привилегий на компьютерах под управлением Linux и CTFS. Существует несколько способов выполнения одной и той же задачи.
В материале разбираются следующие темы:
➖ Абьюз прав Sudo
➖ SUID Binaries
➖ Capabilities
➖ Эскалация привилегий Lxd
➖ Эскалация привилегий Docker
➖ Эксплоит джобов Cron
➖ Запись в /etc/passwd
➖ Неправильно сконфигурированный NFS
➖ Эксплоит Wildcard
➖ Эскалация привилегий LD_Preload
➖ Эксплоит PATH Variable
➖ Python Library Hijacking
➖ Polkit (CVE 2021-3560)
➖ PwnKit (CVE 2021-4034)
➖ DirtyPipe (CVE 2022-0847)
#туториал
❤🔥13👍8👏2❤1
SadServers — это SaaS, где пользователи могут проверить свои навыки устранения неполадок на реальных серверах Linux.
Там есть наборы сценариев, описание того, что не так, и тест, чтобы проверить, была ли проблема решена. Сервер запускается на лету, пользователи получают SSH через веб (уничтожаемый по истечении отведенного на решение задачи времени), а затем можно пытаться решить проблему.
Проблемы включают в себя распространенное ПО, работающее под управлением Linux, такое как БД или веб-сервера. Также включены сценарии, в которых необходимо быть знакомым с технологией, связанной с проблемой, например, вопросы по Docker. Задачи по большей части соответствуют «боевым», из реальной серверной.
Сервис ориентирован на пользователей, которые являются профессиональными разработчиками ПО, системными администраторами, инженерами DevOps/SRE и смежными должностями, требующими навыков отладки серверов и устранения неполадок.
#полезный софт
Там есть наборы сценариев, описание того, что не так, и тест, чтобы проверить, была ли проблема решена. Сервер запускается на лету, пользователи получают SSH через веб (уничтожаемый по истечении отведенного на решение задачи времени), а затем можно пытаться решить проблему.
Проблемы включают в себя распространенное ПО, работающее под управлением Linux, такое как БД или веб-сервера. Также включены сценарии, в которых необходимо быть знакомым с технологией, связанной с проблемой, например, вопросы по Docker. Задачи по большей части соответствуют «боевым», из реальной серверной.
Сервис ориентирован на пользователей, которые являются профессиональными разработчиками ПО, системными администраторами, инженерами DevOps/SRE и смежными должностями, требующими навыков отладки серверов и устранения неполадок.
#полезный софт
👍19👏2
Очередной #дайджест, но теперь с уроками по Django для админов
🌕 Что это такое, порядок установки. Что из себя представляет фреймворк, создание виртуального окружения и способы запуска тестового веб-сервера
🌕 Маршрутизация, обработка исключений запросов. Определение шаблонов для маршрутов, типы параметров: int, str, slug, uuid, path, функция re_path()
🌕 CRUD — основы ORM. Рассматриваются базовые операции добавления, чтения, изменения и удаления записей из таблицы БД с использованием ORM-интерфейса
🌕 Формирование URL-адресов. Способы формирования динамических и статических маршрутов в шаблонах с помощью тега url и метода модели get_absolute_url()
🌕 ForeignKey. Узнаете как создавать связи между таблицами (моделями) БД
🌕 Что это такое, порядок установки. Что из себя представляет фреймворк, создание виртуального окружения и способы запуска тестового веб-сервера
🌕 Маршрутизация, обработка исключений запросов. Определение шаблонов для маршрутов, типы параметров: int, str, slug, uuid, path, функция re_path()
🌕 CRUD — основы ORM. Рассматриваются базовые операции добавления, чтения, изменения и удаления записей из таблицы БД с использованием ORM-интерфейса
🌕 Формирование URL-адресов. Способы формирования динамических и статических маршрутов в шаблонах с помощью тега url и метода модели get_absolute_url()
🌕 ForeignKey. Узнаете как создавать связи между таблицами (моделями) БД
❤🔥14🔥3👍2
#вопрос_с_собеседования
Где физически находятся inodes
Будет зависеть от файловой системы. Например, в ext2, ext3 хранится перед блоками данных. Это атрибут не диска, а файловой системы.
Иноды хранятся в таблицах. В каждой группе блоков в разделе есть такая таблица.
Может быть каталог инодов и имен, которые с ними связаны. Но это также будет зависеть от файловой системы. В fat32 их нет.
Краткий ответ
Имена inodes (имена файлов, каталогов, устройств и т. д.) хранятся на диске в каталогах. В каталоге хранятся только имена и соответствующие номера inode. Фактическое дисковое пространство для именованных данных хранится в пронумерованном индексном узле, а не в каталоге. Айнода просто указывает на файл и каталог
Где физически находятся inodes
❤17🥱2⚡1🔥1😁1
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
❤3
🧑🎓😎 Еще одна серия с мероприятия OFFZONE 2023
Здесь собираются безопасники, разработчики, инженеры, исследователи, преподаватели и студенты из десятков стран мира. В центре внимания — только хардкорный технический контент по кибербезопасности.
MikroTik Nightmare
Авторское исследование о безопасности оборудования MikroTik в жанре offensive. Будут рассмотрены недостатки безопасности RouterOS, техники пивотинга, постэксплуатации, MitM‑атак, угона трафика, а также специальный ремикс на работу s0i37, в рамках которого спикер нашел новый способ L2‑туннелирования против машин на Windows с использованием маршрутизатора MikroTik
Смотреть
#видео
Здесь собираются безопасники, разработчики, инженеры, исследователи, преподаватели и студенты из десятков стран мира. В центре внимания — только хардкорный технический контент по кибербезопасности.
MikroTik Nightmare
Авторское исследование о безопасности оборудования MikroTik в жанре offensive. Будут рассмотрены недостатки безопасности RouterOS, техники пивотинга, постэксплуатации, MitM‑атак, угона трафика, а также специальный ремикс на работу s0i37, в рамках которого спикер нашел новый способ L2‑туннелирования против машин на Windows с использованием маршрутизатора MikroTik
Смотреть
#видео
🔥7
Поговорим о команде enable. Она включает или отключает встроенные команды оболочки.
Отключение встроенных команды позволяет выполнить дисковую команду, имеющую то же имя, что и встроенная команда оболочки, без указания полного пути, даже если оболочка ищет встроенные команды перед дисковыми командами.
Запускаем:
И видим: test is a shell builtin. То есть используется команда test встроенная в оболочку. А не та что лежит на пути в test: /usr/bin/test. Воспользуемся дисковой версией этой утилиты:
И получим такое: test is /usr/bin/test. Получается мы сделали некое переключение. И по факту используем разные версии test.
Чтобы включить обратно встроенную команду test в оболочке, выполняем:
Можно подгрузить расширения поставляемые с оболочкой. Некие плагины, экстеншены. Для этого эти экстеншены нужно установить:
Оно установится в папку /usr/lib/bash/. В ней будут всякие mkdir, rm, sleep и т.п. По сути это те же дисковые команды, только экстеншены для оболочки.
Для начала узнаем дисковую версию команды mkdir:
mkdir (GNU coreutils) 8.32
Теперь загружаем экстеншен в оболочку:
Получаем такое: -bash: mkdir: --: invalid option
Теперь запускаем:
Видим: mkdir is a shell builtin, то есть теперь mkdir используется не системный (дисковый), а тот что подгружен в оболочку bash.
Например, мы снесли все системные бинарники и остался только bash. Через подгрузку экстеншенов можно без проблем обслуживать свою операционную систему, даже если в системе пропал mkdir и т.п.
Чтобы посмотреть что вообще подгружено в оболочку, воспользуемся командой:
Получим отчет по текущему процессу, что подгружено в данный момент в оболочку и используется.
С версии 4.4 в bash появилась переменная BASH_LOADABLES_PATH, с помощью нее можно задать путь для поиска экстеншенов. Тогда при подгрузке этих модулей, не нужно будет использовать полные пути.
#гайд
Отключение встроенных команды позволяет выполнить дисковую команду, имеющую то же имя, что и встроенная команда оболочки, без указания полного пути, даже если оболочка ищет встроенные команды перед дисковыми командами.
Запускаем:
bash
type test
И видим: test is a shell builtin. То есть используется команда test встроенная в оболочку. А не та что лежит на пути в test: /usr/bin/test. Воспользуемся дисковой версией этой утилиты:
enable -n test
type test
И получим такое: test is /usr/bin/test. Получается мы сделали некое переключение. И по факту используем разные версии test.
Чтобы включить обратно встроенную команду test в оболочке, выполняем:
enable test
Можно подгрузить расширения поставляемые с оболочкой. Некие плагины, экстеншены. Для этого эти экстеншены нужно установить:
apt/yum install bash-builtins
Оно установится в папку /usr/lib/bash/. В ней будут всякие mkdir, rm, sleep и т.п. По сути это те же дисковые команды, только экстеншены для оболочки.
Для начала узнаем дисковую версию команды mkdir:
mkdir --version
mkdir (GNU coreutils) 8.32
Теперь загружаем экстеншен в оболочку:
enable -f /usr/lib/bash/mkdir mkdir
mkdir --version
Получаем такое: -bash: mkdir: --: invalid option
Теперь запускаем:
type mkdir
Видим: mkdir is a shell builtin, то есть теперь mkdir используется не системный (дисковый), а тот что подгружен в оболочку bash.
Например, мы снесли все системные бинарники и остался только bash. Через подгрузку экстеншенов можно без проблем обслуживать свою операционную систему, даже если в системе пропал mkdir и т.п.
Чтобы посмотреть что вообще подгружено в оболочку, воспользуемся командой:
lsof +fg -p $$
Получим отчет по текущему процессу, что подгружено в данный момент в оболочку и используется.
С версии 4.4 в bash появилась переменная BASH_LOADABLES_PATH, с помощью нее можно задать путь для поиска экстеншенов. Тогда при подгрузке этих модулей, не нужно будет использовать полные пути.
BASH_LOADABLES_PATH=/usr/lib/bash/
enable -f sleep sleep
#гайд
👍14🎉3🤩3🔥2👏2
Книга Ansible for DevOps: Server and configuration management for humans
Ansible — система управления конфигурациями, написанная на языке программирования Python, с использованием декларативного языка разметки для описания конфигураций. Используется для автоматизации настройки и развертывания программного обеспечения. Если у вас есть опыт работы в сфере DevOps, при помощи данного руководства вы узнаете, как, используя Ansible, автоматизировать поставку программного обеспечения, управлять конфигурацией и развёртывать приложения.
В книге рассматриваются следующие темы:
✔️Базовые команды;
✔️Основные инструменты;
✔️Работа с плейбуками;
✔️Безопасность и многие другие.
Преимущества:
➕ Множество примеров кода;
➕ Широкий спектр тем.
Недостатки:
➖ Не замечено.
Взять ее можно тут
#книги
Ansible — система управления конфигурациями, написанная на языке программирования Python, с использованием декларативного языка разметки для описания конфигураций. Используется для автоматизации настройки и развертывания программного обеспечения. Если у вас есть опыт работы в сфере DevOps, при помощи данного руководства вы узнаете, как, используя Ansible, автоматизировать поставку программного обеспечения, управлять конфигурацией и развёртывать приложения.
В книге рассматриваются следующие темы:
✔️Базовые команды;
✔️Основные инструменты;
✔️Работа с плейбуками;
✔️Безопасность и многие другие.
Преимущества:
➕ Множество примеров кода;
➕ Широкий спектр тем.
Недостатки:
➖ Не замечено.
Взять ее можно тут
#книги
🔥6👍2🥰1
#вопросы_с_собеседования
Где хранится информация об именах файлов, директорий?
Inodes не содержат имён файлов, только другие метаданные файла.
Каталоги Unix представляют собой списки ассоциативных структур, каждая из которых содержит одно имя файла и один номер индекса.
Драйвер файловой системы должен найти каталог, ищущий определенное имя файла, а затем преобразовать имя файла в правильный соответствующий номер индекса.
Таким образом имя файла/директории хранится в информационной структуре каталогов.
Где хранится информация об именах файлов, директорий?
👍5🔥3
🧐🔎 Отслеживание изменений базы данных SQLite в Git
В статье описан простой метод использования git для хранения изменений, внесённых в sqlite базу данных.
SQLite хранит данные в двоичном формате. Если вы запустите cat mydb.sqlite, вы увидите кучу непонятностей, которая совсем не похожа на структурированные данные. Если хотите отслеживать изменения и обновления БД с помощью Git, вы не сможете увидеть полные различия. Вы увидите, что файл изменился, а не то, что именно изменилось:
Есть ли способ обойти это? Есть, и объяснение его ждет вас тут
#гайд
В статье описан простой метод использования git для хранения изменений, внесённых в sqlite базу данных.
SQLite хранит данные в двоичном формате. Если вы запустите cat mydb.sqlite, вы увидите кучу непонятностей, которая совсем не похожа на структурированные данные. Если хотите отслеживать изменения и обновления БД с помощью Git, вы не сможете увидеть полные различия. Вы увидите, что файл изменился, а не то, что именно изменилось:
diff --git a/mydb.sqlite b/mydb.sqlite
index f412c72..8f49ea5 100644
Binary files a/mydb.sqlite and b/mydb.sqlite differ
Есть ли способ обойти это? Есть, и объяснение его ждет вас тут
#гайд
🔥14👍6
🤔 Подготовили #дайджест материалов по безопасности и полезным тулзам
🔹 Security Insights Specification — механизм для представления информации о безопасности проекта
🔹 k'exp — научитесь понимать Kubernetes с помощью визуала
🔹 Kuik: kube-image-keeper — автоматизированное управление cache’ем для всех используемых образов
🔹 Управление Linux-сервером — почему настройка и управление Linux-сервером на своём собственном железе/хостинге это круто
🔹 Практическое руководство по созданию Helm чарта — опыт создания Helm чарта и его запуска, а также методы деплоя приложения без Helm
🔹 Security Insights Specification — механизм для представления информации о безопасности проекта
🔹 k'exp — научитесь понимать Kubernetes с помощью визуала
🔹 Kuik: kube-image-keeper — автоматизированное управление cache’ем для всех используемых образов
🔹 Управление Linux-сервером — почему настройка и управление Linux-сервером на своём собственном железе/хостинге это круто
🔹 Практическое руководство по созданию Helm чарта — опыт создания Helm чарта и его запуска, а также методы деплоя приложения без Helm
❤14👏6👍3🥰3🎉3
✏️🧑🎓 Как использовать Cluster API для развертывания кластеров Kubernetes
В статье объясняются основы Cluster API — что это такое, как оно работает, и основные концепции, которые определяют его дизайн.
Покажут вам, как настроить локальный кластер управления, который позволит вам развертывать новые кластеры у облачного провайдера, такого как AWS, а еще, как подготовить кластер и взаимодействовать с ним с помощью Lens.
Читать статью
#туториал
В статье объясняются основы Cluster API — что это такое, как оно работает, и основные концепции, которые определяют его дизайн.
Покажут вам, как настроить локальный кластер управления, который позволит вам развертывать новые кластеры у облачного провайдера, такого как AWS, а еще, как подготовить кластер и взаимодействовать с ним с помощью Lens.
Читать статью
#туториал
👍4