rilis manajer sistem systemd 248

Setelah empat bulan pengembangan, rilis manajer sistem systemd 248 disajikan. Rilis baru ini menyediakan dukungan untuk gambar untuk memperluas direktori sistem, file konfigurasi /etc/veritytab, utilitas systemd-cryptenroll, membuka kunci LUKS2 menggunakan chip TPM2 dan FIDO2 token, menjalankan unit dalam ruang pengidentifikasi IPC yang terisolasi, protokol BATMAN untuk jaringan mesh, backend nftables untuk systemd-nspawn. Systemd-oomd telah distabilkan.

Perubahan besar:

  • Konsep gambar Ekstensi Sistem telah diterapkan, yang dapat digunakan untuk memperluas hierarki direktori /usr/ dan /opt/, dan menambahkan file tambahan saat runtime, meskipun direktori yang ditentukan dipasang hanya-baca. Ketika image ekstensi sistem dipasang, isinya di-overlay pada hierarki /usr/ dan /opt/ menggunakan OverlayFS.

    Utilitas baru, systemd-sysext, telah diusulkan untuk menghubungkan, memutuskan sambungan, melihat dan memperbarui gambar ekstensi sistem. Untuk menghubungkan image yang sudah diinstal secara otomatis saat boot, layanan systemd-sysext.service telah ditambahkan. Menambahkan parameter "SYSEXT_LEVEL=" ke file rilis os untuk menentukan tingkat ekstensi sistem yang didukung.

  • Untuk unit, pengaturan ExtensionImages telah diterapkan, yang dapat digunakan untuk menautkan gambar ekstensi sistem ke hierarki namespace FS dari masing-masing layanan terisolasi.
  • Menambahkan file konfigurasi /etc/veritytab untuk mengonfigurasi verifikasi data di tingkat blok menggunakan modul dm-verity. Format filenya mirip dengan /etc/crypttab - “section_name device_for_data device_for_hashes check_hash_root options.” Menambahkan opsi baris perintah kernel systemd.verity.root_options untuk mengonfigurasi perilaku dm-verity untuk perangkat root.
  • systemd-cryptsetup menambahkan kemampuan untuk mengekstrak URI token PKCS#11 dan kunci terenkripsi dari header metadata LUKS2 dalam format JSON, memungkinkan informasi tentang pembukaan perangkat terenkripsi untuk diintegrasikan ke dalam perangkat itu sendiri tanpa melibatkan file eksternal.
  • systemd-cryptsetup menyediakan dukungan untuk membuka kunci partisi terenkripsi LUKS2 menggunakan chip TPM2 dan token FIDO2, selain token PKCS#11 yang didukung sebelumnya. Memuat libfido2 dilakukan melalui dlopen(), mis. ketersediaan diperiksa dengan cepat, bukan sebagai ketergantungan yang terprogram.
  • Opsi baru "no-write-workqueue" dan "no-read-workqueue" telah ditambahkan ke /etc/crypttab untuk systemd-cryptsetup guna mengaktifkan pemrosesan sinkron I/O yang terkait dengan enkripsi dan dekripsi.
  • Utilitas systemd-repart telah menambahkan kemampuan untuk mengaktifkan partisi terenkripsi menggunakan chip TPM2, misalnya, untuk membuat partisi /var terenkripsi pada boot pertama.
  • Utilitas systemd-cryptenroll telah ditambahkan untuk mengikat token TPM2, FIDO2 dan PKCS#11 ke partisi LUKS, serta untuk melepas pin dan melihat token, mengikat kunci cadangan dan mengatur kata sandi untuk akses.
  • Menambahkan parameter PrivateIPC, yang memungkinkan Anda mengonfigurasi file unit untuk menjalankan proses di ruang IPC yang terisolasi dengan pengidentifikasi dan antrean pesan terpisah. Untuk menghubungkan unit ke ruang pengidentifikasi IPC yang sudah dibuat, opsi IPCNamespacePath diusulkan.
  • Menambahkan pengaturan ExecPaths dan NoExecPaths untuk memungkinkan flag noexec diterapkan ke bagian tertentu dari sistem file.
  • systemd-networkd menambahkan dukungan untuk protokol mesh BATMAN (Better Approach To Mobile Adhoc Networking), yang memungkinkan pembuatan jaringan terdesentralisasi di mana setiap node terhubung melalui node tetangga. Untuk konfigurasi, bagian [BatmanAdvanced] di .netdev, parameter BatmanAdvanced di file .network, dan jenis perangkat baru “batadv” diusulkan.
  • Penerapan mekanisme respons awal untuk memori rendah di sistem systemd-oomd telah distabilkan. Menambahkan opsi DefaultMemoryPressureDurationSec untuk mengonfigurasi waktu tunggu pelepasan sumber daya sebelum memengaruhi unit. Systemd-oomd menggunakan subsistem kernel PSI (Informasi Kios Tekanan) dan memungkinkan Anda mendeteksi permulaan penundaan karena kekurangan sumber daya dan secara selektif menghentikan proses intensif sumber daya pada tahap ketika sistem belum dalam keadaan kritis dan tidak mulai memangkas cache secara intensif dan memindahkan data ke partisi swap.
  • Menambahkan parameter baris perintah kernel “root=tmpfs”, yang memungkinkan Anda memasang partisi root di penyimpanan sementara yang terletak di RAM menggunakan Tmpfs.
  • Parameter /etc/crypttab yang menentukan file kunci sekarang dapat menunjuk ke tipe soket AF_UNIX dan SOCK_STREAM. Dalam hal ini, kunci harus diberikan saat menyambung ke soket, yang, misalnya, dapat digunakan untuk membuat layanan yang mengeluarkan kunci secara dinamis.
  • Nama host cadangan untuk digunakan oleh manajer sistem dan nama host sistemd kini dapat diatur dengan dua cara: melalui parameter DEFAULT_HOSTNAME di os-release dan melalui variabel lingkungan $SYSTEMD_DEFAULT_HOSTNAME. systemd-hostnamed juga menangani "localhost" di nama host dan menambahkan kemampuan untuk mengekspor nama host serta properti "HardwareVendor" dan "HardwareModel" melalui DBus.
  • Blok dengan variabel lingkungan terbuka sekarang dapat dikonfigurasi melalui opsi ManagerEnvironment baru di system.conf atau user.conf, dan tidak hanya melalui baris perintah kernel dan pengaturan file unit.
  • Pada waktu kompilasi, panggilan sistem fexecve() dapat digunakan untuk memulai proses alih-alih execve() untuk mengurangi penundaan antara pemeriksaan konteks keamanan dan penerapannya.
  • Untuk file unit, operasi kondisional baru ConditionSecurity=tpm2 dan ConditionCPUFeature telah ditambahkan untuk memeriksa keberadaan perangkat TPM2 dan kemampuan CPU individual (misalnya, ConditionCPUFeature=rdrand dapat digunakan untuk memeriksa apakah prosesor mendukung operasi RDRAND).
  • Untuk kernel yang tersedia, pembuatan tabel panggilan sistem secara otomatis untuk filter seccomp telah diterapkan.
  • Menambahkan kemampuan untuk mengganti mount pengikat baru ke dalam namespace layanan mount yang sudah ada, tanpa memulai ulang layanan. Pergantian dilakukan dengan perintah 'systemctl bind ...' dan 'systemctl mount-image …'.
  • Menambahkan dukungan untuk menentukan jalur dalam pengaturan StandardOutput dan StandardError dalam bentuk “truncate: » untuk dibersihkan sebelum digunakan.
  • Menambahkan kemampuan untuk membuat koneksi ke sesi pengguna tertentu dalam kontainer lokal ke sd-bus. Misalnya "systemctl -user -M lennart@ start quux".
  • Parameter berikut diimplementasikan dalam file systemd.link di bagian [Link]:
    • Promiscuous - memungkinkan Anda mengalihkan perangkat ke mode "promiscuous" untuk memproses semua paket jaringan, termasuk yang tidak ditujukan ke sistem saat ini;
    • TransmitQueues dan AcceptQueues untuk mengatur jumlah antrian TX dan RX;
    • TransmitQueueLength untuk mengatur ukuran antrian TX; GenericSegmentOffloadMaxBytes dan GenericSegmentOffloadMaxSegment untuk menetapkan batasan penggunaan teknologi GRO (Generic Accept Offload).
  • Pengaturan baru telah ditambahkan ke file systemd.network:
    • [Jaringan] RouteTable untuk memilih tabel routing;
    • [RoutingPolicyRule] Ketik untuk jenis perutean ("blackhole, "unreachable", "prohibit");
    • [IPv6AcceptRA] RouteDenyList dan RouteAllowList untuk daftar iklan rute yang diizinkan dan ditolak;
    • [DHCPv6] Gunakan Alamat untuk mengabaikan alamat yang dikeluarkan oleh DHCP;
    • [DHCPv6PrefixDelegation] KelolaAlamat Sementara;
    • ActivationPolicy untuk menentukan kebijakan mengenai aktivitas antarmuka (selalu pertahankan status UP atau DOWN, atau izinkan pengguna mengubah status dengan perintah “ip link set dev”).
  • Menambahkan opsi Protokol [VLAN], IngressQOSMaps, EgressQOSMaps, dan [MACVLAN] BroadcastMulticastQueueLength ke file systemd.netdev untuk mengonfigurasi pemrosesan paket VLAN.
  • Menghentikan pemasangan direktori /dev/ dalam mode noexec karena menyebabkan konflik saat menggunakan flag yang dapat dieksekusi dengan file /dev/sgx. Untuk mengembalikan perilaku lama, Anda dapat menggunakan pengaturan NoExecPaths=/dev.
  • Izin file /dev/vsock telah diubah menjadi 0o666, dan file /dev/vhost-vsock dan /dev/vhost-net telah dipindahkan ke grup kvm.
  • Basis data ID perangkat keras telah diperluas dengan pembaca sidik jari USB yang mendukung mode tidur dengan benar.
  • dukungan tambahan yang diselesaikan sistemd untuk mengeluarkan tanggapan terhadap pertanyaan DNSSEC melalui penyelesai rintisan. Klien lokal dapat melakukan validasi DNSSEC sendiri, sementara klien eksternal diproksi tanpa perubahan ke server DNS induk.
  • Menambahkan opsi CacheFromLocalhost keresolved.conf, ketika disetel, systemd-resolved akan menggunakan caching bahkan untuk panggilan ke server DNS di 127.0.0.1 (secara default, caching permintaan tersebut dinonaktifkan untuk menghindari caching ganda).
  • systemd-resolved menambahkan dukungan untuk NSID RFC-5001 di penyelesai DNS lokal, memungkinkan klien membedakan antara interaksi dengan penyelesai lokal dan server DNS lainnya.
  • Utilitas Resolvectl mengimplementasikan kemampuan untuk menampilkan informasi tentang sumber data (cache lokal, permintaan jaringan, respons prosesor lokal) dan penggunaan enkripsi saat mentransfer data. Opsi --cache, --synthesize, --network, --zone, --trust-anchor, dan --validate disediakan untuk mengontrol proses penentuan nama.
  • systemd-nspawn menambahkan dukungan untuk mengkonfigurasi firewall menggunakan nftables selain dukungan iptables yang ada. Pengaturan IPMasquerade di systemd-networkd telah menambahkan kemampuan untuk menggunakan backend berbasis nftables.
  • systemd-localed menambahkan dukungan untuk memanggil locale-gen untuk menghasilkan lokal yang hilang.
  • Opsi --pager/-no-pager/-json= telah ditambahkan ke berbagai utilitas untuk mengaktifkan/menonaktifkan mode paging dan keluaran dalam format JSON. Menambahkan kemampuan untuk mengatur jumlah warna yang digunakan di terminal melalui variabel lingkungan SYSTEMD_COLORS (“16” atau “256”).
  • Pembangunan dengan hierarki direktori terpisah (split / dan /usr) dan dukungan cgroup v1 sudah tidak digunakan lagi.
  • Cabang master di Git telah diubah namanya dari 'master' menjadi 'main'.

Sumber: opennet.ru

Tambah komentar