Muda mrefu wa uendeshaji unathibitisha tu kwamba uanzishaji ulifanikiwa kwa mapendeleo ambayo daemon alikuwa nayo wakati huo. Hitilafu zinazojalisha hapa huja baadaye: mteja mpya anaunganisha, orodha ya kufuta inabadilishwa, hati saidizi inahitaji kuandika faili. Kila moja ni ufunguzi mpya unaofanywa na akaunti isiyo na mapendeleo, na swali lake la ruhusa na ujumbe wake wa hitilafu. Maamuzi matatu yanatenganisha usanidi unaoendelea kufanya kazi na ule unaoshindikana kwenye tukio linalofuata.

Tenganisha kilichopakiwa mapema na kinachofunguliwa baadaye

Kielekezi ni kishikilio juu ya maelezo ya faili yaliyofunguliwa, na hali ya ufikiaji iliwekwa wakati maelezo hayo yalipoundwa. Kubadilisha mtumiaji wa mchakato baadaye hakufungi kishikilio, ndiyo sababu faili ya ufunguo iliyosomwa kama root inaendelea kufanya kazi baada ya kupunguza. Hali pia haibadiliki: kishikilio kilichofunguliwa kwa kusoma hakibadiliki kuwa cha kuandika, na kishikilio cha kuandika hakiondolewi kwa sababu tu akaunti ilipoteza haki zake kwenye njia. Mambo haya mawili yanafafanua sehemu kubwa ya tabia ya kushangaza katika ripoti hizi.

Nusu nyingine ni kumbukumbu. Daemon anaweza kuchambua cheti, kuweka nyenzo zilizochambuliwa na kufunga faili; kinachobaki kikitumika ni data, si faili iliyofunguliwa. Kwa hiyo trafiki inayoendelea haithibitishi kwamba kielekezi kiko wazi wala kwamba jina la njia linaweza kufikiwa. Inathibitisha tu kwamba nyenzo zinazohitajika kwa kikao cha sasa zilipatikana mapema.

Ufunguzi wa baadaye ni muamala mwingine. Unafanyika chini ya vyeti vya sasa, muktadha wa usalama wa sasa na mwonekano wa upachikaji wa sasa, kwa hiyo njia iliyokuwa somwa wakati wa kuanza inaweza kukataliwa kwenye muunganisho unaofuata. Mzunguko unaongeza mtego: kuandika faili mpya juu ya jina lile lile la njia kunaacha kielekezi kilichopo kimefungwa kwenye kitu cha zamani, kwa hiyo upakiaji upya unaweza kuonekana umefanikiwa wakati daemon bado anatumia maudhui ya awali. Linganisha inode inayoshikiliwa na mchakato na ile iliyo kwenye diski kabla ya kuamini mzunguko.

Taja usomaji matatu wa muda wa utekelezaji na wakati kila mmoja unatokea

Rasilimali tatu kwa kawaida hufunguliwa muda mrefu baada ya uanzishaji, na hushindikana nyakati tofauti. Faili ya usanidi ya mteja mahususi husomwa wakati mteja huyo anaunganisha, kwa hiyo inaweza kuvunjika kwa mtumiaji mmoja wakati wengine wanaendelea. Data ya kufuta hukaguliwa wakati wa uthibitishaji wa mwenzake na tena faili inapobadilishwa. Saraka ya muda huguswa tu wakati hati au programu jalizi inaandika kitu.

Hakuna moja kati ya matatu iliyo ya njia ya kuanza, ndiyo sababu seva iliyokuwa na afya kwa wiki inaweza kushindikana kwenye muunganisho unaofuata. Aina hii inataja pia mmiliki wa marekebisho: mbili za kwanza ni ruhusa za kusoma kwenye usanidi chini ya akaunti ya daemon, na ya tatu ni mahali pa kuandika penye lengo jembamba.

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 hujibu swali jembamba kuliko wengi wanavyodhani. Hii huweka faili ya ufunguo wazi katika maanzisho yaliyoandikwa ya SIGUSR1 na ping-restart, na haifanyi chochote kwa faili za CCD, data ya kufuta, vifaa tekelezaji saidizi au uanzishaji upya kamili wa mchakato. Hivyo vinaendelea kufuata njia zao za ufunguzi, chini ya akaunti yoyote inayoendesha wakati huo.

Thibitisha akaunti na mwonekano iliyo nao kwa kweli

Uliza daemon anayeendesha anatumia akaunti gani badala ya kuamini faili ya unit, kisha linganisha jibu na kile unit inaweka. Tofauti ni kitu cha kwanza kutatuliwa, kwa sababu kila ukaguzi wa ruhusa unaofuata unaendeshwa kama yule ambaye mchakato ni kweli. Kisha pita njia kipengele kwa kipengele; upitaji hupimwa kila ngazi, kwa hiyo faili inayosomwa ndani ya saraka isiyopitika inabaki isiyosomwa. Hali ya mwisho ya faili ni swali la mwisho, si la kwanza.

Nafasi za majina na masanduku ya mchanga ya huduma huongeza mipaka ambayo umiliki na biti za hali hazifafanui. Njia inayoonekana kwenye shell yako inaweza kukosekana au kuwa ya kusoma tu ndani ya chroot, nafasi ya majina ya upachikaji au unit inayoficha saraka za nyumbani. Moduli za usalama huongeza tabaka lingine, kwa hiyo faili inayoonekana kusomeka inaweza kukataliwa inapofunguliwa.

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

Usomaji uliofanikiwa kwenye shell ya msimamizi haupimi hata moja ya masharti hayo yaliyounganishwa. Endesha ukaguzi kama akaunti ya daemon, na nafasi ile ile ya majina na sanduku la mchanga, au kubali kwamba matokeo yanafafanua shell yako na si seva. Amri ya tatu ni toleo la bei nafuu la jaribio hilo: inachapisha hali ya kila kipengele na kushindikana kwenye kipengele cha kwanza ambacho akaunti ya daemon haiwezi kupita.

Ipe uandikaji wa muda wa utekelezaji saraka yake mwenyewe

Usomaji ni nusu ya orodha tu. Hati saidizi inaweza kuhitaji kuunda faili ya hali, programu jalizi inaweza kuhitaji kuandika hali kando ya usanidi wake, na uandikaji huo haufunikwi kwa kufanya mti wa usanidi uwe wa kuandika. Ipe saraka mahususi ruhusa ya kuandika inayohitajika na kazi yake, pamoja na mmiliki na hali unayoweza kueleza. Pendelea ufikiaji wa kusoma tu kwa kila kitu kinachosomwa tu.

Tenganisha ruhusa za ufunguo wa faragha na faili za sera. Ufunguo unaopaswa kusomwa tena baada ya uanzisho una mahitaji tofauti na faili ya mteja inayosomwa kila muunganisho, na hali moja legevu kwa zote mbili inatoa ufikiaji zaidi ya inavyotaka tatizo. Akaunti maalum ya daemon yenye umiliki jembamba ni rahisi kukaguliwa kuliko kundi pana. Ufunguo unapopaswa kustahimili maanzisho, persist-key huondoa usomaji upya badala ya kupanua saraka.

Amua kutokana na tukio unaloweza kuzalisha tena

Tunnel hai inathibitisha njia moja tu kwenye msimbo. Tukio linalohitaji faili ndilo jaribio pekee linalofunika ufunguzi unaokujali, iwe ni muunganisho mpya wa mteja, faili ya kufuta iliyobadilishwa, uanzisho laini ulioruhusiwa au uanzishaji upya uliopangwa. Chagua tukio, liendeshe, na uweke hitilafu ya kwanza badala ya ya mwisho.

Kwa uanzisho laini, ishara moja na kumbukumbu ya unit zinaonyesha kama ufunguo ulisomwa tena. Tuma ishara, kisha soma mistari ya mwisho iliyoandikwa na unit:

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

Usihitimishe kwamba daemon iliyoathirika haiwezi tena kubadilisha faili kwa sababu tu mapendeleo yalipunguzwa. Kinachoweza bado kinategemea vyeti vilivyobaki, uwezo wake, saraka anazoweza kuandika na kielekezi chochote cha kuandika anachoshikilia. Kupunguza mapendeleo kunapunguza mamlaka, na orodha ya ufunguzi wa muda wa utekelezaji inaonyesha kiasi gani. Andika mpaka huo kando ya usanidi ili mtu anayefuata asilazimike kuugundua tena.

Makala zinazohusiana