A systemd-homed bevezetése a hordozható otthoni címtárak kezelésére

Lennart Poettering benyújtott (PDF) az All Systems Go 2019 konferencián, a rendszerkezelő rendszer új komponense, systemd-homed, amelynek célja, hogy a felhasználói saját könyvtárakat hordozhatóvá és a rendszerbeállításoktól elkülönítve tegye. A projekt fő gondolata, hogy önellátó környezeteket hozzon létre a felhasználói adatok számára, amelyek átvihetők a különböző rendszerek között anélkül, hogy aggódnának az azonosítók szinkronizálása és bizalmas kezelése miatt.

A saját könyvtár környezet egy csatolt képfájl formájában érkezik, amelyben az adatok titkosítva vannak. A felhasználói hitelesítő adatok a rendszerbeállítások helyett a kezdőkönyvtárhoz vannak kötve - az /etc/passwd és /etc/shadow helyett profil JSON formátumban, a ~/.identity könyvtárban tárolva. A profil tartalmazza a felhasználó munkájához szükséges paramétereket, beleértve a névre, a jelszókivonatokra, a titkosítási kulcsokra, a kvótákra és a lefoglalt erőforrásokra vonatkozó információkat. A profil egy külső Yubikey tokenen tárolt digitális aláírással hitelesíthető.

A paraméterek további információkat is tartalmazhatnak, mint például SSH-kulcsok, biometrikus hitelesítési adatok, kép, e-mail, cím, időzóna, nyelv, folyamat- és memóriakorlátok, további csatolási jelzők (nodev, noexec, nosuid), információk a használt felhasználói IMAP/SMTP-szerverekről. , információkat a szülői felügyelet engedélyezéséről, a biztonsági mentési lehetőségekről stb. A paraméterek kéréséhez és elemzéséhez API-t biztosítunk Varlink.

Az UID/GID hozzárendelése és feldolgozása dinamikusan történik minden olyan helyi rendszeren, amelyhez a saját könyvtár csatlakozik. A javasolt rendszer használatával a felhasználó magánál tarthatja saját könyvtárát, például egy flash meghajtón, és bármilyen számítógépen munkakörnyezetet kaphat anélkül, hogy kifejezetten fiókot hozna létre rajta (egy fájl jelenléte a saját könyvtár képével a felhasználó szintéziséhez vezet).

Javasoljuk a LUKS2 alrendszer használatát az adatok titkosítására, de a systemd-homed más háttérrendszerek használatát is lehetővé teszi, például titkosítatlan címtárak, Btrfs, Fscrypt és CIFS hálózati partíciók esetén. A hordozható könyvtárak kezeléséhez a homectl segédprogramot javasoljuk, amely lehetővé teszi az otthoni könyvtárak képeinek létrehozását és aktiválását, valamint méretük megváltoztatását és jelszó beállítását.

Rendszerszinten a munkát a következő összetevők biztosítják:

  • systemd-homed.service – kezeli a saját könyvtárat, és közvetlenül a saját könyvtár képfájljaiba ágyazza be a JSON-rekordokat;
  • pam_systemd - a felhasználó bejelentkezésekor feldolgozza a JSON-profil paramétereit, és alkalmazza azokat az aktivált munkamenet kontextusában (hitelesítést hajt végre, környezeti változókat konfigurál stb.);
  • systemd-logind.service – a felhasználó bejelentkezésekor feldolgozza a JSON-profil paramétereit, különféle erőforrás-kezelési beállításokat alkalmaz és korlátokat állít be;
  • nss-systemd - NSS modul a glibc-hez, szintetizálja a klasszikus NSS rekordokat JSON profil alapján, visszafelé kompatibilitást biztosítva a UNIX API-val a felhasználói feldolgozáshoz (/etc/password);
  • PID 1 – dinamikusan létrehozza a felhasználókat (a DynamicUser direktíva egységekben történő használatával analóg módon szintetizálva), és láthatóvá teszi őket a rendszer többi része számára;
  • systemd-userdbd.service – lefordítja a UNIX/glibc NSS-fiókokat JSON-rekordokká, és egységes Varlink API-t biztosít a rekordok lekérdezéséhez és iterációjához.

A javasolt rendszer előnyei közé tartozik a felhasználók kezelésének lehetősége a /etc könyvtár csak olvasható módban történő csatlakoztatásakor, az azonosítók (UID/GID) rendszerek közötti szinkronizálásának hiánya, a felhasználó függetlensége egy adott számítógéptől, a felhasználói adatok blokkolása. alvó üzemmódban a titkosítás és a modern hitelesítési módszerek alkalmazása. A Systemd-homed a tervek szerint a systemd mainstream része lesz a 244-es vagy 245-ös kiadásban.

Példa JSON felhasználói profilra:

"autoLogin": igaz,
"kötés" : {
«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»,
"tárolás": "luks",
"uid": 60233
}
},
"rendelkezés" : "rendszeres",
"enforcePasswordPolicy": hamis,
"lastChangeUSec" : 1565951024279735,
"tagja valaminek" : [
"kerék"
],
"kiváltságos" : {
"hashedPassword" : [
«$6$WHBKvAFFT9jKPA4k$OPY4D5…/»
] },
"aláírás" : [
{
"data" : "LU/HeVrPZSzi3M3J...==",
"kulcs" : "——NYILVÁNOS KULCS KEZDÉSE——\nMCowBQADK2VwAy…=\n——NYILVÁNOS KULCS VÉGE——\n"
}
],
"userName" : "teszt",
"állapot" : {
«15e19cf24e004b949dfaac60c74aa165» : {
"goodAuthenticationCounter": 16,
"lastGoodAuthenticationUSec" : 1566309343044322,
"rateLimitBeginUSec" : 1566309342341723,
"rateLimitCount": 1,
"state" : "inaktív",
"service" : "io.systemd.Home",
"diskSize" : 161218667776,
"diskCeiling": 191371729408,
"diskFloor": 5242780,
"signedLocally" : igaz
}
}

Forrás: opennet.ru

Hozzászólás