Wara t-tnaqqis tal-privileġġi: liema fajls OpenVPN għadhom jaħdmu?
Id-deskritturi miftuħa qabel it-tnaqqis jibqgħu jaħdmu; il-mogħdijiet li jerġgħu jinfetħu wara le. Iddeċiedi liema minn tliet fajls tal-ħin tal-eżekuzzjoni l-konfigurazzjoni tiegħek trid terġa tiftaħ.
Ħ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 later | What triggers the open | First sign when it fails |
|---|---|---|
| Client configuration file | A connection for that client identity | One client rejected while others connect |
| Revocation data | Peer authentication, including after replacement | Revoked and valid peers both refused |
| Script or plugin temporary directory | A helper needs to create a file | The 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/aliceQari 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-pagerTikkonkludix 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.