3 581
contributi
m (spaziatura/box iniziale) |
|||
(51 versioni intermedie di 7 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{Old|Se si sta utilizzando Debian 6 (Squeeze) vedere la guida: [[Configurare un server Syslog su Debian Squeeze]]}} | |||
__TOC__ | |||
== Introduzione == | |||
In una serverfarm, ma anche in una piccola rete casalinga, può risultare molto utile riunire i log di tutte le macchine in un unico posto. Si possono in questo modo applicare funzioni di analisi, ricerca e statistica che, in un unico intervento, restituiranno lo stato di tutte le macchine della rete, e sarà inoltre possibile configurare un unico strumento per inviare messaggi di alert quando lo stato di una qualsiasi delle macchine monitorate subisce un'alterazione potenzialmente pericolosa.<br/> | In una serverfarm, ma anche in una piccola rete casalinga, può risultare molto utile riunire i log di tutte le macchine in un unico posto. Si possono in questo modo applicare funzioni di analisi, ricerca e statistica che, in un unico intervento, restituiranno lo stato di tutte le macchine della rete, e sarà inoltre possibile configurare un unico strumento per inviare messaggi di alert quando lo stato di una qualsiasi delle macchine monitorate subisce un'alterazione potenzialmente pericolosa.<br/> | ||
Debian, come è lecito aspettarsi, mette a disposizione degli ottimi strumenti per creare un server di log centralizzato. | Debian, come è lecito aspettarsi, mette a disposizione degli ottimi strumenti per creare un server di log centralizzato. | ||
== Installazione di Syslog-ng == | |||
Il server syslog che prenderemo in considerazione sarà '''Syslog-NG'''. Pur non essendo installato di default su sistemi Debian, dove invece si può trovare syslogd, questo demone presenta diversi vantaggi: | Il server syslog che prenderemo in considerazione sarà '''Syslog-NG'''. Pur non essendo installato di default su sistemi Debian, dove invece si può trovare syslogd, questo demone presenta diversi vantaggi: | ||
# Le connessioni possono essere stabilite via TCP al posto di UDP | # Le connessioni possono essere stabilite via TCP al posto di UDP | ||
Riga 13: | Riga 15: | ||
# apt-get install syslog-ng | # apt-get install syslog-ng | ||
</pre> | </pre> | ||
L'installazione rimuoverà automaticamente il demone < | L'installazione rimuoverà automaticamente il demone <code>syslog</code> installato di default. | ||
== Configurazione del server Syslog == | |||
Il file di configurazione di syslog-ng è '''/etc/syslog-ng/syslog-ng.conf'''. Occorre aprirlo con un editor | Il file di configurazione di syslog-ng è <code>'''/etc/syslog-ng/syslog-ng.conf'''</code>. Occorre aprirlo con un editor, decommentare la linea: | ||
<pre> | <pre> | ||
udp(); | udp(); | ||
</pre> | |||
e modificare le linee: | |||
<pre> | |||
2)# enable or disable DNS usage | |||
# syslog-ng blocks on DNS queries, so enabling DNS may lead to | |||
# a Denial of Service attack | |||
# (default is yes) | |||
use_dns(no); | |||
</pre> | |||
in: | |||
<pre> | |||
# enable or disable DNS usage | |||
# syslog-ng blocks on DNS queries, so enabling DNS may lead to | |||
# a Denial of Service attack | |||
# (default is yes) | |||
use_dns(yes); | |||
dns_cache(yes); | |||
</pre> | </pre> | ||
in modo da abilitare il demone a ricevere log da client remoti.<br/> | in modo da abilitare il demone a ricevere log da client remoti.<br/> | ||
In questa configurazione è stata presa in considerazione una semplice gestione dei log (di default salvati in < | In questa configurazione è stata presa in considerazione una semplice gestione dei log (di default salvati in <code>/var/log</code>), senza l'implementazione di un database di archiviazione. Si tenga comunque presente che le possibilità di gestione dei log sono molto più avanzate di quelle mostrate in questa guida. | ||
== Installazione di phpLogCon == | |||
Per facilitare la lettura e la gestione dei log è uso comune ricorrere a interfacce grafiche. Su server senza l'ambiente grafico X installato potrebbe essere comodo ricorrere a un'interfaccia scritta in PHP. La scelta in questa guida è caduta su '''phpLogCon''' (http://www.phplogcon.org/), che a mio avviso rappresenta un ottimo compromesso tra funzionalità e facilità di installazione/gestione. | {{Box | Nota |phpLogCon ha attualmente cambiato nome in LogAnalyzer. Il nuovo software è trattato nel capitolo successivo}} | ||
Per facilitare la lettura e la gestione dei log è uso comune ricorrere a interfacce grafiche. Su server senza l'ambiente grafico X installato potrebbe essere comodo ricorrere a un'interfaccia scritta in PHP. La scelta in questa guida è caduta su '''phpLogCon''' (http://www.phplogcon.org/), che a mio avviso rappresenta un ottimo compromesso tra funzionalità e facilità di installazione/gestione.<br/> | |||
Prima di installare phpLogCon è necessario installare e configurare un ambiente LAMP, seguendo ad esempio le indicazioni riportare in questa guida: [[LAMP: Linux, Apache, MySQL e PHP]].<br/> | Prima di installare phpLogCon è necessario installare e configurare un ambiente LAMP, seguendo ad esempio le indicazioni riportare in questa guida: [[LAMP: Linux, Apache, MySQL e PHP]].<br/> | ||
Una volta terminata la configurazione dell'ambiente LAMP si può procedere all'installazione di phpLogCon. Si scarichi innanzitutto la versione più aggiornata dal sito ufficiale: http://www.phplogcon.org/downloads.<br/> | Una volta terminata la configurazione dell'ambiente LAMP si può procedere all'installazione di phpLogCon. Si scarichi innanzitutto la versione più aggiornata dal sito ufficiale: http://www.phplogcon.org/downloads.<br/> | ||
Quindi si scompatti l'archivio appena scaricato e si copi la directory < | Quindi si scompatti l'archivio appena scaricato e si copi la directory <code>src</code> all'interno del nostro server Apache: | ||
<pre> | <pre> | ||
# tar -xzvf phplogcon-2.3.11.tar.gz | # tar -xzvf phplogcon-2.3.11.tar.gz | ||
Riga 34: | Riga 54: | ||
# mv /var/www/src /var/www/phplogcon | # mv /var/www/src /var/www/phplogcon | ||
</pre> | </pre> | ||
Prima di continuare con l'installazione di phpLogCon occorre rendere rendere leggibili a phpLogCon i files di log syslog. | Prima di continuare con l'installazione di phpLogCon occorre rendere rendere leggibili a phpLogCon i files di log syslog.<br/> | ||
Creiamo innanzitutto un nuovo gruppo e aggiungiamo l'utente www-data a questo gruppo: | Creiamo innanzitutto un nuovo gruppo e aggiungiamo l'utente <code>www-data</code> a questo gruppo: | ||
<pre> | <pre> | ||
# groupadd | # groupadd adm | ||
# usermod -a -G | # usermod -a -G adm www-data | ||
</pre> | </pre> | ||
Verifichiamo quindi la buona riuscita dei comandi: | Verifichiamo quindi la buona riuscita dei comandi: | ||
Riga 44: | Riga 64: | ||
groups www-data | groups www-data | ||
</pre> | </pre> | ||
Ora copiamo i due | Ora copiamo i due file <code>configure.sh</code> e <code>secure.sh</code> dalla directory <code>contrib</code> all'interno del nostro server Apache, rendiamoli eseguibili e lanciamo gli script: | ||
<pre> | <pre> | ||
# cd | # cd | ||
Riga 53: | Riga 73: | ||
# ./configure.sh | # ./configure.sh | ||
</pre> | </pre> | ||
Infine colleghiamoci alla pagina < | Infine colleghiamoci alla pagina <code>http://127.0.0.1/phplogcon</code> e completiamo il processo di installazione e configurazione di phplogcon.<br/> | ||
Ora apriamo con un editor il file '''/etc/logrotate.conf''' e cerchiamo la voce < | Ora apriamo con un editor il file <code>'''/etc/logrotate.conf'''</code> e cerchiamo la voce <code>create</code>, modificandola in: | ||
<pre> | |||
create 640 root adm | |||
</pre> | |||
Modifichiamo infine anche il file <code>'''/etc/logrotate.d/syslog-ng'''</code>, cercando la sezione relativa a syslog e modificandola come segue: | |||
<pre> | |||
/var/log/syslog { | |||
rotate 7 | |||
daily | |||
compress | |||
create 640 root adm | |||
postrotate | |||
/etc/init.d/syslog-ng reload >/dev/null | |||
endscript | |||
} | |||
</pre> | |||
In questo modo la prossima volta che [[logrotate]] verrà eseguito i log diventeranno leggibili di default anche per il nostro webserver. Per visualizzarli basterà collegarsi alla pagina <code>http://127.0.0.1/phplogcon</code>. | |||
== Installazione di LogAnalyzer 3.x == | |||
Il successore di phpLogCon si chiama Adiscon LogAnalyzer e, come il suo predecessore, è scritto in PHP ed è liberamente scaricabile dal sito del progetto: http://loganalyzer.adiscon.com/ .<br/> | |||
La sua installazione procede essenzialmente in maniera identica a quella di phpLogCon, ma in questo paragrafo esamineremo anche l'utilizzo di un database MySQL di appoggio. Prima di installare LogAnalyzer è necessario installare e configurare un ambiente LAMP, seguendo ad esempio le indicazioni riportare in questa guida: [[LAMP: Linux, Apache, MySQL e PHP]].<br/> | |||
Una volta terminata la configurazione dell'ambiente LAMP si può procedere all'installazione di LogAnalyzer. Si scarichi innanzitutto la versione più aggiornata dal sito ufficiale: http://www.loganalyzer.adiscon.com/downloads.<br/> | |||
Quindi si scompatti l'archivio appena scaricato e si copi la directory <code>src</code> all'interno del nostro server Apache: | |||
<pre> | |||
# tar -xzvf loganalyzer-3.0.1.tar.gz | |||
# cd loganalyzer-3.0.1 | |||
# mv src /var/www/ | |||
# mv /var/www/src /var/www/loganalyzer | |||
</pre> | |||
Prima di continuare con l'installazione di LogAnalyzer occorre rendere leggibili a LogAnalyzer i files di log syslog.<br/> | |||
Creiamo innanzitutto un nuovo gruppo e aggiungiamo l'utente <code>www-data</code> a questo gruppo: | |||
<pre> | |||
# groupadd adm | |||
# usermod -a -G adm www-data | |||
</pre> | |||
Verifichiamo quindi la buona riuscita dei comandi: | |||
<pre> | |||
groups www-data | |||
</pre> | |||
Ora copiamo i due file <code>configure.sh</code> e <code>secure.sh</code> dalla directory <code>contrib</code> all'interno del nostro server Apache, rendiamoli eseguibili e lanciamo gli script: | |||
<pre> | |||
# cd | |||
# mv loganalyzer-3.0.1/contrib/configure.sh /var/www/phplogcon | |||
# mv loganalyzer-3.0.1/contrib/secure.sh /var/www/phplogcon | |||
# cd /var/www/loganalyzer | |||
# chmod +x configure.sh secure.sh | |||
# ./configure.sh | |||
</pre> | |||
Inoltre dobbiamo configurare un nuovo database MySQL. Apriamo quindi l'interfaccia phpMyAdmin che abbiamo installato seguendo la guida apposita, facciamo login con le credenziali configurate e creiamo un nuovo database, chiamandolo <code>loganalyzer</code>.<br/> | |||
Infine colleghiamoci alla pagina <code>http://127.0.0.1/loganalyzer</code> e completiamo il processo di installazione e configurazione di loganalyzer. Quando arriviamo alla pagina di configurazione del supporto database inseriamo il nome del database che abbiamo appena creato (<code>loganalyzer</code> e il nome utente e la password del nostro utente MySQL).<br/> | |||
Ora apriamo con un editor il file <code>'''/etc/logrotate.conf'''</code> e cerchiamo la voce <code>create</code>, modificandola in: | |||
<pre> | |||
create 640 root adm | |||
</pre> | |||
Modifichiamo infine anche il file <code>'''/etc/logrotate.d/syslog-ng'''</code>, cercando la sezione relativa a syslog e modificandola come segue: | |||
<pre> | |||
/var/log/syslog { | |||
rotate 7 | |||
daily | |||
compress | |||
create 640 root adm | |||
postrotate | |||
/etc/init.d/syslog-ng reload >/dev/null | |||
endscript | |||
} | |||
</pre> | |||
In questo modo la prossima volta che logrotate verrà eseguito i log diventeranno leggibili di default anche per il nostro webserver. Per visualizzarli basterà collegarsi alla pagina <code>http://127.0.0.1/loganalyzer</code>. | |||
LogAnalyzer permette di configurare più sorgenti log, nel caso volessimo tener monitorati, oltre al file syslog, anche altri file di log. Per aggiungere sorgenti log è sufficiente aprire il file di configurazione: | |||
<pre> | |||
# nano /var/www/loganalyzer/config.php | |||
</pre> | |||
e spostarci alla fine del file. Lì troveremo configurata la prima sorgente log (Syslog) ma potremo aggiungerne altre. Ad esempio possiamo controllare gli accessi al nostro server creando la seguente sorgente: | |||
<pre> | <pre> | ||
$CFG['DefaultSourceID'] = 'Source2'; | |||
$CFG['Sources']['Source2']['ID'] = 'Source2'; | |||
$CFG['Sources']['Source2']['Name'] = 'Auth Log Server'; | |||
$CFG['Sources']['Source2']['ViewID'] = 'AUTHLOG'; | |||
$CFG['Sources']['Source2']['SourceType'] = SOURCE_DISK; | |||
$CFG['Sources']['Source2']['LogLineType'] = 'auth.log'; | |||
$CFG['Sources']['Source2']['DiskFile'] = '/var/log/auth.log'; | |||
</pre> | </pre> | ||
Non c'è limite alle sorgenti log che possono essere configurate. | |||
===Configurazione di logrotate | == Installazione di Splunk == | ||
L'utility '''logrotate''' è pensata per semplificare l'amministrazione dei | Un'interfaccia alternativa molto potente è Splunk (http://www.splunk.com/).<br> | ||
Per scaricare il pacchetto '''.deb''' che viene messo a disposizione (uno per architetture x86 e uno per architetture amd64) occorre effettuare la registrazione gratuita sul sito. Splunk '''non è opensource''', ma è disponibile una versione Free, la cui limitazione è che può processare solo 500 MB di Log al giorno. Durante la configurazione di Splunk sarà possibile scegliere se utilizzare una versione Enterprise di prova o se utilizzare la versione Free.<br> | |||
Per installare Splunk, dopo aver scaricato il pacchetto .deb per la nostra architettura spostiamoci nella directory di download e diamo i comandi: | |||
<pre> | |||
# apt-get update | |||
# apt-get install libstdc++6 | |||
# dpkg -i splunk_package_name.deb | |||
</pre> | |||
dove <code>package_name</code> corrisponde al numero di versione del pacchetto scaricato.<br> | |||
Per avviare Splunk per la prima volta diamo il comando: | |||
<pre> | |||
# /opt/splunk/bin/splunk start --accept-license | |||
</pre> | |||
(potete trovare il testo della licenza qui: <code>/opt/splunk/license-eula.txt</code>).<br> | |||
Una volta terminata l'installazione dirigiamoci all'interfaccia web di Splunk: | |||
<pre> | |||
http://indirizzo.ip.del.server:8000 | |||
</pre> | |||
e facciamo login con le credenziali: | |||
* user: '''admin''' | |||
* password: '''changeme''' | |||
[http://www.splunk.com/support Qui] trovate tutta la documentazione per utilizzare al meglio questo potente software per l'analisi dei log. | |||
== Configurazione di logrotate == | |||
L'utility '''logrotate''' è pensata per semplificare l'amministrazione dei file di log. Logrotate permette la rotazione automatica, la compressione, l'eliminazione e l'invio per mail dei file di log; può inoltre essere impostato per l'esecuzione giornaliera, settimanale, mensile o quando i log raggiungono una certa dimensione predefinita.<br/> | |||
Per installare logrotate su Debian: | Per installare logrotate su Debian: | ||
<pre> | <pre> | ||
# apt-get install logrotate | # apt-get install logrotate | ||
</pre> | </pre> | ||
A titolo di esempio possiamo osservare la directory del web server Apache2 su un sistema in cui logrotate è in funzione, < | === <code>/etc/logrotate.conf</code> === | ||
Attraverso il file di configurazione di logrotate è possibile definire il comportamento dell'applicazione in due contesti: a livello globale (nella prima parte del file) e a livello locale dove le regole ridefinite prevalgono su quelle globali. Per ogni file di cui si vuole effettuare la rotazione è necessario indicarne il percorso, al quale seguono tra parentesi graffe le direttive di gestione. | |||
<br> | |||
Tra le direttive più utili: | |||
* '''Criteri di rotazione''' | |||
** <code>daily</code>: rotazione su base giornaliera; | |||
** <code>weekly</code>: rotazione su base settimanale; | |||
** <code>monthly</code>: rotazione su base mensile; | |||
** <code>size <dimensione></code>: rotazione in base alla dimensione; | |||
** <code>notifempty</code>: non esegue la rotazione se il file è vuoto; | |||
** <code>rotate nn</code>: conserva i file di log per <code>nn</code> rotazioni; | |||
* '''Compressione''' | |||
** <code>compress</code>: una volta archiviato il file di log, viene compresso tramite gzip; | |||
** <code>compresscmd</code>: indica il programma da utilizzare al posto di gzip; | |||
* '''Gestione File''' | |||
** <code>create <mode> <owner> <group></code>: immediatamente dopo la rotazione viene creato un nuovo file con il nome identico al precedente. È possibile specificare, modalità di accesso, proprietario e gruppo; | |||
** <code>copy</code>: crea una copia del file di log e non modifica l'originale che non viene mai rimosso; | |||
** <code>copytruncate</code>: utilizzata nel caso in cui non sia possibile chiudere il file di log. Viene archiviata parte del file di log mentre ne viene eseguita una copia; | |||
** <code>olddir <directory></code>: i file di log vengono spostati nella directory indicata prima di eseguire la rotazione; | |||
* '''Configurazione''' | |||
** <code>include <file o directory></code>: legge il file oppure tutti i file della directory indicata ed applica le direttive incontrate all'interno di essi. È possibile trovare include <code>/etc/logrotate.d</code> in quanto alcuni pacchetti installano le proprie istruzioni in questa directory; | |||
* '''Operazioni Pre-log e Post-log''' | |||
** <code>postrotate endscript</code>: tramite questo blocco di direttive è possibile eseguire delle operazioni in seguito alla rotazione; | |||
** <code>prerotate endscript</code>: tramite questo blocco di direttive è possibile eseguire delle operazioni prima che avvenga la rotazione e solo se questa avrà luogo. | |||
A titolo di esempio possiamo osservare la directory del web server Apache2 su un sistema in cui logrotate è in funzione, <code>/var/log/apache2</code> | |||
<pre> | <pre> | ||
root@test:~# ls -1 /var/log/apache2/ | root@test:~# ls -1 /var/log/apache2/ | ||
Riga 82: | Riga 228: | ||
error.log.5.gz | error.log.5.gz | ||
</pre> | </pre> | ||
Si possono notare i | Si possono notare i file di log attualmente in uso (<code>'''access.log'''</code> e <code>'''error.log'''</code>), i file di log del giorno precedente (<code>'''access.log.1'''</code> e <code>'''error.log.1'''</code>) e i file dei giorni ancora precedenti, che di default vengono compressi e conservati per cinque settimane. | ||
Logrotate può essere schedulato utilizzando | Logrotate può essere schedulato utilizzando [[cron]]. La directory <code>'''/etc/cron.daily'''</code> contiene infatti gli script che vengono eseguiti automaticamente ogni giorno dal sistema. Qui si può trovare lo script di logrotate. Ogni giorno questo script, al momento dell'esecuzione, esamina due cose: | ||
# il file di configurazione < | # il file di configurazione <code>/etc/logrotate.conf</code> | ||
# la directory di configurazione < | # la directory di configurazione <code>/etc/logrotate.d</code> | ||
Questa directory contiene i | Questa directory contiene i file di configurazione per i servizi installati sul server. Per esempio sul server esaminato in precedenza troveremo il file <code>/etc/logrotate.d/apache2</code>.<br/> | ||
Un tipico file di configurazione di logrotate è simile a questo: | Un tipico file di configurazione di logrotate è simile a questo: | ||
<pre> | <pre> | ||
Riga 106: | Riga 252: | ||
</pre> | </pre> | ||
Analizziamolo nel dettaglio: | Analizziamolo nel dettaglio: | ||
# < | # <code>/var/log/apache2/*.log</code>: indica i file che vengono interessati dal processo; | ||
# < | # <code>weekly</code>: i file sono ruotati ogni settimana. Alternativa: <code>daily</code>; | ||
# < | # <code>rotate nn</code>: saranno conservati non più di <code>nn</code> file; | ||
# < | # <code>compress</code>: i file saranno compressi con gzip. Alternativa: <code>nocompress</code>; | ||
# < | # <code>delaycompress</code>: non comprime i log del giorno prima; | ||
# < | # <code>notifempty</code>: non esegue la rotazione se il file è vuoto. Alternativa: <code>ifempty</code>; | ||
# < | # <code>create xx user group</code>: imposta proprietario, gruppo e permessi per i nuovi file creati; | ||
# < | # <code>sharedscripts</code>: esegue ogni script di prerotate o postrotate su ogni file. Alternativa: <code>nosharedscripts</code>; | ||
# < | # <code>postrotate + endscript</code>: ogni cosa tra queste due voci viene eseguita dopo il processo di rotazione. Alternativa: <code>prerotate</code>. | ||
Se avete necessità di conservare per più tempo i log ruotati potete aumentare il valore dell'opzione < | Se avete necessità di conservare per più tempo i log ruotati potete aumentare il valore dell'opzione <code>rotate</code>, oppure crearvi uno script che vi faccia il backup dei vecchi log in un'altra directory (in questo modo non rischiate che la directory <code>/var/log/</code> cresca troppo in dimensione). | ||
== Programmi utili == | |||
Per gli amanti delle e-mail si segnala l'esistenza del pacchetto '''logwatch''', uno script in | Per gli amanti delle e-mail si segnala l'esistenza del pacchetto '''logwatch''', uno script in Perl che ogni giorno raccoglie gli eventi dei log e li invia all'utente root del sistema (o all'utente specificato in <code>/etc/aliases</code>). | ||
<pre> | <pre> | ||
# apt-get install logwatch | # apt-get install logwatch | ||
</pre> | |||
Se desiderate ricevere le email di logwatch anche su un indirizzo di posta elettronico esterno al sistema da monitorare, modificate il file <code>/etc/aliases</code> come segue: | |||
<pre> | |||
vostro_utente: vostro_utente indirizzo_esterno@pippo.com | |||
</pre> | |||
Non dimenticate, alla fine delle modifiche, di lanciare il comando: | |||
<pre> | |||
# newaliases | |||
</pre> | </pre> | ||
Se invece amate avere sott'occhio i log in un terminale, potreste trovare utile il pacchetto '''ccze''', che altro non è che un coloratore di log molto comodo. Per installarlo: | Se invece amate avere sott'occhio i log in un terminale, potreste trovare utile il pacchetto '''ccze''', che altro non è che un coloratore di log molto comodo. Per installarlo: | ||
Riga 131: | Riga 285: | ||
</pre> | </pre> | ||
== Configurazione dei client della rete == | |||
=== Client Linux === | |||
Per forwardare i log di una macchina | Per forwardare i log di una macchina Linux verso un server Syslog possono essere usati sia syslog sia syslog-ng. | ||
==== 1 - Syslog ==== | |||
Si apra il file '''/etc/syslogd.conf'''. La sintassi utilizzata in questo file è molto semplice: | Si apra il file <code>'''/etc/syslogd.conf'''</code>. La sintassi utilizzata in questo file è molto semplice: | ||
<pre> | <pre> | ||
facility.level destination | facility.level destination | ||
Riga 141: | Riga 295: | ||
Ad esempio: | Ad esempio: | ||
<pre> | <pre> | ||
*.* 10.58.1.1 # Tutti i log sono forwardati al server syslog 10.58.1.1 | *.* @10.58.1.1 # Tutti i log sono forwardati al server syslog 10.58.1.1 | ||
kern.alert 10.2.5.8 # Gli alert del kernel sono forwardati a 10.2.5.8 | kern.alert @10.2.5.8 # Gli alert del kernel sono forwardati a 10.2.5.8 | ||
</pre> | </pre> | ||
Ricordarsi di riavviare il demone | Ricordarsi di riavviare il demone affinché prenda in considerazione le modifiche: | ||
<pre> | <pre> | ||
# etc/init.d/sysklogd restart | # etc/init.d/sysklogd restart | ||
</pre> | </pre> | ||
==== 2 - Syslog-NG ==== | |||
La configurazione di un client syslog-ng è leggermente più complicata, ma offre più opzioni di personalizzazione.<br/> | La configurazione di un client syslog-ng è leggermente più complicata, ma offre più opzioni di personalizzazione.<br/> | ||
Iniziamo con installare il demone sul client: | Iniziamo con installare il demone sul client: | ||
Riga 154: | Riga 309: | ||
# apt-get install syslog-ng | # apt-get install syslog-ng | ||
</pre> | </pre> | ||
Il file di configurazione del demone è '''/etc/syslog-ng/syslog-ng.conf'''. La sua sintassi è abbastanza semplice: | Il file di configurazione del demone è <code>'''/etc/syslog-ng/syslog-ng.conf'''</code>. La sua sintassi è abbastanza semplice: | ||
<pre> | <pre> | ||
log | log | ||
Riga 162: | Riga 317: | ||
destination(destination_name); | destination(destination_name); | ||
}; | }; | ||
</pre> | </pre> | ||
Vediamo alcuni esempi. | Vediamo alcuni esempi. | ||
* Tutti i log sono inviati a un server syslog all'indirizzo 10.13.44.44: | |||
<pre> | <pre> | ||
source s_all { | source s_all { | ||
Riga 181: | Riga 336: | ||
}; | }; | ||
</pre> | </pre> | ||
* Viene utilizzato un filtro per inviare al syslog server solo i messaggi di livello '''alert''' e '''error''' generati da '''kernel facility'''. Come si può notare, per l'invio dei log viene utilizzato questa volta il protocollo TCP: | |||
<pre> | <pre> | ||
source s_all { | source s_all { | ||
Riga 190: | Riga 345: | ||
}; | }; | ||
filter filter1 { level(notice, alert, | filter filter1 { level(notice, alert, error) and facility(kern); }; | ||
destination d1 { tcp("10.15.61.1" port (54321)); }; | destination d1 { tcp("10.15.61.1" port (54321)); }; | ||
Riga 201: | Riga 356: | ||
}; | }; | ||
</pre> | </pre> | ||
Affinché tutto funzioni non dobbiamo dimenticarci di istruire il server syslog affinché si ponga in ascolto anche sulla porta TCP specificata.<br/> | |||
Modifichiamo perciò il file di configurazione del server, <code>'''/etc/syslog-ng/syslog-ng.conf'''</code>: | |||
<pre> | <pre> | ||
source s_all { | source s_all { | ||
Riga 211: | Riga 367: | ||
}; | }; | ||
</pre> | </pre> | ||
=== Client Windows === | |||
L'incapacità di Windows di mantenere e gestire i log in maniera semplice e unificata è notoria. Di default i log si sfogliano dall'interno del '''Visualizzatore Eventi''' (Pannello di Controllo - Strumenti di Amministrazione - Visualizzatore Eventi).<br/> | L'incapacità di Windows di mantenere e gestire i log in maniera semplice e unificata è notoria. Di default i log si sfogliano dall'interno del '''Visualizzatore Eventi''' (Pannello di Controllo - Strumenti di Amministrazione - Visualizzatore Eventi).<br/> | ||
Sfortunatamente ci sono due inconvenienti: | Sfortunatamente ci sono due inconvenienti: | ||
Riga 217: | Riga 373: | ||
# non esiste un tool di sistema per inviare i log a un server centralizzato | # non esiste un tool di sistema per inviare i log a un server centralizzato | ||
Per nostra fortuna il mondo open-source ha sviluppato diversi tool che, installati come servizi sulle macchine Windows da monitorare, si occupano di tradurre i log in un formato standard e di inviarli a un server centralizzato.<br/> | Per nostra fortuna il mondo open-source ha sviluppato diversi tool che, installati come servizi sulle macchine Windows da monitorare, si occupano di tradurre i log in un formato standard e di inviarli a un server centralizzato.<br/> | ||
I due tool che consiglio per la loro efficienza e per la loro facilità di configurazione sono: | |||
# Snare Agent, scaricabile da http://www.intersectalliance.com/projects/SnareWindows/index.html | # Snare Agent, scaricabile da http://www.intersectalliance.com/projects/SnareWindows/index.html | ||
# NTSyslog, scaricabile da http://ntsyslog.sourceforge.net/ | # NTSyslog, scaricabile da http://ntsyslog.sourceforge.net/ | ||
Entrambi i tool sono facilmente configurabili. | Entrambi i tool sono facilmente configurabili.<br/> | ||
Consiglio anche di aumentare la dimensione massima dei | Consiglio anche di aumentare la dimensione massima dei file di log di Windows, di default troppo bassa, e di agire su '''Criteri di Protezione Locali''' per abilitare un criterio di auditing un po' più efficace di quello attivo nella configurazione di default. | ||
{{Autori | |||
|Autore = [[Utente:Ferdybassi|Ferdybassi]] | |||
}} |
contributi