GNU/Linux >> Linux Esercitazione >  >> Linux

Qual è il modo più sicuro per consentire a un utente di accedere in lettura a un file di registro?

Soluzione 1:

Solo per espandere un po 'le risposte di cui sopra, ecco un caso d'uso del mondo reale. Eseguo l'applicazione di analisi dei registri aziendali Splunk su una scatola Redhat. Funziona con l'utente splunk e il gruppo splunk. Ciò impedisce a splunk di accedere ai log in /var/log poiché sono accessibili solo da root (o da un sudo admin)

Per consentire l'accesso in sola lettura solo per splunk, ho utilizzato alcuni ACL e ho modificato logrotate per mantenerlo.

Puoi impostare manualmente l'ACL con

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

Ciò non persisterà poiché logrotate non applicherà nuovamente l'impostazione ACL, quindi per una soluzione più permanente ho aggiunto una regola a logrotate per reimpostare l'ACL. Ho aggiunto il file..

/etc/logrotate.d/Splunk_ACLs

con

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

Controlla lo stato ACL di un file con

$ getfacl /var/log/messages

Per maggiori informazioni sugli ACL, vedere https://help.ubuntu.com/community/FilePermissionsACLshttp://bencane.com/2012/05/27/acl-using-access-control-lists-on-linux/

Soluzione 2:

Non è necessario aggiungere root al gruppo in quanto avrà comunque accesso tramite i privilegi dell'utente, basta dare la lettura del gruppo a qualunque gruppo tu decida. Ricorda di apportare le modifiche anche con logrotate o le modifiche al gruppo verranno cancellate ogni notte.

Soluzione 3:

Il tuo piano è accettabile e nello schema di autorizzazioni Unix "tradizionale" è il modo migliore per procedere.
Un'altra opzione è fare in modo che syslog devii i messaggi di interesse in un altro file (che evita di dare all'utente dell'app l'accesso a qualsiasi cosa sensibile che potrebbe essere in /var/log/messages ).

Se non ti senti di essere vincolato dal tradizionale schema di autorizzazioni di Utente/Gruppo/Altro puoi anche utilizzare ACL POSIX (altri, possibilmente migliori howto/informazioni disponibili tramite Google) per fornire all'utente dell'app l'accesso in sola lettura a /var/log/messages -- questo è un po' più dettagliato e non rischia di inserire accidentalmente qualcun altro nel gruppo dell'applicazione e dargli accesso a cose che non dovrebbero essere in grado di vedere.

Soluzione 4:

Sì, ho usato setfacl per fare questo per dare accesso al mail.log file per un cliente, non dovrai anche inserire un comando nel logrotate.conf file per reimpostare l'ACL dopo che i registri sono stati ruotati, ad esempio:

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

Nota che l'ho appena impostato e non l'ho testato, ma anche se verrebbe postato qui, non vedo perché non funzionerebbe, qualcuno mi corregga se sbaglio.


Linux
  1. Cosa fa il permesso di esecuzione?

  2. Qual è la differenza tra l'aggiunta di un utente a sudoers e il gruppo root?

  3. Il modo più sicuro per partizionare Linux?

  4. Qual è il modo più rapido per aggiungere testo a un file dalla riga di comando?

  5. Qual è il modo più sicuro e portatile per invocare il binario echo?

Proteggi Linux con il file Sudoers

Qual è lo scopo dell'utente "mysql.sys@localhost".

Qual è lo scopo del file .bashrc in Linux

Qual è il modo corretto di usare inotify?

qual è il comando più affidabile per trovare la dimensione effettiva di un file linux

Come fare in modo che ssh acceda come l'utente giusto?