Ħin twil ta’ tħaddim juri biss li t-tnedija rnexxiet bil-privileġġi li kellu d-daemon f’ dak il-mument. Il-fallimenti li jisgħu hawn jiġu wara: klijent ġdid jgħaqqad, lista ta’ revoka tinbidel, skript awżiljarju jrid jikteb fajl. Kull wieħed minnhom huwa fetħa ġdida li tagħmel il-kont mingħajr privileġġi, bid-domanda tal-permessi tiegħu u bil-messaġġ tal-iżball tiegħu. Tliet deċiżjonijiet jifirdu konfigurazzjoni li tibqa’ taħdem minn waħda li tfalli fl-avveniment li jmiss.

Aqsam dak li tghabba kmieni minn dak li jinfetaħ aktar tard

Deskrittur huwa pumi fuq deskrizzjoni ta’ fajl miftuħ, u l-mod tal-aċċess ġie ffissat meta nħolqot dik id-deskrizzjoni. Li tbiddel il-utent tal-proċess wara ma tagħlaqx il-pumi, u għalhekk fajl ta’ ċavetta li nqara bħala root ikompli jaħdem wara t-tnaqqis. Il-mod lanqas jinbidel: pumi miftuħ għall-qari ma jsirx jista’ jinkiteb, u pumi li jista’ jinkiteb ma jiġix irtirat biss għax il-kont tilef id-drittijiet tiegħu fuq il-mogħdija. Dawn iż-żewġ fatti jispjegaw il-biċċa l-kbira tal-imġiba sorprendenti f’ dawn ir-rapporti.

In-nofs l-ieħor huwa l-memorja. Id-daemon jista’ janalizza ċertifikat, iżomm il-materjal analizzat u jagħlaq il-fajl; dak li jibqa’ fl-użu huma data, mhux fajl miftuħ. Għalhekk it-traffiku li jkompli ma jurix li deskrittur huwa miftuħ u lanqas li l-isem tal-mogħdija jista’ jintlaħaq. Juri biss li l-materjal meħtieġ għas-sessjoni attwali nkiseb qabel.

Fetħa aktar tard hija tranżazzjoni differenti. Taħdem taħt il-kredenzjali attwali, il-kuntest tas-sigurtà attwali u l-veduta tal-immuntar attwali, u għalhekk mogħdija li kienet tinqara fit-tnedija tista’ tiġi miċħuda fil-konnessjoni li jmiss. Ir-rotazzjoni żżid nassa: li tikteb fajl ġdid fuq l-istess isem tal-mogħdija jħalli deskrittur eżistenti marbut mal-oġġett antik, u għalhekk riload jista’ jidher bħala rnexxielu waqt li d-daemon għadu juża l-kontenut preċedenti. Qabbel l-inode li jżomm il-proċess ma’ dak fuq id-diska qabel ma temmen li r-rotazzjoni daħlet fis-seħħ.

Semmi t-tliet qari tal-ħin tal-eżekuzzjoni u meta sseħħ kull waħda

Tliet riżorsi normalment jinfetħu ħafna wara l-inizjalizzazzjoni, u jfallu f’ mumenti differenti. Fajl tal-konfigurazzjoni speċifiku għal klijent jinqara meta dak il-klijent jgħaqqad, u għalhekk jista’ jinkiser għal utent wieħed waqt li l-oħrajn ikomplu. Id-data tar-revoka tiġi kkonsultata waqt l-awtentikazzjoni tal-pari u għal darba oħra meta l-fajl jinbidel. Direttorju temporanju jintmess biss meta skript jew plugin jikteb xi ħaġa.

Xejn mit-tlieta ma jappartjeni għall-mogħdija tat-tnedija, u għalhekk server li kien f’ saħħtu għal ġimgħat jista’ jfalli fil-konnessjoni li jmiss. Il-kategorija ssemmi wkoll is-sid tat-tiswija: l-ewwel tnejn huma permessi tal-qari fuq il-konfigurazzjoni taħt il-kont tad-daemon, u t-tielet hija post li jista’ jinkiteb b’ għan dejjaq.

Path reopened laterWhat triggers the openFirst sign when it fails
Client configuration fileA connection for that client identityOne client rejected while others connect
Revocation dataPeer authentication, including after replacementRevoked and valid peers both refused
Script or plugin temporary directoryA helper needs to create a fileThe helper exits with a path error

persist-key iwieġeb domanda idjaq milli jassumu ħafna. Huwa jżomm il-fajl taċ-ċavetta miftuħ matul ir-risettijiet dokumentati SIGUSR1 u ping-restart, u ma jagħmel xejn għall-fajls CCD, id-data tar-revoka, l-eżekuttabbli awżiljarji jew tnedija mill-ġdid sħiħa tal-proċess. Dawk għadhom isegwu l-mogħdijiet tal-ftuħ tagħhom stess, taħt kwalunkwe kont li jkun miexi f’ dak il-ħin.

Ikkonferma l-kont u l-veduta li fil-fatt għandu

Staqsi lid-daemon li qed imexxi liema kont juża minflok ma temmen il-fajl tal-unit, imbagħad qabbel it-tweġiba ma’ dak li jistabbilixxi l-unit. Nuqqas ta’ qbil huwa l-ewwel ħaġa li trid tissolva, għax kull verifika tal-permessi wara sseħħ bħala dak li l-proċess fil-fatt hu. Imbagħad imxi l-mogħdija komponent b’ komponent; it-trawżitu jiġi evalwat f’ kull livell, u għalhekk fajl li jinqara ġewwa direttorju li ma jistax jiġi trawżitat jibqa’ ma jinqarax. Il-mod finali tal-fajl huwa l-aħħar domanda, mhux l-ewwel.

In-namespaces u l-kaxxi tar-ramel tas-servizz iżidu fruntieri li s-sjieda u l-bits tal-mod ma jiddeskrivux. Mogħdija li tidher fil-shell tiegħek tista’ tkun nieqsa jew tinqara biss ġewwa chroot, namespace tal-immuntar jew unit li jaħbi d-direttorji tad-dar. Il-moduli tas-sigurtà jżidu saff ieħor, u għalhekk fajl li jidher li jinqara xorta jista’ jiġi miċħud meta jinfetaħ.

ps -o user:12,pid,args -C openvpn
systemctl show -p User -p Group -p ProtectHome -p RootDirectory [email protected]
sudo -u openvpn namei -l /etc/openvpn/ccd/alice

Qari li jirnexxi fis-shell tal-amministratur ma jittestjax waħda minn dawk il-kundizzjonijiet magħquda. Mexxi l-verifika bħala l-kont tad-daemon, bl-istess namespace u kaxxa tar-ramel, jew aċċetta li r-riżultat jiddeskrivi s-shell tiegħek u mhux is-server. It-tielet kmand huwa l-verżjoni rħisa ta’ dak it-test: jipprintja l-mod ta’ kull komponent u jfalli fl-ewwel wieħed li l-kont tad-daemon ma jistax jgħaddi minnu.

Agħti lill-kitba tal-ħin tal-eżekuzzjoni direttorju tiegħu stess

Il-qari huwa biss nofs l-inventarju. Skript awżiljarju jista’ jeħtieġ joħloq fajl tal-istat, plugin jista’ jeħtieġ jikteb stat ħdejn il-konfigurazzjoni tiegħu, u dawk il-kitbiet ma jiġux koperti billi s-siġra tal-konfigurazzjoni ssir tista’ tinkiteb. Agħti lid-direttorju speċifiku l-permess tal-kitba li teħtieġ il-funzjoni tiegħu, b’ sid u mod li tista’ tispjega. Ippreferi aċċess tal-qari biss għal kollox li jinqara biss.

Żomm il-permessi taċ-ċavetta privata separati mill-fajls tal-politika. Ċavetta li trid tinqara mill-ġdid wara risett għandha rekwiżit differenti minn fajl tal-klijent li jinqara f’ kull konnessjoni, u mod wieħed laxk għaż-żewġ jipprovdi aktar aċċess milli titlob il-problema. Kont tad-daemon iddedikat b’ sjieda dejqa huwa eħfef biex jiġi awditjat minn grupp wiesgħa. Meta ċ-ċavetta trid tibqa’ ħajja wara r-risettijiet, persist-key ineħħi l-qari mill-ġdid minflok ma jwessa’ d-direttorju.

Iddeċiedi mill-avveniment li tista’ tirriproduċi

Tunnel ħaj juri mogħdija waħda fil-kodiċi. L-avveniment li jeħtieġ il-fajl huwa l-uniku test li jkopri l-ftuħ li jinteressak, kemm jekk hija konnessjoni ġdida tal-klijent, fajl tar-revoka sostitwit, risett artab permess jew tnedija mill-ġdid ippjanata. Agħżel l-avveniment, mexxih, u żomm l-ewwel żball minflok l-aħħar.

Għal risett artab, sinjal wieħed u l-log tal-unit juru jekk iċ-ċavetta nqratx mill-ġdid. Ibgħat is-sinjal, imbagħad aqra l-aħħar linji li kiteb l-unit:

systemctl kill -s SIGUSR1 [email protected]
journalctl -u [email protected] -n 40 --no-pager

Tikkonkludix li daemon kompromess ma jistax għad jiġi jbiddel fajls biss għax tnaqqsu l-privileġġi. X’ għadu jista’ jagħmel jiddependi mill-kredenzjali li jifdal, il-kapaċitajiet tiegħu, id-direttorji li jista’ jikteb fihom u kull deskrittur li jista’ jinkiteb li għadu jżomm. It-tnaqqis tal-privileġġi jdejjaq l-awtorità, u l-inventarju tal-ftuħ tal-ħin tal-eżekuzzjoni juri kemm. Ikteb dik il-fruntiera ħdejn il-konfigurazzjoni sabiex il-persuna li jmiss ma jkollhiex terġa’ tiskopriha.

Artikli relatati