Cyflwynwyd systemd-home i reoli cyfeiriaduron cartref cludadwy

Barddoniaeth Lennart cyflwyno (PDF) yng nghynhadledd All Systems Go 2019, cydran newydd o'r rheolwr system systemd - systemd-homed, gyda'r nod o wneud cyfeiriaduron cartref defnyddwyr yn gludadwy ac ar wahân i osodiadau system. Prif syniad y prosiect yw creu amgylcheddau hunangynhaliol ar gyfer data defnyddwyr y gellir eu trosglwyddo rhwng gwahanol systemau heb boeni am gydamseru dynodwyr a chyfrinachedd.

Daw'r amgylchedd cyfeiriadur cartref ar ffurf ffeil delwedd wedi'i mowntio, y mae'r data ynddo wedi'i amgryptio. Mae manylion y defnyddiwr ynghlwm wrth y cyfeiriadur cartref yn hytrach na gosodiadau system - yn lle /etc/passwd a /etc/shadow proffil mewn fformat JSON, wedi'i storio yn y cyfeiriadur ~/.identity. Mae'r proffil yn cynnwys y paramedrau angenrheidiol ar gyfer gwaith y defnyddiwr, gan gynnwys gwybodaeth am yr enw, hash cyfrinair, allweddi amgryptio, cwotâu, ac adnoddau a ddyrannwyd. Gellir ardystio'r proffil gyda llofnod digidol wedi'i storio ar docyn Yubikey allanol.

Gall paramedrau hefyd gynnwys gwybodaeth ychwanegol fel allweddi SSH, data dilysu biometrig, delwedd, e-bost, cyfeiriad, parth amser, iaith, terfynau proses a chof, baneri mowntio ychwanegol (nodev, noexec, nosuid), gwybodaeth am weinyddion IMAP/SMTP defnyddwyr a ddefnyddir. , gwybodaeth am alluogi rheolaethau rhieni, opsiynau wrth gefn, ac ati. Darperir API i ymholi a dosrannu paramedrau Varlink.

Mae aseiniad a phrosesu UID/GID yn cael ei wneud yn ddeinamig ar bob system leol y mae'r cyfeiriadur cartref wedi'i gysylltu â hi. Gan ddefnyddio'r system arfaethedig, gall y defnyddiwr gadw ei gyfeiriadur cartref gydag ef, er enghraifft ar yriant Flash, a chael amgylchedd gwaith ar unrhyw gyfrifiadur heb greu cyfrif yn benodol arno (presenoldeb ffeil gyda delwedd y cyfeiriadur cartref yn arwain at synthesis y defnyddiwr).

Cynigir defnyddio is-system LUKS2 ar gyfer amgryptio data, ond mae systemd-homed hefyd yn caniatáu defnyddio backends eraill, er enghraifft, ar gyfer cyfeiriaduron heb eu hamgryptio, rhaniadau rhwydwaith Btrfs, Fscrypt a CIFS. Er mwyn rheoli cyfeiriaduron cludadwy, cynigir y cyfleustodau homectl, sy'n eich galluogi i greu ac actifadu delweddau o gyfeiriaduron cartref, yn ogystal â newid eu maint a gosod cyfrinair.

Ar lefel y system, sicrheir gwaith gan y cydrannau canlynol:

  • systemd-homed.service - yn rheoli'r cyfeiriadur cartref ac yn ymgorffori cofnodion JSON yn uniongyrchol i ddelweddau cyfeiriadur cartref;
  • pam_systemd - yn prosesu paramedrau o broffil JSON pan fydd y defnyddiwr yn mewngofnodi ac yn eu cymhwyso yng nghyd-destun y sesiwn wedi'i actifadu (yn cyflawni dilysiad, yn ffurfweddu newidynnau amgylchedd, ac ati);
  • systemd-logind.service - mae'n prosesu paramedrau o broffil JSON pan fydd y defnyddiwr yn mewngofnodi, yn cymhwyso gosodiadau rheoli adnoddau amrywiol ac yn gosod terfynau;
  • nss-systemd - modiwl NSS ar gyfer glibc, yn syntheseiddio cofnodion NSS clasurol yn seiliedig ar broffil JSON, gan ddarparu cydnawsedd yn ôl ag API prosesu defnyddiwr UNIX (/etc/password);
  • PID 1 - yn creu defnyddwyr yn ddeinamig (wedi'i syntheseiddio trwy gyfatebiaeth â'r defnydd o gyfarwyddeb DynamicUser mewn unedau) ac yn eu gwneud yn weladwy i weddill y system;
  • systemd-userdbd.service - yn trosi cyfrifon UNIX/glibc NSS yn gofnodion JSON ac yn darparu API Varlink unedig ar gyfer ymholi ac ailadrodd dros gofnodion.

Mae manteision y system arfaethedig yn cynnwys y gallu i reoli defnyddwyr wrth osod y cyfeiriadur /etc yn y modd darllen yn unig, absenoldeb yr angen i gydamseru dynodwyr (UID/GID) rhwng systemau, annibyniaeth defnyddwyr o gyfrifiadur penodol, rhwystro data defnyddwyr yn ystod y modd cysgu, y defnydd o amgryptio a dulliau dilysu modern. Bwriedir cynnwys systemd-homed ym mhrif ffrwd systemd yn rhyddhau 244 neu 245.

Enghraifft o broffil defnyddiwr JSON:

"autoLogin" : yn wir,
"rhwymo" : {
«15e19cd24e004b949ddaac60c74aa165» : {
"fileSystemType" : "ext4"
«fileSystemUUID» : «758e88c8-5851-4a2a-b98f-e7474279c111»,
" gid": 60232 ,
"homeDirectory" : "/cartref/prawf",
"imagePath" : "/home/test.home",
"luksCipher" : "aes",
"luksCipherMode" : "xts-plain64",
«luksUUID» : «e63581ba-79fa-4226-b9de-1888393f7573»,
"luksVolumeKeySize" : 32,
«partitionUUID» : «41f9ce04-c927-4b74-a981-c669f93eb4dc»,
"storio" : "luks",
"uid": 60233
}
},
"gwarediad" : "rheolaidd",
"enforcePasswordPolicy": ffug,
"Newid Defnyddiwr Diwethaf" : 1565951024279735,
"aelodO" : [
"olwyn"
],
"breintiedig" : {
"cyfrinair hashed" : [
«$6$WHBKvAFFT9jKPA4k$OPY4D5…/»
] },
"llofnod" : [
{
"data" : "LU/HeVrPZSzi3M3J...==",
" allwedd " : " —— DECHRAU ALLWEDD GYHOEDDUS ——\nMCowBQADK2VwAy…=\n—— DIWEDD ALLWEDD GYHOEDDUS ——\n"
}
],
"userName" : "prawf",
"statws" : {
«15e19cf24e004b949dfaac60c74aa165» : {
"GoodAuthenticationCounter": 16,
"DilysiadGoodDiwethafUSec" : 1566309343044322,
"cyfraddLimitBeginUSec" : 1566309342341723,
"CyfraddLimitCount" : 1,
"state" : "anweithredol",
"service" : "io.systemd.Home",
"Maint disg" : 161218667776,
"Nenfwd disg": 191371729408,
"Llawr Disg": 5242780,
"signedLocally" : yn wir
}
}

Ffynhonnell: opennet.ru

Ychwanegu sylw