El mode 0600 i el propietari correcte no garanteixen que el servei pugui obrir una clau. El permís que falta sol ser en un directori per sobre. Linux resol un camí component a component, i cada pas necessita permís de cerca abans d’intentar el següent. Llegiu tot el camí, no l’última línia del llistat.

El permís de lectura és l’últim pas, no l’únic

Obrir un fitxer requereix que el nucli recorri des de l’arrel o el directori de treball tots els components del camí. Un directori sense permís de cerca atura aquest recorregut amb un error de permís. El mode del propi fitxer no es consulta mai, així que una clau perfectament llegible sembla il·legible. L’error sovint arriba en el moment d’obrir sense nomenar el directori, i per això es culpa el fitxer final.

Per a un directori, el bit d’execució significa cerca, no executar-ne el contingut. Una clau continua sent dada, i cap part d’aquesta reparació no requereix marcar-la com a executable.

Recorreu el camí com a compte de servei

Llisteu cada component amb el seu propietari i mode, i després repetiu la lectura com a identitat real del servei. La diferència entre la vostra shell i el dimoni sovint és tota la resposta. Seguiu els enllaços simbòlics fins a l’objectiu real, perquè el camí resolt és el que es comprova.

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

Un servei també pot obrir fitxers en més d’una fase. Part del material es llegeix durant la configuració privilegiada, mentre que altres fitxers s’obren després de deixar anar els privilegis. Una shell de root que llegeix el fitxer no reprodueix l’accés del treballador posterior. Un espai de noms de muntatge pot presentar una vista diferent del mateix camí, sobretot dins d’un contenidor, així que compareu la vista del sistema de fitxers del dimoni amb la vostra.

Canvieu el permís més estret que encaixi

Trieu l’arranjament més petit que doni accés al procés: un grup controlat amb cerca als directoris necessaris, una ubicació gestionada que el servei ja posseeixi, o un altre mecanisme documentat. Llegir un fitxer no requereix permís d’escriptura al seu directori. Un permís ampli d’escriptura de grup sobre una configuració privilegiada no és una reparació normal del recorregut. El 0777 recursiu tampoc no és una solució.

Registreu quin component heu canviat i per què. Un canvi de permís sense un motiu registrat és difícil de revisar i fàcil de deixar enrere.

Mireu més enllà dels modes només després del recorregut

Si els bits de mode semblen suficients, les comprovacions restants són les ACL, la política de seguretat i les restriccions del sandbox. Una ACL pot concedir accés que els bits de mode suggereixen absent, o denegar accés que semblen permetre. Aquests paràmetres pertanyen al propietari actual de la configuració, i cal ajustar-los de manera estreta en lloc d’apagar-los. Una diferència d’arrel o de directori de treball també pot explicar un camí absolut que funciona en un context i falla en un altre.

No perdeu de vista què és el fitxer mentre arregleu l’accés. Un certificat CA és públic per disseny; una clau privada no. Els fitxers que el client reescriu també necessiten drets d’escriptura diferents dels d’una clau d’identitat que és només de lectura. Inspeccioneu les metadades sense imprimir secrets, i després confirmeu que el servei mateix funciona després del canvi. Una nota breu a la documentació del servei estalvia el mateix recorregut a la propera persona.

Articles relacionats