Skip to content

NGRsoftlab/Image-builder

Repository files navigation

NGRSOFTLAB logo

Image builder

Image builder Dive efficiency Made with love

Forge image

Blacksmith anvil hammer под авторством Midnightcomm.

Description

Скрипт по сборке образов Astra Linux. Взяты за основу статья по сборке на докера на Astra, minideb от Bitnami, проекта Tianon Gravi и скрипты от команды NGRSoftlab

Аффикс, для переменных, был выбран как SCF_ - акроним от Script that Creates a Form - скрипт создающий форму. Игра слов, связанная с тем, что данный скрипт создаёт из минимального наборка компонентов базовый образ для контейнерных сред

Присоединяйтесь к нашим социальным сетям:

NGR Social Telegram       NGR Social Media

Contents

  • Astra Linux
  • bash >= 5.0.3(1)-release;
  • Docker.io ~= 25.0.5.astra2
  • debootstrap ~= 1.0.132
  • coreutils ~= 9.1-1

Скрипт по сборке образов на основе Astra Linux. Что умеет:

  • Собирать образы на основе 1.7.2 - 1.7.x (latest updated version), 1.8.1 - 1.8.x (latest updated version)
  • Собирать образы на основе архитектуры
  • Собирать образы на основе прокси и вшивать прокси внутрь образа (аля Nexus)
  • Собирать образы с произвольным тегом + именем
  • Проводить синтетические тесты
  • Этот образ призван обеспечить хороший баланс между небольшими образами и наличием множества базовых пакетов для легкой интеграции
  • Образ основан на glibc для широкой совместимости и подходит для доступа к большому количеству пакетов. Чтобы уменьшить размер образа, удалены некоторые вещи, которые не требуются в контейнерах:
    • Пакеты, которые не часто используются в контейнерах (аппаратные, системы инициализации и т.д.)
    • Некоторые файлы, которые обычно не требуются (документы, страницы руководства, локали, кэши)
  • Эти образы также включают команду install_packages, которую можно использовать вместо apt. Скрипт позаботится о некоторых вещах:
    • Установит названные пакеты, пропуская подсказки и т.д.
    • После этого очистит метаданные apt, чтобы образ оставался маленьким
    • Повторная попытка установка пакета в случае сбоя apt. Иногда пакет не удается загрузить из-за проблем с сетью, и это может исправить ситуацию, что особенно полезно в автоматизированном конвейере сборки

Пример:

$ install_packages apache2 memcached

...install process...
Кодовое имя Версия Status
Astra 1.7_x86-64 1.7.x - 1.7.9 ✅ Fully supported
Astra 1.7_x86-64 1.8.x - 1.8.4 ✅ Fully supported
Таблица 1. Поддерживаемые версии Astra Linux.

 

Так как AstraLinux это детище Debian необходимо знать о их соотношении версий, чтобы понимать на чём основана база

Версия Astra Версия Debian
Astra 1.6 Debian (Stretch)
Astra 1.7 Debian (Buster)
Astra 1.8 Debian (Bookworm)
Таблица 2. Соотношений Astra Linux и Debian.

 

Для начала работы необходимо установить pre-commit и хуки

$ pip install pre-commit
$ pre-commit --version

pre-commit 4.2.0

$ pre-commit install

pre-commit installed at .git/hooks/pre-commit
pre-commit installed at .git/hooks/commit-msg
pre-commit installed at .git/hooks/pre-push

Warning

Чтобы проверить свои изменения, воспользуйтесь командой pre-commit run --all-files. Чтобы проверить конкретную задачу, воспользуетесь командой pre-commit run <target> --all-files. Если Вы понимаете что творите и хотите пропустить проверку pre-commit-ом воспользуйтесь --no-verify, пример git commit -m "Добавил изменения и не хочу проверки" --no-verify

При работе с хуками, есть некоторые моменты:

Note

Подготовка среды для работы с vale берёт из StylesPath в .vale.ini конфигурационном файле. Если необходимо пересоздать настройку окружения для vale, то нужно предварительно очистить полностью данную директорию

