Otettiin käyttöön systemd-homed kannettavien kotihakemistojen hallintaan

Lennart Poettering toimitettu (PDF) All Systems Go 2019 -konferenssissa järjestelmänhallintajärjestelmän uusi komponentti - systemd-homed, jonka tarkoituksena on tehdä käyttäjien kotihakemistoista kannettavia ja erillään järjestelmäasetuksista. Projektin pääideana on luoda käyttäjätiedoille omavaraisia ​​ympäristöjä, joita voidaan siirtää eri järjestelmien välillä murehtimatta tunnisteiden synkronoinnista ja luottamuksellisuudesta.

Kotihakemistoympäristö tulee liitetyn kuvatiedoston muodossa, jonka tiedot on salattu. Käyttäjän tunnistetiedot on sidottu kotihakemistoon järjestelmäasetusten sijaan - hakemistojen /etc/passwd ja /etc/shadow sijaan profiili JSON-muodossa, tallennettu ~/.identity-hakemistoon. Profiili sisältää käyttäjän työhön tarvittavat parametrit, mukaan lukien tiedot nimestä, salasanan hashista, salausavaimista, kiintiöistä ja allokoiduista resursseista. Profiili voidaan sertifioida digitaalisella allekirjoituksella, joka on tallennettu ulkoiseen Yubikey-tunnukseen.

Parametrit voivat sisältää myös lisätietoja, kuten SSH-avaimet, biometriset todennustiedot, kuva, sähköposti, osoite, aikavyöhyke, kieli, prosessi- ja muistirajoitukset, lisäliitosliput (nodev, noexec, nosuid), tietoja käytetyistä käyttäjän IMAP/SMTP-palvelimista. , tietoja lapsilukon käyttöönotosta, varmuuskopiointivaihtoehdoista jne. API tarjotaan parametrien pyytämistä ja jäsentämistä varten Varlink.

UID/GID-määritys ja käsittely tapahtuu dynaamisesti jokaisessa paikallisessa järjestelmässä, johon kotihakemisto on kytketty. Ehdotetun järjestelmän avulla käyttäjä voi pitää kotihakemistonsa mukanaan, esimerkiksi Flash-asemassa, ja saada työympäristön millä tahansa tietokoneella luomatta siihen nimenomaisesti tiliä (kotihakemiston kuvan sisältävän tiedoston läsnäolo johtaa käyttäjän synteesiin).

Tietojen salaukseen ehdotetaan käytettäväksi LUKS2-alijärjestelmää, mutta systemd-homed mahdollistaa myös muiden taustaohjelmien käytön esimerkiksi salaamattomille hakemistoille, Btrfs-, Fscrypt- ja CIFS-verkkoosiolle. Kannettavien hakemistojen hallintaan ehdotetaan homectl-apuohjelmaa, jonka avulla voit luoda ja aktivoida kuvia kotihakemistoista, muuttaa niiden kokoa ja asettaa salasanan.

Järjestelmätasolla työn varmistavat seuraavat komponentit:

  • systemd-homed.service - hallitsee kotihakemistoa ja upottaa JSON-tietueita suoraan kotihakemiston kuviin;
  • pam_systemd - käsittelee parametreja JSON-profiilista, kun käyttäjä kirjautuu sisään ja käyttää niitä aktivoidun istunnon yhteydessä (suorittaa todennuksen, määrittää ympäristömuuttujat jne.);
  • systemd-logind.service - käsittelee parametreja JSON-profiilista, kun käyttäjä kirjautuu sisään, käyttää erilaisia ​​resurssienhallintaasetuksia ja asettaa rajoituksia;
  • nss-systemd - NSS-moduuli glibc:lle, syntetisoi klassisia NSS-tietueita JSON-profiilin perusteella, mikä tarjoaa taaksepäin yhteensopivuuden UNIX API:n kanssa käyttäjän käsittelyä varten (/etc/password);
  • PID 1 - luo dynaamisesti käyttäjiä (syntetisoituna analogisesti DynamicUser-direktiivin käytön kanssa yksiköissä) ja tekee ne näkyväksi muulle järjestelmälle;
  • systemd-userdbd.service - kääntää UNIX/glibc NSS -tilit JSON-tietueiksi ja tarjoaa yhtenäisen Varlink API:n tietueiden kyselyihin ja iterointiin.

Ehdotetun järjestelmän etuja ovat kyky hallita käyttäjiä, kun /etc-hakemisto liitetään vain luku -tilassa, tunnisteiden (UID/GID) synkronointitarpeen puuttuminen järjestelmien välillä, käyttäjän riippumattomuus tietystä tietokoneesta, käyttäjätietojen estäminen. lepotilassa salauksen ja nykyaikaisten todennusmenetelmien käyttö. Systemd-homed on tarkoitus sisällyttää systemd mainstreamiin julkaisussa 244 tai 245.

Esimerkki JSON-käyttäjäprofiilista:

"autoLogin" : totta,
"sitova" : {
«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»,
"varasto" : "luks",
"uid": 60233
}
},
"disposition" : "säännöllinen",
"enforcePasswordPolicy": false,
"lastChangeUSec" : 1565951024279735,
"jonkin jäsen" : [
"pyörä"
],
"etuoikeutettu" : {
"hashedPassword" : [
«$6$WHBKvAFFT9jKPA4k$OPY4D5…/»
] },
"allekirjoitus" : [
{
"data" : "LU/HeVrPZSzi3M3J...==",
"avain" : "——ALAA JULKINEN AVAIN——\nMCowBQADK2VwAy…=\n——LOPETA JULKINEN AVAIN——\n"
}
],
"userName" : "testi",
"Tila" : {
«15e19cf24e004b949dfaac60c74aa165» : {
"goodAuthenticationCounter": 16,
"lastGoodAuthenticationUSec" : 1566309343044322,
"rateLimitBeginUSec" : 1566309342341723,
"rateLimitCount": 1,
"state" : "ei-aktiivinen",
"service" : "io.systemd.Home",
"diskSize" : 161218667776,
"diskCeiling": 191371729408,
"diskFloor": 5242780,
"signedLocally": totta
}
}

Lähde: opennet.ru

Lisää kommentti