Predstavené systemd-homed na správu prenosných domácich adresárov

Lennart Poettering predstavil (PDF) na konferencii All Systems Go 2019 nový komponent systémového manažéra systemd — systemd-homed, zameraný na zabezpečenie prenosnosti domácich adresárov používateľov a ich oddelenia od systémových nastavení. Hlavná myšlienka projektu spočíva v vytvorení samostatných prostredí pre údaje používateľa, ktoré je možné prenášať medzi rôznymi systémami bez obáv o synchronizáciu identifikátorov a súkromia.

Prostredie domáceho adresára sa dodáva vo forme pripojiteľného súborového obrazu, pričom údaje v ňom sú šifrované. Parametre prihlasovacích údajov používateľa sú viazané na domáci adresár, a nie na systémové nastavenia — namiesto /etc/passwd a /etc/shadow sa používa profily vo formáte JSON, uložený v adresári ~/identity. V profile sú uvedené parametre potrebné na prácu používateľa, vrátane údajov o mene, hašovaní hesla, kľúčoch na šifrovanie, kvótach a poskytovaných zdrojoch. Profil môže byť overený digitálnym podpisom, ktorý je uložený na externom tokenu Yubikey.

Parametre môžu tiež obsahovať ďalšie informácie, ako sú kľúče pre SSH, údaje pre biometrickú autentifikáciu, obrázky, email, adresu, časové pásmo, jazyk, limity na počet procesov a pamäť, dodatočné príznaky pripojenia (nodev, noexec, nosuid), údaje o používateľom aplikovaných serveroch IMAP/SMTP, informácie o zapnutí rodičovskej kontroly, parametre pre zálohovanie a podobne. Na žiadosť a analýzu parametrov je k dispozícii API Varlink.

Priradenie a spracovanie UID/GID sa vykonáva dynamicky v každom lokálnom systéme, ku ktorému sa pripája domáci adresár. Pomocou navrhnutého systému môže používateľ uchovávať svoj domáci adresár pri sebe, napríklad na Flash pamäti, a získať pracovné prostredie na akomkoľvek počítači bez nutnosti explicitného vytvárania účtu (prítomnosť súboru s obrazom domáceho adresára vedie k syntéze používateľa).

Na šifrovanie údajov sa navrhuje použiť subsystém LUKS2, ale systemd-homed umožňuje aj iné backendy, ako napríklad pre nezašifrované adresáre, Btrfs, Fscrypt a sieťové oddiely CIFS. Na správu prenosných adresárov sa navrhuje utilita homectl, ktorá umožňuje vytvárať a aktivovať obrazy domácich adresárov, ako aj meniť ich veľkosť a nastavovať heslo.

Na úrovni systému zabezpečuje funkčnosť nasledujúce komponenty:

  • systemd-homed.service — spravuje domáci adresár a vkladá záznamy JSON priamo do obrazov domácich adresárov;
  • pam_systemd — spracováva parametre z JSON profilu pri prihlásení používateľa a aplikuje ich v kontexte aktivovanej relácie (vykonáva autentifikáciu, nastavuje premenné prostredia atď.);
  • systemd-logind.service — spracováva parametre z JSON profilu pri prihlásení používateľa, aplikuje rôzne nastavenia správy zdrojov a nastavuje limity;
  • nss-systemd — modul NSS pre glibc, syntetizuje klasické záznamy NSS na základe JSON profilu, poskytujúc spätnú kompatibilitu s UNIX API na spracovanie používateľov (/etc/password);
  • PID 1 — dynamicky vytvára používateľov (syntetizuje na základe použitia direktívy DynamicUser v jednotkách) a robí ich viditeľnými pre zvyšok systému;
  • systemd-userdbd.service — prevádza účty UNIX/glibc NSS na záznamy JSON a poskytuje unified API Varlink na dotazovanie a prehľadávanie záznamov.

Medzi výhody navrhnutého systému patrí možnosť správy používateľov pri pripojení adresára /etc v režime len na čítanie, absence potreby synchronizácie identifikátorov (UID/GID) medzi systémami, nezávislosť používateľa od konkrétneho počítača, zablokovanie údajov používateľa počas prechodu do spánkového režimu, aplikácia šifrovania a moderných metód autentifikácie. Systemd-homed sa plánuje zahrnúť do hlavnej zostavy systemd vo verzii 244 alebo 245.

Príklad JSON profilu používateľa:

„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
}
}

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster