Достъпен е Bottlerocket 1.8, дистрибутив, базиран на изолирани контейнери

Публикувана е версия на Linux дистрибутива Bottlerocket 1.8.0, развиван с участието на Amazon за ефективно и безопасно стартиране на изолирани контейнери. Инструментите и управляващите компоненти на дистрибутива са написани на езика Rust и се разпространяват под лицензите MIT и Apache 2.0. Поддържа се стартирането на Bottlerocket в клъстери Amazon ECS, VMware и AWS EKS Kubernetes, а также създаването на произволни сборки и версии, които позволяват използването на различни инструменти за оркестрация и runtime за контейнери.

Дистрибутивът предоставя атомарно и автоматично обновяем неразделим системен образ, включващ ядро на Linux и минимална системна среда, съдържаща само компонентите, необходими за стартиране на контейнери. В средата са ангажирани системният мениджър systemd, библиотеката Glibc, инструментариумът за изграждане Buildroot, товарителят GRUB, конфигураторът на мрежата wicked, runtime за изолирани контейнери containerd, платформата за оркестрация на контейнери Kubernetes, удостоверителят aws-iam-authenticator и агентът Amazon ECS.

Инструментите за оркестрация на контейнери се предоставят в отделен управляващ контейнер, който е активиран по подразбиране и се управлява чрез API и AWS SSM Agent. В основния образ липсва команден интерфейс, сървър SSH и интерпретируеми езици (например, Python или Perl) — средствата за администратора и инструментите за отстраняване на неизправности са изнесени в отделен служебен контейнер, който по подразбиране е деактивиран.

Ключовата разлика от подобни дистрибутиви, като Fedora CoreOS, CentOS/Red Hat Atomic Host, е основната ориентация към предоставяне на максимална безопасност в контекста на засилване на защитата на системата от възможни заплахи, усложняване на експлоатацията на уязвимости в компонентите на ОС и повишаване на изолацията на контейнерите. Контейнерите се създават с помощта на стандартните механизми на ядрото на Linux — cgroups, пространства за имена и seccomp. За допълнителна изолация в дистрибутива се използва SELinux в режим «enforcing».

Коренният дял е монтиран в режим само за четене, а дялът с настройките /etc е монтиран в tmpfs и възстановява първоначалното си състояние след рестартиране. Пряка промяна на файлове в директорията /etc, като /etc/resolv.conf и /etc/containerd/config.toml, не се поддържа — за постоянно запазване на настройките следва да се използва API или да се преместят функционалността в отделни контейнери. За криптографска проверка за цялостност на коренния дял е задействан модулът dm-verity, а при откриване на опити за модификация на данните на ниво блочно устройство системата се рестартира.

Повечето системни компоненти са написани на езика Rust, предоставящ средства за безопасна работа с паметта, което позволява да се избегнат уязвимости, причинени от достъп до паметта след нейното освобождаване, разразглеждане на нулеви указатели и излизане извън границите на буфера. При компилация по подразбиране се прилагат режимите за компилация "—enable-default-pie" и "—enable-default-ssp" за включване на рандомизация на адресното пространство на изпълнимите файлове (PIE) и защита от преливане на стека чрез подмяна на канарените маркери. За пакети, написани на C/C++, допълнително се включват флаговете "-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" и "-fstack-clash-protection".

В новото издание:

  • Актуализирано съдържание на административни и управляващи контейнери.
  • Runtime за изолирани контейнери е актуализиран до клона containerd 1.6.x.
  • Осигурен е рестарт на фонова процеси, координиращи работата на контейнерите, след промени в хранилището на сертификати.
  • Предоставена е възможност за задаване на параметри за стартиране на ядрото чрез секцията Boot Configuration.
  • Включено е игнорирането на празни блокове при контрол на целостта на коренния дял с помощта на dm-verity.
  • Предоставена е възможност за статично свързване на имена на хостове в /etc/hosts.
  • Предоставена е възможност за генериране на мрежова конфигурация с помощта на утилитата netdog (добавена команда generate-net-config).
  • Предложени са нови варианти на дистрибуцията с поддръжка на Kubernetes 1.23. Намалено е времето за стартиране на pod-ове в Kubernetes чрез деактивиране на режима configMapAndSecretChangeDetectionStrategy. Добавени са нови настройки на kubelet-ите: provider-id и podPidsLimit.
  • Предложен е нов вариант на дистрибуцията "aws-ecs-1-nvidia" за Amazon Elastic Container Service (Amazon ECS), доставян с драйвери NVIDIA.
  • Добавена поддръжка на устройства за съхранение Microchip Smart Storage и MegaRAID SAS. Разширена е поддръжката на Ethernet карти с чипове Broadcom.
  • Обновени са версиите на пакетите и зависимостите за езици Go и Rust, както и версиите на пакетите от трети страни. Bottlerocket SDK е актуализиран до версия 0.26.0.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster