I compiti di amministrazione in Linux sono complessi in molte situazioni a causa della quantità di processi, servizi e ruoli che vengono eseguiti ogni secondo e a questo dobbiamo aggiungere login, installazione di applicazioni e senza dimenticare tutti gli eventi che ogni applicazione registra nella distribuzione gestita . Fortunatamente per gli amministratori e il personale di controllo o auditing, abbiamo sviluppato vari comandi per facilitare la gestione e il controllo degli eventi di sistema e quindi Solvetic si concentrerà su due dei comandi più importanti a questo scopo. Syslog e Klogd.
Il registro è come un registro, in cui vengono registrati eventi, errori, modifiche e processi generati dalle applicazioni o dal sistema operativo per poter successivamente leggere questo registro e determinare quali eventi si sono verificati, soprattutto in caso di errori o vulnerabilità. I file di log su un sistema Linux risiedono nella directory /var/log Il sistema di log di Linux è gestito da due Demoni:
SYSLOGDGenera i log di sistema. Syslogd viene eseguito automaticamente all'avvio di un sistema Linux ed è responsabile dell'archiviazione dei report sul funzionamento del computer. Riceve messaggi dalle diverse parti del sistema, kernel e applicazioni, li memorizza in posizioni diverse, sia locali che remote, seguendo un criterio definito nel file di configurazione /etc/syslog.conf.
KLOGDGenera i log del kernel. klogd indirizza i messaggi di registro del kernel al registro di sistema. L'utente può controllare la gestione dei messaggi del kernel modificando il file di configurazione syslogd. Queste applicazioni klogd sono particolarmente utili per gli sviluppatori del kernel.
1. Che cos'è e come usare Syslogd nei log di Linux
Vediamo cos'è e come usare Syslogd
Cos'è SyslogdSyslogd (utilità di registrazione del sistema Linux), è un comando che ci fornisce un tipo di registro utilizzato da molti programmi moderni, grazie a Syslogd, ogni messaggio registrato contiene almeno una volta e un campo del nome host, rendendo le attività di monitoraggio molto più semplici e più facile da analizzare.
Il comando Syslogd ha un comportamento standard BSD e le nuove versioni di Syslogd interagiscono in modo trasparente con la versione di syslog disponibile nelle librerie standard, quindi, se un binario collegato alle librerie condivise standard non funziona correttamente, Syslogd visualizzerà il comportamento di questo binario.
Passo 1
Il file di configurazione principale è /etc/syslog.conf e il log è solitamente specificato con le voci delle regole. Il selettore (facility.priority) e l'azione sono specificati in ogni riga. Qualcosa da tenere a mente è che nelle moderne distribuzioni Linux, il comando Syslogd è stato sostituito da nuove implementazioni Syslog come rsyslog o syslog-ng, quindi se vogliamo usare Syslogd possiamo installarlo con il seguente comando:
apt install inetutils-syslogd
INGRANDIRE
Passo 2
Lì dobbiamo inserire la lettera S per confermare il download e l'installazione di Syslogd. Una volta installato possiamo andare al suo file di configurazione che si trova nel seguente percorso /etc/syslog.conf:
nano /etc/syslog.conf
INGRANDIRE
Passaggio 3
Lì troviamo tutti i percorsi che Syslogd utilizzerà per acquisire le informazioni. La sintassi generica per Syslogd è la seguente:
syslogd [-a socket] [-d] [-f file di configurazione] [-h] [-l elenco host] [-m intervallo] [-n] [-p socket] [-r] [-s elenco dominio] [-S] [-v] [-x]Passaggio 4
Tra le opzioni disponibili abbiamo:
Specifica prese extraQuesto argomento ci permette di specificare i socket aggiuntivi che Syslogd dovrebbe ascoltare, è usato nel caso in cui un demone venga eseguito all'interno di un ambiente chroot(). Sarà possibile usufruire di fino a 19 prese aggiuntive.
-una presa
Abilita la modalità di debugquesto argomento attiva la modalità di debug che manterrà Syslog in primo piano e quindi scriverà molte informazioni di debug nel tty corrente.
-D
File di configurazioneQuesto argomento specifica un file di configurazione alternativo invece del file predefinito /etc/syslog.conf.
-f file di configurazione
Blocca l'inoltro remoto dei messaggiQuesto parametro impedisce a Syslogd di inoltrare i messaggi ricevuti da host remoti.
-h
Definisci il nome della reteGrazie a questo parametro è possibile indicare un host name che deve essere registrato solo con il suo semplice host name e non con l'FQDN.
-l hostlist (Elenco degli host)
Definisci intervallo di tempoUtilizzando questo parametro possiamo specificare l'intervallo di tempo da utilizzare, per impostazione predefinita il valore è 20 minuti.
-m intervallo
Evita di eseguire SyslodgQuesto parametro impedisce l'esecuzione di Syslogd in background.
-n
Imposta socket di dominioCi permette di specificare un socket di dominio Unix alternativo invece di / dev / log
-p presa
Consenti messaggi di reteQuesta opzione consentirà all'installazione di ricevere messaggi dalla rete utilizzando un socket di dominio Internet con il servizio Syslog.
-R
Definisci il nome di dominioQuesto parametro specifica un nome di dominio che deve essere rimosso prima dell'accesso.
-s elenco di domini
Abilita registrazioneAbilita la registrazione dettagliata,
-S
Abilita la versione correnteVisualizza la versione corrente di Syslogd.
-v
INGRANDIRE
Passaggio 5
Quando si esegue una delle opzioni disponibili, possiamo vedere tutte le attività eseguite internamente:
INGRANDIRE
2. Segnali nei log di Syslogd Linux
Passo 1
Syslogd è in grado di reagire a una serie di segnali, un'opzione per inviare un segnale a Syslogd è eseguendo:
kill -SIGNAL 'cat /var/run/syslogd.pid'Passo 2
Quando questo segnale viene eseguito, vari componenti come. Pertanto, Syslogd è una soluzione pratica per analizzare gli eventi di Linux.
SIGHUPQuesta opzione consente a Syslogd di eseguire un processo di riavvio in cui tutti i file aperti vengono chiusi, il file di configurazione verrà letto nuovamente e l'installazione di Syslog verrà riavviata.
SIGTERMIl servizio scadrà.
SIGINT, SIGQUITSe il debug è abilitato, questi vengono ignorati, altrimenti Syslogd scadrà.
SIGUSR1Abilita o disabilita il debug.
SIGCHLDAttendi i nuovi messaggi.
3. Configura il file syslogd di Linux
Syslogd utilizza una sintassi leggermente diversa nel suo file di configurazione rispetto al tradizionale file sorgente BSD originale. La configurazione di syslogd viene eseguita tramite il file /etc/syslogd.conf. Attraverso questo file viene specificato dove devono essere instradati i diversi messaggi. Puoi lasciare le righe vuote o commentare intere righe con il carattere "#"
Affinché syslog accetti connessioni remote dobbiamo aggiungere il parametro -r
SYSLOGD_OPTIONS = "-r -m 0"Normalmente syslogd occupa la porta 514 dobbiamo verificare che il firewall non lo blocchi per verificare in quale porta è in esecuzione, da terminale scriviamo il seguente codice
grep syslog / etc / servicesNei log del servizio su questa riga possiamo vedere che i log "mail, cron, info" vanno nella directory dei messaggi
* .info; mail.none; authpriv.none; cron.none/var/log/messaggiCercheremo di inviare un messaggio a tutti i log con il seguente comando
grep "Messaggio di prova" /var/log/*In questo caso possiamo vedere che diversi log sono con permessi negati quindi non possono essere scritti.
Bisognerebbe stabilire se è necessario modificare o meno i permessi in base alle nostre esigenze. I log hanno diversi livelli di priorità dei messaggi (dalla priorità più bassa alla più alta:
Registri di guasti, errori e avvisi
debug, informazioni, avviso, avviso, avviso, err, errore, critico, avviso, emerg e panico
Registri del tipo di messaggioRegistri di vari tipi di messaggi
auth, authpriv, cron, demone, kern, lpr, mail, mark, notizia, sicurezza, syslog, utente, uucpI più importanti sono
- var/log/messaggi: qui troveremo i log che arrivano con priorità info (informazioni), avviso (notifica) o warning (avviso).
- /var/log/kern.log: i log del kernel, generati da klogd, sono archiviati qui.
- /var/log/auth.log: questo registro registra gli accessi nel sistema, le volte in cui eseguiamo su, ecc. I tentativi falliti vengono registrati nelle righe con le informazioni sul tipo di chiave non valido o sul login non valido.
- /var/log/dmesg: le informazioni generate dal kernel durante l'avvio del sistema sono memorizzate in questo file.
Questi file di registro accumulano continuamente informazioni, quindi a un certo punto possono occupare molto spazio, per risolvere questo problema possiamo comprimerlo o eseguire il backup se sono davvero necessari. Alcune modifiche da tenere a mente sono:
Uso dei caratteri jollyViene utilizzato come carattere jolly per tutte le priorità ei servizi di cui sopra, a seconda del suo utilizzo (se prima o dopo il carattere separatore `. ').
"*" (asterisco) =
Non contrassegnare la prioritàIndica che non esiste una priorità definita per il servizio della linea selezionata.
"": (vuoto, spazio, null)
Scegli diversi serviziConsente di specificare più servizi con lo stesso livello di priorità sulla stessa linea.
"," (mangiare)
Controlla diversi messaggiConsente di indirizzare i messaggi provenienti da vari servizi e priorità allo stesso destinatario.
";" (punto e virgola)
Scegli la priorità del messaggioCi dà la possibilità di memorizzare solo i messaggi con l'esatta priorità specificata.
"=" (uguale)
4. Che cos'è e come usare Klogd nei log di Linux
Cos'è KlogdKlogd (Kernel Log Daemon), è un demone di sistema che è stato sviluppato per intercettare e registrare i messaggi dal kernel Linux. La funzione del comando Klogd è focalizzata sull'acquisizione di più istanze del kernel come l'origine, la prioritizzazione e la risoluzione degli indirizzi del kernel.
Negli ambienti Linux abbiamo due fonti principali di informazioni sul registro del kernel, come:
- Il file system / proc
- L'interfaccia syscall (sys_syslog)
Quando viene ricevuto un messaggio dal kernel, il demone Klogd leggerà il livello di priorità assegnato e gli darà il livello di priorità basato sul messaggio syslog. Quando si utilizza Klogd, sarà anche possibile modificare la visualizzazione dei messaggi del kernel nella console di sistema, in un kernel comune, il livello di registro della console predefinito è impostato su 7, quindi tutti i messaggi con un livello di priorità inferiore a 7 (priorità massima ) apparirà sulla console. I messaggi di livello 7 di priorità sono considerati messaggi di "debug" e quindi non appariranno sulla console per non sovraccaricare di informazioni gli altri eventi del kernel.
Klogd ha una funzione chiamata Kernel Address Resolution per cui, se il kernel rileva una condizione di errore interno, viene automaticamente attivato un protocollo di errore di protezione generale. Fa parte della procedura di gestione GPF, in cui il kernel stampa un report di stato che indica lo stato del processore quando viene generato il guasto, all'interno di questo risultato vedremo dettagli come il contenuto dei registri del microprocessore, il contenuto del lo stack del kernel e un monitoraggio delle funzioni in esecuzione prima dell'errore.
Il processo di risoluzione degli indirizzi numerici dai risultati dell'errore di protezione può essere eseguito manualmente o tramite il programma ksymoops incluso nei sorgenti del kernel. Il comando Klogd supporta il problema della diagnosi degli errori di protezione negli attuali moduli caricabili del kernel.
Passo 1
Come Syslogd, Klog è stato sostituito nelle attuali distribuzioni da comandi più dinamici, quindi per la sua installazione eseguiremo quanto segue. Lì inseriamo la lettera S per confermare il download e l'installazione.
apt install busybox-syslogd
INGRANDIRE
Passo 2
La sintassi di Klogd è la seguente:
klogd [-cn] [-d] [-f nomef] [-iI] [-n] [-o] [-p] [-s] [-k nomef] [-v] [-x] [-2 ]Passaggio 3
Queste opzioni sono:
Definisci il livello di registroQuesto parametro definisce il livello di registrazione predefinito per i messaggi della console su n.
-c n
Modalità di debugquesta opzione abilita la modalità di debug.
-D
Registra messaggifile registra i messaggi nel nome file specificato invece dell'installazione syslog.
-F
Identifica i demoni in esecuzioneidentifica il demone klogd attualmente in esecuzione. Entrambi gli interruttori controllano il caricamento/ricaricamento delle informazioni sui simboli.
-i -io
Smetti di klogd in backgroundImpedisci a Klogd di funzionare in background.
-n
Lettura completa sui buffer dei messaggiQuesta opzione consente a Klogd di leggere e registrare tutti i messaggi trovati nei buffer dei messaggi del kernel.
-o
Forza chiamata di sistemaForza il comando Klogd a utilizzare l'interfaccia di chiamata di sistema per i buffer dei messaggi del kernel.
-S
Vedi la versione di KlogdStampa la versione Klogd.
-v
INGRANDIRE
Passaggio 4
Se vogliamo leggere tutti gli eventi dopo il login, eseguiremo quanto segue:
klogd -o -f ./krnl.msgPassaggio 5
Successivamente sarà possibile accedere al contenuto di detto file:
INGRANDIRE
5. Segnali Klogd su Linux
Il comando Klogd può rispondere a otto (8) segnali che sono: SIGHUP, SIGINT, SIGKILL, SIGTERM, SIGTSTP, SIGUSR1, SIGUSR2 e SIGCONT. I segnali SIGINT, SIGKILL, SIGTERM e SIGHUP consentono al demone di chiudere le sorgenti del log del kernel e terminare il processo correttamente mentre i segnali SIGTSTP e SIGCONT vengono utilizzati per avviare e arrestare il log del kernel.
Passo 1
Ad esempio, se vogliamo smontare il file system /proc, dobbiamo eseguire i seguenti comandi:
# kill -TSTP pid # umount / proc # kill -CONT pidPasso 2
Alcuni file da utilizzare con Klogd sono:
- / proc / kmsg: è il file sorgente per i messaggi del kernel klogd
- /var/run/klogd.pid: è il file che contiene l'id del processo di klogd
- /boot/System.map, /System.map, /usr/src/linux/System.map - Queste sono le posizioni predefinite per le mappe del sistema del kernel.
Come possiamo vedere, abbiamo questi due comandi utili ed essenziali per una corretta e completa gestione degli eventi del kernel in Linux.