Old:Configurare un server Syslog su Debian: differenze tra le versioni

m
spaziatura/box iniziale
m (ha spostato Configurare un server Syslog su Debian Etch a Configurare un server Syslog su Debian: La guida funziona anche con Lenny e Squeeze e il titolo era fuorviante.)
m (spaziatura/box iniziale)
 
(30 versioni intermedie di 6 utenti non mostrate)
Riga 1: Riga 1:
{{Versioni compatibili|Debian Etch 4.0<br/>Debian Lenny 5.0<br/>Debian Squeeze<br/>Debian Sid|}}
{{Old|Se si sta utilizzando Debian 6 (Squeeze) vedere la guida: [[Configurare un server Syslog su Debian Squeeze]]}}
__TOC__
== Introduzione ==
== 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/>
Riga 42: Riga 43:


== Installazione di phpLogCon ==
== 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/>
Riga 52: 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 logadmin
# groupadd adm
# usermod -a -G logadmin www-data
# usermod -a -G adm www-data
</pre>
</pre>
Verifichiamo quindi la buona riuscita dei comandi:
Verifichiamo quindi la buona riuscita dei comandi:
Riga 74: Riga 76:
Ora apriamo con un editor il file <code>'''/etc/logrotate.conf'''</code> e cerchiamo la voce <code>create</code>, modificandola in:
Ora apriamo con un editor il file <code>'''/etc/logrotate.conf'''</code> e cerchiamo la voce <code>create</code>, modificandola in:
<pre>
<pre>
create 640 root logadmin
create 640 root adm
</pre>
</pre>
Modifichiamo infine anche il file <code>'''/etc/logrotate.d/syslog-ng'''</code>, cercando la sezione relativa a syslog e modificandola come segue:
Modifichiamo infine anche il file <code>'''/etc/logrotate.d/syslog-ng'''</code>, cercando la sezione relativa a syslog e modificandola come segue:
Riga 82: Riga 84:
   daily
   daily
   compress
   compress
   create 640 root logadmin
   create 640 root adm
   postrotate
   postrotate
       /etc/init.d/syslog-ng reload >/dev/null
       /etc/init.d/syslog-ng reload >/dev/null
Riga 88: Riga 90:
}
}
</pre>
</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>.
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>
$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>
Non c'è limite alle sorgenti log che possono essere configurate.
 
== Installazione di Splunk ==
== Installazione di Splunk ==
Un'interfaccia alternativa molto potente è Splunk (http://www.splunk.com/).<br>
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 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:
Per installare Splunk, dopo aver scaricato il pacchetto .deb per la nostra architettura spostiamoci nella directory di download e diamo i comandi:
<pre>
<pre>
apt-get update
# apt-get update
apt-get install libstdc++6
# apt-get install libstdc++6
dpkg -i splunk_package_name.deb
# dpkg -i splunk_package_name.deb
</pre>
</pre>
dove <code>package_name</code> corrisponde al numero di versione del pacchetto scaricato.<br>
dove <code>package_name</code> corrisponde al numero di versione del pacchetto scaricato.<br>
Per avviare Splunk per la prima volta diamo il comando:
Per avviare Splunk per la prima volta diamo il comando:
<pre>
<pre>
/opt/splunk/bin/splunk start --accept-license
# /opt/splunk/bin/splunk start --accept-license
</pre>
</pre>
(potete trovare il testo della licenza qui: <code>/opt/splunk/license-eula.txt</code>).<br>
(potete trovare il testo della licenza qui: <code>/opt/splunk/license-eula.txt</code>).<br>
Riga 160: Riga 229:
</pre>
</pre>
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.
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 <code><cron></code>. 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:
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 <code>/etc/logrotate.conf</code>  
# il file di configurazione <code>/etc/logrotate.conf</code>  
# la directory di configurazione <code>/etc/logrotate.d</code>
# la directory di configurazione <code>/etc/logrotate.d</code>
Riga 184: Riga 253:
Analizziamolo nel dettaglio:
Analizziamolo nel dettaglio:
# <code>/var/log/apache2/*.log</code>: indica i file che vengono interessati dal processo;
# <code>/var/log/apache2/*.log</code>: indica i file che vengono interessati dal processo;
# <code>weekly</code>: i file sono rotati ogni settimana. Alternativa: <code>daily</code>;
# <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>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>compress</code>: i file saranno compressi con gzip. Alternativa: <code>nocompress</code>;
# <code>delaycompress</code>: non comprime i log del giorno prima;
# <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>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 filescreati;
# <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>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>.
# <code>postrotate + endscript</code>: ogni cosa tra queste due voci viene eseguita dopo il processo di rotazione. Alternativa: <code>prerotate</code>.
Riga 195: Riga 264:


== Programmi utili ==
== Programmi utili ==
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>).
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
Riga 205: Riga 274:
Non dimenticate, alla fine delle modifiche, di lanciare il comando:
Non dimenticate, alla fine delle modifiche, di lanciare il comando:
<pre>
<pre>
newaliases
# 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 248: 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:
* Tutti i log sono inviati a un server syslog all'indirizzo 10.13.44.44:
<pre>
<pre>
source s_all {
source s_all {
Riga 267: 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:
* 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 287: 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. Modifichiamo perciò il file di configurazione del server, <code>'''/etc/syslog-ng/syslog-ng.conf'''</code>:
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 306: Riga 376:
# 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 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.
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.
<br/><br/>
 
: [[Utente:Ferdybassi|Ferdybassi]]
{{Autori
----
|Autore = [[Utente:Ferdybassi|Ferdybassi]]
[[Categoria:Networking]]
}}
[[Categoria:Sicurezza]]
[[Categoria:Server]]
3 581

contributi