Systemd-homed sartu da etxeko direktorio eramangarriak kudeatzeko

Lennart Poettering aurkeztu (PDF) All Systems Go 2019 konferentzian, sistema kudeatzailearen osagai berri bat - systemd-homed, erabiltzaileen etxeko direktorioak eramangarri bihurtzera zuzenduta eta sistemaren ezarpenetatik bereizita. Proiektuaren ideia nagusia erabiltzaileen datuetarako ingurune autosufizienteak sortzea da, sistema ezberdinen artean transferi daitezkeen identifikatzaileen sinkronizazioaz eta konfidentzialtasunaz kezkatu gabe.

Hasierako direktorio-ingurunea muntatutako irudi-fitxategi baten forman dator, datuak enkriptatuta baitaude. Erabiltzailearen kredentzialak hasierako direktoriora lotzen dira, sistemaren ezarpenetara baino - /etc/passwd eta /etc/shadow-en ordez. profila JSON formatuan, ~/.identity direktorioan gordeta. Profilak erabiltzailearen lanerako beharrezkoak diren parametroak ditu, izena, pasahitzaren hash, enkriptazio-gakoak, kuotak eta esleitutako baliabideei buruzko informazioa barne. Profila kanpoko Yubikey token batean gordetako sinadura digital batekin ziurtatu daiteke.

Parametroek informazio gehigarria izan dezakete, hala nola, SSH gakoak, autentifikazio biometrikoko datuak, irudia, posta elektronikoa, helbidea, ordu-eremua, hizkuntza, prozesu eta memoria-mugak, muntatze-marka osagarriak (nodev, noexec, nosuid), erabilitako erabiltzaile IMAP/SMTP zerbitzariei buruzko informazioa. , gurasoen kontrolak gaitzeari buruzko informazioa, babeskopia aukerak, etab. API bat eskaintzen da parametroak eskatzeko eta analizatzeko Varlink.

UID/GID esleitzea eta prozesatzea dinamikoki egiten da hasierako direktorioa konektatuta dagoen sistema lokal bakoitzean. Proposatutako sistema erabiliz, erabiltzaileak bere etxeko direktorioa gorde dezake berarekin, adibidez Flash drive batean, eta edozein ordenagailutan lan-ingurune bat lor dezake bertan konturik espresuki sortu gabe (etxeko direktorioaren irudia duen fitxategi bat egotea. erabiltzailearen sintesia dakar).

Datuak enkriptatzeko LUKS2 azpisistema erabiltzea proposatzen da, baina systemd-homed-ek beste backend batzuk ere erabiltzeko aukera ematen du, adibidez, zifratu gabeko direktorioetarako, Btrfs, Fscrypt eta CIFS sareko partizioetarako. Direktorio eramangarriak kudeatzeko, homectl utilitatea proposatzen da, zeinak hasierako direktorioen irudiak sortu eta aktibatzeko, baita haien tamaina aldatzeko eta pasahitza ezartzeko ere.

Sistema mailan, lana honako osagai hauek bermatzen dute:

  • systemd-homed.service - hasierako direktorioa kudeatzen du eta JSON erregistroak zuzenean txertatzen ditu etxeko direktorioko irudietan;
  • pam_systemd - erabiltzailea saioa hasten denean JSON profilaren parametroak prozesatzen ditu eta aktibatuta dagoen saioaren testuinguruan aplikatzen ditu (autentifikazioa egiten du, ingurune-aldagaiak konfiguratzen ditu, etab.);
  • systemd-logind.service - erabiltzailea saioa hasten denean JSON profilaren parametroak prozesatzen ditu, baliabideen kudeaketa-ezarpen desberdinak aplikatzen ditu eta mugak ezartzen ditu;
  • nss-systemd - glibc-erako NSS modulua, JSON profil batean oinarritutako NSS erregistro klasikoak sintetizatzen ditu, UNIX erabiltzaileen prozesatzeko APIarekin (/etc/password) atzerako bateragarritasuna eskainiz;
  • PID 1 - dinamikoki sortzen ditu erabiltzaileak (DynamicUser zuzentarauaren erabilerarekin analogiaz sintetizatuta unitateetan) eta gainerako sistemaren ikusgarri bihurtzen ditu;
  • systemd-userdbd.service - UNIX/glibc NSS kontuak JSON erregistroetara itzultzen ditu eta Varlink API bateratua eskaintzen du erregistroak kontsultatzeko eta errepikatzeko.

Proposatutako sistemaren abantailen artean daude /etc direktorioa irakurtzeko moduan muntatzean erabiltzaileak kudeatzeko gaitasuna, identifikatzaileak (UID/GID) sistemen artean sinkronizatu beharrik ez izatea, erabiltzailearen ordenagailu zehatzarekiko independentzia, erabiltzaileen datuak blokeatzea. lo moduan, enkriptatzea eta autentifikazio metodo modernoak erabiltzea. Systemd-homed 244 edo 245 bertsioan systemd mainstream-en sartzea aurreikusi da.

JSON erabiltzaile-profilaren adibidea:

"autoLogin": egia,
"lotura" : {
«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" : "erregularra",
"enforcePasswordPolicy": faltsua,
"lastChangeUSec": 1565951024279735,
"memberOf" : [
"gurpila"
],
"pribilegiatua" : {
"hashedPassword" : [
«$6$WHBKvAFFT9jKPA4k$OPY4D5…/»
]},
"sinadura": [
{
"data" : "LU/HeVrPZSzi3M3J...==",
"key" : "——HASI GAKO PUBLIKOA——\nMCowBQADK2VwAy…=\n——BUKATU GAKO PUBLIKOA——\n"
}
],
"userName" : "proba",
"egoera" : {
«15e19cf24e004b949dfaac60c74aa165» : {
"goodAuthenticationCounter": 16,
"lastGoodAuthenticationUSec": 1566309343044322,
"rateLimitBeginUSec" : 1566309342341723,
"rateLimitCount" : 1,
"state" : "ez aktibo",
"service" : "io.systemd.Home",
"Disko Tamaina": 161218667776,
"disko sabai": 191371729408,
"diskFloor": 5242780,
"signedLocally": egia
}
}

Iturria: opennet.ru

Gehitu iruzkin berria