Примеры работы со скриптом:

  1. Вызов справки

    $ ./build-astra-image.sh -h
    
    NAME:
      build-astra-image.sh - Create Docker image IMAGE_NAME based on REPOSITORY with CODENAME.
    
    SYNOPSIS:
      build-astra-image.sh {-t TAG NAME} {-r REPOSITORY} [-i IMAGE NAME] [-c CODENAME] [-p PLATFORM] [-v] [-h] [-d] [-s]
    
    DESCRIPTION:
      Script can create astra docker image v1.7.x and v1.8.x.
    
    ARGUMENTS LIST:
      -h             help menu
      -v             print version
      -d             set debug, to enable pass '-d'
      -s             call only synthetic test for image
      -t TAG NAME    image tag, such as 1.8.1 and etc.
      -c CODENAME    codename (specified in '/etc/os-release' VERSION_CODENAME variable. For this OS it is: 1.8_x86-64)
      -r REPOSITORY  address of the repository, such as '-r https://download.astralinux.ru/astra/stable/1.7_x86-64/repository' or '-r https://download.astralinux.ru/astra/frozen/1.7_x86-64/1.7.5/repository' and in the same vein
      -i IMAGE NAME  name of the image being created
      -p PLATFORM    platform (based on dpkg --print-architecture command)
      -z             enable certification image
    
    AUTHOR:
      Written by NGRSoftlab.
  2. Посмотреть версию

    $ ./build-astra-image.sh -v
    
    build-astra-image.sh (NGRSoftlab) v2.0.0
  3. Собрать образ с минимальными параметрами для 1.7.5

    $ ./build-astra-image.sh -t 1.7.5 \
                          -c 1.7_x86-64 \
                          -r https://download.astralinux.ru/astra/frozen/1.7_x86-64/1.7.5/repository
    
    ..build process..
  4. Собрать образ с отладкой(дебагом) для 1.8.1

    $ ./build-astra-image.sh -t 1.8.1 \
                          -c 1.8_x86-64 \
                          -r https://dl.astralinux.ru/astra/frozen/1.8_x86-64/1.8.1/repository \
                          -d
    
    ..build process..
  5. Собрать образ с минимальными параметрами для 1.8.1 rolling release и переопределенным методом импорта на 'load'

    $ SCF_DOCKER_SAVE_ACTION=load ./build-astra-image.sh -t 1.8.1 \
                          -c 1.8_x86-64 \
                          -r https://download.astralinux.ru/astra/stable/1.8_x86-64/repository
    
    ..build process..
  6. Собрать сертифицированный образ

    $ ./build-astra-image.sh -t 1.8.x \
                          -c 1.8_x86-64 \
                          -r https://download.astralinux.ru/astra/stable/1.8_x86-64/repository \
                          -z
  7. Протестировать образ без сборки. Может быть полезен в тех случаях, когда необходимо произвести синтетические тесты в уже подготовленном образе

    $ ./build-astra-image.sh -t 1.7.7 -s
    
    ..test process..
  8. md5sum проверка контрольных сумм

    cat MD5SUM | md5sum -c -
Имя Значение по умолчанию Тип Описание
SCF_CODENAME stable string Кодовое имя дистрибутива1(для астры: 1.7_x86-64 или 1.8_x86-64)2.
SCF_DEBUG OFF string Параметр включения/отключения отладки.
SCF_DOCKER_SAVE_ACTION import string Тип загрузки образа(может быть load/import).
SCF_IMAGE_NAME astra string Имя образа.
SCF_INCLUDE_DEV 0 integer Включить в образ содержимое /dev3.
SCF_PLATFORM $(dpkg --print-architecture) stringspec Архитектура системы.
SCF_REPO_URL "" string Путь до прокси реестра/репозитория с которым будет работать образ.
SCF_TAG_NAME "" string Тег задаваемого образа.
Таблица 3. Переопределяемые аргументы для скрипта сборки.

 

Процесс сертификации выглядит весьма не однозначным, поэтому для этого будет посвящен целый раздел тут. Пообщавшись с технической поддержкой, предоставляю краткую выжимку ответов из серии Вопрос - Ответ. Данные ответов приведены за 17 марта 2026. Текст вопросов будет слегка изменён, но отражает туже суть

  1. Про реестр образов

    • В: Является ли Ваш реестр образов сертифицируемым?
    • О: Эти образы не являются сертифицированным изделием и в поставку с Astra Linux Special Edition не входят.
  2. Про самосборки образов из официальных статей

    • В: Считаются ли образы, которые собраны посредством статьи приемлемыми для прохождения сертификации в ФСТЭК и могут ли они соответствовать формуляру ОС Астра Linux?
    • О: Сборка образов, реализованная за счёт эксплуатационной документации и базы знаний, способствует прохождению сертификации и обеспечит реализацию необходимых требований. Среди них, в том числе, требования об использовании сертифицированной среды контейнеризации.
  3. Про официальные сертифицированные образы ОС Астра Linux

    • В: Есть ли официальные образы от ОС Астра Linux, которые прошли сертификацию? где взять?
    • О: Образов, прошедших сертификацию, нет. Требования документа «Требования по безопасности информации. Утверждены приказом ФСТЭК России от 4 июля 2022 г. № 118» относятся к средству контейнеризации, а не к UBI-образам. Для операционной системы Astra Linux Special Edition выполнение приказа ФСТЭК России № 118 выполняется и подтверждается сертификатом ФСТЭК России № 2557. Сервисные пакеты, используемые при сборке, берутся из репозиториев операционной системы Astra Linux, которые проходят соответствующие проверки. Более подробно о репозиториях и их проверках Вы можете узнать на ресурсах: для 1.7 и для 1.8
  4. Про самосборки образов и их модификации для прохождения сертификации

    • В: Тех инструкций, что вы поставляете на вики, хватит для сборки такого? если нет, то как осуществить их соответствие сертифицируемому изделию? если собирать на сертифицируемой ОС Астра Linux, то это равно собрать сертифицируемый образ? формуляр можно использовать от сертифицируемой ОС Астра Linux как сравнение с референс? какие-то особенности сборки на сертифицируемой ОС Астра Linux есть для образов? если мы вносим изменения в сертифицируемый образ, то сертификация остается(вырезаем пакеты, правим конфиги)?
    • О: При проведении разработки СрЗИ с использованием контейнеров сертифицированной ОС необходимо учитывать следующие важные ресурсы:
    • О: 1. Разработка приложения должна осуществляться с учетом документа "Методические рекомендации по исключению влияния на функции безопасности операционной системы специального назначения «Astra Linux Special Edition» при проектировании, разработке и эксплуатации программного обеспечения". Дополнительная информация о технический ограничениях и пакетах реализующих функции безопасности представлена в Справочном центре: Использование стороннего программного обеспечения в аттестованных информационных системах, функционирующих под управлением Astra Linux Special Edition 1.8.
    • О: 2. Сборка осуществляется в строгом в соответствии с эксплуатационной документацией. Основные положения сборки выделены в документах: "Руководство администратора. Часть 1. РУСБ.10015-01 95 01-1" (10.1.2.1. Создание образа Docker) и "Руководство по КСЗ. Часть 1. РУСБ.10015-01 97 01-1"(создание и защиты изолированных программных сред (контейнеров)). Кроме того, разрабатываемое СЗИ рекомендуется разрабатывать таким образом, чтобы они были интернированы во встроенные СрЗИ ОС Astra Linux. Разрабатываемому ПО рекомендуется функционировать в условиях ограничения программной среды ОС (в «режиме замкнутой программной среды»), а также функционировать в условиях мандатного контроля целостности (МКЦ) ОС.
    • О: 3.Для обеспечения гарантированной совместимости с экосистемой «Группы Астра» рекомендуется провести тестирование приложения по программе Ready for Astra.
    • О: Дополнительные ресурсы:
    • О: - База знаний;
    • О: - Информационное письмо ФСТЭК. "О повышении безопасности средств защиты информации, в состав которых разработчики включают средства контейнеризации или образы контейнеров" от 13 января 2025 г. N 240/24/38: Информационное сообщение ФСТЭК России от 13 января 2025 г. N 240/24/38;
    • О: - Использование стороннего программного обеспечения в аттестованных информационных системах, функционирующих под управлением Astra Linux Special Edition 1.8.

Также прикрепляю полезную информацию о:

После генерации образа:

  • Остаётся только репозиторий, который проходит сертификацию + репозиторий с механизмом оперативного предоставления пользователям критических обновлений для ОС Астра Linux
  • Генерируется псевдо-SBOM файл по пути /usr/share/rocks/sbom-cert.json
  • Генерируется описание пакетов и контрольные суммы библиотек /usr/share/rocks/dpkg.query

Есть возможность сборки более компактной версии образа, можно сказать, что это аналог slim версии. Для этого необходимо использовать Dockerfile-astra-slim. Для сборки необходим пакет docker-buildx

Slim-образ не рекомендуется для использования в режиме расширенного МКЦ без дополнительной проверки совместимости

$ DOCKER_BUILDKIT=1 docker build \
    --progress=plain \
    -f Dockerfile-astra-slim \
    -t astra:1.8.1-slim \
    .
Имя Значение по умолчанию Тип Описание
image_name astra string Имя образа.
image_registry '' string Адрес до реестра образа. Например: --build-arg image_registry=my-container-registry:1111/.
image_version 1.8.1 string Версия образа.
version 1.0.0 float Версия выпуска минимального контейнера.
install_additional_tools '' string Дополнительные компоненты ОС, которые необходимо установить. Разделителем между компонентами должен быть строчный пробел: ldap-utils slapd.
remove_additional_binary '' string Дополнительные компоненты ОС, которые необходимо удалить из итогового образа. Разделителем между компонентами должен быть строчный пробел: sh numfmt.
locale_list_enable '' string Дополнительная локаль, которую необходимо установить в ОС. Разделителем между компонентами должен быть строчный пробел: en_US.UTF-8 ru_RU.UTF-8.
Таблица 4. Переопределяемые аргументы для сборки образа.

 

Категория Преимущества Недостатки
Размер Уменьшение размера на 10-15% за счёт удаления ненужных компонентов Возможна потеря совместимости с пакетами, требующими удалённых компонентов
Отладка Отсутствует отладочные пакеты, для оптимизации образа Для анализа проблем потребуется добавление утилит вручную (например, busybox)
PAM-модули Контейнеры редко используют PAM Ошибки при работе с пакетами, использующими PAM (например, sshd, sudo)
Безопасность Удаление потенциально опасных утилит (например, agetty, su, mount) Ограниченная отладка из-за отсутствия диагностических утилит (fsck, dmesg)
Локализация Сохранение только базовых локалей (en_US, ru_RU) Проблемы с приложениями, требующими специфичных локалей
Упрощение образа Удаление 200+ утилит снижает поверхность атаки (CVE) -
Производительность Оптимизация памяти через MALLOC_ARENA_MAX=2 и дедупликацию с jdupes -
Динамические бинарники Большинство сохраняет работоспособность Некоторые пакеты могут требовать PAM или glibc-модули, отсутствующие в образе
Совместимость с Docker Использование dumb-init корректно обрабатывает сигналы (SIGTERM, SIGKILL) -
Управление процессами Блокировка сервисных команд через перенаправление на /bin/true Невозможность запуска systemd и зависимых от него сервисов
Устаревшие компоненты Удалены expect, tcl8.6, bsd-write Не используются в современных workloads
Таблица 5. Сравнение преимуществ и недостатков в модернизации образа.

 

Пояснение удаления системных компонентов:

Бинарный файл Назначение Причина удаления
blkid Определение UUID и типов файловых систем Доступ к блочным устройствам обычно запрещён
partx Работа с таблицей разделов Только для хостовой системы
addpart Добавление разделов на диске Контейнеры не управляют физическими дисками
delpart Удаление разделов Аналогично
losetup Настройка loop-устройств Редко используется в контейнерах
blockdev Управление параметрами блочных устройств Избыточно для контейнеров
blkdiscard Очистка блоков на устройстве (SSD/HDD) Не требуется в контейнере
Таблица 6. Компоненты управления дисками и разделами.

 

Бинарный файл Назначение Причина удаления
e2fsck Проверка ext2/ext3/ext4 ФС Контейнеры используют volumes, проверка ФС - задача хоста
fstrim Оптимизация SSD (TRIM) Обычно выполняется на хосте
mkfs.* Создание файловых систем (ext4, xfs и др.) Контейнеры монтируют готовые ФС
tune2fs Настройка параметров ext-ФС Не требуется
resize2fs Изменение размера ext-разделов Неприменимо
fsck, fsck.* Проверка и ремонт ФС Избыточно
Таблица 7. Компоненты файловой системы.

 

Бинарный файл Назначение Причина удаления
cron Планировщик задач Альтернатива: внешний планировщик (Kubernetes CronJobs)
pam-* Модули PAM для аутентификации Контейнеры редко используют PAM
agetty Управление TTY-терминалами Контейнеры используют stdout/stderr
hwclock Управление аппаратными часами Контейнеры используют время хоста
rtcwake Пробуждение системы по таймеру Бессмысленно в контейнере
Таблица 8. Компоненты системных сервисов и демонов.

 

Бинарный файл Назначение Причина удаления
chpasswd Изменение паролей пользователей Stateless-контейнеры не хранят пользователей
gpasswd Управление группами Избыточно
newusers Пакетное создание пользователей Пользователи обычно задаются при запуске (via docker run --user)
vipw, vigr Редактирование /etc/passwd и /etc/group Контейнеры используют read-only корневую ФС
Таблица 9. Компоненты аутентификации и пользователей.

 

Бинарный файл Назначение Причина удаления
mesg Управление доступом к TTY Неактуально
wall Отправка сообщений всем пользователям Контейнеры изолированы
ldattach Настройка line discipline для TTY Устарело, не используется в контейнерах
Таблица 10. Сетевые и низкоуровневые утилиты.

 

Бинарный файл Назначение Причина удаления
sulogin Single-user mode login Неприменимо
zramctl Управление zram-устройствами Обычно настраивается на хосте
bsd-write Отправка сообщений между пользователями Устарело, потенциальная уязвимость
ctrlaltdel Настройка реакции на Ctrl+Alt+Del Бессмысленно в контейнере
Таблица 11. Устаревшие и опасные утилиты.

 

Бинарный файл Назначение Причина удаления
dmesg Чтение ядерных логов Контейнеры не имеют доступа к логам ядра
lsblk Просмотр блочных устройств Избыточно
wdctl Мониторинг watchdog-таймера Не требуется
last, lastb История входа пользователей Неактуально для ephemeral-контейнеров
Таблица 12. Отладочные и диагностические утилиты.

 

Ключевые принципы удаления:

  1. Изоляция контейнера: Удалено всё, что взаимодействует с железом (hwclock, blkid)
  2. Минимизация атакующей поверхности: Убраны утилиты с потенциальными уязвимостями (chpasswd, wall)
  3. Stateless-принцип: Удалены компоненты, хранящие состояние (cron, utmpdump)
  4. Ограничение debug-возможностей: Диагностика должна проводиться на хосте или через логи

Рекомендации:

## Для отладки можно добавить временный слой
FROM optimized-image AS debug
RUN apt-install.sh strace procps

Сравнительный размер образов:

$ docker images

REPOSITORY                                   TAG                 IMAGE ID       CREATED              SIZE
astra                                        1.7.5-slim          cccccccccccc   5 minutes ago        88.1MB
astra                                        1.7.5               cccccccccccc   5 minutes ago        89.4MB
astra                                        1.7.6-slim          cccccccccccc   5 minutes ago        88.4MB
astra                                        1.7.6               cccccccccccc   5 minutes ago        89.8MB
astra                                        1.7.7-slim          cccccccccccc   5 minutes ago        88.5MB
astra                                        1.7.7               cccccccccccc   5 minutes ago        90.4MB
astra                                        1.8.1-slim          cccccccccccc   5 minutes ago        96.5MB
astra                                        1.8.1               cccccccccccc   5 minutes ago        99.0MB
astra                                        1.8.2-slim          cccccccccccc   5 minutes ago        97.9MB
astra                                        1.8.2               cccccccccccc   5 minutes ago        100MB
... etc

Можно воспользоваться шаблоном при помощи которого реализуется сборка в CI/CD конвейере. Далее необходимо установить на хост-систему GitLab-runner. В качестве хост-системы необходимо использовать Astra Linux последней, из доступных, версий

Имя Значение по умолчанию Описание
SHELL /bin/bash Стартовая оболочка для Makefile.
MAKEFILE_LOCATION тут Определение точного местоположения запускаемого Makefile.
BUILD_TAG переопределяемое значение на основе переменной CONTAINER_BUILD_TAG Указывает на версию Astra Linux.
REGISTRY переопределяемое значение на основе переменной CONTAINER_PUBLISH_REGISTRY Пользовательский реестр образов, куда будет отправлен образ с Astra Linux.
REPOSITORY_BASE переопределяемое значение на основе переменной CONTAINER_BASE_REPOSITORY Пользовательский кеширующий/хостирующий репозиторий, откуда будет брать пакеты Astra Linux.
IMAGE_TAG_SUFFIX переопределяемое значение на основе переменной IMAGE_TAG_SUFFIX, иначе slim Переопределение тега для slim версии Astra Linux.
SCRIPT_FILE переопределяемое значение на основе переменной SCRIPT_FILE_EXEC, иначе ./build-astra-image.sh Имя пользовательского скрипта для создания базового образа.
SCRIPT_ARGS переопределяемое значение на основе переменной SCRIPT_ADDITIONAL_ARGS Дополнительные аргументы для скрипта build-astra-image.sh.
DOCKER_BIN переопределяемое значение на основе переменной CONTAINER_BIN, иначе docker Обозначение бинарного файла, который отвечает за запуск CLI способа сборки образа.
IMAGE_ARGS переопределяемое значение на основе переменной CONTAINER_ADDITIONAL_ARGS Дополнительные аргументы для slim версии. Используются как подстановочные аргументы сборки образа.
IMAGE_NAME переопределяемое значение на основе переменной CONTAINER_IMAGE_NAME, иначе astra Обозначение имени образа.
IMAGE_BUILDER_FILE переопределяемое значение на основе переменной CONTAINER_IMAGE_BUILDER_FILE, иначе Dockerfile-astra-slim Обозначение имени Dockerfile для сборки slim образа.
CONTAINER_SKIP_SLIM '' При значении TRUE будет дополнительно собрана slim версия.
CERTIFICATION_ARG переопределяемое значение на основе переменной ALLOW_CERTIFICATION, иначе '' При объявлении переменной подставляет в аргумент сборки базового образа -z.
CERTIFICATION_SUFFIX переопределяемое значение на основе переменной ALLOW_CERTIFICATION, иначе '' При объявлении переменной подставляет в суффикс тега образа -certified.
Таблица 13. Переопределяемые аргументы для сборки в управлении Makefile.

 

Более подробно почитать про Makefile, переменные Makefile

# Download gitlab-runner
$ curl -LJO "https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/deb/gitlab-runner-helper-images.deb"
$ curl -LJO "https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/deb/gitlab-runner_$(dpkg --print-architecture).deb"

...download process...

После последовательной установки deb пакетов необходимо отредактировать daemon unit файл

$ nano /etc/systemd/system/gitlab-runner.service

[Unit]
Description=GitLab Runner
ConditionFileIsExecutable=/usr/bin/gitlab-runner

After=network.target

[Service]
StartLimitInterval=5
StartLimitBurst=10
ExecStart=/usr/bin/gitlab-runner "run" "--config" "/etc/gitlab-runner/config.toml" "--working-directory" "/root" "--service" "gitlab-runner" "--user" "root"

User=root
Group=root


Restart=always

RestartSec=120
EnvironmentFile=-/etc/sysconfig/gitlab-runner

[Install]
WantedBy=multi-user.target

$ systemctl daemon-reload
$ systemctl restart gitlab-runner

После, при помощи GitLab веб-интерфейса настройте сопряжение между Astra Linux и сервером GitLab. После всех проделанных манипуляций можно использовать конвейер для выполнения сборки образа Astra Linux

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

