Ветка Azure Linux 4 отмечена как находящаяся в процессе разработки. Для рабочих внедрений рекомендуется использовать ветку Azure Linux 3. Готовые сборки пока не предоставляются, но имеется инструкция по сборке. Специфичные для дистрибутива изменения поставляются под лицензией MIT.
При формировании дистрибутива вместо создания форка Fedora в Azure Linux 4 применён декларативный подход, позволяющий пересобирать RPM-пакеты с необходимыми изменениями и настройками из штатных репозиториев Fedora, используя конфигурационные файлы в формате TOML. Дополнительная функциональность определяется в форме оверлеев, позволяющих генерировать специфичные для Azure Linux spec-файлы пакетов на основе штатных SRPM-пакетов из Fedora Linux. Оверлеи определяют изменения, вносимые поверх пакетов Fedora, такие как дополнительные конструкции в spec-файлах, патчи и параметры сборки.
Пакетной единицей в Azure Linux 4 являются «компоненты» (исходный пакет), которые по большей части импортируются из Fedora через dist-git и могут формировать один или несколько RPM-пакетов. Все компоненты собираются из исходного кода, бинарные пакеты из Fedora не переносятся. Для генерации результирующих RPM-пакетов на основе оверлеев применяется инструментарий azldev, написанный на языке Go и поставляемый под лицензией MIT.
Из особенностей Azure Linux 4 отмечается поставка ядра Linux с дополнительными оптимизациями, защита от атак через зависимости (supply chain), предсказуемый цикл поддержки и выпуска обновлений, встроенные возможности для интеграции с облаком Azure, изменения для усиления безопасности. Система сборки Azure Linux позволяет генерировать как установочные окружения с RPM-пакетами, так и монолитные системные образы, формируемые при помощи инструментария rpm-ostree и обновляемые атомарно без разбивки на отдельные пакеты. Поддерживается две модели доставки обновлений: через обновление отдельных пакетов и через перестроение и обновление всего системного образа.
Из применяемых в Azure Linux мер по повышению безопасности:
- Фильтрация системных вызовов при помощи механизма seccomp.
- Шифрование дисковых разделов.
- Верификация пакетов по цифровой подписи.
- Рандомизация адресного пространства.
- Защита от атак, связанных с символическими ссылками, mmap, /dev/mem и /dev/kmem.
- Режим только для чтения и запрет исполнения кода в областях памяти, в которых размещаются сегменты с данными ядра и модулей.
- Опция для запрета загрузки модулей ядра после инициализации системы.
- Включение при сборке режимов защиты от переполнения стека, переполнений буфера и проблем с форматированием строк (_FORTIFY_SOURCE, -fstack-protector, -Wformat-security, relro).
- Поставка минимально необходимых пакетов, без активации лишних сервисов.
Источник: http://www.opennet.ru/opennews/art.shtml?num=65479
