Pikk tööaeg tõestab ainult seda, et käivitamine õnnestus nende õigustega, mis deemonil sel hetkel olid. Siin olulised tõrked tulevad hiljem: uus klient ühendub, tühistamisnimekiri asendatakse, abiskript peab faili kirjutama. Igaüks neist on uus avamine, mille teeb õigusteta konto, oma õiguste küsimuse ja oma veateatega. Kolm otsust eraldavad seadistuse, mis töötab edasi, sellest, mis ebaõnnestub järgmisel sündmusel.

Eraldage vara laaditu hiljem avatavast

Kirjeldaja on käepide avatud failikirjeldusele ja juurdepääsurežiim fikseeriti selle kirjelduse loomisel. Protsessi kasutaja hilisem muutmine ei sulge käepidet, seepärast töötab rootina loetud võtmefail ka pärast langetamist edasi. Ka režiim ei muutu: lugemiseks avatud käepide ei muutu kirjutatavaks ja kirjutatav käepide ei tühistu ainult sellepärast, et konto kaotas õigused teele. Need kaks asjaolu selgitavad suuremat osa nende aruannete üllatavast käitumisest.

Teine pool on mälu. Deemon saab sertifikaadi parsida, parsitud materjali alles hoida ja faili sulgeda; kasutuses püsivad andmed, mitte avatud fail. Seepärast ei tõenda jätkuv liiklus ei seda, et kirjeldaja on avatud, ega seda, et tee nimi on kättesaadav. See tõendab ainult, et praeguse seansi jaoks vajalik materjal hangiti varem.

Hilisem avamine on teine tehing. See töötab praeguste volituste, praeguse turbekonteksti ja praeguse kinnitamisvaate all, seega käivitamisel loetav tee võidakse järgmisel ühendusel tagasi lükata. Rotatsioon lisab lõksu: uue faili kirjutamine sama teed nime peale jätab olemasoleva kirjeldaja vana objekti külge, seepärast võib uuestilaadimine näida õnnestuvat, samal ajal kui deemon kasutab veel eelmist sisu. Võrrelge protsessi hoitavat inode-t kettal olevaga enne, kui usute, et rotatsioon jõustus.

Nimetage kolm käitusaegset lugemist ja millal igaüks käivitub

Kolm ressurssi avatakse tavaliselt kaua pärast algatamist ja need ebaõnnestuvad erinevatel hetkedel. Konkreetse kliendi seadistusfail loetakse siis, kui see klient ühendub, seega võib see ühel kasutajal katki minna, samal ajal kui teised jätkavad. Tühistamisandmeid vaadatakse vastaspoole autentimise ajal ja uuesti faili asendamisel. Ajutist kataloogi puudutatakse ainult siis, kui skript või plugin midagi kirjutab.

Ükski kolmest ei kuulu käivitusrajasse, seepärast võib nädalaid terve server järgmisel ühendusel ebaõnnestuda. Kategooria nimetab ka paranduse omaniku: kaks esimest on lugemisõigused seadistusele deemonikonto all ja kolmas on kitsa otstarbega kirjutatav koht.

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 vastab kitsamale küsimusele, kui enamik eeldab. See hob avatud võtmefaili dokumenteeritud SIGUSR1 ja ping-restart lähtestamiste ajal, ja see ei tee midagi CCD-failidele, tühistamisandmetele, abiprogrammidele ega protsessi täielikule taaskäivitusele. Need järgivad endiselt oma avamisradu, mis tahes sel hetkel töötava konto all.

Kinnitage konto ja vaade, mis sellel tegelikult on

Küsige töötavalt deemonilt, millist kontot see kasutab, selle asemel et usaldada unit-faili, ja võrrelge vastust sellega, mida unit seab. Lahknevus on esimene lahendatav asi, sest iga hilisem õiguste kontroll töötab sellena, kes protsess tegelikult on. Seejärel käige tee läbi komponent komponendi haaval; läbiminekut hinnatakse igal tasandil, seega loetav fail läbimatavas kataloogis jääb loetamatuks. Lõplik failirežiim on viimane küsimus, mitte esimene.

Nimeruumid ja teenuse liivakastid lisavad piire, mida omand ja režiimibitid ei kirjelda. Sinu shellis nähtav tee võib chrooti, kinnitamise nimeruumi või kodukatalooge peitva uniti sees puududa või olla ainult lugemiseks. Turbemoodulid lisavad veel ühe kihi, seega loetavana näiv fail võidakse avamisel siiski tagasi lükata.

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

Edukas lugemine administraatori shellis ei kontrolli ühtki neist kombineeritud tingimustest. Käivitage kontroll deemonikonto all, sama nimeruumi ja liivakastiga, või leppige sellega, et tulemus kirjeldab teie shelli, mitte serverit. Kolmas käsk on selle testi odav versioon: see trükib iga komponendi režiimi ja ebaõnnestub esimesel, millest deemonikonto läbi ei pääse.

Andke käitusaegsele kirjutamisele oma kataloog

Lugemine on ainult pool loendist. Abiskript võib vajada olekufaili loomist, plugin võib vajada oleku kirjutamist oma seadistuse kõrvale, ja neid kirjutusi ei kata see, kui seadistuspuu tehakse kirjutatavaks. Andke konkreetsele kataloogile selle funktsiooni jaoks vajalik kirjutusõigus, omaniku ja režiimiga, mida oskate selgitada. Eelistage ainult lugemise juurdepääsu kõigele, mida ainult loetakse.

Hoidke privaatvõtme õigusi poliitikafailidest eraldi. Võti, mida tuleb pärast lähtestamist uuesti lugeda, nõuab teistsugust kui kliendifail, mida loetakse igal ühendusel, ja üks lubav režiim mõlemale annab rohkem juurdepääsu, kui probleem palub. Kitsa omandiga pühendatud deemonikontot on kergem auditeerida kui laia gruppi. Kui võti peab lähtestamised üle elama, persist-key eemaldab see uuestilugemise, selle asemel et kataloogi laiendada.

Otsustage sündmuse järgi, mida saate korrata

Elav tunnel tõestab ühte rada koodis. Sündmus, mis faili vajab, on ainus test, mis katab teile olulise avamise, olgu selleks uus kliendiühendus, asendatud tühistamisfail, lubatud pehme lähtestamine või kavandatud taaskäivitus. Valige sündmus, käivitage see ja hoidke esimest viga, mitte viimast.

Pehme lähtestamise korral näitavad üks signaal ja uniti logi, kas võti loeti uuesti. Saatke signaal ja seejärel lugege viimased read, mille unit kirjutas:

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

Ärge järeldage, et kompromiteeritud deemon ei saa enam faile muuta ainult seetõttu, et õigusi langetati. Mida see veel suudab, sõltub allesjäänud volitustest, selle võimetest, kataloogidest, kuhu see saab kirjutada, ja igast veel hoitavast kirjutatavast kirjeldajast. Õiguste vähendamine kitsendab volitust ja käitusaegsete avamiste loend näitab, kui kaugele. Kirjutage see piir seadistuse kõrvale, et järgmine inimene ei peaks seda uuesti avastama.

Seotud artiklid