Firma Microsoft opublikowała aktualizację dystrybucji CBL-Mariner 1.0.20210901 (Common Base Linux Mariner), która rozwija się jako uniwersalna platforma bazowa dla środowisk Linux używanych w infrastrukturze chmurowej, systemach edge i różnych usługach Microsoft. Projekt ma na celu ujednolicenie rozwiązań Linux stosowanych w Microsoft oraz uproszczenie utrzymania systemów Linux o różnym przeznaczeniu w aktualnym stanie. Opracowania projektu są udostępniane na licencji MIT.
W nowym wydaniu:
- Rozpoczęto tworzenie podstawowego obrazu ISO (700 MB). W pierwszym wydaniu gotowe obrazy ISO nie były dostarczane, zakładano, że użytkownik sam może stworzyć obraz z potrzebnym wyposażeniem (instrukcje budowy przygotowane dla Ubuntu 18.04).
- Wdrożono wsparcie dla automatycznego aktualizowania pakietów, w tym celu dołączono aplikację Dnf-Automatic.
- Jądro Linux zostało zaktualizowane do wersji 5.10.60.1. Zaktualizowano wersje programów, w tym openvswitch 2.15.1, golang 1.16.7, logrus 1.8.1, tcell 1.4.0, gonum 0.9.3, testify 1.7.0, crunchy 0.4.0, xz 0.5.10, swig 4.0.2, squashfs-tools 4.4, mysql 8.0.26.
- W OpenSSL dodano możliwość przywrócenia wsparcia dla TLS 1 i TLS 1.1.
- Do sprawdzania kodów źródłowych narzędzi wykorzystano narzędzie sha256sum.
- Dołączono nowe pakiety: etcd-tools, cockpit, aide, fipscheck, tini.
- Usunięto pakiety brp-strip-debug-symbols, brp-strip-unneeded oraz ca-legacy. Usunięto pliki SPEC dla pakietów Dotnet i aspnetcore, które teraz kompilowane są przez główny zespół deweloperów .NET i umieszczane w osobnym repozytorium.
- W przenoszone wersje pakietów wprowadzono poprawki zabezpieczeń.
Przypominamy, że dystrybucja CBL-Mariner oferuje mały zbiór podstawowych pakietów, które stanowią uniwersalną podstawę do tworzenia wnętrza kontenerów, środowisk hostujących oraz usług uruchamianych w infrastrukturach chmurowych i na urządzeniach brzegowych. Bardziej złożone i wyspecjalizowane rozwiązania mogą być tworzone poprzez dodawanie dodatkowych pakietów na CBL-Mariner, jednak baza dla wszystkich takich systemów pozostaje niezmienna, co upraszcza wsparcie i przygotowanie aktualizacji. Na przykład, CBL-Mariner jest wykorzystywany jako baza dla mini-dystrybucji WSLg, która dostarcza komponenty stosu graficznego do uruchamiania aplikacji GUI Linux w środowiskach opartych na subsystemie WSL2 (Windows Subsystem for Linux). Rozszerzona funkcjonalność w WSLg jest realizowana poprzez włączenie dodatkowych pakietów z kompozytem. serwerem Weston, XWayland, PulseAudio i FreeRDP.
System CBL-Mariner umożliwia generowanie zarówno pojedynczych pakietów RPM na podstawie plików SPEC i kodu źródłowego, jak i monolitycznych obrazów systemowych, które są tworzone za pomocą narzędzi rpm-ostree i aktualizowane atomowo bez rozdzielania na pojedyncze pakiety. W związku z tym wspierane są dwie modele dostarczania aktualizacji: poprzez aktualizację pojedynczych pakietów oraz poprzez rekonstrukcję i aktualizację całego obrazu systemowego. Dostępne są repozytorium obejmujące około 3000 już zbudowanych pakietów RPM, które można wykorzystać do komponowania własnych obrazów na podstawie pliku konfiguracyjnego.
Dystrybucja zawiera jedynie niezbędne komponenty i jest zoptymalizowana pod kątem minimalnego zużycia pamięci i przestrzeni dyskowej, a także dla szybkiego rozruchu. Dystrybucja wyróżnia się również włączeniem różnych dodatkowych mechanizmów zwiększających bezpieczeństwo. W projekcie zastosowano podejście "maksymalne bezpieczeństwo domyślnie". Umożliwia filtrację wywołań systemowych za pomocą mechanizmu seccomp, szyfrowanie partycji dyskowych oraz weryfikację pakietów za pomocą podpisu cyfrowego.
Aktywowane są wspierane w jądrze Linux tryby randomizacji przestrzeni adresowej, a także mechanizmy ochrony przed atakami związanymi z symlinkami, mmap, /dev/mem i /dev/kmem. Dla obszarów pamięci, w których umieszczane są segmenty z danymi jądra i modułów, ustawiony jest tryb tylko do odczytu i zabronione jest wykonanie kodu. Opcjonalnie dostępna jest możliwość zakazu ładowania modułów jądra po inicjalizacji systemu. Do filtracji pakietów sieciowych wykorzystywane są narzędzia iptables. Na etapie budowy domyślnie włączone są tryby ochrony przed przepełnieniem stosu, przepełnieniem bufora oraz problemami z formatowaniem napisów (_FORTIFY_SOURCE, -fstack-protector, -Wformat-security, relro).
Do zarządzania usługami i uruchamianiem wykorzystywany jest menedżer systemowy systemd. Do zarządzania pakietami dostępne są menedżery pakietów RPM i DNF (wariant tdnf od vmWare). Domyślnie serwer SSH nie jest włączany. Do instalacji dystrybucji dostarczany jest instalator, który może pracować zarówno w trybie tekstowym, jak i graficznym. W instalatorze oferowana jest możliwość instalacji z pełnym lub podstawowym zestawem pakietów, dostępny jest interfejs do wyboru partycji dyskowej, wyboru nazwy hosta oraz tworzenia użytkowników.
Źródło: opennet.ru
