Prezantuar systemd-homed për menaxhimin e katalogëve të shtëpisë portabël

Lennart Poettering paraqiti (PDF) nĂ« konferencĂ«n All Systems Go 2019 njĂ« komponent i ri i menaxherit tĂ« sistemit systemd — systemd-homed, i orientuar pĂ«r tĂ« siguruar portabilitetin e katalogĂ«ve tĂ« shtĂ«pisĂ« sĂ« pĂ«rdoruesve dhe ndarjen e tyre nga cilĂ«simet sistemore. Ideja kryesore e projektit Ă«shtĂ« krijimi i mjediseve tĂ« vetĂ«-mjaftueshme pĂ«r tĂ« dhĂ«nat e pĂ«rdoruesit, tĂ« cilat mund tĂ« transferohen midis sistemeve tĂ« ndryshme pa u shqetĂ«suar pĂ«r sinkronizimin e identifikuesve dhe privatĂ«sinĂ«.

Mjedisi i katalogut tĂ« shtĂ«pisĂ« ofrohet nĂ« formĂ«n e njĂ« imazhi tĂ« montuar skedari, tĂ« dhĂ«nat nĂ« tĂ« cilin janĂ« tĂ« koduara. Parametrat e tĂ« dhĂ«nave tĂ« pĂ«rdoruesit janĂ« tĂ« lidhur me katalogun e shtĂ«pisĂ«, jo me cilĂ«simet sistemore — nĂ« vend tĂ« /etc/passwd dhe /etc/shadow pĂ«rdoret profilin nĂ« formatin JSON, i ruajtur nĂ« direktorinĂ« ~/ .identity. NĂ« profil janĂ« treguar parametrat e nevojshĂ«m pĂ«r funksionimin e pĂ«rdoruesit, duke pĂ«rfshirĂ« tĂ« dhĂ«nat mbi emrin, hash-in e fjalĂ«kalimit, çelĂ«sat pĂ«r kodimin, kuotat dhe burimet e ofruara. Profili mund tĂ« jetĂ« i vulosur me njĂ« nĂ«nshkrim digjital, i ruajtur nĂ« njĂ« token tĂ« jashtĂ«m Yubikey.

Parametrat gjithashtu mund të përfshijnë informacione të tjera, të tilla si çelësat për SSH, të dhëna për autentifikimin biometrik, imazhin, email-in, adresën, zonën kohore, gjuhën, kufizimet në numrin e proceseve dhe memorien, flamujt shtesë për montimin (nodev, noexec, nosuid), të dhënat për serverët IMAP/SMTP të përdorur nga përdoruesi, informacionin e aktivizimit të kontrollit të prindërve, parametrat e rezervimit etj. Për kërkimin dhe analizimin e parametrave ofrohet një API Varlink.

Përcaktimi dhe përpunimi i UID/GID bëhet dinamikisht në çdo sistem lokal, të cilit i lidhet katalogu i shtëpisë. Me sistemin e propozuar, përdoruesi mund ta mbajë katalogun e tij të shtëpisë me vete, për shembull në një skedar Flash, dhe të marrë një ambient pune në çdo kompjuter pa nevojën e krijimit të një llogarie të dukshme (prania e skedarit me imazhin e katalogut të shtëpisë çon në sintezën e përdoruesit).

Për enkriptimin e të dhënave, sugjerohet përdorimi i nën-sistemit LUKS2, por systemd-homed gjithashtu lejon përdorimin e backend-eve të tjera, për shembull për katalogët e pa enkriptuar, Btrfs, Fscrypt dhe ndarjet rrjetore CIFS. Për menaxhimin e katalogëve të portueshëm, është propozuar utilita homectl, e cila lejon krijimin dhe aktivizimin e imazheve të katalogëve të shtëpisë, si dhe rritjen e tyre dhe caktimin e fjalëkalimeve.

Në nivelin e sistemit, puna sigurohet nga komponentët e mëposhtëm:

  • systemd-homed.service — menaxhon katalogun e shtĂ«pisĂ« dhe pĂ«rfshinĂ« shĂ«nimet JSON direkt nĂ« imazhet e katalogut tĂ« shtĂ«pisĂ«;
  • pam_systemd — pĂ«rpunon parametrat nga profili JSON gjatĂ« hyrjes sĂ« pĂ«rdoruesit dhe i pĂ«rgjigjet nĂ« kontekstin e sesionit aktivizuar (bĂ«n autentifikimin, vendos variablat e ambientit etj.);
  • systemd-logind.service — pĂ«rpunon parametrat nga profili JSON gjatĂ« hyrjes sĂ« pĂ«rdoruesit, aplikon konfigurime tĂ« ndryshme pĂ«r menaxhimin e burimeve dhe vendos kufij;
  • nss-systemd — moduli NSS pĂ«r glibc, sintetizon shĂ«nimet klasike NSS mbi baza tĂ« profilit JSON, duke ofruar qĂ«ndrueshmĂ«ri prapa me API UNIX pĂ«r pĂ«rpunimin e pĂ«rdoruesve (/etc/password);
  • PID 1 — krijon pĂ«rdoruesit dinamikisht (sintetizon nĂ« pĂ«rputhje me pĂ«rdorimin e direktivĂ«s DynamicUser nĂ« unit-et) dhe i bĂ«n ata tĂ« dukshĂ«m pĂ«r pjesĂ«n tjetĂ«r tĂ« sistemit;
  • systemd-userdbd.service — transmeton llogaritĂ« UNIX/glibc NSS nĂ« shĂ«nime JSON dhe ofron njĂ« API tĂ« unifikuar Varlink pĂ«r tĂ« kĂ«rkuar dhe shfletuar shĂ«nimet.

Nga avantazhet e sistemit të propozuar, përmendet mundësia e menaxhimit të përdoruesve gjatë montimit të katalogut /etc në modalitetin vetëm për lexim, mungesa e nevojës për sinkronizimin e identifikatorëve (UID/GID) mes sistemeve, pavarësia e përdoruesit nga kompjuteri specifik, bllokimi i të dhënave të përdoruesit gjatë kalimit në modalitetin e gjumit, aplikimi i enkriptimit dhe metodave moderne të autentifikimit. Systemd-homed planifikohet të përfshihet në përbërjen kryesore të systemd në lëshimin 244 ose 245.

Shembulli i profilit JSON të përdoruesit:

"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": "regular",
"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» : «inactive»,
«service» : «io.systemd.Home»,
«diskSize» : 161218667776,
«diskCeiling» : 191371729408,
«diskFloor» : 5242780,
«signedLocally» : true
}
}

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster