giu 242011
 

tuxSul 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

  1. lanciate logcheck.sh usando cron
  2. logcheck.sh chiama logtail
  3. logtail determina quando è stata fatta l’ultima lettura e non analizza le “vecchie” linee
  4. logcheck.sh usa grep sul testo usando le regole da hacking/violations/violations.ignore/ignore files
  5. 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:

flattr this!

 Leave a Reply

(required)

(required)


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>