Režim 0600 a správny vlastník nezaručujú, že služba dokáže otvoriť kľúč. Chýbajúce oprávnenie býva na adresári nad ním. Linux rozkladá cestu po jednotlivých komponentoch a každý krok potrebuje právo prechodu, skôr než sa vyskúša ďalší. Čítajte celú cestu, nie posledný riadok výpisu.

Právo čítania je posledný krok, nie jediný

Otvorenie súboru vyžaduje, aby jadro prešlo od koreňa alebo pracovného adresára každým komponentom cesty. Adresár bez práva prechodu tento prechod zastaví chybou oprávnenia. Vlastný režim súboru sa nikdy neskúma, takže dokonale čitateľný kľúč vyzerá nečitateľne. Chyba často prichádza pri otváraní bez pomenovania adresára, a preto sa obviňuje posledný súbor.

Pri adresári spúšťací bit znamená prechod, nie spúšťanie obsahu. Kľúč zostáva dátami a žiadna časť tejto opravy nevyžaduje označiť ho ako spustiteľný.

Prejdite cestu ako servisný účet

Vypíšte každý komponent s jeho vlastníkom a režimom a potom čítanie zopakujte ako skutočná identita služby. Rozdiel medzi vaším shellom a démonom je často celá odpoveď. Sledujte symbolické odkazy k reálnemu cieľu, pretože kontroluje sa práve vyriešená cesta.

namei -l /etc/openvpn/client/office.key
sudo -u vpn-reader stat -c '%A %U:%G %n' /etc/openvpn/client/office.key

Služba môže súbory otvárať aj vo viacerých fázach. Časť materiálu sa číta počas privilegovaného nastavenia, zatiaľ čo iné súbory sa otvárajú po odobratí oprávnení. Koreňový shell, ktorý súbor číta, nevykresľuje prístup neskoršieho pracovníka. Priestor názvov pripojenia môže ukazovať iný pohľad na tú istú cestu, najmä v kontajneri, preto porovnajte pohľad súborového systému démona so svojím.

Zmeňte najužšie oprávnenie, ktoré stačí

Vyberte najmenšie usporiadanie, ktoré procesu dá prístup: kontrolovanú skupinu s prechodom potrebných adresárov, spravované umiestnenie, ktoré služba už vlastní, alebo iný dokumentovaný mechanizmus. Čítanie súboru nevyžaduje právo zápisu do jeho adresára. Široké právo zápisu skupiny na privilegovanú konfiguráciu nie je bežná oprava prechodu. Rekurzívne 0777 tiež nie je riešenie.

Zaznamenajte, ktorý komponent ste zmenili a prečo. Zmena oprávnenia bez zaznamenaného dôvodu sa ťažko kontroluje a ľahko zabudne.

Za režimy sa pozerajte až po prechode

Ak sa bity režimu zdajú dostatočné, zostávajúce kontroly sú ACL, bezpečnostná politika a obmedzenia sandboxu. ACL môže udeliť prístup, ktorý bity režimu naznačujú ako chýbajúci, alebo odmietnuť prístup, ktorý vyzerá, že povoľujú. Tieto nastavenia patria existujúcemu vlastníkovi konfigurácie a mali by sa upraviť úzko namiesto vypnutia. Rozdiel koreňa alebo pracovného adresára tiež môže vysvetliť absolútnu cestu, ktorá funguje v jednom kontexte a v inom zlyhá.

Nestrácajte prehľad o tom, čo je súbor, kým opravujete prístup. Certifikát CA je verejný zámerne, súkromný kľúč nie. Súbory, ktoré klient prepisuje, tiež potrebujú iné práva zápisu než identitný kľúč, ktorý je iba na čítanie. Preskúmajte metadáta bez tlače tajomstiev, potom overte, že samotná služba po zmene funguje. Krátka poznámka v dokumentácii služby ušetrí ďalšiemu človeku ten istý prechod.

Súvisiace články