web-dev-qa-db-fra.com

Quel est le moyen le plus sécurisé pour permettre à un utilisateur de lire l'accès à un fichier journal?

Ma candidature nécessite un accès en lecture à /var/log/messages, qui appartient à l'utilisateur et au groupe root. Quel est le niveau d'exposition minimal requis sur /var/log/messages Mon application peut donc la lire?

Actuellement, mon plan est de changer la propriété du groupe de /var/log/messages à un nouveau groupe et ajouter une racine et mon utilisateur de l'application, mais cela donnerait également aux privilèges d'écriture d'application à /var/log/messages.

OS: Centos 5.5

21
gAMBOOKa

Pas besoin d'ajouter une racine au groupe car il aura accès via les utilisateurs privés de toute façon, donnez simplement un groupe lu à quel groupe vous décidez. N'oubliez pas de rendre les modifications avec la logrotate également ou que les changements de groupe seront essuyés par la nuit.

7
rfelsburg

Juste pour développer un peu sur les réponses ci-dessus, voici un cas d'utilisation du monde réel. J'exécute l'application d'analyse de journal d'entreprise Splunk sur une boîte à redhat. Il court sous le groupe Splunk Utilisateur et Splunk Group. Cela empêche la splunk accéder aux journaux in/var/log car ils ne sont accessibles que par root (ou un administrateur sudo).

Afin de permettre une lecture en lecture seule pour Splunk uniquement, j'ai utilisé des ACL et de la lutte contre la lutte modifiée pour la persister.

Vous pouvez définir manuellement la liste de contrôle de l'ACL avec

Sudo setfacl -m g:splunk:rx /var/log/messages

Cela ne persistera pas car Logrotate ne réappliquera pas le paramètre ACL pour une solution plus permanente que j'ai ajoutée une règle à la lutte contre la réinitialisation de l'ACL. J'ai ajouté le fichier ..

/etc/logrotate.d/Splunk_ACLs

avec

{
    postrotate
        /usr/bin/setfacl -m g:splunk:rx /var/log/cron
        /usr/bin/setfacl -m g:splunk:rx /var/log/maillog
        /usr/bin/setfacl -m g:splunk:rx /var/log/messages
        /usr/bin/setfacl -m g:splunk:rx /var/log/secure
        /usr/bin/setfacl -m g:splunk:rx /var/log/spooler
    endscript
}

Vérifiez l'état de l'ACL d'un fichier avec

$ getfacl /var/log/messages

Pour plus d'informations sur les ACL, voir -- https://help.ubuntu.com/community/filePermissionnementaclshttp://bencane.com/2012/05/27/acl-utilisation-access- Control-lists-On-Linux /

18
nick fox

Yip j'ai utilisé setfacl pour le faire pour donner accès au mail.log Fichier Pour un client, vous n'aurez pas besoin de coller une commande dans le logrotate.conf Fichier Pour ré-régler la liste de contrôle d'accès après la rotation des journaux, par exemple:

postrotate
         /usr/bin/setfacl -m o::r /var/log/mail.log  
endscript

Remarque que je viens de commencer cela et n'a pas été testé, mais bien que cela pos posterait ici, peut-on voir pourquoi cela ne fonctionnerait pas, quelqu'un me corrige si je me trompe.

2
Matt

Vous pouvez utiliser ACL Pour cela. Il vous permet de définir des règles d'accès supplémentaires spécifiques pour des utilisateurs et des fichiers spécifiques.

0
landonz