Este disponibil Bottlerocket 1.8, o distribuție bazată pe containere izolate

A fost lansată versiunea 1.8.0 a distribuției Linux Bottlerocket, dezvoltată cu participarea companiei Amazon pentru lansarea eficientă și sigură a containerelor izolate. Instrumentele și componentele de gestionare ale distribuției sunt scrise în limbajul Rust și sunt distribuite sub licențele MIT și Apache 2.0. Se sprijină rularea Bottlerocket în clustere Amazon ECS, VMware și AWS EKS Kubernetes, precum și generarea de construcții și ediții personalizate, care permit utilizarea diferitelor unelte de orchestrare și runtime pentru containere.

Distribuția oferă o imagine de sistem atomică și actualizabilă automat, indisolubilă, care include kernelul Linux și un mediu de sistem minim, incluzând doar componentele necesare pentru rularea containerelor. În mediu sunt implicate managerul de sistem systemd, biblioteca Glibc, instrumentele de construcție Buildroot, bootloader-ul GRUB, configuratorul de rețea wicked, runtime-ul pentru containere izolate containerd, platforma de orchestrare a containerelor Kubernetes, autentificatorul aws-iam-authenticator și agentul Amazon ECS.

Instrumentele pentru orchestrarea containerelor sunt furnizate într-un container de gestionare separat, care este activat în mod implicit și gestionat prin API și AWS SSM Agent. Imaginea de bază nu conține un shell de comandă, serverul SSH și limbajele interpretate (de exemplu, nu există Python sau Perl) — instrumentele pentru administratori și uneltele de depanare sunt plasate într-un container de serviciu separat, care este dezactivat în mod implicit.

Principala diferență față de distribuțiile similare, cum ar fi Fedora CoreOS, CentOS/Red Hat Atomic Host, este orientarea primară spre asigurarea unei securități maxime în contextul întăririi protecției sistemului împotriva amenințărilor potențiale, dificultății exploatării vulnerabilităților în componentele OS și creșterii izolării containerelor. Containerele sunt create folosind mecanisme standard ale kernel-ului Linux — cgroups, spații de nume și seccomp. Pentru o izolare suplimentară, în distribuție se aplică SELinux în modul „enforcing”.

Partiția de bază este montată în mod numai pentru citire, iar partiția de configurare /etc este montată în tmpfs și își restabilește starea originală după repornire. Modificarea directă a fișierelor din directorul /etc, cum ar fi /etc/resolv.conf și /etc/containerd/config.toml, nu este suportată – pentru salvarea permanentă a setărilor ar trebui utilizat API-ul sau funcționalitatea ar trebui extinsă în containere separate. Pentru verificarea criptografică a integrității partiției de bază este activat modulul dm-verity, iar în caz de încercare de modificare a datelor la nivel de dispozitiv bloc, sistemul se va reporni.

Cele mai multe componente de sistem sunt scrise în limbajul Rust, care oferă mijloace pentru o utilizare sigură a memoriei, evitând vulnerabilitățile cauzate de accesul la memoria eliberată, dereferențierea pointerilor nuli și depășirea limitelor bufferului. La compilarea implicită se aplică modurile de compilare „--enable-default-pie” și „--enable-default-ssp” pentru a activa randomizarea spațiului de adresare al fișierelor executabile (PIE) și protecția împotriva overflow-ului stivei prin substituția etichetelor de canar. Pentru pachetele scrise în C/C++, sunt adăugate suplimentar flag-urile „-Wall”, „-Werror=format-security”, „-Wp,-D_FORTIFY_SOURCE=2”, „-Wp,-D_GLIBCXX_ASSERTIONS” și „-fstack-clash-protection”.

În noua versiune:

  • Conținutul containerelor administrative și de gestionare a fost actualizat.
  • Runtime-ul pentru containere izolate a fost actualizat la ramura containerd 1.6.x.
  • A fost asigurat repornirea proceselor de fundal care coordonează funcționarea containerelor, după modificări în depozitul de certificate.
  • A fost oferită posibilitatea setării parametrilor de boot ale nucleului prin secțiunea Boot Configuration.
  • A fost inclusă ignorarea blocurilor goale în cadrul controlului integrității partiției principale folosind dm-verity.
  • A fost oferită posibilitatea de a lega static numele gazdelor în /etc/hosts.
  • A fost oferită posibilitatea de generare a configurației de rețea folosind utilitarul netdog (s-a adăugat comanda generate-net-config).
  • Sunt propuse noi variante ale distribuției cu suport pentru Kubernetes 1.23. Timpul de pornire al pod-urilor în Kubernetes a fost redus prin dezactivarea modului configMapAndSecretChangeDetectionStrategy. Au fost adăugate noi setări kubelet: provider-id și podPidsLimit.
  • A fost propusă o nouă variantă a distribuției „aws-ecs-1-nvidia” pentru Amazon Elastic Container Service (Amazon ECS), livrată cu drivere NVIDIA.
  • A fost adăugat suport pentru dispozitivele de stocare Microchip Smart Storage și MegaRAID SAS. Suportul pentru plăcile de rețea pe cipuri Broadcom a fost extins.
  • Versiunile pachetelor și dependențelor pentru limbajele Go și Rust, precum și versiunile pachetelor cu programe terțe au fost actualizate. Bottlerocket SDK a fost actualizat la versiunea 0.26.0.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster