Sul nostro server abbiamo (o si dovrebbero avere) tonnellate di log generati, i log dei vari demoni (ssh, iptables, Monit, fail2ban), i log dei servizi (apache. nginx, bind, ftp, ecc) e di sistema (syslog, messages , kernel).
Quindi sono sicuro che tutti i giorni controllate tutti questi log e guardare se è successo qualcosa di brutto, vero?
Beh, forse io sono più pigro, ma preferisco usare uno scanner automatico dei log, e tra i tanti un vecchio ma ottimo programma è Logcheck
Logcheck è una semplice utility che è progettata per consentire ad un amministratore di sistema di visualizzare i file di log che si realizzano su macchine sotto il proprio controllo.
Lo fa, attraverso una sintesi dei log mandati tramite email, filtrando prima le voci “normali” presenti nei log.
Le voci normali sono voci che corrispondono ad uno dei tanti file inclusi di espressioni regolari contenuti nel database.
Installazione
Logcheck è solitamente disponibile in tutte le principali distribuzioni, utilizzate il vostro gestore di pacchetti per installarlo.
Su Debian ed Ubuntu:
aptitude install logcheck |
Questo installerà anche il pacchetto logcheck-database e logtail un eseguibile che ricorda la posizione dell’ultima lettura.
Configurazione
Il primo file di configurazione che si deve impostare è /etc /logcheck /logcheck.conf
Qui è necessario impostare il livello di filtraggio, l’indirizzo che riceverà l’email e se l’invio dei messaggi va fatto nel corpo o come allegati.
Il secondo file da modificare è /etc/logcheck/logcheck.logfiles
in questo file va messo in ogni riga il percorso completo di un file di log che si desidera controllare, come:
/var/log/syslog /var/log/auth.log /var/log/sulog |
Regole
Le regole sono caricate grazie al pacchetto logcheck-database, ci sono tre strati di insiemi di regole di filtraggio, che sono tutti
normali egrep su pattern, applicati uno dopo l’altro.
1. Lo strato degli “AVVISI di ATTACO”, progettato per rilevare le tracce di tentativi di intrusione attivi.
Modelli che danno l’allarme vanno in “/etc/logcheck/cracking.d”; qualsiasi evento che corrisponde a uno di questi modelli trasforma il rapporto in un rapporto urgente di “Attack Alert” con l’evento rilevante spostato in una sezione speciale.
Modelli che annullano tale massima priorità di allarme non vengono utilizzati nella configurazione logcheck di default, ma se l’amministratore permette questo strato di filtraggio in logcheck.conf, allora le regole vanno nella directory “/etc/logcheck/cracking.ignore.d”. Allarmi che corrispondano con le regole in cracking.ignore vengono riclassificati come un falso allarme (cfr. violations.ignore sotto). Si noti che questo significa che sono totalmente ignorati – i messaggi di log gestiti a un livello non sono riportati agli strati inferiori.
2. il livello “Eventi di SICUREZZA”, è progettato per rilevare eventi meno critici ma ancora considerati degni di particolare attenzione.
Modelli che danno l’allarme vanno in “/etc/logcheck/violations.d”; qualsiasi evento che corrisponde a uno di questi modell genera un “Evento di Sicurezza”, con l’evento rilevante spostato in una sezione speciale.
Modelli che annullano tali allarmi vanno nella directory standard “/etc/logcheck/violations.ignore.d”; “Eventi di sicurezza” apparenti che corrispondono con i modelli violations.ignore vengono scartati come falsi allarmi.
3. Il livello “Eventi di sistema”, gestisce tutti i messaggi avanzati nei log.
Ogni messaggio che non ha raggiunto il livello 1 e 2 è automaticamente un “Evento di sistema”.
È possibile ignorare i messaggi banali e comuni aggiungendoli nella directory “/etc/logcheck/ignore.d”
Esempi di regole
Kernel in /etc/logcheck/cracking.d
kernel: Oversized packet received from |
Kernel in /etc/logcheck/violations.d
^\w{3} [ :0-9]{11} [._[:alnum:]-]+ kernel:( \[[[:digit:]]+\.[[:digit:]]+\])? [[:alnum:]]+: media error \(bad sector\): status=0x[[:xdigit:]]+ { DriveReady SeekComplete Error }$ ^\w{3} [ :0-9]{11} [._[:alnum:]-]+ kernel:( \[[[:digit:]]+\.[[:digit:]]+\])? end_request: I/O error, dev [[:alnum:]]+, sector [[:digit:]]+ |
Come funziona
- lanciate logcheck.sh usando cron
- logcheck.sh chiama logtail
- logtail determina quando è stata fatta l’ultima lettura e non analizza le “vecchie” linee
- logcheck.sh usa grep sul testo usando le regole da hacking/violations/violations.ignore/ignore files
- i messaggi trovati sono mandati per email, Immagino a te
Conclusioni
Logcheck può essere i vostri occhi nel verificare ogni singolo log e segnalarvi gli eventi critici.
All’inizio ci sarà bisogno di qualche configurazione e probabilmente riceverete un sacco di “spam”, ma con po’ di pratica sarete in grado di pulire tutte le email e ottenere un report coerente.
Popular Posts:
- None Found