Rilis manajer sistem systemd 252 dengan dukungan UKI (Unified Kernel Image).

Setelah lima bulan pengembangan, rilis manajer sistem systemd 252. Perubahan utama dalam versi baru adalah integrasi dukungan untuk proses boot yang dimodernisasi, yang memungkinkan Anda memverifikasi tidak hanya kernel dan bootloader, tetapi juga komponen lingkungan sistem dasar menggunakan tanda tangan digital.

Metode yang diusulkan melibatkan penggunaan gambar kernel terpadu UKI (Unified Kernel Image) saat memuat, yang menggabungkan penangan untuk memuat kernel dari UEFI (UEFI boot stub), gambar kernel Linux dan lingkungan sistem initrd yang dimuat ke dalam memori, digunakan untuk inisialisasi awal pada tahap sebelum mount root FS. Gambar UKI dikemas sebagai satu file yang dapat dieksekusi dalam format PE, yang dapat dimuat menggunakan bootloader tradisional atau dipanggil langsung dari firmware UEFI. Ketika dipanggil dari UEFI, dimungkinkan untuk memverifikasi integritas dan keandalan tanda tangan digital tidak hanya pada kernel, tetapi juga konten initrd.

Untuk menghitung parameter register TPM PCR (Trusted Platform Module Platform Configuration Register) yang digunakan untuk memantau integritas dan menghasilkan tanda tangan digital dari gambar UKI, utilitas systemd-measure baru disertakan. Kunci publik dan informasi PCR yang menyertainya yang digunakan dalam tanda tangan dapat disematkan langsung ke dalam image boot UKI (kunci dan tanda tangan disimpan dalam file PE di kolom '.pcrsig' dan '.pcrkey') dan diekstraksi darinya secara eksternal atau utilitas internal.

Secara khusus, utilitas systemd-cryptsetup, systemd-cryptenroll dan systemd-creds telah diadaptasi untuk menggunakan informasi ini, yang dengannya Anda dapat memastikan bahwa partisi disk terenkripsi terikat ke kernel yang ditandatangani secara digital (dalam hal ini, akses ke partisi terenkripsi disediakan hanya jika gambar UKI telah lulus verifikasi dengan tanda tangan digital berdasarkan parameter yang terletak di TPM).

Selain itu, utilitas systemd-pcrphase disertakan, yang memungkinkan Anda mengontrol pengikatan berbagai tahapan boot ke parameter yang terletak di memori kriptoprosesor yang mendukung spesifikasi TPM 2.0 (misalnya, Anda dapat membuat kunci dekripsi partisi LUKS2 hanya tersedia di gambar initrd dan memblokir akses ke gambar tersebut pada tahap pengunduhan selanjutnya).

Beberapa perubahan lainnya:

  • Memastikan bahwa lokal default adalah C.UTF-8 kecuali lokal lain ditentukan dalam pengaturan.
  • Sekarang dimungkinkan untuk melakukan operasi preset layanan lengkap (“systemctl preset”) selama boot pertama. Mengaktifkan preset pada saat boot memerlukan pembuatan dengan opsi "-Dfirst-boot-full-preset", tetapi direncanakan akan diaktifkan secara default pada rilis mendatang.
  • Unit manajemen pengguna melibatkan pengontrol sumber daya CPU, yang memungkinkan untuk memastikan bahwa pengaturan CPUWeight diterapkan ke semua unit irisan yang digunakan untuk membagi sistem menjadi beberapa bagian (app.slice, background.slice, session.slice) untuk mengisolasi sumber daya antara layanan pengguna yang berbeda, bersaing untuk mendapatkan sumber daya CPU. CPUWeight juga mendukung nilai “idle” untuk mengaktifkan mode penyediaan sumber daya yang sesuai.
  • Dalam unit sementara (“sementara”) dan dalam utilitas systemd-repart, penggantian pengaturan diperbolehkan dengan membuat file drop-in di direktori /etc/systemd/system/name.d/.
  • Untuk image sistem, flag support-ended diatur, menentukan fakta ini berdasarkan nilai parameter baru “SUPPORT_END=” di file /etc/os-release.
  • Menambahkan pengaturan “ConditionCredential=” dan “AssertCredential=”, yang dapat digunakan untuk mengabaikan atau membuat crash unit jika kredensial tertentu tidak ada dalam sistem.
  • Menambahkan pengaturan “DefaultSmackProcessLabel=” dan “DefaultDeviceTimeoutSec=” ke system.conf dan user.conf untuk menentukan tingkat keamanan SMACK default dan batas waktu aktivasi unit.
  • Dalam pengaturan “ConditionFirmware=” dan “AssertFirmware=”, kemampuan untuk menentukan masing-masing bidang SMBIOS telah ditambahkan, misalnya, untuk meluncurkan unit hanya jika bidang /sys/class/dmi/id/board_name berisi nilai “Custom Board”, Anda dapat menentukan “ConditionFirmware=smbios” -field(board_name = "Papan Kustom")".
  • Selama proses inisialisasi (PID 1), kemampuan untuk mengimpor kredensial dari bidang SMBIOS (Tipe 11, “string vendor OEM”) telah ditambahkan selain definisinya melalui qemu_fwcfg, yang menyederhanakan penyediaan kredensial ke mesin virtual dan menghilangkan kebutuhan akan alat pihak ketiga seperti cloud -init dan ignition.
  • Selama pematian, logika untuk melepas sistem file virtual (proc, sys) telah diubah dan informasi tentang proses yang memblokir pelepasan sistem file disimpan dalam log.
  • Filter panggilan sistem (SystemCallFilter) memungkinkan akses ke panggilan sistem riscv_flush_icache secara default.
  • Bootloader sd-boot menambahkan kemampuan untuk boot dalam mode campuran, di mana kernel Linux 64-bit dijalankan dari firmware UEFI 32-bit. Menambahkan kemampuan eksperimental untuk secara otomatis menerapkan kunci SecureBoot dari file yang ditemukan di ESP (partisi sistem EFI).
  • Opsi baru telah ditambahkan ke utilitas bootctl: “—all-architectures” untuk menginstal binari untuk semua arsitektur EFI yang didukung, “—root=” dan “—image=” untuk bekerja dengan direktori atau image disk, “—install-source =” untuk menentukan sumber instalasi, "-efi-boot-option-description=" untuk mengontrol nama entri boot.
  • Perintah 'list-automounts' telah ditambahkan ke utilitas systemctl untuk menampilkan daftar direktori yang dipasang secara otomatis dan opsi "--image=" untuk menjalankan perintah sehubungan dengan image disk yang ditentukan. Menambahkan opsi "--state=" dan "--type=" ke perintah 'show' dan 'status'.
  • systemd-networkd menambahkan opsi “TCPCongestionControlAlgorithm=” untuk memilih algoritma kontrol kemacetan TCP, “KeepFileDescriptor=” untuk menyimpan deskriptor file antarmuka TUN/TAP, “NetLabel=” untuk mengatur NetLabels, “RapidCommit=” untuk mempercepat konfigurasi melalui DHCPv6 (RFC 3315). Parameter “RouteTable=” memungkinkan penentuan nama tabel perutean.
  • systemd-nspawn memungkinkan penggunaan jalur file relatif dalam opsi "--bind=" dan "--overlay=". Menambahkan dukungan untuk parameter 'rootidmap' ke opsi "--bind=" untuk mengikat ID pengguna root dalam penampung ke pemilik direktori yang dipasang di sisi host.
  • systemd-resolved menggunakan OpenSSL sebagai backend enkripsinya secara default (dukungan gnutls dipertahankan sebagai opsi). Algoritme DNSSEC yang tidak didukung kini dianggap tidak aman dan bukannya menghasilkan kesalahan (SERVFAIL).
  • systemd-sysusers, systemd-tmpfiles dan systemd-sysctl mengimplementasikan kemampuan untuk mentransfer pengaturan melalui mekanisme penyimpanan kredensial.
  • Menambahkan perintah 'bandingkan versi' ke utilitas analisis sistem untuk membandingkan string dengan nomor versi (mirip dengan 'rpmdev-vercmp' dan 'dpkg --bandingkan-versi'). Menambahkan kemampuan untuk memfilter unit berdasarkan mask ke perintah 'systemd-analyze dump'.
  • Saat memilih mode tidur multi-tahap (tunda lalu hibernasi), waktu yang dihabiskan dalam mode siaga kini dipilih berdasarkan perkiraan sisa masa pakai baterai. Transisi instan ke mode tidur terjadi ketika daya baterai tersisa kurang dari 5%.
  • Mode keluaran baru "-o short-delta" telah ditambahkan ke 'journalctl', menampilkan perbedaan waktu antara berbagai pesan di log.
  • systemd-repart menambahkan dukungan untuk membuat partisi dengan sistem file Squashfs dan partisi untuk dm-verity, termasuk dengan tanda tangan digital.
  • Menambahkan pengaturan "StopIdleSessionSec=" ke systemd-logind untuk mengakhiri sesi tidak aktif setelah batas waktu yang ditentukan.
  • Systemd-cryptenroll telah menambahkan opsi "--unlock-key-file=" untuk mengekstrak kunci dekripsi dari file daripada meminta pengguna.
  • Sekarang utilitas systemd-growfs dapat dijalankan di lingkungan tanpa udev.
  • systemd-backlight telah meningkatkan dukungan untuk sistem dengan banyak kartu grafis.
  • Lisensi untuk contoh kode yang disediakan dalam dokumentasi telah diubah dari CC0 menjadi MIT-0.

Perubahan yang merusak kompatibilitas:

  • Saat memeriksa nomor versi kernel menggunakan direktif ConditionKernelVersion, perbandingan string sederhana sekarang digunakan di operator '=' dan '!=', dan jika operator perbandingan tidak ditentukan sama sekali, pencocokan glob-mask dapat digunakan menggunakan karakter '*', '?' Dan '[', ']'. Untuk membandingkan versi gaya stverscmp(), gunakan operator '<', '>', '<=' dan '>='.
  • Tag SELinux yang digunakan untuk memeriksa akses dari file unit sekarang dibaca pada saat file dimuat, bukan pada saat pemeriksaan akses.
  • Kondisi "ConditionFirstBoot" sekarang dipicu pada boot pertama sistem hanya langsung pada tahap booting dan mengembalikan "false" ketika memanggil unit setelah booting selesai.
  • Pada tahun 2024, systemd berencana untuk berhenti mendukung mekanisme pembatasan sumber daya cgroup v1, yang tidak digunakan lagi dalam rilis systemd 248. Administrator disarankan untuk berhati-hati sebelum memigrasikan layanan berbasis cgroup v2 ke cgroup v1. Perbedaan utama antara cgroups v2 dan v1 adalah penggunaan hierarki cgroups yang umum untuk semua jenis sumber daya, bukan hierarki terpisah untuk mengalokasikan sumber daya CPU, untuk mengatur konsumsi memori, dan untuk I/O. Hirarki yang terpisah menyebabkan kesulitan dalam mengatur interaksi antara penangan dan biaya tambahan sumber daya kernel ketika menerapkan aturan untuk proses yang dirujuk dalam hierarki yang berbeda.
  • Pada paruh kedua tahun 2023, kami berencana untuk mengakhiri dukungan untuk hierarki direktori terpisah, di mana /usr dipasang secara terpisah dari root, atau /bin dan /usr/bin, /lib dan /usr/lib dipisahkan.

Sumber: opennet.ru

Tambah komentar