← До фільтрів та технологій

← До списку лабораторних по Docker

Docker Лабораторна 37: Робота з capabilities

Технологія: Docker

Номер лабораторної: 37 · Рівень: middle

Тема: Обмеження Linux capabilities у контейнерах

Повний опис / сценарій лабораторної:

Мета: навчитися забирати зайві capabilities і залишати лише необхідні.



Крок 1. Запустити контейнер з повним набором capabilities за замовчуванням.

Команда: docker run --rm -it --name cap-full ubuntu bash



Крок 2. Встановити утиліту для перегляду capabilities.

Команда: apt update && apt install -y libcap2-bin



Крок 3. Подивитися capabilities для поточного процесу.

Команда: capsh --print

Пояснення: зверни увагу скільки можливостей отримує процес у контейнері.



Крок 4. Вийти з контейнера.



Крок 5. Запустити новий контейнер з параметром --cap-drop=ALL.

Команда: docker run --rm -it --cap-drop=ALL ubuntu bash

Пояснення: усі capabilities будуть відключені.



Крок 6. Встановити ту саму утиліту і знову перевірити capsh --print.

Пояснення: тепер набір значно менший.



Крок 7. Додати лише одну необхідну capability.

Пояснення: наприклад --cap-add=NET_ADMIN і перевірити можливість змінювати налаштування мережі.



Крок 8. Порівняти поведінку процесів з повним і обмеженим набором capabilities.

Пояснення: деякі операції будуть заборонені ядром.



Крок 9. Сформувати список capabilities які реально потрібні типовому веб сервісу.

Пояснення: це дозволить мінімізувати поверхню атак.



Крок 10. Міні звіт.

Завдання: опиши політику використання capabilities для контейнерів у прод середовищі.