Systemd-homed ji bo birêvebirina pelrêçanên malê yên portable destnîşan kir

Lennart Poettering danasîn (PDF) di konferansa All Systems Go 2019 de, hêmanek nû ya pergala rêveberê pergalê - systemd-homed, mebest ew e ku pelrêçikên malê yên bikarhêner biguhezîne û ji mîhengên pergalê veqetîne. Fikra sereke ya projeyê ev e ku meriv ji bo daneyên bikarhênerê ku meriv dikare di navbera pergalên cihêreng de bê fikara hevdemkirina nasnameyê û nepenîtiyê veguhezîne hawîrdorên xwebexş biafirîne.

Jîngeha pelrêça malê di forma pelê wêneyek siwarkirî de tê, daneyên ku tê de têne şîfre kirin. Bawernameyên bikarhêner li şûna mîhengên pergalê bi pelrêça malê ve têne girêdan - li şûna /etc/passwd û /etc/shadow profîl di formata JSON de, di pelrêça ~/.nasname de tê hilanîn. Profîl pîvanên ku ji bo xebata bikarhêner hewce ne, di nav de agahdariya li ser nav, şîfreya şîfreyê, bişkojkên şîfrekirinê, kota, û çavkaniyên veqetandî vedihewîne. Profîl dikare bi îmzeyek dîjîtal a ku li ser tokenek Yubikey ya derveyî hatî hilanîn were pejirandin.

Parametre jî dibe ku agahdariya zêde wekî bişkokên SSH, daneyên rastkirina biyometrîk, wêne, e-name, navnîşan, devera demjimêr, ziman, sînorên pêvajo û bîranînê, alayên zêde yên çiyê (nodev, noexec, nosuid), agahdariya li ser pêşkêşkerên IMAP / SMTP yên bikarhêner ên bikar anîn hene. , agahdariya li ser çalakkirina kontrolên dêûbav, vebijarkên paşvegirtinê, hwd. Ji bo daxwazkirin û parskirina parametreyan API tê peyda kirin Varlink.

Li ser her pergala herêmî ya ku pelrêça malê pê ve girêdayî ye, peywirdarkirin û pêvajoyek UID / GID bi dînamîkî tête kirin. Bi karanîna pergala pêşniyarkirî, bikarhêner dikare pelrêça mala xwe bi xwe re bigire, mînakî li ser ajokerek Flash-ê, û li ser her komputerek jîngehek xebatê bigire bêyî ku eşkere hesabek li ser wê çêbike (hebûna pelek bi wêneya pelrêça malê dibe sedema senteza bikarhêner).

Tê pêşniyar kirin ku ji bo şîfrekirina daneyan binepergala LUKS2 bikar bînin, lê systemd-homed di heman demê de destûrê dide karanîna paşverûyên din jî, mînakî, ji bo pelrêçanên neşîfrekirî, dabeşên torê Btrfs, Fscrypt û CIFS. Ji bo birêvebirina pelrêçikên portable, karûbar homectl tê pêşniyar kirin, ku dihêle hûn wêneyên pelrêçikên malê biafirînin û çalak bikin, û her weha mezinahiya wan biguhezînin û şîfreyek destnîşan bikin.

Di asta pergalê de, kar ji hêla hêmanên jêrîn ve tê misoger kirin:

  • systemd-homed.service - pelrêça malê birêve dibe û tomarên JSON rasterast di nav wêneyên pelrêça malê de vedihewîne;
  • pam_systemd - dema ku bikarhêner têkeve û wan di çarçoweya danişîna aktîfkirî de pêk tîne, parametreyên ji profîla JSON pêvajoyê dike (rastkirinê pêk tîne, guhêrbarên jîngehê mîheng dike, hwd.);
  • systemd-logind.service - dema ku bikarhêner têkeve parametreyên ji profîla JSON pêvajoyê dike, mîhengên rêveberiya çavkaniyê yên cihêreng bicîh tîne û sînoran destnîşan dike;
  • nss-systemd - Modula NSS-ê ji bo glibc, tomarên NSS-ê yên klasîk ên li ser bingeha profîla JSON-ê berhev dike, bi API-ya hilberandina bikarhêner a UNIX-ê re lihevhatina paşverû peyda dike (/etc/şîfre);
  • PID 1 - bi dînamîk bikarhêneran diafirîne (bi analojiyê bi karanîna dîrektîfa DynamicUser di yekîneyan de têne sentez kirin) û wan ji pergalên mayî re xuya dike;
  • systemd-userdbd.service - Hesabên UNIX/glibc NSS li tomarên JSON werdigerîne û Varlink API-ya yekbûyî peyda dike ji bo pirskirin û dubarekirina li ser tomaran.

Feydeyên pergala pêşniyarkirî jêhatîbûna rêvebirina bikarhêneran dema ku pelrêça /etc di moda tenê-xwendinê de saz dike, nebûna hewcedariya hevdengkirina nasnameyan (UID/GID) di navbera pergalan de, serxwebûna bikarhêner ji komputerek taybetî, astengkirina daneyên bikarhêner heye. di dema moda xewê de, karanîna şîfrekirin û rêbazên pejirandina nûjen. Systemd-homed tê plan kirin ku di serbestberdana 244 an 245-an de di nav pergala bingehîn de were bicîh kirin.

Mînak profîla bikarhênerê JSON:

"otoLogin" : rast,
"binding" : {
«15e19cd24e004b949ddaac60c74aa165» : {
"fileSystemType" : "ext4"
«fileSystemUUID» : «758e88c8-5851-4a2a-b98f-e7474279c111»,
"gid": 60232,
"homeDirectory" : "/mal/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" : "bi rêkûpêk",
"enforcePasswordPolicy" : derewîn,
"lastChangeUSec" : 1565951024279735,
"endamOf" : [
"teker"
],
"îmtiyaz" : {
"hashedPassword" : [
«$6$WHBKvAFFT9jKPA4k$OPY4D5…/»
] },
"îmza" : [
{
"data" : "LU/HeVrPZSzi3M3J...==",
"key" : "—— DESTPÊK KÎLÊ GIŞTΗ—\nMCowBQADK2VwAy…=\n—— DAWÎ BIKE——\n"
}
],
"Navê bikarhêner" : "test",
"rewş" : {
«15e19cf24e004b949dfaac60c74aa165» : {
"goodAuthenticationCounter": 16,
"lastGoodAuthenticationUSec": 1566309343044322,
"rateLimitBeginUSec" : 1566309342341723,
"rateLimitCount" : 1,
"dewlet" : "neçalak",
"xizmet" : "io.systemd.Home",
"DiskSize": 161218667776,
"diskCeiling": 191371729408,
"DiskFloor": 5242780,
"SignedLocally" : rast
}
}

Source: opennet.ru

Add a comment