Ilmunik on vÀlja antud Linuxi jaotuse Bottlerocket 1.3.0, mille arendamisel osaleb ettevÔte Amazon, et tÔhusalt ja turvaliselt kÀitada isoleeritud konteinerite rakendusi. Jaotuse tööriistad ja juhtimis komponendid on kirjutatud Rusti ning neid jaotatakse MIT ja Apache 2.0 litsentside alusel. Bottlerocket'i kÀitamine on toetatud Amazon ECS, VMware ja AWS EKS Kubernetes klasterites, samuti kohandatud ehituste ja vÀljaannete loomine, mis vÔimaldab kasutada erinevaid orkestreerimise ja konteinerite runtime tööriistu.
Jaotus pakub atomaarset ja automaatselt uuenevat, ĂŒheosalise sĂŒsteemi pilti, mis sisaldab Linuxi tuuma ja minimaalset sĂŒsteemi keskkonda, millel on ainult vajalikud komponendid konteinerite kĂ€itamiseks. Keskkonnas on kasutusel sĂŒsteemihaldur systemd, Glibc raamatukogu, Buildrooti koostamisriistade komplekt, GRUB kĂ€ivitaja, vĂ”rgukonfiguratsiooni tööriist wicked, konteinerite eraldatamise tööaeg containerd, konteinerite orkestreerimise platvorm Kubernetes, aws-iam-authenticator autentimisriist ja Amazon ECS-agent.
Konteinerite orkestreerimise tööriistad tarnitakse eraldi halduskonteineris, mis lĂŒlitatakse vaikimisi sisse ja mida hallatakse lĂ€bi API ja AWS SSM Agendi. Aluspildis ei ole kĂ€surea tĂ”lgendajat, server SSH ja tĂ”lgendatavad keeled (nt Python vĂ”i Perl) â administraatorite jaoks mĂ”eldud tööriistad ja tĂ”rkeotsinguvahendid on viidud eraldi teeninduskonteinerisse, mis on vaikimisi vĂ€lja lĂŒlitatud.
Peamine erinevus sarnaste jaotuste, nagu Fedora CoreOS, CentOS/Red Hat Atomic Host, vahel on suunatus maksimaalse turvalisuse pakkumisele, et tugevdada sĂŒsteemi kaitset vĂ”imalike ohtude eest, keeruliseks muuta haavatavuste Ă€rakasutamine OS komponentides ja suurendada konteinerite isoleeritust. Kotteeritatakse tavaliste Linuxi tuuma mehhanismide â cgroups, nimetamisruumide ja seccomp abil. TĂ€iendava isoleerimise tagamiseks kasutatakse jaotuses SELinuxi 'enforcing' reĆŸiimis.
KĂ€ivitusosa monteeritakse ainult lugemisreĆŸiimis, samas kui seadistusosa /etc monteeritakse tmpfs ja taastab algse oleku pĂ€rast taaskĂ€ivitamist. Failide otsene muutmine kataloogis /etc, nagu /etc/resolv.conf ja /etc/containerd/config.toml, ei ole toetatud â seadete pĂŒsivaks salvestamiseks tuleks kasutada API-d vĂ”i funktsionaalsust eraldada eraldi konteineritesse. KrĂŒptograafilise tĂ”e kontrollimise jaoks kasutatakse moduli dm-verity, ning kui andmete muutmise katse tuvastatakse blokeerimisseadme tasemel, taaskĂ€ivitub sĂŒsteem.
Enamik sĂŒsteemi komponente on kirjutatud keeles Rust, mis pakub mĂ€luohutusvahendeid, mis aitavad vĂ€ltida haavatavusi, nagu juurdepÀÀs vabastatud mĂ€lu aladele, nullviidete dereferentseerimine ja puhvrivĂ€ljakandeid. VaikesĂ€tetena rakendatakse koostamisel kompilatsioonireĆŸiime "--enable-default-pie" ja "--enable-default-ssp", et lubada teostatavfailide (PIE) aadressirikkalduse randomiseerimist ja kaitset virna ĂŒlevoolu eest lĂ€bi kanarisiltide asendamise. C/C++ keeles kirjutatud paketid saavad lisaks lipud "-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" ja "-fstack-clash-protection".
Uues vÀljaandes:
- Parandatud on haavatavused docker'i tööriistade ja containerd runtime'is (CVE-2021-41089, CVE-2021-41091, CVE-2021-41092, CVE-2021-41103), mis olid seotud vale ligipÀÀsu seadistamisega, mis vÔimaldas mitteprivilegeeritud kasutajatel pÀÀseda pÔhikaustast vÀlja ja kÀitada vÀliseid programme.
- Kubelet'i ja pluto'sse on lisatud IPv6 toetus.
- On vÔimaldatud konteineri taaskÀivitamine pÀrast selle seadete muutmist.
- Paketti eni-max-pods on lisatud Amazon EC2 M6i instantside tugi.
- Open-vm-tools on saanud seadme filtrite toe, mis on rakendatud Cilium'i tööriista baasil.
- x86_64 platvormile on realiseeritud hĂŒbriidne kĂ€ivitamisreĆŸiim (toetades EFI ja BIOS).
- Rust'i paketid ja sÔltuvused on vÀrskendatud.
- Toetuse lÔppemine jaotusele aws-k8s-1.17, mis pÔhineb Kubernetes 1.17-l. Soovitatakse kasutada aws-k8s-1.21 varianti, mis toetab Kubernetes 1.21. K8s variantides on kasutusele vÔetud cgroup runtime.slice ja system.slice seaded.
Allikas: opennet.ru
