systemd system manager έκδοση 243

Μετά από πέντε μήνες ανάπτυξης παρουσιάζονται έκδοση του διαχειριστή συστήματος σύστημα 243. Μεταξύ των καινοτομιών, μπορούμε να σημειώσουμε την ενσωμάτωση στο PID 1 ενός χειριστή για χαμηλή μνήμη στο σύστημα, υποστήριξη για την προσάρτηση των δικών σας προγραμμάτων BPF για φιλτράρισμα της κίνησης μονάδας, πολλές νέες επιλογές για systemd-networkd, μια λειτουργία παρακολούθησης του εύρους ζώνης του δικτύου διεπαφές, που ενεργοποιούν από προεπιλογή σε συστήματα 64-bit αριθμούς PID 22-bit αντί για 16-bit, μετάβαση σε μια ενοποιημένη ιεραρχία cgroups, συμπερίληψη στο systemd-network-generator.

Βασικές αλλαγές:

  • Η αναγνώριση σημάτων που δημιουργούνται από τον πυρήνα σχετικά με εξάντληση μνήμης (Out-Of-Memory, OOM) έχει προστεθεί στον χειριστή PID 1 για τη μεταφορά μονάδων που έχουν φτάσει το όριο κατανάλωσης μνήμης σε μια ειδική κατάσταση με την προαιρετική δυνατότητα να αναγκάζονται να τερματίσουν ή να σταματήσει?
  • Για αρχεία μονάδας, νέες παράμετροι IPIngressFilterPath και
    IPEgressFilterPath, το οποίο σας επιτρέπει να συνδέετε προγράμματα BPF με αυθαίρετους χειριστές για να φιλτράρετε τα εισερχόμενα και εξερχόμενα πακέτα IP που δημιουργούνται από διεργασίες που σχετίζονται με αυτήν τη μονάδα. Τα προτεινόμενα χαρακτηριστικά σάς επιτρέπουν να δημιουργήσετε ένα είδος τείχους προστασίας για υπηρεσίες systemd. Παράδειγμα γραφής ένα απλό φίλτρο δικτύου που βασίζεται στο BPF.

  • Η εντολή "clean" προστέθηκε στο βοηθητικό πρόγραμμα systemctl για τη διαγραφή της προσωρινής μνήμης, των αρχείων χρόνου εκτέλεσης, των πληροφοριών κατάστασης και των καταλόγων καταγραφής.
  • Το systemd-networkd προσθέτει υποστήριξη για διασυνδέσεις δικτύου MACsec, nlmon, IPVTAP και Xfrm.
  • Το systemd-networkd υλοποιεί ξεχωριστή διαμόρφωση των στοίβων DHCPv4 και DHCPv6 μέσω των ενοτήτων "[DHCPv4]" και "[DHCPv6]" στο αρχείο διαμόρφωσης. Προστέθηκε η επιλογή RoutesToDNS για να προσθέσετε μια ξεχωριστή διαδρομή στον διακομιστή DNS που καθορίζεται στις παραμέτρους που λαμβάνονται από τον διακομιστή DHCP (έτσι ώστε η κίνηση στο DNS να αποστέλλεται μέσω της ίδιας σύνδεσης με την κύρια διαδρομή που λαμβάνεται από το DHCP). Προστέθηκαν νέες επιλογές για το DHCPv4: MaxAttempts - μέγιστος αριθμός αιτημάτων για απόκτηση διεύθυνσης, BlackList - μαύρη λίστα διακομιστών DHCP, SendRelease - δυνατότητα αποστολής μηνυμάτων DHCP RELEASE όταν τελειώσει η περίοδος λειτουργίας.
  • Νέες εντολές έχουν προστεθεί στο βοηθητικό πρόγραμμα systemd-analyze:
    • "timestamp systemd-analyze" - ανάλυση χρόνου και μετατροπή.
    • «Σύστημα ανάλυσης χρόνου» - ανάλυση και μετατροπή χρονικών περιόδων.
    • «Σύστημα ανάλυσης συνθήκης» - ανάλυση και δοκιμή παραστάσεων ConditionXYZ.
    • "σύστημα-ανάλυση κατάστασης εξόδου" - ανάλυση και μετατροπή κωδικών εξόδου από αριθμούς σε ονόματα και αντίστροφα.
    • "systemd-analyze unit-files" - Εμφανίζει όλες τις διαδρομές αρχείων για μονάδες και ψευδώνυμα μονάδων.
  • Επιλογές SuccessExitStatus, RestartPreventExitStatus και
    Το RestartForceExitStatus υποστηρίζει πλέον όχι μόνο κωδικούς επιστροφής αριθμών, αλλά και τα αναγνωριστικά κειμένου τους (για παράδειγμα, "DATAERR"). Μπορείτε να προβάλετε τη λίστα των κωδικών που έχουν εκχωρηθεί σε αναγνωριστικά χρησιμοποιώντας την εντολή "sytemd-analyze exit-status".

  • Η εντολή «delete» έχει προστεθεί στο βοηθητικό πρόγραμμα networkctl για τη διαγραφή συσκευών εικονικού δικτύου, καθώς και η επιλογή «—stats» για την εμφάνιση στατιστικών στοιχείων συσκευών.
  • Οι ρυθμίσεις SpeedMeter και SpeedMeterIntervalSec έχουν προστεθεί στο networkd.conf για περιοδική μέτρηση της απόδοσης των διεπαφών δικτύου. Τα στατιστικά στοιχεία που λαμβάνονται από τα αποτελέσματα των μετρήσεων μπορούν να προβληθούν στην έξοδο της εντολής 'networkctl status'.
  • Προστέθηκε νέο βοηθητικό πρόγραμμα systemd-network-generator για τη δημιουργία αρχείων
    .network, .netdev και .link με βάση τις ρυθμίσεις IP που μεταβιβάστηκαν κατά την εκκίνηση μέσω της γραμμής εντολών του πυρήνα Linux σε μορφή ρυθμίσεων Dracut.

  • Η τιμή sysctl "kernel.pid_max" σε συστήματα 64 bit έχει πλέον οριστεί από προεπιλογή σε 4194304 (PID 22 bit αντί για 16 bit), γεγονός που μειώνει την πιθανότητα συγκρούσεων κατά την εκχώρηση PID και αυξάνει το όριο στον αριθμό των ταυτόχρονων εκτελούνται διαδικασίες και έχει θετικό αντίκτυπο στην ασφάλεια. Η αλλαγή θα μπορούσε ενδεχομένως να οδηγήσει σε ζητήματα συμβατότητας, αλλά τέτοια ζητήματα δεν έχουν ακόμη αναφερθεί στην πράξη.
  • Από προεπιλογή, το στάδιο δημιουργίας μεταβαίνει στην ενοποιημένη ιεραρχία cgroups-v2 ("-Ddefault-hierarchy=unified"). Προηγουμένως, η προεπιλογή ήταν η υβριδική λειτουργία (“-Ddefault-hierarchy=hybrid”).
  • Η συμπεριφορά του φίλτρου κλήσεων συστήματος (SystemCallFilter) έχει αλλάξει, το οποίο, στην περίπτωση απαγορευμένης κλήσης συστήματος, τερματίζει τώρα ολόκληρη τη διαδικασία, αντί για μεμονωμένα νήματα, καθώς ο τερματισμός μεμονωμένων νημάτων θα μπορούσε να οδηγήσει σε απρόβλεπτα προβλήματα. Οι αλλαγές ισχύουν μόνο εάν έχετε πυρήνα Linux 4.14+ και libseccomp 2.4.0+.
  • Στα μη προνομιούχα προγράμματα δίνεται η δυνατότητα να στέλνουν πακέτα ICMP Echo (ping) ορίζοντας το sysctl "net.ipv4.ping_group_range" για ολόκληρο το εύρος ομάδων (για όλες τις διεργασίες).
  • Για να επιταχυνθεί η διαδικασία κατασκευής, η δημιουργία εγχειριδίων man έχει διακοπεί από προεπιλογή (για τη δημιουργία πλήρους τεκμηρίωσης, πρέπει να χρησιμοποιήσετε την επιλογή "-Dman=true" ή "-Dhtml=true" για εγχειρίδια σε μορφή html). Για να διευκολυνθεί η προβολή της τεκμηρίωσης, περιλαμβάνονται δύο σενάρια: build/man/man και build/man/html για τη δημιουργία και την προεπισκόπηση εγχειριδίων ενδιαφέροντος.
  • Για την επεξεργασία ονομάτων τομέα με χαρακτήρες από εθνικά αλφάβητα, η βιβλιοθήκη libidn2 χρησιμοποιείται από προεπιλογή (για να επιστρέψετε το libidn, χρησιμοποιήστε την επιλογή "-Dlibidn=true").
  • Η υποστήριξη για το εκτελέσιμο αρχείο /usr/sbin/halt.local, το οποίο παρείχε λειτουργικότητα που δεν ήταν ευρέως διανεμημένη στις διανομές, έχει διακοπεί. Για να οργανώσετε την εκκίνηση των εντολών κατά τον τερματισμό λειτουργίας, συνιστάται να χρησιμοποιείτε σενάρια στο /usr/lib/systemd/system-shutdown/ ή να ορίσετε μια νέα μονάδα που εξαρτάται από το final.target.
  • Στο τελευταίο στάδιο τερματισμού λειτουργίας, το systemd τώρα αυξάνει αυτόματα το επίπεδο καταγραφής στο sysctl "kernel.printk", το οποίο λύνει το πρόβλημα με την εμφάνιση στο αρχείο καταγραφής συμβάντων που συνέβησαν στα τελευταία στάδια του τερματισμού λειτουργίας, όταν οι κανονικοί δαίμονες καταγραφής έχουν ήδη ολοκληρωθεί ;
  • Στο journalctl και σε άλλα βοηθητικά προγράμματα που εμφανίζουν αρχεία καταγραφής, οι προειδοποιήσεις επισημαίνονται με κίτρινο χρώμα και τα αρχεία ελέγχου επισημαίνονται με μπλε χρώμα για να τονιστούν οπτικά από το πλήθος.
  • Στη μεταβλητή περιβάλλοντος $PATH, η διαδρομή προς το bin/ έρχεται τώρα πριν από τη διαδρομή προς το sbin/, δηλ. Εάν υπάρχουν πανομοιότυπα ονόματα εκτελέσιμων αρχείων και στους δύο καταλόγους, το αρχείο από το bin/ θα εκτελεστεί.
  • Το systemd-logind παρέχει μια κλήση SetBrightness() για την ασφαλή αλλαγή της φωτεινότητας της οθόνης ανά περίοδο σύνδεσης.
  • Η σημαία "--wait-for-initialization" έχει προστεθεί στην εντολή "udevadm info" για να περιμένει την προετοιμασία της συσκευής.
  • Κατά την εκκίνηση του συστήματος, ο χειριστής PID 1 εμφανίζει πλέον τα ονόματα των μονάδων αντί για μια γραμμή με την περιγραφή τους. Για να επιστρέψετε στην προηγούμενη συμπεριφορά, μπορείτε να χρησιμοποιήσετε την επιλογή StatusUnitFormat στο /etc/systemd/system.conf ή την επιλογή του πυρήνα systemd.status_unit_format.
  • Προστέθηκε η επιλογή KExecWatchdogSec στο /etc/systemd/system.conf για το watchdog PID 1, το οποίο καθορίζει το χρονικό όριο για την επανεκκίνηση με χρήση του kexec. Παλιό σκηνικό
    Το ShutdownWatchdogSec μετονομάστηκε σε RebootWatchdogSec και ορίζει ένα χρονικό όριο για τις εργασίες κατά τον τερματισμό λειτουργίας ή την κανονική επανεκκίνηση.

  • Προστέθηκε μια νέα επιλογή για τις υπηρεσίες ExecCondition, το οποίο σας επιτρέπει να καθορίσετε εντολές που θα εκτελούνται πριν από το ExecStartPre. Με βάση τον κωδικό σφάλματος που επιστρέφεται από την εντολή, λαμβάνεται απόφαση για περαιτέρω εκτέλεση της μονάδας - εάν επιστραφεί ο κωδικός 0, η εκκίνηση της μονάδας συνεχίζεται, εάν από το 1 έως το 254 τελειώνει αθόρυβα χωρίς σημαία αποτυχίας, εάν το 255 τελειώνει με μια σημαία αποτυχίας.
  • Προστέθηκε μια νέα υπηρεσία systemd-pstore.service για εξαγωγή δεδομένων από το sys/fs/pstore/ και από την αποθήκευση στο /var/lib/pstore για περαιτέρω ανάλυση.
  • Νέες εντολές έχουν προστεθεί στο βοηθητικό πρόγραμμα timedatectl για τη διαμόρφωση παραμέτρων NTP για το systemd-timesyncd σε σχέση με τις διεπαφές δικτύου.
  • Η εντολή "localectl list-locales" δεν εμφανίζει πλέον τοπικές ρυθμίσεις εκτός από το UTF-8.
  • Διασφαλίζει ότι τα σφάλματα εκχώρησης μεταβλητών στα αρχεία sysctl.d/ αγνοούνται εάν το όνομα της μεταβλητής ξεκινά με τον χαρακτήρα “-“;
  • Υπηρεσίες systemd-random-seed.service είναι πλέον εξ ολοκλήρου υπεύθυνος για την προετοιμασία της ομάδας εντροπίας της γεννήτριας ψευδοτυχαίων αριθμών του πυρήνα Linux. Οι υπηρεσίες που απαιτούν ένα σωστά αρχικοποιημένο /dev/urandom θα πρέπει να ξεκινούν μετά το systemd-random-seed.service.
  • Ο φορτωτής εκκίνησης systemd-boot παρέχει την προαιρετική δυνατότητα υποστήριξης αρχείο σπόρων με τυχαία ακολουθία στο διαμέρισμα συστήματος EFI (ESP).
  • Νέες εντολές έχουν προστεθεί στο βοηθητικό πρόγραμμα bootctl: "bootctl random-seed" για τη δημιουργία ενός αρχείου εκκίνησης στο ESP και "bootctl is-installed" για έλεγχο της εγκατάστασης του συστήματος φόρτωσης εκκίνησης systemd-boot. Το bootctl έχει επίσης προσαρμοστεί για να εμφανίζει προειδοποιήσεις σχετικά με λανθασμένες ρυθμίσεις παραμέτρων των καταχωρήσεων εκκίνησης (για παράδειγμα, όταν η εικόνα του πυρήνα διαγράφεται, αλλά η καταχώρηση για τη φόρτωσή της έχει μείνει).
  • Παρέχει αυτόματη επιλογή του διαμερίσματος swap όταν το σύστημα μεταβαίνει σε κατάσταση αναστολής λειτουργίας. Το διαμέρισμα επιλέγεται ανάλογα με την προτεραιότητα που έχει διαμορφωθεί για αυτό και, στην περίπτωση πανομοιότυπων προτεραιοτήτων, την ποσότητα του ελεύθερου χώρου.
  • Προστέθηκε η επιλογή keyfile-timeout στο /etc/crypttab για να ορίσετε πόσο χρόνο θα περιμένει η συσκευή με το κλειδί κρυπτογράφησης πριν σας ζητηθεί κωδικός πρόσβασης για πρόσβαση στο κρυπτογραφημένο διαμέρισμα.
  • Προστέθηκε η επιλογή IOWeight για να ορίσετε το βάρος I/O για τον προγραμματιστή BFQ.
  • Το systemd-resolved πρόσθεσε «αυστηρή» λειτουργία για DNS-over-TLS και εφάρμοσε τη δυνατότητα αποθήκευσης μόνο θετικών αποκρίσεων DNS ("Cache no-negative" στο solved.conf).
  • Για το VXLAN, το systemd-networkd έχει προσθέσει μια επιλογή GenericProtocolExtension για να ενεργοποιήσει τις επεκτάσεις πρωτοκόλλου VXLAN. Για το VXLAN και το GENEVE, η επιλογή IPDoNotFragment έχει προστεθεί για να οριστεί η σημαία απαγόρευσης κατακερματισμού για τα εξερχόμενα πακέτα.
  • Στο systemd-networkd, στην ενότητα "[Route]", η επιλογή FastOpenNoCookie εμφανίστηκε για να ενεργοποιήσει τον μηχανισμό για γρήγορο άνοιγμα συνδέσεων TCP (TFO - TCP Fast Open, RFC 7413) σε σχέση με μεμονωμένες διαδρομές, καθώς και την επιλογή TTLPropagate για να διαμορφώσετε το TTL LSP (Label Switched Path ). Η επιλογή «Τύπος» παρέχει υποστήριξη για λειτουργίες δρομολόγησης τοπικής, μετάδοσης, οποιασδήποτε μετάδοσης, πολλαπλής μετάδοσης, οποιαδήποτε και xresolve.
  • Το Systemd-networkd προσφέρει μια επιλογή DefaultRouteOnDevice στην ενότητα "[Δίκτυο]" για αυτόματη διαμόρφωση μιας προεπιλεγμένης διαδρομής για μια δεδομένη συσκευή δικτύου.
  • Το Systemd-networkd έχει προσθέσει το ProxyARP και
    ProxyARPWifi για ρύθμιση της συμπεριφοράς ARP του διακομιστή μεσολάβησης, MulticastRouter για ρύθμιση παραμέτρων δρομολόγησης σε λειτουργία πολλαπλής διανομής, MulticastIGMPVersion για αλλαγή της έκδοσης IGMP (Internet Group Management Protocol) για multicast.

  • Το Systemd-networkd έχει προσθέσει επιλογές Local, Peer και PeerPort για τις σήραγγες FooOverUDP για τη διαμόρφωση των τοπικών και απομακρυσμένων διευθύνσεων IP, καθώς και του αριθμού θύρας δικτύου. Για τις σήραγγες TUN, η επιλογή VnetHeader έχει προστεθεί για τη διαμόρφωση της υποστήριξης GSO (Generic Segment Offload).
  • Στο systemd-networkd, στα αρχεία .network και .link στην ενότητα [Match], έχει εμφανιστεί μια επιλογή Ιδιότητα, η οποία σας επιτρέπει να προσδιορίζετε τις συσκευές σύμφωνα με τις συγκεκριμένες ιδιότητές τους στο udev.
  • Στο systemd-networkd, έχει προστεθεί μια επιλογή AssignToLoopback για σήραγγες, η οποία ελέγχει εάν το άκρο της σήραγγας έχει εκχωρηθεί στη συσκευή loopback "lo".
  • Το systemd-networkd ενεργοποιεί αυτόματα τη στοίβα IPv6 εάν είναι αποκλεισμένη μέσω sysctl disable_ipv6 - Το IPv6 ενεργοποιείται εάν οριστούν ρυθμίσεις IPv6 (στατικές ή DHCPv6) για τη διεπαφή δικτύου, διαφορετικά η ήδη καθορισμένη τιμή sysctl δεν αλλάζει.
  • Στα αρχεία .network, η ρύθμιση CriticalConnection έχει αντικατασταθεί από την επιλογή KeepConfiguration, η οποία παρέχει περισσότερα μέσα για τον καθορισμό καταστάσεων ("yes", "static", "dhcp-on-stop", "dhcp") στις οποίες το systemd-networkd πρέπει Μην αγγίζετε τις υπάρχουσες συνδέσεις κατά την εκκίνηση.
  • Διορθώθηκε η ευπάθεια CVE-2019-15718, που προκαλείται από την έλλειψη ελέγχου πρόσβασης στη διεπαφή D-Bus επιλύθηκε με σύστημα. Το ζήτημα επιτρέπει σε έναν μη προνομιούχο χρήστη να εκτελεί λειτουργίες που είναι διαθέσιμες μόνο στους διαχειριστές, όπως αλλαγή ρυθμίσεων DNS και κατεύθυνση ερωτημάτων DNS σε έναν αδίστακτο διακομιστή.
  • Διορθώθηκε η ευπάθεια CVE-2019-9619σχετίζεται με τη μη ενεργοποίηση του pam_systemd για μη διαδραστικές συνεδρίες, γεγονός που επιτρέπει την πλαστογράφηση της ενεργής περιόδου σύνδεσης.

Πηγή: opennet.ru

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