Uscita di Bottlerocket 1.1, distribuzione basata su container isolati

È disponibile il rilascio della distribuzione Linux Bottlerocket 1.1.0, sviluppata con la collaborazione di Amazon per un avvio efficace e sicuro di container isolati. Gli strumenti e i componenti di gestione della distribuzione sono scritti in Rust e sono distribuiti sotto le licenze MIT e Apache 2.0. Sono supportati l'avvio di Bottlerocket nei cluster Amazon ECS e AWS EKS Kubernetes, oltre alla creazione di build e edizioni personalizzate che consentono l'uso di vari strumenti di orchestrazione e runtime per container.

La distribuzione fornisce un'immagine di sistema atomica e automaticamente aggiornabile, che include il kernel Linux e un ambiente di sistema minimo, comprensivo solo dei componenti necessari per l'esecuzione dei container. Nell'ambiente sono coinvolti il gestore di sistema systemd, la libreria Glibc, l'ambiente di build Buildroot, il bootloader GRUB, il configuratore di rete wicked, il runtime per container isolati containerd, la piattaforma di orchestrazione dei container Kubernetes, l'autenticatore aws-iam-authenticator e l'agente Amazon ECS.

Gli strumenti per l'orchestrazione dei container sono forniti in un container di gestione separato, attivato di default e gestito tramite API e AWS SSM Agent. Nell'immagine di base non è presente una shell. server SSH e linguaggi interpretati (ad esempio, non ci sono Python o Perl) — gli strumenti per l'amministratore e gli strumenti di debug sono stati spostati in un container di servizio separato, che per impostazione predefinita è disattivato.

La principale differenza rispetto a distribuzioni simili, come Fedora CoreOS, CentOS/Red Hat Atomic Host, è l'orientamento primario a fornire la massima sicurezza nel contesto del rafforzamento della protezione del sistema contro potenziali minacce, complicando l'esploitazione di vulnerabilità nei componenti del sistema operativo e aumentando l'isolamento dei container. I container sono creati utilizzando i meccanismi standard del kernel Linux — cgroups, spazi dei nomi e seccomp. Per ulteriore isolamento, nella distribuzione viene utilizzato SELinux in modalità "enforcing".

La partizione di root è montata in modalità di sola lettura, mentre la partizione di configurazione /etc è montata in tmpfs e ripristina lo stato originale dopo il riavvio. La modifica diretta dei file nella directory /etc, come /etc/resolv.conf e /etc/containerd/config.toml, non è supportata: per la conservazione permanente delle impostazioni è necessario utilizzare l'API o spostare la funzionalità in contenitori separati. Per la verifica crittografica dell'integrità della partizione di root è coinvolto il modulo dm-verity, e in caso di tentativi di modifica dei dati a livello di dispositivo blocco, il sistema viene riavviato.

La maggior parte dei componenti di sistema è scritta in linguaggio Rust, che fornisce strumenti per un'attività sicura in memoria, evitando vulnerabilità causate da accessi a aree di memoria dopo il loro rilascio, dereferenziazione di puntatori nulli e fuoriuscita dai limiti del buffer. Durante la compilazione, per impostazione predefinita vengono applicati i flag di compilazione "--enable-default-pie" e "--enable-default-ssp" per attivare la randomizzazione degli spazi di indirizzi dei file eseguibili (PIE) e la protezione da overflow dello stack attraverso l'inserimento di marcatori di canarini. Per i pacchetti scritti in C/C++, vengono attivati anche i flag "-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" e "-fstack-clash-protection."

Nel nuovo rilascio:

  • Sono stati proposti due nuovi varianti della distribuzione aws-k8s-1.20 e vmware-k8s-1.20 con supporto per Kubernetes 1.20. In queste varianti, così come nell'aggiornamento della variante aws-ecs-1, è stato impiegato un nuovo rilascio del kernel Linux 5.10. La modalità lockdown è stata impostata di default su 'integrity' (vengono bloccate le funzioni che consentono di modificare il kernel in esecuzione dallo spazio utente). È stata interrotta la supporto per la variante aws-k8s-1.15 basata su Kubernetes 1.15.
  • Per Amazon ECS è stata implementata la supporto della modalità di rete awsvpc, che consente di assegnare interfacce di rete separate e interne Indirizzi IP per ogni task.
  • Sono state aggiunte impostazioni per gestire vari parametri di Kubernetes, inclusi QPS, limiti sui pool e la possibilità di connettersi a fornitori di cloud diversi da AWS.
  • Nel container bootstrap è stata garantita una restrizione dell'accesso ai dati dell'utente tramite SELinux.
  • È stata aggiunta l'utilità resize2fs.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS - ProHoster