file di registro in CentOS 7 [chiuso]


8

In CentOS 7, come posso individuare e visualizzare tutti i registri di sistema che indicano chi ha tentato di accedere al sistema, chi è entrato, quali processi hanno contattato, cosa hanno realizzato, ecc. Voglio poter collegare ogni attività a un ID utente o un indirizzo IP remoto.

La mia var/log/directory contiene numerose risorse tra cui /var/log/messagese /var/log/secure, ma la maggior parte dei file sono di tipo Binary (application/octet-stream)e il sistema operativo non sa come aprirli a meno che non associ ad essi qualche programma di visualizzazione sconosciuto. Inoltre, var/log/firewalldnon sembra contenere informazioni utili.

Posso trovare tutti i registri prodotti dalla mia app, dal mio database e da NginX / Apache.


Ok, hai trovato /var/loge tutti loro sono binari? sei sicuro? Come stai controllando?
Braiam,

@Braiam Non ho detto che fossero tutti binari. Ho detto che molti di loro sono binari. Ad esempio, /var/log/firewalldè un file di testo che sembra contenere informazioni inutili. Sto verificando facendo clic sui file nella GUI. Prima fare clic con il tasto sinistro per provare ad aprire, quindi fare clic con il tasto destro per visualizzare le proprietà per verificare il tipo di file.
CodeMed

Il sistema non lo fa per impostazione predefinita. È necessario abilitare la registrazione di controllo per ottenere questo. Mostro molti dei metodi in questo A: unix.stackexchange.com/questions/75051/… . Ecco una buona panoramica di auditd qui: security.blogoverflow.com/2013/01/… . Cerca altri, ce ne sono molti.
slm

@slm Ho letto i tuoi link. Grazie. Questo sarà un web server. Dovrò tracciare l'identità di ogni individuo che tocchi in alcun modo qualsiasi record in un database o qualsiasi file in parti specifiche del file system. Dovrò anche utilizzare questi dati di registrazione per impostare avvisi che si attivano ogni volta che un utente non autorizzato accede a qualsiasi dato. So come eseguire la registrazione a livello di applicazione e database. Voglio impostare la registrazione in modo che i registri CentOS possano essere collegati ai registri del contenitore Web, ai registri delle app e dei registri del database, magari tramite ip. Come devo inquadrare le domande sul livello CentOS di questo requisito?
CodeMed,

@CodeMed - Direi che è CentOS 7, proprio come hai fatto tu. Penso che tu possa fare quello che vuoi usando auditd, scrivere la manipolazione del filesystem e quali comandi / processi sono invocati dagli utenti sul filesystem locale. Questo non mostrerà nulla oltre l'utente nginx, apache, ecc. facendo X però dal livello dell'applicazione. Potrebbe essere necessario unire i 2 insieme. Vorrei anche inquadrarlo come un Q di sistema, con CentOS 7 come istanza specifica.
slm

Risposte:


10

L'utilità (riga di comando) che dovresti usare è journalctl. Ad esempio per guardare l'output di dmesg:

journalctl --dmesg

o voci analizzabili relative al firewall:

journalctl --output=json-pretty UNIT=firewalld.service

Per un elenco di UNIT selezionabili utilizzare i soliti strumenti:

journalctl --output=json-pretty | grep -F UNIT | sort -u

Vedere man journalctlsul proprio sistema per ulteriori opzioni per limitare e specificare l'output.


Grazie. Questo è un inizio Ma la mia domanda è più globale. Come posso ottenere un elenco di tutti i registri disponibili? E come posso ottenere l'output in un formato che posso usare? Ad esempio, una risorsa che può essere importata in un programma Java che viene tracciato su un utente o ip. journalcdt --dmesgnon sembra identificare nessuno più specifico di localhost.localdomane journalctl --firewalldproduce unrecognized option. Quindi il tuo suggerimento non risponde ancora alla mia domanda.
CodeMed

Dovresti davvero guardare la pagina man. È piuttosto informativo. journalctl --output=json-pretty UNIT=firewalld.serviceti dà un output json.
Anthon,

Grazie per l'aggiornamento. Ho letto il manuale, ma la tua risposta può semplificare l'applicazione. In questo momento, journalctl --output=json-pretty | grep -f UNIT | sort -ugrep: UNIT: No such file or directory
CodeMed

Inoltre, journalctl --output=json-pretty UNIT=firewalld.servicefunziona solo quando ho effettuato l'accesso come root, ma non quando provo a utilizzare il terminale come utente normale. Quindi non posso ancora usare questo codice a livello di codice. Se potessi in qualche modo generare automaticamente un nuovo set di file di registro per ogni unità selezionabile senza dover lasciare la mia password di root in un file hackerabile, allora questa domanda avrebbe una risposta.
CodeMed,

@CodeMed C'era un errore di battitura negli grepargomenti (non ho tagliato e incollato e messo in minuscolo l' -Fopzione).
Anthon,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.