Archivi tag: report

Logwatch e le unmatched entries

Scenario: server casalingo con installato Nagios per controllare i servizi ed un server FTP attivo 24/7. Su tale macchina è presente Logwatch con funzioni di reportistica giornaliera, settimanale e mensile.

Problema: un numero indefinito di unmatched entries presenti nel file generato da Logwatch. Esse si riferiscono principalmente ai check di Nagios relativi al servizio FTP.

Soluzione: portare Logwatch ad ignorare i suddetti check.

logwatch.jpg

Per fare ciò occorre prima di tutto creare il file ignore.conf all’interno della directory /etc/logwatch/conf:

nightfly@nightbox:~$ cd /etc/logwatch/conf/
nightfly@nightbox:/etc/logwatch/conf$ touch ignore.conf

Successivamente, all’interno di tale file sarà necessario inserire la seguente direttiva:

.*Client "127.0.0.1"

In questo modo, tutti i check di Nagios verrano totalmente ignorati dalla reportistica di Logwatch, eliminando informazioni superflue e facilitando la vita al sysadmin (aka il sottoscritto).

Enjoy.

Proxy Squid e Calamaris

Consentire agli utenti della propria LAN l’accesso ai siti Web mediante Proxy è ormai una prassi. Analizzare i relativi file di log, però, risulta essere un’operazione piuttosto tediosa, indi per cui è molto conveniente utilizzare dei software in grado di generare i report degli accessi in modo automatico.

Se il proxy che avete tirato su è Squid e non implementate meccanismi di autentica (ad esempio NTLM), potete usare Calamaris come generatore di report.

 

squidlogo.jpg

L’installazione e la configurazione di tale applicativo è piuttosto semplice. Infatti, per installarlo basta digitare:

nightfly@nightbox:~$ sudo apt-get install calamaris

Ad installazione completata possiamo passare alla configurazione. Per prima cosa creiamo la directory calamaris in /var/www:

nightfly@nightbox:~$ sudo mkdir -p /var/www/calamaris

e le sottodirectory daily, weekly e monthly, in cui andranno salvati rispettivamente i report giornalieri, settimanali e mensili:

nightfly@nightbox:~$ sudo mkdir -p /var/www/calamaris/daily

nightfly@nightbox:~$ sudo mkdir -p /var/www/calamaris/weekly

nightfly@nightbox:~$ sudo mkdir -p /var/www/calamaris/monthly

assegniamo i giusti permessi alle directory appena create:

nightfly@nightbox:~$ cd /var/www

nightfly@nightbox:/var/www$ sudo chown nomeutente:nomeutente -R calamaris

A questo punto possiamo creare il primo report, digitando:

nightfly@nightbox:/var/www$ sudo calamaris -a -F html /var/log/squid/access.log > /var/www/calamaris/index.html

Il report sarà visualizzabile mediante browser alla seguente URL:

http://vostroippubblico/calamaris

Per consentire solo ad uno specifico utente la visualizzazione del report occorre creare un file .htaccess recante le seguenti direttive:

 AuthName "Sezione riservata Calamaris"
 AuthType Basic
 AuthUserFile /etc/apache2/passwd
 Require user <nome utente>

ovviamente il nome utente deve essere presente nel file /etc/apache2/passwd (in cui viene fatta l’associazione tra l’utente stesso ed il digest della sua password)

Infine, modifichiamo il file /etc/apache2/apache2.conf in questo modo:

 <Directory /var/www/calamaris>
 AllowOverride AuthConfig
 </Directory>

Salviamo il tutto e riavviamo apache:

nightfly@nightbox:~$ sudo service apache2 restart

Per ricevere i report direttamente via email (oltre ad ottenere il loro salvataggio nelle dir precedentemente create), possiamo modificare come segue il file cron.conf posizionato in /etc/calamaris:

daily:vostro.indirizzo@email.it:/var/www/calamaris/daily/index.html:both:'Squid giornaliero'
 weekly:vostro.indirizzo@email.it:/var/www/calamaris/weekly/index.html:both:'Squid settimanale'
 monthly:vostro.indirizzo@email.it:/var/www/calamaris/monthly/index.html:both:'Squid mensile'

