Amazon menerbitkan Bottlerocket 1.0.0, pengedaran Linux berdasarkan bekas terpencil

Syarikat Amazon dibentangkan keluaran penting pertama bagi pengedaran Linux khusus Bottlerocket 1.0.0, direka untuk menjalankan bekas terpencil dengan cekap dan selamat. Alat pengedaran dan komponen kawalan ditulis dalam Rust dan sebar di bawah lesen MIT dan Apache 2.0. Projek ini sedang dibangunkan di GitHub dan tersedia untuk penyertaan oleh ahli komuniti. Imej penggunaan sistem dijana untuk seni bina x86_64 dan Aarch64. OS disesuaikan untuk dijalankan pada kelompok Amazon ECS dan AWS EKS Kubernetes. Disediakan alatan untuk mencipta perhimpunan dan edisi anda sendiri, yang boleh menggunakan alatan orkestrasi lain, kernel dan masa jalan untuk bekas.

Pengedaran menyediakan kernel Linux dan persekitaran sistem yang minimum, termasuk hanya komponen yang diperlukan untuk menjalankan kontena. Antara pakej yang terlibat dalam projek ini ialah sistem pengurus sistem, perpustakaan Glibc, dan alat pemasangan
Buildroot, pemuat but GRUB, konfigurasi rangkaian jahat, masa jalan untuk bekas terpencil bekasd, platform orkestrasi kontena Kubernetes, aws-iam-authenticator dan ejen Amazon ECS.

Pengedaran dikemas kini secara atom dan dihantar dalam bentuk imej sistem yang tidak boleh dibahagikan. Dua partition cakera diperuntukkan untuk sistem, satu daripadanya mengandungi sistem aktif, dan kemas kini disalin ke yang kedua. Selepas kemas kini digunakan, partition kedua menjadi aktif, dan pada yang pertama, sehingga kemas kini seterusnya tiba, versi sistem sebelumnya disimpan, yang mana anda boleh melancarkan semula jika masalah timbul. Kemas kini dipasang secara automatik tanpa campur tangan pentadbir.

Perbezaan utama daripada pengedaran serupa seperti Fedora CoreOS, CentOS/Red Hat Atomic Host ialah tumpuan utama untuk menyediakan keselamatan maksimum dalam konteks mengukuhkan perlindungan sistem daripada kemungkinan ancaman, menjadikannya lebih sukar untuk mengeksploitasi kelemahan dalam komponen OS dan meningkatkan pengasingan bekas. Bekas dicipta menggunakan mekanisme kernel Linux standard - cgroup, ruang nama dan seccomp. Untuk pengasingan tambahan, pengedaran menggunakan SELinux dalam mod "menguatkuasakan" dan modul digunakan untuk pengesahan kriptografi keutuhan partition akar dm-kebenaran. Jika percubaan untuk mengubah suai data pada tahap peranti blok dikesan, sistem akan but semula.

Pembahagian akar dipasang baca sahaja, dan pembahagian tetapan /etc dilekapkan dalam tmpfs dan dipulihkan kepada keadaan asalnya selepas dimulakan semula. Pengubahsuaian terus fail dalam direktori /etc, seperti /etc/resolv.conf dan /etc/containerd/config.toml, tidak disokong - untuk menyimpan tetapan secara kekal, anda mesti menggunakan API atau mengalihkan fungsi ke dalam bekas yang berasingan.

Kebanyakan komponen sistem ditulis dalam Rust, yang menyediakan ciri-ciri selamat memori untuk mengelakkan kelemahan yang disebabkan oleh akses memori selepas bebas, penolakan penunjuk nol dan overrun penimbal. Apabila membina secara lalai, mod kompilasi "--enable-default-pie" dan "--enable-default-ssp" digunakan untuk membolehkan rawak ruang alamat fail boleh laku (PIE) dan perlindungan limpahan tindanan melalui penggantian kenari.
Untuk pakej yang ditulis dalam C/C++, bendera tambahan disertakan
"-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" dan "-fstack-clash-protection".

Alat orkestrasi kontena dibekalkan secara berasingan bekas kawalan, yang didayakan secara lalai dan dikawal melalui API dan Ejen SSM AWS. Imej asas tidak mempunyai shell arahan, pelayan SSH dan bahasa yang ditafsirkan (contohnya, tiada Python atau Perl) - alat pentadbiran dan alat penyahpepijatan terletak di bekas perkhidmatan berasingan, yang dilumpuhkan secara lalai.

Sumber: opennet.ru

Tambah komen