Kynnt systemd-homed til að stjórna flytjanlegum heimamöppum

Lennart Poettering kynnt (PDF) á All Systems Go 2019 ráðstefnunni, nýr hluti af kerfisstjórakerfinu - kerfisbundið, sem miðar að því að gera heimaskrár notenda færanlegar og aðskildar frá kerfisstillingum. Meginhugmynd verkefnisins er að búa til sjálfbært umhverfi fyrir notendagögn sem hægt er að flytja á milli mismunandi kerfa án þess að hafa áhyggjur af samstillingu auðkennis og trúnaði.

Heimaskráaumhverfið kemur í formi uppsettrar myndskrár, gögnin sem eru dulkóðuð. Notendaskilríki eru bundin við heimaskrána frekar en kerfisstillingar - í stað /etc/passwd og /etc/shadow uppsetningu á JSON sniði, geymt í ~/.identity skránni. Prófíllinn inniheldur færibreytur sem nauðsynlegar eru fyrir vinnu notandans, þar á meðal upplýsingar um nafnið, lykilorðahash, dulkóðunarlykla, kvóta og úthlutað tilföng. Hægt er að votta sniðið með stafrænni undirskrift sem geymd er á ytri Yubikey-lykilinn.

Færibreytur geta einnig innihaldið viðbótarupplýsingar eins og SSH lykla, líffræðileg tölfræði auðkenningargögn, mynd, netfang, heimilisfang, tímabelti, tungumál, ferli og minnismörk, viðbótartengjafánar (nodev, noexec, nosuid), upplýsingar um notaða IMAP/SMTP netþjóna notenda. , upplýsingar um að virkja barnaeftirlit, öryggisafrit o.s.frv. API er til staðar til að biðja um og flokka færibreytur Varlink.

Úthlutun og vinnsla UID/GID fer fram á kraftmikinn hátt á hverju staðbundnu kerfi sem heimaskráin er tengd við. Með því að nota fyrirhugaða kerfið getur notandinn haft heimaskrá sína hjá sér, til dæmis á Flash-drifi, og fengið vinnuumhverfi á hvaða tölvu sem er án þess að stofna sérstaklega reikning á henni (tilvist skráar með mynd af heimamöppunni leiðir til myndunar notandans).

Lagt er til að nota LUKS2 undirkerfið fyrir dulkóðun gagna, en systemd-homed leyfir einnig notkun annarra bakenda, til dæmis fyrir ódulkóðaðar möppur, Btrfs, Fscrypt og CIFS netsneiðar. Til að stjórna færanlegum möppum er boðið upp á homectl tólið sem gerir þér kleift að búa til og virkja myndir af heimamöppum, sem og breyta stærð þeirra og setja lykilorð.

Á kerfisstigi er vinnan tryggð með eftirfarandi þáttum:

  • systemd-homed.service - stjórnar heimaskránni og fellir JSON færslur beint inn í heimaskrármyndir;
  • pam_systemd - vinnur færibreytur úr JSON prófílnum þegar notandinn skráir sig inn og beitir þeim í samhengi við virkjaða lotuna (framkvæmir auðkenningu, stillir umhverfisbreytur osfrv.);
  • systemd-logind.service - vinnur færibreytur úr JSON prófílnum þegar notandinn skráir sig inn, beitir ýmsum stillingum fyrir auðlindastjórnun og setur takmörk;
  • nss-systemd - NSS eining fyrir glibc, myndar klassískar NSS færslur byggðar á JSON prófíl, sem veitir afturábak eindrægni við UNIX API fyrir notendavinnslu (/etc/password);
  • PID 1 - býr til notendur á breytilegan hátt (tilbúið á hliðstæðan hátt við notkun DynamicUser tilskipunarinnar í einingum) og gerir þá sýnilega fyrir restina af kerfinu;
  • systemd-userdbd.service - þýðir UNIX/glibc NSS reikninga yfir í JSON færslur og veitir sameinað Varlink API til að spyrjast fyrir og endurtaka færslur.

Kostir fyrirhugaðs kerfis eru meðal annars hæfni til að stjórna notendum þegar /etc skránni er sett upp í skrifvarinn ham, skortur á þörf á að samstilla auðkenni (UID/GID) á milli kerfa, óháð notanda frá tiltekinni tölvu, lokun á notendagögnum í svefnstillingu, notkun dulkóðunar og nútíma auðkenningaraðferða. Stefnt er að því að Systemd-homed verði með í systemd mainstream í útgáfu 244 eða 245.

Dæmi um JSON notandaprófíl:

"autoLogin": satt,
"bindandi" : {
«15e19cd24e004b949ddaac60c74aa165» : {
"fileSystemType" : "ext4"
«fileSystemUUID» : «758e88c8-5851-4a2a-b98f-e7474279c111»,
"gid": 60232,
"homeDirectory" : "/heimili/próf",
"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" : "venjulegur",
"enforcePasswordPolicy": rangt,
"lastChangeUSec": 1565951024279735,
"meðlimur í" : [
"hjól"
],
"forréttindi" : {
"hashedPassword" : [
«$6$WHBKvAFFT9jKPA4k$OPY4D5…/»
] },
"undirskrift" : [
{
"data" : "LU/HeVrPZSzi3M3J...==",
"key" : "——BYRJA OPINBER LYKIL——\nMCowBQADK2VwAy…=\n——END OPINBER LYKIL——\n"
}
],
"userName" : "próf",
"staða" : {
«15e19cf24e004b949dfaac60c74aa165» : {
"goodAuthenticationCounter": 16,
"lastGoodAuthenticationUSec": 1566309343044322,
"rateLimitBeginUSec": 1566309342341723,
"rateLimitCount" : 1,
"state" : "óvirkur",
"service" : "io.systemd.Home",
"diskastærð": 161218667776,
"diskCeiling": 191371729408,
"diskFloor": 5242780,
"signed Locally": satt
}
}

Heimild: opennet.ru

Bæta við athugasemd