Inoltre, sarà necessario abilitare la cache di squid (se non l’avete ancora fatto), decommentando la direttiva cache_dir presente nel file /etc/squid/squid.conf.

Done, enjoy!

Logwatch: analisi automatica dei log file di sistema

Ottenere dei report giornalieri che tengano conto degli “eventi” che hanno interessato i nostri server è certamente una comodità. Infatti, grazie ad essi, non è più necessario analizzare singolarmente i file di log relativi alle diverse applicazioni attive sulle nostre macchine, ma basta una rapida occhiata per accorgersi di eventuali anomalie.

Un’applicazione che riesce a generare una reportistica di questo tipo, a partire dai vari file di log, prende il nome di logwatch. In particolare, trattasi di un semplice scrip perl, la cui installazione è a dir poco banale e la cui configurazione è piuttosto immediata.

logwatch,log,log analysis,report,cron

Per installarlo sulla nostra Linux box Debian basta digitare il comando:

nightfly@nightbox:~$ sudo apt-get install logwatch

Ad installazione completata possiamo dedicarci alla configurazione di questo comodo e potente applicativo.

Per fare ciò occorre editare il file /usr/share/logwatch/default.conf/logwatch.conf:

nightfly@nightbox:~$ sudo nano /usr/share/logwatch/default.conf/logwatch.conf

Il nostro intento è quello di ottenere dei report da inviare alla nostra mailbox, la cui formattazione dovrà essere realizzata mediante il linguaggio di markup HTML:

Output = mail
Format = html
MailTo = vostro.indirizzo@email.it

In questo modo, ogniqualvolta digiteremo il comando logwatch da CLI, tale software provvederà ad inviarci il report desiderato.

Per automatizzare tale procedura, è sufficiente posizionarsi nella directory /etc/cron.daily/ per poi modificare il file 00logwatch, il cui contenuto dovrà essere:

#!/bin/bash

#Check if removed-but-not-purged
test -x /usr/share/logwatch/scrip/logwatch.pl || exit 0

#execute
/usr/sbin/logwatch --mailto vostro.indirizzo@email.it

Salviamo il file appena modificato ed abbiamo finito.

Siamo ora pronti a ricevere dei report giornalieri relativi allo stato dei servizi attivi sui nostri server.

A presto.

Script bash per l’aggiornamento delle blacklist utilizzate da squidGuard: versione 0.2

In questo post ho riportato l’esempio di uno scrip che si occupa dell’aggiornamento relativo alle blacklist utilizzate da squidGuard. Tale scrip è stato ulteriormente migliorato, in modo da riportare informazioni più dettagliate all’interno dell’email che vi verrà inviata dopo l’update.

bash_sh_shell_title.png

Ecco il codice:

#!/bin/bash

logfile=/var/log/squidguardupdate.log

destinatario=vostro.indirizzo@email.it

ROOT_UID=0

if [ "$UID" -ne "$ROOT_UID" ];then

        ERRORE1="Errore 1: Devi essere root per eseguire lo scrip"
        echo $ERRORE1
        echo "$(date) $ERRORE1" >> $logfile

        exit 1

fi

wget http://squidguard.mesd.k12.or.us/blacklists.tgz

tar -xvf blacklists.tgz

cd blacklists/

cp -R * /var/lib/squidguard/db

cd /home/vostrousername/cartelladelloscrip

squidGuard -d -C all &> result

chown proxy:proxy -R /var/lib/squidguard/db

squid -k reconfigure

sleep 5

ps aux | grep squidGuard >> result

if grep  -q "squidGuard" result ;then

echo "Update Riuscito" >> result

else

echo "Update Non Riuscito" >> result

fi

rm blacklists.tgz

cat result | mail -iv -s "HOME: Le blacklist di squidGuard sono state aggiornate correttamente" $destinatario;

rm result

exit 0

Nella fattispecie, ho fatto in modo che successivamente all’aggiornamento delle blacklist venisse controllato lo stato di esecuzione di squidGuard, semplicemente lanciando un ps aux | grep squidGuard.

L’output di questo comando verrà inserito all’interno dell’email e se squidGuard è effettivamente presente tra i processi in esecuzione, sarà aggiunta la dicitura Update Riuscito.

Fatene buon uso.

A presto.