Error response from daemon: directory '/var/lib/docker/overlay2/84dd6d8ea4091978616b1c933aaeb9e45ff729207a0028030a595e3ce69a6238/diff' contains vulnerabilities!
{oval:ru.altx-soft.nix:def:188464 true Astra Linux -- уязвимость в expat, ia32-libs (2022-0819SE17) }
{oval:ru.altx-soft.nix:def:188228 true Astra Linux -- уязвимость в python2.7, python3.7 (2022-0819SE17) }
{oval:ru.altx-soft.nix:def:188192 true Astra Linux -- уязвимость в glibc (2022-0819SE17) }
{oval:ru.altx-soft.nix:def:188121 true Astra Linux -- уязвимость в python3.7 (2022-0819SE17) }
...

Отключить встроенную проверку уязвимостей (не рекомендуется) можно следующим образом:

Порядок проверки уязвимостей в образах определяется значением параметра astra-sec-level службы dockerd. Значением параметра может быть от 1 до 6 включительно, определяющее класс защиты:

  • Классы защиты 1 - 5: при обнаружении уязвимости в контейнере его запуск блокируется
  • Класс защиты 6: отладочный режим, при обнаружении уязвимости в контейнере выводится соответствующее предупреждение, при этом запуск контейнера не блокируется

Задать значение параметра можно:

  • С помощью конфигурационного файла
  • С помощью параметров запуска службы

Конфигурационный файл:

## Установить jq для удобства работы
apt update && apt install -y jq

## Для версий 1.7.4-1.7.7 и 1.8.1-1.8.2
## Создать конфигурационный файл /etc/docker/daemon.json если он не был создан ранее и указать в нем параметры
DOCKER_DAEMON_FILE='/etc/docker/daemon.json'
[[ ! -f ${DOCKER_DAEMON_FILE} ]] || echo "$(jq '. += {"debug" : true, "astra-sec-level" : 6}' ${DOCKER_DAEMON_FILE})" >"${DOCKER_DAEMON_FILE}"
[[ -f ${DOCKER_DAEMON_FILE} ]] || {
  mkdir -p "${DOCKER_DAEMON_FILE%/*}"
  echo "{}" >"${DOCKER_DAEMON_FILE}"
  echo "$(jq '. += {"debug" : true, "astra-sec-level" : 6}' ${DOCKER_DAEMON_FILE})" >"${DOCKER_DAEMON_FILE}"
}

## Для версий >=1.7.8 и >=1.8.3
## Создать конфигурационный файл /etc/docker/daemon.json если он не был создан ранее и указать в нем параметры
DOCKER_DAEMON_FILE='/etc/docker/daemon.json'
[[ ! -f ${DOCKER_DAEMON_FILE} ]] || echo "$(jq '. += {"debug" : true, "scan-on-image-create" : false, "scan-on-container-start": false, "periodic-scan-time-in-hours": 0}' ${DOCKER_DAEMON_FILE})" >"${DOCKER_DAEMON_FILE}"
[[ -f ${DOCKER_DAEMON_FILE} ]] || {
  mkdir -p "${DOCKER_DAEMON_FILE%/*}"
  echo "{}" >"${DOCKER_DAEMON_FILE}"
  echo "$(jq '. += {"debug" : true, "scan-on-image-create" : false, "scan-on-container-start": false, "periodic-scan-time-in-hours": 0}' ${DOCKER_DAEMON_FILE})" >"${DOCKER_DAEMON_FILE}"
}

Параметры запуска службы:

## Выполнить команду
systemctl edit docker

## Для версий 1.7.4-1.7.7 и 1.8.1-1.8.2
## Ввести и сохранить данные
[Service]
Environment="DOCKER_OPTS=--astra-sec-level 6"

Warning

Независимо от использованного способа перезапустить службу Docker: systemctl restart docker

По всем вопросам о сотрудничестве - сюда

Billy Herrington gif
Billy Herrington in the forge of Skyrim.

Footnotes

  1. 🛠️ Подробнее об релизе Astra Linux

  2. 🛠️ В качестве проверки можно использовать эту команду awk -F'=' '$1=="VERSION_CODENAME" { print $2 ;}' /etc/os-release

  3. 🛠️ По умолчанию выключено включение, если необходимо включить, то перед запуском скрипта передайте как значение 1. Пример: export SCF_INCLUDE_DEV=1

About

Проект посвящён сборке образов для контейнерных сред с нуля

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors