Udgivelse af Bottlerocket 1.3, en distribution baseret på isolerede containere

Udgivelsen af Linux-distributionen Bottlerocket 1.3.0 er offentliggjort, udviklet i samarbejde med Amazon for effektiv og sikker kørsel af isolerede containere. Værktøjerne og de styrende komponenter i distributionen er skrevet i Rust og distribueres under MIT- og Apache 2.0-licenserne. Bottlerocket understøtter kørsel i Amazon ECS-klynger, VMware og AWS EKS Kubernetes, samt oprettelse af brugerdefinerede versioner og udgaver, der kan anvende forskellige orkestreringsværktøjer og runtime til containere.

Distributionen tilbyder et atomart og automatisk opdateret udeleligt systembillede, der inkluderer Linux-kernen og et minimalt systemmiljø med kun de komponenter, der er nødvendige for at køre containere. I miljøet anvendes systemmanageren systemd, biblioteket Glibc, byggesættet Buildroot, bootloaderen GRUB, netværkskonfiguratoren wicked, runtime til isolerede containere containerd, orkestreringsplatformen Kubernetes, autentifikatoren aws-iam-authenticator og Amazon ECS-agenten.

Værktøjerne til orkestrering af containere leveres i en separat styringscontainer, som aktiveres som standard og styres via API og AWS SSM Agent. Den grundlæggende billede mangler en kommandolinjeinterpreter, server SSH og fortolkede sprog (f.eks. ingen Python eller Perl) — værktøjer til administratorer og debug-værktøjer er placeret i en separat servicecontainer, der er deaktiveret som standard.

Den væsentligste forskel fra lignende distributioner som Fedora CoreOS, CentOS/Red Hat Atomic Host er den primære fokus på at sikre maksimal sikkerhed i forhold til at styrke beskyttelsen af systemet mod potentielle trusler, vanskeliggøre udnyttelsen af sårbarheder i OS-komponenter samt øge isoleringen af containere. Containerne oprettes ved hjælp af de indbyggede mekanismer i Linux-kernen — cgroups, navnerum og seccomp. Der anvendes SELinux i "enforcing"-tilstand for yderligere isolering i distributionen.

Roddivisionen monteres i skrivebeskyttet tilstand, mens konfigurationspartitionen /etc monteres i tmpfs og gendanner den oprindelige tilstand efter genstart. Direkte ændring af filer i kataloget /etc, såsom /etc/resolv.conf og /etc/containerd/config.toml, understøttes ikke — for permanent gemning af indstillinger skal API bruges, eller funktionalitet flyttes til separate containere. For kryptografisk verifikation af integriteten af rodpartitionen anvendes dm-verity modulet, og ved opdagelse af forsøg på ændring af data på blokniveau genstarter systemet.

De fleste systemkomponenter er skrevet i Rust, som tilbyder sikre hukommelseshåndteringsværktøjer, der forhindrer sårbarheder forårsaget af adgang til hukommelsesområder efter de er frigivet, dereferering af nul-pegepinde og buffer overflow. Som standard anvendes kompileringstilstandene "--enable-default-pie" og "--enable-default-ssp" for at aktivere randomisering af adresseområdet for eksekverbare filer (PIE) og beskyttelse mod stack overflow via implementering af kanarimærker. For pakker skrevet i C/C++ aktiveres derudover flags "-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" og "-fstack-clash-protection".

I den nye version:

  • Sårbarheder i docker-værktøjer og runtime containerd (CVE-2021-41089, CVE-2021-41091, CVE-2021-41092, CVE-2021-41103) relateret til forkert adgangsretter er blevet rettet, hvilket gav ikke-privilegerede brugere mulighed for at gå ud over basisbiblioteket og køre eksterne programmer.
  • Kubelet og pluto har fået tilføjet understøttelse af IPv6.
  • Mulighed for at genstarte containeren efter ændring af dens indstillinger er blevet givet.
  • Support for Amazon EC2 M6i instanser er tilføjet til eni-max-pods pakken.
  • Support for enhedsfiltre er tilføjet i open-vm-tools, implementeret ved hjælp af Cilium værktøjer.
  • En hybrid opstartstilstand er implementeret til x86_64 platformen (med support for EFI og BIOS).
  • Pakker og afhængigheder for Rust-sprog er blevet opdateret.
  • Støtten til distributionen aws-k8s-1.17 baseret på Kubernetes 1.17 er ophørt. Det anbefales at bruge aws-k8s-1.21 med understøttelse for Kubernetes 1.21. I k8s-varianter er cgroup runtime.slice og system.slice indstillinger aktiveret.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster