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

nessun oggetto della modifica
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 14: Riga 14:
# apt-get install syslog-ng
# apt-get install syslog-ng
</pre>
</pre>
L'installazione rimuoverà automaticamente il demone <tt>syslog</tt> instalalto di default.
L'installazione rimuoverà automaticamente il demone <tt>syslog</tt> installato di default.


=Configurazione del server Syslog=
=Configurazione del server Syslog=
Il file di configurazione di syslog-ng è '''/etc/syslog-ng/syslog-ng.conf'''. Occorre aprirlo con un editor, decommentare la linea:
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();
Riga 62: Riga 62:
groups www-data
groups www-data
</pre>
</pre>
Ora copiamo i due files <tt>configure.sh</tt> e <tt>secure.sh</tt> dalla directory <tt>contrib</tt> all'interno del nostro server Apache, rendiamoli eseguibili e lanciamo gli script:
Ora copiamo i due file <tt>configure.sh</tt> e <tt>secure.sh</tt> dalla directory <tt>contrib</tt> all'interno del nostro server Apache, rendiamoli eseguibili e lanciamo gli script:
<pre>
<pre>
# cd
# cd
Riga 72: Riga 72:
</pre>
</pre>
Infine colleghiamoci alla pagina <tt>http://127.0.0.1/phplogcon</tt> e completiamo il processo di installazione e configurazione di phplogcon.<br/>
Infine colleghiamoci alla pagina <tt>http://127.0.0.1/phplogcon</tt> 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 <tt>create</tt>, modificandola in:
Ora apriamo con un editor il file <code>'''/etc/logrotate.conf'''</code> e cerchiamo la voce <tt>create</tt>, modificandola in:
<pre>
<pre>
create 640 root logadmin
create 640 root logadmin
</pre>
</pre>
Modifichiamo infine anche il file '''/etc/logrotate.d/syslog-ng''', 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:
<pre>
<pre>
/var/log/syslog {
/var/log/syslog {
Riga 111: Riga 111:
* user: '''admin'''
* user: '''admin'''
* password: '''changeme'''
* password: '''changeme'''
Qui (http://www.splunk.com/support) trovate tutta la documentazione per utilizzare al meglio questo potente software per l'analisi dei log.
[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=
=Configurazione di logrotate=
L'utility '''logrotate''' è pensata per semplificare l'amministrazione dei files di log. Logrotate permette la rotazione automatica, la compressione, l'eliminazione e l'invio per mail dei files di log; può inoltre essere impostato per l'esecuzione giornaliera, settimanale, mensile o quando i logs raggiungono una certa dimensione predefinita.<br/>
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>
==/etc/logrotate.conf==
==<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.
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>
<br>
Tra le direttive più utili:
Tra le direttive più utili:
* '''Criteri di rotazione'''
* '''Criteri di rotazione'''
** <tt>daily</tt>: Rotazione su base giornaliera
** <tt>daily</tt>: rotazione su base giornaliera;
** <tt>weekly</tt>: Rotazione su base settimanale
** <tt>weekly</tt>: rotazione su base settimanale;
** <tt>monthly</tt>: Rotazione su base mensile
** <tt>monthly</tt>: rotazione su base mensile;
** <tt>size <dimensione></tt>: Rotazione in base alla dimensione
** <tt>size <dimensione></tt>: rotazione in base alla dimensione;
** <tt>notifempty</tt>: Non esegue la rotazione se il file è vuoto
** <tt>notifempty</tt>: non esegue la rotazione se il file è vuoto;
** <tt>rotate nn</tt>: conserva i files di log per <tt>nn</tt> rotazioni
** <tt>rotate nn</tt>: conserva i file di log per <tt>nn</tt> rotazioni;
* '''Compressione'''
* '''Compressione'''
** <tt>compress</tt>: Una volta archiviato il file di log, viene compresso tramite gzip;
** <tt>compress</tt>: una volta archiviato il file di log, viene compresso tramite gzip;
** <tt>compresscmd</tt>: Indica il programma da utilizzare al posto di gzip;
** <tt>compresscmd</tt>: indica il programma da utilizzare al posto di gzip;
* '''Gestione File'''
* '''Gestione File'''
** <tt>create  <mode> <owner> <group></tt>: Immediatamente dopo la rotazione viene creato un nuovo file con il nome identico al precedente. E' possibile specificare, modalità di accesso, proprietario e gruppo;
** <tt>create  <mode> <owner> <group></tt>: immediatamente dopo la rotazione viene creato un nuovo file con il nome identico al precedente. È possibile specificare, modalità di accesso, proprietario e gruppo;
** <tt>copy</tt>: Crea una copia del file di log e non modifica l'originale che non viene mai rimosso;
** <tt>copy</tt>: crea una copia del file di log e non modifica l'originale che non viene mai rimosso;
** <tt>copytruncate</tt>: 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;
** <tt>copytruncate</tt>: 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;
** <tt>olddir <directory></tt>: I file di log vengono spostati nella directory indicata prima di eseguire la rotazione;
** <tt>olddir <directory></tt>: i file di log vengono spostati nella directory indicata prima di eseguire la rotazione;
* '''Configurazione'''
* '''Configurazione'''
** <tt>include <file o directory></tt>: Legge il file oppure tutti i file della directory indicata ed applica le direttive incontrate all'interno di essi. E' possibile trovare include /etc/logrotate.d in quanto alcuni packages installano le proprie istruzioni in questa directory;
** <tt>include <file o directory></tt>: 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'''
* '''Operazioni Pre-log e Post-log'''
** <tt>postrotate endscript</tt>: Tramite questo blocco di direttive è possibile eseguire delle operazioni in seguito alla rotazione;   
** <tt>postrotate endscript</tt>: tramite questo blocco di direttive è possibile eseguire delle operazioni in seguito alla rotazione;   
** <tt>prerotate endscript</tt>: Tramite questo blocco di direttive è possibile eseguire delle operazioni prima che avvenga la rotazione e solo se questa avrà luogo;
** <tt>prerotate endscript</tt>: 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, <tt>/var/log/apache2</tt>
A titolo di esempio possiamo osservare la directory del web server Apache2 su un sistema in cui logrotate è in funzione, <tt>/var/log/apache2</tt>
<pre>
<pre>
Riga 159: Riga 159:
error.log.5.gz
error.log.5.gz
</pre>
</pre>
Si possono notare i files di log attualmente in uso ('''access.log''' e '''error.log'''), i files di log del giorno precedente ('''access.log.1''' e '''error.log.1''') e i files 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 <cron>. La directory '''/etc/cron.daily''' 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 <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:
# il file di configurazione <tt>/etc/logrotate.conf</tt>  
# il file di configurazione <tt>/etc/logrotate.conf</tt>  
# la directory di configurazione <tt>/etc/logrotate.d</tt>
# la directory di configurazione <tt>/etc/logrotate.d</tt>
Questa directory contiene i files di configurzione per i servizi installati sul server. Per esempio sul server esaminato in precedenza troveremo il file <tt>/etc/logrotate.d/apache2</tt>.<br/>
Questa directory contiene i file di configurzione per i servizi installati sul server. Per esempio sul server esaminato in precedenza troveremo il file <tt>/etc/logrotate.d/apache2</tt>.<br/>
Un tipico file di configurazione di logrotate è simile a questo:
Un tipico file di configurazione di logrotate è simile a questo:
<pre>
<pre>
Riga 183: Riga 183:
</pre>
</pre>
Analizziamolo nel dettaglio:
Analizziamolo nel dettaglio:
# <tt>/var/log/apache2/*.log</tt> indica i files che vengono interessati dal processo.
# <tt>/var/log/apache2/*.log</tt>: indica i file che vengono interessati dal processo;
# <tt>weekly</tt>: i files sono rotati ogni settimana. Alternativa: daily
# <tt>weekly</tt>: i file sono rotati ogni settimana. Alternativa: daily;
# <tt>rotate nn</tt>: saranno conservati non più di nn files
# <tt>rotate nn</tt>: saranno conservati non più di nn file;
# <tt>compress</tt>: i files saranno compressi con gzip. Alternativa: nocompress
# <tt>compress</tt>: i file saranno compressi con gzip. Alternativa: nocompress;
# <tt>delaycompress</tt>: non comprime i log del giorno prima.
# <tt>delaycompress</tt>: non comprime i log del giorno prima;
# <tt>notifempty</tt>: non esegue la rotazione se il file è vuoto. Alternativa: ifempty
# <tt>notifempty</tt>: non esegue la rotazione se il file è vuoto. Alternativa: ifempty;
# <tt>create xx user group</tt>: imposta proprietario, gruppo e permessi per i nuovi files creati
# <tt>create xx user group</tt>: imposta proprietario, gruppo e permessi per i nuovi filescreati;
# <tt>sharedscripts</tt> esegue ogni script di prerotate o postrotate su ogni file. Alternativa: nosharedscripts
# <tt>sharedscripts</tt>: esegue ogni script di prerotate o postrotate su ogni file. Alternativa: nosharedscripts;
# <tt>postrotate + endscript</tt>: ogni cosa tra queste due voci viene eseguita dopo il processo di rotazione. Alternativa: prerotate
# <tt>postrotate + endscript</tt>: ogni cosa tra queste due voci viene eseguita dopo il processo di rotazione. Alternativa: prerotate.
Se avete necessità di conservare per più tempo i log ruotati potete aumentare il valore dell'opzione <tt>rotate</tt>, oppure crearvi uno script che vi faccia il backup dei vecchi log in un'altra directory (in questo modo non rischiate che la directory <tt>/var/log/</tt> cresca troppo in dimensione.
Se avete necessità di conservare per più tempo i log ruotati potete aumentare il valore dell'opzione <tt>rotate</tt>, oppure crearvi uno script che vi faccia il backup dei vecchi log in un'altra directory (in questo modo non rischiate che la directory <tt>/var/log/</tt> cresca troppo in dimensione).


=Programmi utili=
=Programmi utili=
Riga 220: Riga 220:
Per forwardare i log di una macchina linux verso un server Syslog possono essere usati sia syslog sia syslog-ng.
Per forwardare i log di una macchina linux verso un server Syslog possono essere usati sia syslog sia syslog-ng.
===1 - Syslog===
===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 240: Riga 240:
# 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 287: Riga 287:
};  
};  
</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, '''/etc/syslog-ng/syslog-ng.conf''':
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>:
<pre>
<pre>
source s_all {
source s_all {
Riga 303: Riga 303:
# 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:
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.
Consiglio anche di aumentare la dimensione massima dei files 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/>
<br/><br/>
: [[Utente:Ferdybassi|Ferdybassi]]
: [[Utente:Ferdybassi|Ferdybassi]]
1 508

contributi