1 508
contributi
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> | 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 | 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''' | ||
[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 | 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>: | ** <tt>daily</tt>: rotazione su base giornaliera; | ||
** <tt>weekly</tt>: | ** <tt>weekly</tt>: rotazione su base settimanale; | ||
** <tt>monthly</tt>: | ** <tt>monthly</tt>: rotazione su base mensile; | ||
** <tt>size <dimensione></tt>: | ** <tt>size <dimensione></tt>: rotazione in base alla dimensione; | ||
** <tt>notifempty</tt>: | ** <tt>notifempty</tt>: non esegue la rotazione se il file è vuoto; | ||
** <tt>rotate nn</tt>: conserva i | ** <tt>rotate nn</tt>: conserva i file di log per <tt>nn</tt> rotazioni; | ||
* '''Compressione''' | * '''Compressione''' | ||
** <tt>compress</tt>: | ** <tt>compress</tt>: una volta archiviato il file di log, viene compresso tramite gzip; | ||
** <tt>compresscmd</tt>: | ** <tt>compresscmd</tt>: indica il programma da utilizzare al posto di gzip; | ||
* '''Gestione File''' | * '''Gestione File''' | ||
** <tt>create <mode> <owner> <group></tt>: | ** <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>: | ** <tt>copy</tt>: crea una copia del file di log e non modifica l'originale che non viene mai rimosso; | ||
** <tt>copytruncate</tt>: | ** <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>: | ** <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>: | ** <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>: | ** <tt>postrotate endscript</tt>: tramite questo blocco di direttive è possibile eseguire delle operazioni in seguito alla rotazione; | ||
** <tt>prerotate endscript</tt>: | ** <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 | 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 | 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 | # <tt>/var/log/apache2/*.log</tt>: indica i file che vengono interessati dal processo; | ||
# <tt>weekly</tt>: i | # <tt>weekly</tt>: i file sono rotati ogni settimana. Alternativa: daily; | ||
# <tt>rotate nn</tt>: saranno conservati non più di nn | # <tt>rotate nn</tt>: saranno conservati non più di nn file; | ||
# <tt>compress</tt>: i | # <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 | # <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: | |||
# 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 | 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]] |
contributi