Компания Microsoft переименовала дистрибутив CBL-Mariner в Azure Linux. Ранее имя Azure Linux использовалось для специализированной сборки, устанавливаемой в Azure Kubernetes Service (AKS), а общая платформа для создания дистрибутивов развивалась под именем CBL-Mariner (Common Base Linux Mariner). Несколько дней назад Microsoft переименовал репозиторий CBL-Mariner в azurelinux, поменял названия утилит и заменил упоминание CBL-Mariner в документации на Azure Linux. После этого был сформирован первый выпуск платформы с новым именем – Azure Linux 2.0.20240301, в котором устранены накопившиеся ошибки и уязвимости в приложениях.
Проект нацелен на унификацию применяемых в Microsoft Linux-решений и упрощение поддержания Linux-систем различного назначения в актуальном состоянии. Среди прочего дистрибутив применяется в облачной инфраструктуре, edge-системах и различных сервисах Microsoft. Наработки проекта распространяются под лицензией MIT. Пакеты формируются для архитектур aarch64 и x86_64. Загрузочный ISO-образ подготовлен (860 МБ) для архитектуры x86_64.
Дистрибутив Azure Linux предоставляет небольшой типовой набор основных пакетов, выступающих универсальной основой для создания начинки контейнеров, хост-окружений и сервисов, запускаемых в облачных инфраструктурах и на edge-устройствах. Более сложные и специализированные решения могут создаваться путём добавления дополнительных пакетов поверх Azure Linux, но основа для всех подобных систем остаётся неизменной, что упрощает сопровождение и подготовку обновлений.
Например, Azure Linux применяется в качестве основы мини-дистрибутива WSLg, в котором предоставляются компоненты графического стека для организации запуска GUI-приложений Linux в окружениях на базе подсистемы WSL2 (Windows Subsystem for Linux). Расширенная функциональность в WSLg реализуется через включение дополнительных пакетов с композитным сервером Weston, XWayland, PulseAudio и FreeRDP.
Система сборки Azure Linux позволяет генерировать как отдельные RPM-пакеты на основе SPEC-файлов и исходных текстов, так и монолитные системные образы, формируемые при помощи инструментария rpm-ostree и обновляемые атомарно без разбивки на отдельные пакеты. Соответственно, поддерживается две модели доставки обновлений: через обновление отдельных пакетов и через перестроение и обновление всего системного образа. Доступен репозиторий, включающий около 3000 уже собранных RPM-пакетов, который можно использовать для компоновки собственных образов на основе файла конфигурации.
Базовая платформа включает только самые необходимые компоненты и оптимизирована для минимального потребления памяти и дискового пространства, а также для высокой скорости загрузки. В проекте применяется подход “максимальная безопасность по умолчанию”, подразумевающий включение различных дополнительных механизмов для повышения защиты:
- Фильтрация системных вызовов при помощи механизма seccomp.
- Шифрование дисковых разделов.
- Верификация пакетов по цифровой подписи.
- Рандомизация адресного пространства.
- Защита от атак, связанных с символическими ссылками, mmap, /dev/mem и /dev/kmem.
- Режим только для чтения и запрет исполнения кода в областях памяти, в которых размещаются сегменты с данными ядра и модулей.
- Опция для запрета загрузки модулей ядра после инициализации системы.
- Использование iptables для фильтрации сетевых пакетов.
- Включение при сборке режимов защиты от переполнения стека, переполнений буфера и проблем с форматированием строк (_FORTIFY_SOURCE, -fstack-protector, -Wformat-security, relro).
Для управления сервисами и загрузкой применяется системный менеджер systemd. Для управления пакетами поставляются пакетные менеджеры RPM и DNF. SSH-сервер по умолчанию не включается.
Для установки дистрибутива предоставляется инсталлятор, который может работать как в текстовом, так и в графическом режимах. В инсталляторе предоставляется возможность установки с полным или базовым набором пакетов, предлагается интерфейс для выбора дискового раздела, выбора имени хоста и создания пользователей.
Кроме изменений, связанных с CBL-Mariner и Azure Linux, компания Microsoft также представила новый выпуск платформы Azure Sphere 24.03, построенной на базе ядра Linux и предназначенной для создания устройств интернета-вещей на базе энегоэффективных микроконтроллеров (MCU, microcontroller unit) с интегрированными периферийными подсистемами. Одной из особенностей платформы является подсистема Pluton, предназначенная для предоставления аппаратных средств для шифрования, хранения закрытых ключей и выполнения сложных криптографических операций. Pluton включает в себя отдельный специализированный процессор, криптографический движок, аппаратный генератор случайных чисел и изолированное хранилище ключей.