Come evitare la modifica esterna dell'output di log4j

1

Ho ricevuto una richiesta per trovare una soluzione per rendere sicuro un file di log dalla modifica da parte dell'utente (non dell'utente root) che esegue l'istanza JBoss di un'applicazione (ambiente Linux)

La prima idea che ho avuto è di usare "chattr + a" dall'utente root per consentire solo l'aggiunta di nuovi raw nel file di log.

Ma il file Log4j è configurato per ruotare il file ogni giorno e per questo motivo suppongo che dovrei ripetere il comando "chattr" per ogni file creato ogni giorno. Inoltre, non sono sicuro che il file del giorno passato nel suo stato "append only" possa essere estratto dalla rotazione.

Qualsiasi suggerimento o modo alternativo di procedere è ben accetto.

    
posta AndroX 28.01.2014 - 14:03
fonte

2 risposte

2

Potresti utilizzare SyslogAppender

Questo invia tutti i registri a syslogd (che può essere su un server separato). È possibile configurare i file di registro come non accessibili dall'utente dell'applicazione, mentre syslog si occupa della rotazione.

    
risposta data 28.01.2014 - 14:40
fonte
0

Puoi provare a impostare umask nell'ambiente del processo che sta creando i file. Ad esempio, se si desidera che le autorizzazioni dei nuovi file siano -r - r - r-- (0444), è possibile impostare umask su 222:

localhost> umask
77
localhost> touch x
localhost> ls -l 
total 0
-rw-------  1 user1  wheel  0 Mar 17 12:54 x
localhost> umask 222
localhost> touch y
localhost> ls -l 
total 0
-rw-------  1 user1  wheel  0 Mar 17 12:54 x
-r--r--r--  1 user1  wheel  0 Mar 17 12:54 y

Ciò farà sì che tutti i file scritti da quell'ambiente abbiano queste autorizzazioni di default, quindi a seconda dei tuoi altri requisiti non indicati qui, questo potrebbe o non potrebbe funzionare per te.

    
risposta data 17.03.2014 - 19:59
fonte

Leggi altre domande sui tag