МЕНЮ

Как БЕЗОПАСНО пользоваться Docker? Compose, Namespaces и Control GroupsРано или поздно все, кто начинают работать с Docker осознают, что постоянно указывать портянки команд, запускать несколько контейнеров отдельной командой это мягко скажем, не очень удобно. Однако, умные дяди в толстенных очках уже давно придумали, как данную процедуру можно оптимизировать. И сегодня, я раскрою секрет, как именно это сделать. Zip File, мамкины хаЦкеры. С вами Денчик и я тот самый сын маминой подруги, который реально шарит за технологии. В рамках текущего видео мы снова коснёмся Doker. Поговорим о возможностях Docker Compose (Докер Композ), а также механизмах безопасности на примере Nemaspeces (неймспейсис) и Cgroups (сигрупс). Разберём принципы многоконтейнерной сборки. Узнаем какой программный интерфейс и файлы позволяют реализовать данную сборку и попробуем на практике это произвести. Ну и конечно, изучим механизмы безопасности и поймём, как они могут помочь нам в процессе работы и вопросах защиты контейнеров. Короче вас нынче ждём прямо-таки фейерверк из полезнейшей душноты. Поэтому устраивайтесь по удобней и не будем терять не минуты. Погнали.

Любой процесс изучения возможностей Docker – это, в первую очередь, конечно же практика. И лучшей базы для практики, чем сервис SptintBox я пока не встречал.

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

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

Помимо прочего на сервисе можно настроить резервное копирование и снапшоты, подключаться к серверам по SSH и FTP, добавить к ним дополнительное хранилище до 1 Тб.

Ну и само собой поиграться с настройками файрвола и подключить защиту от внешних DDoS-атак. Короче для сетевой практики это прямо мастхэв. Можно запросто деплоить ботов для Телеграма, ВК и Дискорда.

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

Ну и само-собой тут есть дистрибутив с Docker’ом, поднять который не составит труда даже для тех, кто только-только начинает свой путь в IT.

А управлять созданными боксами можно через удобную Панель управления или в Telegram-боте. Он может вывести вам нужную информацию, перезапустить бокс и даже создать новый буквально в несколько кликов.

Если вдруг тупанёте и не сможете разобраться, вам на помощь придёт техподдержка. Там ребята всегда на связи. И днём, и ночью. Кроме того, можно воспользоваться Базой знаний, в которой есть масса полезных статей.

В общем, если хотите изучать системы и сети не только в теории, а действительно погрузиться в эту историю с головой – велком. Ссылка на KVM VDS от SprintBox будет в описании.

Там же будет мой фирменный промокод, по которому ещё и 50% кешбек получите. Короче переходите скорее и регайтесь. Не пожалеете.

Docker Compose

Команда интерфейса Docker Compose позволяет запускать мультиконтейнерные приложения. Это когда несколько контейнеров запускается в одной команде Docker Compose Build.

Для того, чтобы записать файлик с расширением Docker Compose используется расширение YML (ямл). Т.е. нам необходимо создать данный файл и указать все необходимые переменные для его запуска.

Тут важно обратить внимание на синтаксис. Указать все необходимые отступы, сервисы, которые планируем поднимать, их версии, и переменные (инваерт, порт-биндига и вольюма, если потребуется).

Для того, чтобы запустить файл Docker Compose его нужно расположить вместе с готовой конфигурацией в нужной папке. Перейдя в неё и прописав команду docker-compose up, Докер поднимет всё содержимое в работоспособное состояние.

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

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

Namespaces

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

Речь идёт о технологиях Namecpaces (неймспейсис) и Control Groups (контрол сигрупс). Первый позволяет контейнеру функционировать находясь как бы в изолированной среде.

Т.е. в данном случае у контейнера имеются свои process id. Это можно посмотреть утилитой PS. На слайде видно, что все процесс айди внутри контейнера начинаются с первого.

Это наглядно показывает, что среда изолирована. Помимо этого у контейнера есть свои user id, mount и даже сетевые интерфейсы, которые он считает реальными.

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

Для этого применяют команду man namespaces. У Man’ки кстати есть русифицированная версия. Для тех кто прямо не в зуб ногой, но очень хочет войти в IT не здороваясь.

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

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

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

Т.е. в рамках определённого неймспейса наш контейнер помещается в некое изолированное окружение, где будет функционировать со своими Process ID, User ID, интерфейсами и файловой системой.

Control Groups

Помимо прочего существует механизм Control Groups (контрол групс), позволяющий устанавливать ограничения на ресурсы в рамках некой иерархичной структуры подобной Linux.

Мы можем указать ограничения в процесса запуска какого-либо контейнера или в файле docker-compose. Например ограничения по memory, cpu. Это позволяет грамотно изолировать ресурсы нивелируя возможность отказа сервиса.

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

Этот механизм позволяет подтянуть вопрос безопасности. Также существуют стандарты реализуемые для Докер, которые описаны в CIS бенчмарк.

Основные вопросы ИБ будут связаны с распределением ресурсов, организацией изоляции и назначением привилегий внутрь образа. 

Окей, друзья. В сегодняшнем уроке мы познакомили с такими понятиями, как многоконтейнерная сборка на примере Docker Compose, узнали о возможностях данного программного интерфейса и попробовали его на практике.

Помимо этого, рассмотрели такие популярные механизмы ядра Linux, как Namespeces и Control Groups, а также узнали об их применении в области безопасности.

А если вы хотите стать реальным асом в области инфобеза, то рекомендую сразу после просмотра заглянуть в мою академию на курс «Информационная безопасность с нуля до джуна».

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

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

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

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

telegram chanel

Хочешь больше контента? Подписывайся на YouTube-канал!

Курс «Диплом за неделю»

Пособие «Библия вардрайвинга»

Курс Cisco «CCNA: Introduction to Networks»

© 2024. IT-спец. Денис Курец.