Per mantenere il tuo RHEL 7 sistemi sicuri, è necessario sapere come monitorare tutte le attività che si svolgono su tali sistemi esaminando i file di registro. Pertanto, sarai in grado di rilevare qualsiasi attività insolita o potenzialmente dannosa ed eseguire la risoluzione dei problemi del sistema o intraprendere un'altra azione appropriata.
Nel RHEL 7, il rsyslogd daemon è responsabile della registrazione del sistema e legge la sua configurazione da /etc/rsyslog.conf (questo file specifica la posizione predefinita per tutti i registri di sistema) e dai file all'interno /etc/rsyslog.d, se del caso.
Una rapida ispezione del rsyslog.conf sarà utile per iniziare. Questo file è diviso in 3 sezioni principali: Moduli (poiché rsyslog segue un design modulare), Globale direttive (usate per impostare le proprietà globali del demone rsyslogd), e Regole. Come probabilmente indovinerai, quest'ultima sezione indica cosa viene registrato o mostrato (noto anche come selettore) e dove, e sarà il nostro focus in questo articolo.
Una tipica linea in rsyslog.conf è come segue:
Nell'immagine sopra, possiamo vedere che un selettore è composto da una o più coppie Struttura: Priorità separati da punto e virgola, dove Facility descrive il tipo di messaggio (fare riferimento a sezione 4.1.1 in RFC 3164 per vedere l'elenco completo delle strutture disponibili per rsyslog) e Priorità ne indica la gravità, che può essere una delle seguenti parole autoesplicative:
Sebbene non sia una priorità in sé, la parola chiave nessuno significa nessuna priorità per tutta la struttura data.
Nota: che una data priorità indica che tutti i messaggi di tale priorità e superiori devono essere registrati. Pertanto, la linea nell'esempio sopra indica il rsyslogd demone per registrare tutti i messaggi con informazioni di priorità o superiore (indipendentemente dalla struttura) ad eccezione di quelli appartenenti a posta, authpriv, e cron servizi (nessun messaggio proveniente da questa struttura sarà preso in considerazione) a /var/log/messages.
Puoi anche raggruppare più strutture utilizzando i due punti per applicare la stessa priorità a tutte. Quindi, la riga:
*.Informazioni; posta.none; authpriv.none; cron.none /var/log/messages.
Potrebbe essere riscritto come
*.Informazioni; mail, authpriv, cron.none /var/log/messages.
In altre parole, le strutture posta, authpriv, e cron sono raggruppati e la parola chiave nessuno si applica a loro tre.
Per registrare tutti i messaggi del demone su /var/log/tecmint.log, dobbiamo aggiungere la seguente riga in rsyslog.conf o in un file separato (più facile da gestire) all'interno /etc/rsyslog.d:
demone.* /var/log/tecmint.log.
Riavviamo il demone (nota che il nome del servizio non finisce con a D):
# systemctl riavvia rsyslog.
E controlla il contenuto del nostro registro personalizzato prima e dopo aver riavviato due demoni casuali:
Come esercizio di autoapprendimento, ti consiglio di giocare con le strutture e le priorità e di registrare messaggi aggiuntivi nei file di registro esistenti o di crearne di nuovi come nell'esempio precedente.
Per evitare che i file di registro crescano all'infinito, il logrotate L'utility viene utilizzata per ruotare, comprimere, rimuovere e, in alternativa, inviare i registri per posta, facilitando così l'amministrazione dei sistemi che generano un numero elevato di file di registro.
Lettura consigliata:Come impostare e gestire la rotazione dei registri utilizzando Logrotate in Linux
logrotate viene eseguito ogni giorno come a cron lavoro (/etc/cron.daily/logrotate) e legge la sua configurazione da /etc/logrotate.conf e dai file che si trovano in /etc/logrotate.d, se del caso.
Come nel caso di rsyslog, anche quando puoi includere impostazioni per servizi specifici nel file principale, la creazione di file di configurazione separati per ciascuno aiuterà a organizzare meglio le tue impostazioni.
Diamo un'occhiata a un tipico logrotate.conf:
Nell'esempio sopra, logrotate effettuerà le seguenti azioni per /var/loh/wtmp: tenta di ruotare solo una volta al mese, ma solo se il file è almeno 1 MB di dimensioni, quindi crea un nuovo file di registro con i permessi impostati su 0664 e la proprietà data all'utente root e al gruppo utmp. Successivamente, mantieni solo un registro archiviato, come specificato dalla direttiva di rotazione:
Consideriamo ora un altro esempio come si trova in /etc/logrotate.d/httpd:
Puoi leggere di più sulle impostazioni per logrotate nelle sue pagine man (uomo logrotato e man logrotate.conf). Entrambi i file sono forniti insieme a questo articolo in formato PDF per comodità di lettura.
In qualità di ingegnere di sistema, starà a te decidere per quanto tempo verranno archiviati i registri e in quale formato, a seconda che tu abbia /var in una partizione separata / volume logico. Altrimenti, dovresti davvero prendere in considerazione la rimozione dei vecchi registri per risparmiare spazio di archiviazione. D'altra parte, potresti essere costretto a conservare diversi registri per futuri controlli di sicurezza in base alle politiche interne della tua azienda o del cliente.
Ovviamente esaminando i log (anche con l'aiuto di strumenti come grep ed espressioni regolari) può diventare un compito piuttosto noioso. Per tale motivo, rsyslog ci permette di esportarli in un database (OTB RDBMS supportati includono MySQL, MariaDB, PostgreSQL e Oracle.
Questa sezione del tutorial presuppone che tu abbia già installato il Maria DB server e client nella stessa casella RHEL 7 in cui vengono gestiti i log:
# yum update && yum install mariadb mariadb-server mariadb-client rsyslog-mysql. # systemctl abilita mariadb && systemctl avvia mariadb.
Quindi usa il mysql_secure_installation
utility per impostare la password per l'utente root e altre considerazioni sulla sicurezza:
Nota: Se non vuoi usare il Maria DB utente root per inserire messaggi di registro nel database, è possibile configurare un altro account utente per farlo. Spiegare come farlo non rientra nell'ambito di questo tutorial, ma è spiegato in dettaglio in Conoscenza di MariaDB base. In questo tutorial utilizzeremo l'account root per semplicità.
Quindi, scarica il createDB.sql script da GitHub e importalo nel tuo server di database:
# mysql -u root -p < createDB.sql.
Infine, aggiungi le seguenti righe a /etc/rsyslog.conf:
$ModLoad ommysql. $ActionOmmysqlServerPort 3306. *.* :ommysql: localhost, Syslog, root,La tua passwordqui
Ricomincia rsyslog e il server del database:
# systemctl restart rsyslog # systemctl restart mariadb.
Ora esegui alcune attività che modificheranno i registri (come l'arresto e l'avvio dei servizi, ad esempio), quindi accedi al tuo server DB e utilizza i comandi SQL standard per visualizzare e cercare nei registri:
UTILIZZO Syslog; SELECT ReceivedAt, Message FROM SystemEvents;
In questo articolo abbiamo spiegato come impostare la registrazione del sistema, come ruotare i registri e come reindirizzare i messaggi a un database per una ricerca più semplice. Ci auguriamo che queste competenze saranno utili mentre ti prepari per il Esame RHCE e anche nelle tue responsabilità quotidiane.
Come sempre, il tuo feedback è più che benvenuto. Sentiti libero di utilizzare il modulo sottostante per raggiungerci.