Stel systemd-homed bekendgestel om draagbare tuisgidse te bestuur

Lennart Poettering voorgelê (PDF) by die All Systems Go 2019-konferensie, 'n nuwe komponent van die stelselbestuurder-stelsel - systemd-huisvesting, wat daarop gemik is om gebruikers tuisgidse draagbaar en apart van stelselinstellings te maak. Die hoofgedagte van die projek is om selfstandige omgewings te skep vir gebruikersdata wat tussen verskillende stelsels oorgedra kan word sonder om bekommerd te wees oor identifiseerder-sinchronisasie en vertroulikheid.

Die tuisgids-omgewing kom in die vorm van 'n gemonteerde beeldlêer, die data waarin geïnkripteer is. Gebruikersbewyse is gekoppel aan die tuisgids eerder as stelselinstellings - in plaas van /etc/passwd en /etc/shadow profiel in JSON-formaat, gestoor in die ~/.identity-gids. Die profiel bevat die parameters wat nodig is vir die gebruiker se werk, insluitend inligting oor die naam, wagwoord-hash, enkripsiesleutels, kwotas en toegekende hulpbronne. Die profiel kan gesertifiseer word met 'n digitale handtekening wat op 'n eksterne Yubikey-token gestoor is.

Parameters kan ook bykomende inligting insluit soos SSH-sleutels, biometriese verifikasiedata, beeld, e-pos, adres, tydsone, taal-, proses- en geheuelimiete, bykomende bergvlae (nodev, noexec, nosuid), inligting oor gebruikte gebruiker IMAP/SMTP-bedieners , inligting oor die aktivering van ouerkontroles, rugsteunopsies, ens. 'n API word verskaf om parameters te versoek en te ontleed Varlink.

UID/GID-toewysing en verwerking word dinamies gedoen op elke plaaslike stelsel waaraan die tuisgids gekoppel is. Deur die voorgestelde stelsel te gebruik, kan die gebruiker sy tuisgids by hom hou, byvoorbeeld op 'n Flash Drive, en 'n werksomgewing op enige rekenaar kry sonder om uitdruklik 'n rekening daarop te skep (die teenwoordigheid van 'n lêer met die beeld van die tuisgids lei tot sintese van die gebruiker).

Daar word voorgestel om die LUKS2-substelsel vir data-enkripsie te gebruik, maar systemd-homed laat ook die gebruik van ander backends toe, byvoorbeeld vir ongeënkripteerde gidse, Btrfs, Fscrypt en CIFS-netwerkpartisies. Om draagbare gidse te bestuur, word die homectl-hulpprogram voorgestel, wat jou toelaat om beelde van tuisgidse te skep en te aktiveer, asook hul grootte te verander en 'n wagwoord in te stel.

Op stelselvlak word werk verseker deur die volgende komponente:

  • systemd-homed.service - bestuur die tuisgids en sluit JSON-rekords direk in tuisgidsbeelde in;
  • pam_systemd - verwerk parameters vanaf die JSON-profiel wanneer die gebruiker aanmeld en pas dit toe in die konteks van die geaktiveerde sessie (voer verifikasie uit, stel omgewingsveranderlikes op, ens.);
  • systemd-logind.service - verwerk parameters vanaf die JSON-profiel wanneer die gebruiker aanmeld, pas verskeie hulpbronbestuurinstellings toe en stel limiete;
  • nss-systemd - NSS-module vir glibc, sintetiseer klassieke NSS-rekords gebaseer op 'n JSON-profiel, wat terugwaartse versoenbaarheid bied met die UNIX-gebruikersverwerkings-API (/etc/password);
  • PID 1 - skep gebruikers dinamies (gesintetiseer volgens analogie met die gebruik van die DynamicUser-aanwysing in eenhede) en maak hulle sigbaar vir die res van die stelsel;
  • systemd-userdbd.service - vertaal UNIX/glibc NSS-rekeninge in JSON-rekords en verskaf 'n verenigde Varlink API vir navrae en herhaling oor rekords.

Die voordele van die voorgestelde stelsel sluit in die vermoë om gebruikers te bestuur wanneer die /etc-gids in leesalleenmodus gemonteer word, die afwesigheid van die behoefte om identifiseerders (UID/GID) tussen stelsels te sinchroniseer, gebruikeronafhanklikheid van 'n spesifieke rekenaar, blokkering van gebruikersdata tydens slaapmodus, die gebruik van enkripsie en moderne verifikasiemetodes. Systemd-homed word beplan om ingesluit te word in systemd hoofstroom in vrystelling 244 of 245.

Voorbeeld JSON-gebruikerprofiel:

"autoLogin": waar,
"bindend" : {
«15e19cd24e004b949ddaac60c74aa165» : {
"fileSystemType" : "ext4"
«fileSystemUUID» : «758e88c8-5851-4a2a-b98f-e7474279c111»,
"gid": 60232,
"homeDirectory" : "/huis/toets",
"imagePath" : "/home/test.home",
"luksCipher" : "aes",
"luksCipherMode" : "xts-plain64",
«luksUUID» : «e63581ba-79fa-4226-b9de-1888393f7573»,
"luksVolumeKeySize" : 32,
«partitionUUID» : «41f9ce04-c927-4b74-a981-c669f93eb4dc»,
"storage" : "luks",
"uid": 60233
}
},
"disposition" : "gereelde",
"enforcePasswordPolicy": vals,
"lastChangeUSec": 1565951024279735,
"lid van" : [
"wiel"
],
"bevoorreg" : {
"hashedPassword" : [
«$6$WHBKvAFFT9jKPA4k$OPY4D5…/»
] },
"handtekening" : [
{
"data" : "LU/HeVrPZSzi3M3J...==",
"key" : "——BEGIN PUBLIEKE SLEUTEL——\nMCowBQADK2VwAy...=\n——END OPENBARE SLEUTEL——\n"
}
],
"gebruikersnaam" : "toets",
"status" : {
«15e19cf24e004b949dfaac60c74aa165» : {
"goodAuthenticationCounter": 16,
"lastGood AuthenticationUSec": 1566309343044322,
"rateLimitBeginUSec" : 1566309342341723,
"rateLimitCount" : 1,
"state" : "onaktief",
"service" : "io.systemd.Home",
"skyfgrootte": 161218667776,
"skyfCeiling": 191371729408,
"diskFloor": 5242780,
"Locally onderteken" : waar
}
}

Bron: opennet.ru

Voeg 'n opmerking