Έκδοση του systemd system manager 252 με υποστήριξη UKI (Unified Kernel Image).

Μετά από πέντε μήνες ανάπτυξης, παρουσιάστηκε η κυκλοφορία του συστήματος διαχείρισης συστήματος systemd 252 Η βασική αλλαγή στη νέα έκδοση ήταν η ενσωμάτωση υποστήριξης για μια εκσυγχρονισμένη διαδικασία εκκίνησης, η οποία σας επιτρέπει να επαληθεύσετε όχι μόνο τον πυρήνα και τον φορτωτή εκκίνησης, αλλά και τα στοιχεία. του βασικού περιβάλλοντος του συστήματος χρησιμοποιώντας ψηφιακές υπογραφές.

Η προτεινόμενη μέθοδος περιλαμβάνει τη χρήση μιας ενοποιημένης εικόνας πυρήνα UKI (Unified Kernel Image) κατά τη φόρτωση, η οποία συνδυάζει έναν χειριστή για τη φόρτωση του πυρήνα από το UEFI (UEFI boot stub), μια εικόνα πυρήνα Linux και το περιβάλλον συστήματος initrd που έχει φορτωθεί στη μνήμη. για αρχική προετοιμασία στο στάδιο πριν από την προσάρτηση του root FS. Η εικόνα UKI συσκευάζεται ως ένα μεμονωμένο εκτελέσιμο αρχείο σε μορφή PE, το οποίο μπορεί να φορτωθεί χρησιμοποιώντας παραδοσιακούς φορτωτές εκκίνησης ή να κληθεί απευθείας από το υλικολογισμικό UEFI. Όταν καλείται από το UEFI, είναι δυνατό να επαληθευτεί η ακεραιότητα και η αξιοπιστία της ψηφιακής υπογραφής όχι μόνο του πυρήνα, αλλά και των περιεχομένων του initrd.

Για τον υπολογισμό των παραμέτρων των καταχωρητών TPM PCR (Trusted Platform Module Platform Configuration Register) που χρησιμοποιούνται για την παρακολούθηση της ακεραιότητας και τη δημιουργία ψηφιακής υπογραφής της εικόνας UKI, περιλαμβάνεται ένα νέο βοηθητικό πρόγραμμα systemd-measure. Το δημόσιο κλειδί και οι συνοδευτικές πληροφορίες PCR που χρησιμοποιούνται στην υπογραφή μπορούν να ενσωματωθούν απευθείας στην εικόνα εκκίνησης UKI (το κλειδί και η υπογραφή αποθηκεύονται σε ένα αρχείο PE στα πεδία «.pcrsig» και «.pcrkey») και να εξαχθούν από αυτό με εξωτερικό ή εσωτερικά βοηθητικά προγράμματα.

Συγκεκριμένα, τα βοηθητικά προγράμματα systemd-cryptsetup, systemd-cryptenroll και systemd-creds έχουν προσαρμοστεί για τη χρήση αυτών των πληροφοριών, με τα οποία μπορείτε να διασφαλίσετε ότι τα διαμερίσματα κρυπτογραφημένου δίσκου συνδέονται σε έναν ψηφιακά υπογεγραμμένο πυρήνα (σε αυτήν την περίπτωση, πρόσβαση στο κρυπτογραφημένο διαμέρισμα παρέχεται μόνο εάν η εικόνα UKI έχει περάσει την επαλήθευση με ψηφιακή υπογραφή με βάση τις παραμέτρους που βρίσκονται στο TPM).

Επιπλέον, περιλαμβάνεται το βοηθητικό πρόγραμμα systemd-pcrphase, το οποίο σας επιτρέπει να ελέγχετε τη σύνδεση διαφόρων σταδίων εκκίνησης σε παραμέτρους που βρίσκονται στη μνήμη των κρυπτοεπεξεργαστών που υποστηρίζουν την προδιαγραφή TPM 2.0 (για παράδειγμα, μπορείτε να κάνετε το κλειδί αποκρυπτογράφησης διαμερίσματος LUKS2 διαθέσιμο μόνο σε την αρχική εικόνα και αποκλείστε την πρόσβαση σε αυτήν σε μεταγενέστερα στάδια λήψης).

Μερικές άλλες αλλαγές:

  • Διασφαλίζει ότι η προεπιλεγμένη τοπική ρύθμιση είναι η C.UTF-8, εκτός εάν έχει καθοριστεί διαφορετική τοπική ρύθμιση στις ρυθμίσεις.
  • Είναι πλέον δυνατό να εκτελέσετε μια πλήρη λειτουργία προκαθορισμένης υπηρεσίας (“systemctl preset”) κατά την πρώτη εκκίνηση. Η ενεργοποίηση των προεπιλογών κατά την εκκίνηση απαιτεί δημιουργία με την επιλογή "-Dfirst-boot-full-preset", αλλά σχεδιάζεται να ενεργοποιηθεί από προεπιλογή σε μελλοντικές εκδόσεις.
  • Οι μονάδες διαχείρισης χρηστών περιλαμβάνουν έναν ελεγκτή πόρων CPU, ο οποίος κατέστησε δυνατή τη διασφάλιση ότι οι ρυθμίσεις CPUWeight εφαρμόζονται σε όλες τις μονάδες slice που χρησιμοποιούνται για τον διαχωρισμό του συστήματος σε μέρη (app.slice, background.slice, session.slice) για την απομόνωση πόρων μεταξύ διαφορετικές υπηρεσίες χρηστών, που ανταγωνίζονται για πόρους CPU. Το CPUWeight υποστηρίζει επίσης την τιμή "idle" για την ενεργοποίηση της κατάλληλης λειτουργίας παροχής πόρων.
  • Σε προσωρινές ("μεταβατικές") μονάδες και στο βοηθητικό πρόγραμμα systemd-repart, επιτρέπεται η παράκαμψη ρυθμίσεων με τη δημιουργία αναπτυσσόμενων αρχείων στον κατάλογο /etc/systemd/system/name.d/.
  • Για εικόνες συστήματος, ορίζεται η σημαία με τέλος υποστήριξης, προσδιορίζοντας αυτό το γεγονός με βάση την τιμή της νέας παραμέτρου "SUPPORT_END=" στο αρχείο /etc/os-release.
  • Προστέθηκαν οι ρυθμίσεις "ConditionCredential=" και "AssertCredential=", οι οποίες μπορούν να χρησιμοποιηθούν για την παράβλεψη ή τη διακοπή λειτουργίας μονάδων εάν ορισμένα διαπιστευτήρια δεν υπάρχουν στο σύστημα.
  • Προστέθηκαν οι ρυθμίσεις "DefaultSmackProcessLabel=" και "DefaultDeviceTimeoutSec=" στο system.conf και user.conf για να οριστεί το προεπιλεγμένο επίπεδο ασφάλειας SMACK και το χρονικό όριο ενεργοποίησης της μονάδας.
  • Στις ρυθμίσεις “ConditionFirmware=” και “AssertFirmware=”, έχει προστεθεί η δυνατότητα καθορισμού μεμονωμένων πεδίων SMBIOS, για παράδειγμα, για εκκίνηση μιας μονάδας μόνο εάν το πεδίο /sys/class/dmi/id/board_name περιέχει την τιμή “Custom Board", μπορείτε να καθορίσετε "ConditionFirmware=smbios" -field(board_name = "Custom Board")".
  • Κατά τη διαδικασία προετοιμασίας (PID 1), προστέθηκε η δυνατότητα εισαγωγής διαπιστευτηρίων από πεδία SMBIOS (Τύπος 11, "συμβολοσειρές προμηθευτή OEM") επιπλέον του ορισμού τους μέσω qemu_fwcfg, η οποία απλοποιεί την παροχή διαπιστευτηρίων σε εικονικές μηχανές και εξαλείφει ανάγκη για εργαλεία τρίτων όπως το cloud -init και το ignition.
  • Κατά τη διάρκεια του τερματισμού λειτουργίας, η λογική για την αποπροσάρτηση των εικονικών συστημάτων αρχείων (proc, sys) έχει αλλάξει και οι πληροφορίες σχετικά με τις διαδικασίες που εμποδίζουν την αποπροσάρτηση συστημάτων αρχείων αποθηκεύονται στο αρχείο καταγραφής.
  • Το φίλτρο κλήσεων συστήματος (SystemCallFilter) επιτρέπει την πρόσβαση στην κλήση συστήματος riscv_flush_icache από προεπιλογή.
  • Ο sd-boot bootloader προσθέτει τη δυνατότητα εκκίνησης σε μικτή λειτουργία, στην οποία ο πυρήνας Linux 64-bit εκτελείται από υλικολογισμικό UEFI 32-bit. Προστέθηκε πειραματική δυνατότητα αυτόματης εφαρμογής κλειδιών SecureBoot από αρχεία που βρίσκονται στο ESP (διαμέρισμα συστήματος EFI).
  • Νέες επιλογές έχουν προστεθεί στο βοηθητικό πρόγραμμα bootctl: «—all-architectures» για εγκατάσταση δυαδικών αρχείων για όλες τις υποστηριζόμενες αρχιτεκτονικές EFI, «—root=» και «—image=» για εργασία με έναν κατάλογο ή εικόνα δίσκου, «—install-source =” για τον ορισμό της πηγής για εγκατάσταση, "-efi-boot-option-description=" για τον έλεγχο των ονομάτων των καταχωρήσεων εκκίνησης.
  • Η εντολή 'list-automounts' έχει προστεθεί στο βοηθητικό πρόγραμμα systemctl για να εμφανίζει μια λίστα με αυτόματα προσαρτημένους καταλόγους και την επιλογή "--image=" για την εκτέλεση εντολών σε σχέση με την καθορισμένη εικόνα δίσκου. Προστέθηκαν οι επιλογές "--state=" και "--type=" στις εντολές "show" και "status".
  • systemd-networkd προστέθηκαν επιλογές “TCPCongestionControlAlgorithm=” για να επιλέξετε τον αλγόριθμο ελέγχου συμφόρησης TCP, “KeepFileDescriptor=” για αποθήκευση του περιγραφέα αρχείων των διασυνδέσεων TUN/TAP, “NetLabel=” για ρύθμιση NetLabels, “RapidCommit=” για επιτάχυνση της διαμόρφωσης μέσω D (RFC 6). Η παράμετρος “RouteTable=” επιτρέπει τον καθορισμό των ονομάτων των πινάκων δρομολόγησης.
  • Το systemd-nspawn επιτρέπει τη χρήση σχετικών διαδρομών αρχείων στις επιλογές "--bind=" και "--overlay=". Προστέθηκε υποστήριξη για την παράμετρο 'rootidmap' στην επιλογή "--bind=" για σύνδεση του αναγνωριστικού χρήστη root στο κοντέινερ με τον κάτοχο του προσαρτημένου καταλόγου στην πλευρά του κεντρικού υπολογιστή.
  • Το systemd-resolved χρησιμοποιεί το OpenSSL ως backend κρυπτογράφησης από προεπιλογή (η υποστήριξη gnutls διατηρείται ως επιλογή). Οι μη υποστηριζόμενοι αλγόριθμοι DNSSEC αντιμετωπίζονται πλέον ως μη ασφαλείς αντί να επιστρέφουν ένα σφάλμα (SERVFAIL).
  • Οι systemd-sysusers, systemd-tmpfiles και systemd-sysctl υλοποιούν τη δυνατότητα μεταφοράς ρυθμίσεων μέσω ενός μηχανισμού αποθήκευσης διαπιστευτηρίων.
  • Προστέθηκε η εντολή «σύγκριση εκδόσεων» στο βοηθητικό πρόγραμμα systemd-analyze για σύγκριση συμβολοσειρών με αριθμούς εκδόσεων (παρόμοια με τα «rpmdev-vercmp» και «dpkg --compare-versions»). Προστέθηκε η δυνατότητα φιλτραρίσματος μονάδων με μάσκα στην εντολή 'systemd-analyze dump'.
  • Όταν επιλέγετε μια λειτουργία ύπνου πολλαπλών σταδίων (αναστολή-και μετά-αδρανοποίηση), ο χρόνος που δαπανάται σε κατάσταση αναμονής επιλέγεται πλέον με βάση την πρόβλεψη της υπολειπόμενης διάρκειας ζωής της μπαταρίας. Η άμεση μετάβαση σε κατάσταση αναστολής λειτουργίας λαμβάνει χώρα όταν παραμένει φόρτιση μπαταρίας λιγότερο από 5%.
  • Μια νέα λειτουργία εξόδου "-o short-delta" προστέθηκε στο "journalctl", εμφανίζοντας τη διαφορά ώρας μεταξύ διαφορετικών μηνυμάτων στο αρχείο καταγραφής.
  • Το systemd-repart προσθέτει υποστήριξη για τη δημιουργία κατατμήσεων με το σύστημα αρχείων Squashfs και κατατμήσεων για dm-verity, συμπεριλαμβανομένων των ψηφιακών υπογραφών.
  • Προστέθηκε η ρύθμιση "StopIdleSessionSec=" στο systemd-logind για τον τερματισμό μιας ανενεργής συνεδρίας μετά από ένα καθορισμένο χρονικό όριο.
  • Το Systemd-cryptenroll έχει προσθέσει μια επιλογή "--unlock-key-file=" για εξαγωγή του κλειδιού αποκρυπτογράφησης από ένα αρχείο αντί να ζητά από τον χρήστη.
  • Είναι πλέον δυνατή η εκτέλεση του βοηθητικού προγράμματος systemd-growfs σε περιβάλλοντα χωρίς udev.
  • Το systemd-backlight έχει βελτιωμένη υποστήριξη για συστήματα με πολλές κάρτες γραφικών.
  • Η άδεια για τα παραδείγματα κώδικα που παρέχονται στην τεκμηρίωση έχει αλλάξει από CC0 σε MIT-0.

Αλλαγές που διακόπτουν τη συμβατότητα:

  • Κατά τον έλεγχο του αριθμού έκδοσης του πυρήνα χρησιμοποιώντας την οδηγία ConditionKernelVersion, χρησιμοποιείται τώρα μια απλή σύγκριση συμβολοσειρών στους τελεστές '=' και '!=' και εάν ο τελεστής σύγκρισης δεν έχει καθοριστεί καθόλου, μπορεί να χρησιμοποιηθεί η αντιστοίχιση σφαιρικής μάσκας χρησιμοποιώντας το χαρακτήρες '*', '?' Και '[', ']'. Για να συγκρίνετε εκδόσεις στυλ stverscmp(), χρησιμοποιήστε τους τελεστές '<', '>', '<=' και '>='.
  • Η ετικέτα SELinux που χρησιμοποιείται για τον έλεγχο της πρόσβασης από ένα αρχείο μονάδας διαβάζεται τώρα τη στιγμή της φόρτωσης του αρχείου και όχι κατά τη στιγμή του ελέγχου πρόσβασης.
  • Η συνθήκη "ConditionFirstBoot" ενεργοποιείται τώρα στην πρώτη εκκίνηση του συστήματος μόνο απευθείας στο στάδιο εκκίνησης και επιστρέφει "false" όταν καλείτε μονάδες μετά την ολοκλήρωση της εκκίνησης.
  • Το 2024, η systemd σχεδιάζει να σταματήσει να υποστηρίζει τον μηχανισμό περιορισμού πόρων cgroup v1, ο οποίος καταργήθηκε στην έκδοση systemd 248. Συνιστάται στους διαχειριστές να φροντίζουν εκ των προτέρων τη μετεγκατάσταση υπηρεσιών που βασίζονται σε cgroup v2 στο cgroup v1. Η βασική διαφορά μεταξύ των cgroups v2 και v1 είναι η χρήση μιας κοινής ιεραρχίας cgroups για όλους τους τύπους πόρων, αντί για ξεχωριστές ιεραρχίες για την κατανομή πόρων CPU, για τη ρύθμιση της κατανάλωσης μνήμης και για το I/O. Οι ξεχωριστές ιεραρχίες οδηγούν σε δυσκολίες στην οργάνωση της αλληλεπίδρασης μεταξύ των χειριστών και σε πρόσθετο κόστος πόρων πυρήνα κατά την εφαρμογή κανόνων για μια διαδικασία που αναφέρεται σε διαφορετικές ιεραρχίες.
  • Στο δεύτερο εξάμηνο του 2023, σχεδιάζουμε να τερματίσουμε την υποστήριξη για ιεραρχίες καταλόγου διαχωρισμού, όπου το /usr είναι προσαρτημένο ξεχωριστά από τη ρίζα ή τα /bin και /usr/bin, /lib και /usr/lib είναι διαχωρισμένα.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο