Qual é a maneira mais segura de permitir que um usuário leia o acesso a um arquivo de log?

20

Meu aplicativo requer acesso de leitura a /var/log/messages , que pertence ao usuário e ao grupo root . Qual é o nível mínimo de exposição exigido em /var/log/messages para que meu aplicativo possa lê-lo?

Atualmente, meu plano é alterar a propriedade do grupo /var/log/messages para um novo grupo e adicionar root e meu usuário do aplicativo a ele, mas isso também daria aos privilégios de gravação do aplicativo /var/log/messages .

OS: Centos 5.5

    
por gAMBOOKa 12.04.2011 / 17:59

6 respostas

6

Não há necessidade de adicionar root ao grupo, pois ele terá acesso via privs do usuário de qualquer maneira, apenas dê ao grupo a leitura para o grupo que você decidir. Lembre-se de fazer as alterações com o logrotate ou as alterações do grupo serão apagadas todas as noites.

    
por 12.04.2011 / 18:02
12

Apenas para expandir um pouco sobre as respostas acima, aqui é um caso de uso do mundo real. Eu executo o aplicativo de análise de registro corporativo Splunk em uma caixa Redhat. Ele é executado sob o usuário splunk e o grupo splunk. Isso evita que o splunk acesse os logs em / var / log, já que eles só são acessíveis pelo root (ou pelo administrador do sudo)

Para permitir o acesso somente leitura para o splunk, usei algumas ACLs e modificações no logrotate para persistir.

Você pode definir manualmente o ACL com

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

Isso não persistirá, pois o logrotate não irá reaplicar a configuração da ACL, portanto, para uma solução mais permanente, adicionei uma regra ao logrotate para redefinir a ACL. Eu adicionei o arquivo ..

/etc/logrotate.d/Splunk_ACLs

com

{
    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
}

Verifique o status da ACL de um arquivo com

$ getfacl /var/log/messages

Para mais informações sobre ACL, consulte link link

    
por 01.06.2016 / 11:42
4

Seu plano é aceitável e no esquema de permissões Unix "tradicional" é o melhor caminho a percorrer.
Outra opção é fazer com que o syslog desvie as mensagens de interesse para outro arquivo (o que evita dar ao usuário do aplicativo acesso a algo sensível que possa estar em /var/log/messages ).

Se você não se sentir como se estivesse vinculado ao esquema de permissões tradicionais de Usuário / Grupo / Outros, você também pode usar POSIX ACLs (outros, possivelmente melhores howtos / info disponíveis via Google) para dar ao usuário acesso somente leitura a /var/log/messages - isso é um pouco mais refinado e não arrisca acidentalmente colocando alguém no grupo da aplicação e dando-lhe acesso a coisas que não deveriam poder ver.

    
por 12.04.2011 / 18:07
2

Yip Eu usei setfacl para fazer isso para dar acesso ao arquivo mail.log para um cliente, você também não precisará inserir um comando no arquivo logrotate.conf para reconfigurar a ACL após o logs foram girados, por exemplo:

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

Note que eu apenas configurei isso, e não testei, mas, embora ele possa postar aqui, não consigo ver por que ele não funcionaria, alguém me corrija se eu estiver errado.

    
por 09.07.2012 / 10:31
0

Você pode usar ACL para isso . Ele permite que você defina regras de acesso adicionais específicas para usuários e arquivos específicos.

    
por 12.04.2011 / 18:07
-1

depois de configurar sua ACL como outras pessoas disseram, em vez de colocar todas as regras acl na configuração pós-transação, você pode usar o logrotate para usar o copytruncate em vez de criar um novo arquivo de log a cada vez

    
por 08.06.2018 / 21:27