Esitatud on systemd-homed kaasaskantavate kodukataloogide haldamiseks

Lennart Poettering esitles (PDF) All Systems Go 2019 konverentsil esitleti uut süsteemihalduri systemd komponenti — systemd-homed, mis on suunatud kasutajate kodukataloogide ülekandmise tagamisele ning nende eraldamisele süsteemisättetest. Projekti peamine idee on luua iseseisvaid keskkondi kasutaja andmete jaoks, mida saab erinevate süsteemide vahel kanda, muretsemata identifikaatorite sünkroniseerimise ja privaatsuse pärast.

Kodukatalooge pakutakse monteeritava pildifailina, mille andmed on krüpteeritud. Kasutaja autentimise parameetrid on seotud kodukatalooge, mitte süsteemi seadistustega — asemel /etc/passwd ja /etc/shadow kasutatakse profiili JSON formaadis, mis asub kataloogis ~/.identity. Profiilis on välja toodud kasutamiseks vajalikud parameetrid, sealhulgas nimi, parooli räsi, krüpteerimisvõtmed, kvoodid ja pakutavad ressursid. Profiili saab digitaalallkirjastada, mida hoitakse välistel Yubikey toketel.

Parameetrid võivad sisaldada ka täiendavaid üksikasju, nagu SSH võtmed, biomeetrilise autentimise andmed, pilt, e-posti aadress, aadress, ajavöönd, keel, protsesside ja mälu piirmäärad, täiendavad mount lipud (nodev, noexec, nosuid), kasutaja poolt rakendatavate IMAP/SMTP serverite andmed, teave vanemlikku kontrolli aktiveerimise kohta, varundamise valikud jne. Parameetrite pärimiseks ja analüüsiks on saadaval API Varlink.

UID/GID määramine ja töötlemine toimub dünaamiliselt igas kohaliku süsteemi süsteemis, kuhu kodukaust on ühendatud. Pakutud süsteemi abil saab kasutaja hoida oma kodukausta enda käes, näiteks Flash-mälupulgal, ja saada töökeskkonna igas arvutis ilma seal eraldi konto loomata (kodukaustal oleva pildi olemasolu toob kaasa kasutaja sünteesi).

Andmete krüpteerimiseks on soovitatav kasutada LUKS2 alamsüsteemi, kuid systemd-homed võimaldab kasutada ka teisi taustsüsteeme, näiteks krüpteerimata kataloogide, Btrfsi, Fscrypti ja CIFSi võrguosasid. Ülekandekataloogide haldamiseks on soovitatav utiliit homectl, mis võimaldab luua ja aktiveerida kodukataloogide imasid ning muuta nende suurust ja määrata parooli.

Süsteemitootmine toimub järgmiste komponentide kaudu:

  • systemd-homed.service — haldab kodukatalooge ja integreerib JSON-kirjed otse kodukataloogeimingutesse;
  • pam_systemd — töötab kasutaja sisselogimise ajal välja JSON-profiilist parameetreid ja rakendab neid aktiveeritava seansi kontekstis (teostab autentimist, seadistab keskkonnamuutujad jne);
  • systemd-logind.service — töötleb kasutaja sisselogimise ajal välja JSON-profiilist parameetreid, rakendab erinevaid ressursihaldamise seadeid ja kehtestab piirangud;
  • nss-systemd — glibci NSS moodul, sünteesib klassikalisi NSS-kirjeid JSON-profiili alusel, pakkudes tagurpidi ühilduvust UNIX API-ga kasutajate töötlemiseks (/etc/password);
  • PID 1 — loob dünaamiliselt kasutajaid (sünteesib nagu DynamicUser direktiivi rakendamisel unit-des) ja muudab need nähtavaks ülejäänud süsteemile;
  • systemd-userdbd.service — tõlgib UNIX/glibc NSS kontod JSON kirjeteks ning pakub ühtset Varlink API-d kirje pärimiseks ja läbivaatamiseks.

Pakutava süsteemi eelistena mainitakse kasutajate haldamise võimalust, kui /etc kataloog on loetav ainult, vajadust UID/GID identifikaatoreid süsteemide vahel sünkroonida, sõltumatust konkreetsest arvutist, kasutaja andmete blokeerimist uneolekusse minekul, krüpteerimist ja kaasaegsete autentimismeetodite rakendamist. Systemd-homed on kavas lisada systemd põhipaketti versioonides 244 või 245.

Kasutaja JSON-profiili näide:

"autoLogin" : true,
"binding" : {
"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",
"storage" : "luks",
"uid" : 60233
}
},
«disposition» : «tavaline»,
«enforcePasswordPolicy» : false,
«lastChangeUSec» : 1565951024279735,
«memberOf» : [
«wheel»
],
«privileged» : {
«hashedPassword» : [
«$6$WHBKvAFFT9jKPA4k$OPY4D5…/»
]
},
«signature» : [
{
«data» : «LU/HeVrPZSzi3M3J…==»,
«key» : «——BEGIN PUBLIC KEY——\nMCowBQADK2VwAy…=\n——END PUBLIC KEY——\n»
}
],
«userName» : «test»,
«status» : {
«15e19cf24e004b949dfaac60c74aa165» : {
«goodAuthenticationCounter» : 16,
«lastGoodAuthenticationUSec» : 1566309343044322,
«rateLimitBeginUSec» : 1566309342341723,
«rateLimitCount» : 1,
«state» : «mitt aktiivne»,
«service» : «io.systemd.Home»,
«diskSize» : 161218667776,
«diskCeiling» : 191371729408,
«diskFloor» : 5242780,
«signedLocally» : true,
}
}

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster