Παρουσιάστηκε το systemd-homed για τη διαχείριση φορητών οικιακών καταλόγων

Lennart Poettering εισήχθη (PDF) στο συνέδριο All Systems Go 2019, ένα νέο στοιχείο του συστήματος διαχείρισης συστήματος - systemd-homed, με στόχο να κάνει τους οικιακούς καταλόγους των χρηστών φορητούς και ξεχωριστούς από τις ρυθμίσεις συστήματος. Η κύρια ιδέα του έργου είναι η δημιουργία αυτάρκειας περιβαλλόντων για δεδομένα χρήστη που μπορούν να μεταφερθούν μεταξύ διαφορετικών συστημάτων χωρίς να ανησυχείτε για το συγχρονισμό και την εμπιστευτικότητα των αναγνωριστικών.

Το περιβάλλον του οικιακού καταλόγου έρχεται με τη μορφή ενός προσαρτημένου αρχείου εικόνας, τα δεδομένα στο οποίο είναι κρυπτογραφημένα. Τα διαπιστευτήρια χρήστη συνδέονται με τον αρχικό κατάλογο και όχι με τις ρυθμίσεις συστήματος - αντί για /etc/passwd και /etc/shadow προφίλ σε μορφή JSON, αποθηκευμένο στον κατάλογο ~/.identity. Το προφίλ περιέχει τις παραμέτρους που είναι απαραίτητες για την εργασία του χρήστη, συμπεριλαμβανομένων πληροφοριών σχετικά με το όνομα, τον κατακερματισμό του κωδικού πρόσβασης, τα κλειδιά κρυπτογράφησης, τα όρια και τους κατανεμημένους πόρους. Το προφίλ μπορεί να πιστοποιηθεί με ψηφιακή υπογραφή που είναι αποθηκευμένη σε εξωτερικό διακριτικό Yubikey.

Οι παράμετροι μπορεί επίσης να περιλαμβάνουν πρόσθετες πληροφορίες όπως κλειδιά SSH, βιομετρικά δεδομένα ελέγχου ταυτότητας, εικόνα, email, διεύθυνση, ζώνη ώρας, γλώσσα, όρια διαδικασίας και μνήμης, πρόσθετες σημαίες προσάρτησης (nodev, noexec, nosuid), πληροφορίες σχετικά με διακομιστές IMAP/SMTP που χρησιμοποιούνται από χρήστες , πληροφορίες σχετικά με την ενεργοποίηση γονικών ελέγχων, εφεδρικές επιλογές κ.λπ. Παρέχεται ένα API για το ερώτημα και την ανάλυση των παραμέτρων Varlink.

Η εκχώρηση και η επεξεργασία UID/GID γίνεται δυναμικά σε κάθε τοπικό σύστημα στο οποίο είναι συνδεδεμένος ο αρχικός κατάλογος. Χρησιμοποιώντας το προτεινόμενο σύστημα, ο χρήστης μπορεί να κρατήσει τον οικιακό του κατάλογο μαζί του, για παράδειγμα σε μια μονάδα flash, και να αποκτήσει ένα περιβάλλον εργασίας σε οποιονδήποτε υπολογιστή χωρίς να δημιουργήσει ρητά λογαριασμό σε αυτόν (παρουσία αρχείου με την εικόνα του οικιακού καταλόγου οδηγεί σε σύνθεση του χρήστη).

Προτείνεται η χρήση του υποσυστήματος LUKS2 για κρυπτογράφηση δεδομένων, αλλά το systemd-homed επιτρέπει επίσης τη χρήση άλλων backend, για παράδειγμα, για μη κρυπτογραφημένους καταλόγους, κατατμήσεις δικτύου Btrfs, Fscrypt και CIFS. Για τη διαχείριση φορητών καταλόγων, προτείνεται το βοηθητικό πρόγραμμα homectl, το οποίο σας επιτρέπει να δημιουργείτε και να ενεργοποιείτε εικόνες οικιακών καταλόγων, καθώς και να αλλάξετε το μέγεθός τους και να ορίσετε κωδικό πρόσβασης.

Σε επίπεδο συστήματος, η εργασία διασφαλίζεται από τα ακόλουθα στοιχεία:

  • systemd-homed.service - διαχειρίζεται τον οικιακό κατάλογο και ενσωματώνει εγγραφές JSON απευθείας σε εικόνες οικιακού καταλόγου.
  • pam_systemd - επεξεργάζεται παραμέτρους από το προφίλ JSON όταν ο χρήστης συνδέεται και τις εφαρμόζει στο πλαίσιο της ενεργοποιημένης περιόδου λειτουργίας (εκτελεί έλεγχο ταυτότητας, διαμορφώνει μεταβλητές περιβάλλοντος κ.λπ.).
  • systemd-logind.service - επεξεργάζεται παραμέτρους από το προφίλ JSON όταν ο χρήστης συνδέεται, εφαρμόζει διάφορες ρυθμίσεις διαχείρισης πόρων και θέτει όρια.
  • nss-systemd - μονάδα NSS για glibc, συνθέτει κλασικές εγγραφές NSS με βάση ένα προφίλ JSON, παρέχοντας συμβατότητα προς τα πίσω με το UNIX API για επεξεργασία από τον χρήστη (/etc/password).
  • PID 1 - δημιουργεί δυναμικά χρήστες (συντίθεται κατ' αναλογία με τη χρήση της οδηγίας DynamicUser σε μονάδες) και τους κάνει ορατούς στο υπόλοιπο σύστημα.
  • systemd-userdbd.service - μεταφράζει λογαριασμούς UNIX/glibc NSS σε εγγραφές JSON και παρέχει ένα ενοποιημένο API Varlink για αναζήτηση και επανάληψη σε εγγραφές.

Τα πλεονεκτήματα του προτεινόμενου συστήματος περιλαμβάνουν τη δυνατότητα διαχείρισης των χρηστών κατά την προσάρτηση του καταλόγου /etc σε λειτουργία μόνο για ανάγνωση, την απουσία ανάγκης συγχρονισμού αναγνωριστικών (UID/GID) μεταξύ συστημάτων, την ανεξαρτησία του χρήστη από έναν συγκεκριμένο υπολογιστή, τον αποκλεισμό δεδομένων χρήστη. κατά την κατάσταση αναστολής λειτουργίας, η χρήση κρυπτογράφησης και σύγχρονων μεθόδων ελέγχου ταυτότητας. Το Systemd-homed σχεδιάζεται να συμπεριληφθεί στο systemd mainstream στην έκδοση 244 ή 245.

Παράδειγμα προφίλ χρήστη JSON:

"autoLogin" : true,
"δεσμευτικό" : {
«15e19cd24e004b949ddaac60c74aa165» : {
"fileSystemType" : "ext4"
«fileSystemUUID» : «758e88c8-5851-4a2a-b98f-e7474279c111»,
"gid": 60232,
"homeDirectory" : "/home/test",
"imagePath" : "/home/test.home",
"luksCipher" : "aes",
"luksCipherMode" : "xts-plain64",
«luksUUID» : «e63581ba-79fa-4226-b9de-1888393f7573»,
"luksVolumeKeySize" : 32,
«partitionUUID» : «41f9ce04-c927-4b74-a981-c669f93eb4dc»,
"αποθήκευση" : "luks",
"uid" : 60233
}
},
"διάθεση" : "κανονικό",
"enforcePasswordPolicy" : ψευδής,
"lastChangeUSec" : 1565951024279735,
"μέλος" : [
"ρόδα"
],
"προνομιακό" : {
"hashedPassword" : [
«$6$WHBKvAFFT9jKPA4k$OPY4D5…/»
] },
"υπογραφή" : [
{
"data" : "LU/HeVrPZSzi3M3J...==",
"κλειδί" : "——ΔΗΜΟΣΙΟ ΚΛΕΙΔΙ ΕΝΑΡΞΗΣ——\nMCowBQADK2VwAy…=\n——ΤΕΛΟΣ ΔΗΜΟΣΙΟ ΚΛΕΙΔΙ——\n"
}
],
"username" : "test",
"κατάσταση" : {
«15e19cf24e004b949dfaac60c74aa165» : {
"goodAuthenticationCounter": 16,
"lastGoodAuthenticationUSec" : 1566309343044322,
"rateLimitBeginUSec" : 1566309342341723,
"rateLimitCount" : 1,
"state" : "ανενεργό",
"service" : "io.systemd.Home",
"diskSize" : 161218667776,
"diskCeiling": 191371729408,
"diskFloor": 5242780,
"signedLocally" : αληθές
}
}

Πηγή: opennet.ru

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