# Syslog-ng... uh?

## Naspe

Ciao a tutti. Sono dinuovo a tediarvi.

La questione di oggi è: syslog-ng: chi è? che fa? come funzia?

Allora io ho installato syslog-ng come detto nella guida d iinstallazione. Non so assolutamente cosa sia sto coso. Da quello che ho capito dal man e da google e un demone che tiene il log dei messaggi del PC. Bene. La domanda è: ma sta gia funzioando da solo? O deve essere configurato? Se si qualcuno puo indicarmi una guida "comprensibile" per fare ciò? Non ditemi man syslog-ng plz che lo ho gia guardato ma nn ci o capito una sega (scusate il francesismo  :Smile:  ).

Se volete invece della guida potete dirmi direttamente come fare  :Smile: 

P.S.: io ho gia cercato su google ma tutto cio che ho trovato è stata una serie di regole incomprensibili da settare ma nessuno che dicesse come fare o riportasse esempi pratici dai quali evincere un minimo di criterio...

----------

## randomaze

 *Naspe wrote:*   

> 
> 
> P.S.: io ho gia cercato su google ma tutto cio che ho trovato è stata una serie di regole incomprensibili da settare ma nessuno che dicesse come fare o riportasse esempi pratici dai quali evincere un minimo di criterio...

 

Ti faccio un esempio al volo (lo sto prendendo da una SUN, ergo non é detto che tutto torni esattamente... ma la logica é la stessa. Per i dettagli ritorna alla man syslog.conf  :Wink: )

Il file di cui parliamo é il: /etc/syslog.conf

Esempio 1:

```

*.err;kern.debug;daemon.notice;mail.crit        /var/adm/messages

```

La riga dice di inviare *tutti* i messaggi di tipo "*.err", "kernel.debug", "daemon.notice", "mail.crit" nel file /var/adm/message.

Dato che il kernel manda vari tipi di messaggi, supponiamo kern.debug, kern.error, .., di quelli stamperà solo i messaggi di errore (*.err) e i messaggi di debug (kern.debug).

Esempio 2:

```

*.*        /dev/tty12

```

Stampa qualsiasi messaggio, di qualsiasi provenienza (kern, mail, ..) e di qualsiasi tipo (err, debug, crit) sul /dev/tty12.

----------

## Naspe

humm... grazie mille. Ho gia capito qualcosina in piu... (credo) vediamo:

Se non ho capito male, syslog-ng intercetta i vari messaggi di sistema e li piazza dove gli dico io giusto?

Ora devo vedere nel manuale quali sono i tipi di messaggi che fanno al caso mio e piazzarli nel file di configurazione.

P.S.: che è /dev/tty....?

----------

## shev

Ti consiglio di dare una lettura agli "Appunti di Informatica Libera" di Giacomini, visto che mi pare tu abbia diverse lacune di base circa il mondo *nix, potrebbero farti veramente comodo. Trattano in modo chiaro moltissimi argomenti, da quelli più basilari a quelli più avanzati. Una lettura interessante e sicuramente utilissima, sia all'utente inesperto che a quello più smaliziato. Ovviamente vista la mole (si parla di svariate centinaia di pagine) non sei obbligato a leggerli tutti di fila, essendo organizzati i "tomi" ti basta leggere quelli dedicati ai vari argomenti che ti interessano, pian piano ti fari una cultura completa  :Wink: 

----------

## Naspe

Ok seguiro il tuo consiglio Shev.

Sai, io spesso chiedo qui nel forum anzichè cercare in giro piu di tanto xchè ho un problema fondamentale: mi perdo nelle differenze tra le varie distro. E' per questo che magari preferisco chiedere a voi che usate gentoo. Ad esempio l'altra volta ho chiesto aiuto riguardo al mount automatico. Bene mi è stato segnalato un sito dove spiega come fare... solo che lo spiega per red hat... io negli emerge non ho trovato il pacchetto automount... quindi ora sinceramente nn so che fare...

Questo è uno dei problemi maggiori che riscontro nel ricercare le guide.

P.S.: sugli apunti di info si parla di syslog... è la stessa cosa?

----------

## shev

 *Naspe wrote:*   

> Sai, io spesso chiedo qui nel forum anzichè cercare in giro piu di tanto xchè ho un problema fondamentale: mi perdo nelle differenze tra le varie distro

 

Per questo imho è un bene leggere quanta più documentazione possibile. A forza di leggere e rileggere doc infatti si finisce con l'acquisire una certa padronanza e conoscenza di linux, capendo che differenze ci sono realmente tra le varie distro, che importanza dare a certe cose, il funzionamento di altre e così via. Si guadagna quella competenza e quell'elasticità che ci permettono di sbrigarcela in ogni situazione.

Certo, poi nessuno saprà mai tutto, quindi chiedere è lecito. Non proibisco a nessuno di chiedere, figuriamoci, anche se sono domande  che leggendo la documentazione avrebbero risposta immediata. Spesso segnalo l'esistenza di certi doc solo per ricordare questi concetti, oltre che per segnalare certe risorse che spesso non si conoscono, tutto qui.

 *Quote:*   

> P.S.: sugli apunti di info si parla di syslog... è la stessa cosa?

 

Syslogd e syslog-ng sono due differenti sistemi di logging, due alternative per fare più o meno la stessa cosa. Ti ho consigliato gli appunti non per risolvere nello specifico il tuo problema, ma per colmare le eventuali piccole lacune di base che ti impediscono di capire certe cose (tty, ...). Sono una risorsa preziosa per avere un'infarinatura generale sui vari argomenti. Poi ci sono le pagine di man, la documentazione specifica e noi del forum  :Wink:  per approfondire un argomento o risolvere problemi vari.

Era un consiglio, non un ordine o una risposta dettagliata alla tua domanda  :Wink: 

p.s.: se vuoi un buon esempio di file di config di syslog-ng da un'occhiata alla Security Guide che trovi tra la doc di Gentoo, nella sezione dedicata al logging.

----------

## leon_73

Ciao, per cio' che ho letto,  mi sa che sei appena arrivato nel mondo *NIX e quindi benvenuto  :Smile: 

Detta in breve, syslog (con tutte le sue varianti, e' un demone, ovvero un prg che funziona smepre) che serve a tenere traccio di cio' che avviene su di un sistema, attingendo da piu' fonti (messaggi del kernel, altri demoni, ecc.) per poi scrivere il tutto in uno (o piu') log organizzato.

syslog-ng e' una delle varie implementazioni che ci sono in giro di questa funzione, con qualche funzione in piu' rispetto allo "storico" syslog.

Prima di tutto, se capisci l'inglese, ti consiglio di fare un giro sul sito www.balabit.com ed a www.campin.net/syslog-ng/faq.html, leggendoti un po' (come la tradizione *NIX vuole un po' di documentazione/faq/man/mailing list)

La configurazione di questo demone si basa sul file /etc/syslog-ng/syslog-ng.conf che si conpone nelle seguenti parti:

1) Options: Qui vengono inseriti i paramametri generali

2) Source: qui puoi scrivere le varie sorgenti da cui attingere.

3) Destination: Qui vengono scritte le destinazioni (Ovvero i file che si vogliono scrivere)

3) Filter: Come suggerisce il nome qua si impostano i vari filtri (nel caso non si voglia tracciare proprio tutto, ma solo determinate "notizie"

4) Log: unisce tutti i punti precedenti.

Ogni punto ha poi una sua grammatica con varie opzioni (Fai rifeimento ai siti che ti ho indicato); tanto tutte le funzioni di questo programma non penso saranno mai documentate, essendo Balazs Scheidler (il creatore del  prg) molto attivo nella programmazione ma non nella documentazione  :Wink: 

per tua piccola utilita' ti scrivo una breve configurazione molto generica:

```
# $Header: /home/cvsroot/gentoo-x86/app-admin/syslog-ng/files/syslog-ng.conf.gentoo,v 1.3 2003/05/12 22:43:48 msterret Exp $

#

# Syslog-ng default configuration file for Gentoo Linux

# contributed by Michael Sterrett

options {

        long_hostnames(off);

        sync(0);

        # The default action of syslog-ng 1.6.0 is to log a STATS line

        # to the file every 10 minutes.  That's pretty ugly after a while.

        # Change it to every 12 hours so you get a nice daily update of

        # how many messages syslog-ng missed (0).

        stats(43200);

};

source src { unix-stream("/dev/log"); internal(); pipe("/proc/kmsg"); };

destination messages { file("/var/log/$YEAR$MONTH$DAY-messages"); };

# By default messages are logged to tty12...

#destination console_all { file("/dev/tty12"); };

# ...if you intend to use /dev/console for programs like xconsole

# you can comment out the destination line above that references /dev/tty12

# and uncomment the line below.

#destination console_all { file("/dev/console"); };

log { source(src); destination(messages); };

#log { source(src); destination(console_all); };

```

Ma questo e' solo l'inizio.

Leo

----------

## Naspe

Ok. Grazie mille a tutti.

Ho letto un po di cose che avete suggerito e sto cominciando a capire... 

Ora ho ancora 2 domande (per adesso  :Smile:  ):

1 - Con syslog-ng posso recuperare anche i log dei vari programmi o posso solo usare i loro log? Non so posso mettere qualche filtro del tipo filter apache { application(apache2); }; e recuperare le info di apache2? Sarebbe corretta la sintassi? 

2 - Dove posso recuperare una lista con relativa descrizione dei tipi di filtri? Intendo cosa sono le varie voci facility (auth, authpriv, daemon...) cioè tutte le fonti dei messaggi... 

Qualcosa ho trovato ma se c'è la lista nn c'è la descrizione e se c'è la descrizione c'è di solo alcune cose... magari voi avete trovato qualcosa di meglio...

----------

## leon_73

 *Naspe wrote:*   

> Ok. Grazie mille a tutti.

 

De nada *Naspe wrote:*   

> 
> 
> Ho letto un po di cose che avete suggerito e sto cominciando a capire... 

 Bravo... leggi, leggi, che se no ti scateno il grande Shev   :Twisted Evil:   :Twisted Evil:   :Twisted Evil: 

 *Naspe wrote:*   

> Ora ho ancora 2 domande (per adesso  ):
> 
> 1 - Con syslog-ng posso recuperare anche i log dei vari programmi o posso solo usare i loro log? Non so posso mettere qualche filtro del tipo filter apache { application(apache2); }; e recuperare le info di apache2? Sarebbe corretta la sintassi? 
> 
> 

 

Si, se mi ricordo bene, usando il tipo file... ma se mi ricordo c'erano alcune piccole controindicazioni... e' passato troppo tempo da quando mi ero messo a leggere i suoi man...  :Embarassed:  Se spulci tra la ML di SL-NG pero' sono sicuro che troverai un caso simile al tuo.

 *Naspe wrote:*   

> 2 - Dove posso recuperare una lista con relativa descrizione dei tipi di filtri? Intendo cosa sono le varie voci facility (auth, authpriv, daemon...) cioè tutte le fonti dei messaggi... 
> 
> Qualcosa ho trovato ma se c'è la lista nn c'è la descrizione e se c'è la descrizione c'è di solo alcune cose... magari voi avete trovato qualcosa di meglio...

 

I siti te li ho mandati... il matching mi sa che te lo devi fare da solo, se no e' troppo facile   :Wink: 

leo

----------

## bld

Io non vorrei incasinare il nostro caro amico togliondolo da una strada che sta gia percorrendo...

Ma a mio parere, usare syslog-ng per un desktop, e per le esigenze del nostro amichetto credo che sia un inutile complicazione (come quella del tipo "configurare sendmail come smtpd del vostro desktop"). Ricordo ancora lo schock che ho avuto quando ho visto il manuale di sendmail su una biblioteca, anzi uno dei tanti manuali, circa 800 pagine   :Shocked:   !!!!!!

Secondo me metalog e' molto piu intuitivo, facile e per quello che riguarda l'uso locale lo stesso potente. 

Dai un occhiata, ad un config file di metalog, se vedi che ti trovi male, continuare pure con syslog-ng, una volta che si comincia con un programma e' meglio arrivarci fino in fondo.. Ma se tu vedi che metalog e' molto piu facile anche per te, ti consiglio vivamente di cambiare system logger subito  :Wink: 

shev: il quote che hai come signature e' stupendo!  :Razz: 

----------

## shev

 *bld wrote:*   

> shev: il quote che hai come signature e' stupendo! 

 

Modestamente   :Cool: 

----------

## Naspe

 *bld wrote:*   

> 
> 
> Ma a mio parere, usare syslog-ng per un desktop, e per le esigenze del nostro amichetto credo che sia un inutile complicazione 
> 
> 

 

Eh eh hai ragione ma a me serve che i log vengano rigirati su di un altro server in rete e da quello che ho letto metalog nn lo puo fare... Poi cmq ora sto cercando di acquisire un po di conoscenze per poter poi mettere su un bel serverino  :Smile: 

----------

## IgaRyu

Senza considerare che syslog-ng e sem,pre visibile 'live' sulla console 12 (CTRL-ATL-12) ed insoltre a mio parere metalog ha il 'difettuccio' che usa la cache per cui quando vai a vedere il file di log non e sempre detto che ci sia gia tutto registrato dentro ....

Joe

----------

## randomaze

 *Naspe wrote:*   

> Ad esempio l'altra volta ho chiesto aiuto riguardo al mount automatico. Bene mi è stato segnalato un sito dove spiega come fare... solo che lo spiega per red hat... io negli emerge non ho trovato il pacchetto automount... quindi ora sinceramente nn so che fare...
> 
> 

 

OT:

Dato che forse ti ho incasinato al testa spiegandoti syslog invece di syslog-ng (spero di no... in fondo la logica é la stessa!) per farmi perdonare ti passo questo link: https://forums.gentoo.org/viewtopic.php?p=745870#745870

----------

## leon_73

 *IgaRyu wrote:*   

> Senza considerare che syslog-ng e sempre visibile 'live' sulla console 12 (CTRL-ATL-12) ed insoltre a mio parere metalog ha il 'difettuccio' che usa la cache per cui quando vai a vedere il file di log non e sempre detto che ci sia gia tutto registrato dentro ....
> 
> Joe

 

Due piccole precisazioni, e spero IgaRyu non me ne voglia    :Rolling Eyes: 

Per entrambe, se mi ricordo bene, si possono creare dei buffer dei dati solo che per metalog e' di default, mentre per syslog-ng non lo e'.

Anche la storia che tutti gli allarmi di sl-ng vanno sulla consolle 12, e' una questione di impostazine del file di conf

Leo

----------

## Naspe

Grazie Randomaze!!!  :Smile: 

P.S.: Grazie a tutti in generale  :Smile: 

----------

## OKreZ

 *IgaRyu wrote:*   

> [...] ed insoltre a mio parere metalog ha il 'difettuccio' che usa la cache per cui quando vai a vedere il file di log non e sempre detto che ci sia gia tutto registrato dentro

 

Non e' un difetto, ma una opzione che ottimizza la scrittura sul disco (si puo' sempre dire a metalog che non usi questo metodo se si ha qualche problema)

----------

## bld

Non sapevo che i log dovevano essere trasferiti  :Razz:  . Mi pare che ho visto in giro un "hack" per syslog per far trasferire i logs tra client e server via tcp crittato. 

Gia che ci siamo, sa qualcuno sotto quale licenza viene rilasciato syslog-ng?

----------

## leon_73

 *bld wrote:*   

> Non sapevo che i log dovevano essere trasferiti  . Mi pare che ho visto in giro un "hack" per syslog per far trasferire i logs tra client e server via tcp crittato. 

 questa funzionalita' l'ho vista richiedere anche per syslog-ng, ma la risposta e' stata che, essendo gia' implementata la possibilita' di usare TCP (a dispetto del classico syslog che usa solo UDP), basta creare un tunel ssh o ssl per ottenere lo stesso  :Wink: 

 *bld wrote:*   

> 
> 
> Gia che ci siamo, sa qualcuno sotto quale licenza viene rilasciato syslog-ng?

 

```
z-lmutt@amht080 z-lmutt $ grep LICENSE /usr/portage/app-admin/syslog-ng/syslog-ng-1.6.0_rc1-r2.ebuild

LICENSE="GPL-2"
```

  :Wink: 

Leo

----------

## cerri

Dancy, utilizzo metalog quindi non ho conf da postarti.

Cmq: http://www.unidata.ucar.edu/cgi-bin/man-cgi?syslog.conf+4 (o man syslog.conf).

----------

## Naspe

Io alla fine ho usato questo che fatto molto bene. Unica cosa poi te li devi un po gurdare x vedere in quale file vanno a finire i diversi tipi di messaggi, cmq è molto intuitiva la cosa.

Ciao ciao.

----------

## shev

 *cerri wrote:*   

> Cmq: http://www.unidata.ucar.edu/cgi-bin/man-cgi?syslog.conf+4 (o man syslog.conf).

 

O meglio ancora: man syslog-ng.conf. O una ricerca su google con key "syslog-ng.conf", il terzo risultato è un file di configurazione (non so quanto userei un file di config d'un estraneo senza sapere cosa fa, però se a te va bene...).

----------

## Dancy

Grazie raga.... mi darò alla lettura

 *Quote:*   

> O meglio ancora: man syslog-ng.conf. O una ricerca su google con key "syslog-ng.conf", il terzo risultato è un file di configurazione (non so quanto userei un file di config d'un estraneo senza sapere cosa fa, però se a te va bene...).

 

mi fido + di google che di me...  :Laughing: 

 *Quote:*   

>  x cerri:
> 
> grazie per avermi spostato... cancella pure il mio topic e scusami..  

 

----------

## cerri

 *Shev wrote:*   

> O meglio ancora: man syslog-ng.conf.

 

Sorry, mea culpa  :Smile: 

 *Dancy wrote:*   

> grazie per avermi spostato... cancella pure il mio topic e scusami..   

 

Nessun problema  :Cool: 

----------

## Dancy

vediaamo un po' se è corretto....

x syslog-ng ho usato lo script della guida http://www.gentoo.it/doc/gentoo-security-it.html#doc_chap4

con l'aggiunta di 

```

#destinazione del log

destination sshlog { file("/var/log/ssh.log"); }; 

#rule of log

filter f_ssh { match("ssh"); };

#definizione del log

log { source(src); filter(f_ssh); destination(sshlog); };
```

e il risultato i /var/log/ssh.log è

```

Feb  9 13:42:26 linuxbox sshd[3382]: Server listening on 0.0.0.0 port 22.

Feb  9 13:46:24 linuxbox sshd[3562]: User root not allowed because not listed in AllowUsers

Feb  9 13:47:08 linuxbox sshd[3578]: Accepted publickey for dancy from 192.168.0.254 port 32771 ssh2

```

quello che realmente mi serve però e sapere l'ip che ha creato la seconda riga....

quindi il problema non è syslog ma sshd?

questo è il mio sshd_config

```

Port 22

Protocol 2

HostKey /etc/ssh/ssh_host_rsa_key

HostKey /etc/ssh/ssh_host_dsa_key

KeyRegenerationInterval 1h

ServerKeyBits 768

SyslogFacility AUTH

LogLevel INFO

PermitRootLogin no

StrictModes yes

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile   .ssh/authorized_keys

RhostsRSAAuthentication no

HostbasedAuthentication no

PasswordAuthentication no

PermitEmptyPasswords no

Banner /etc/ssh/banner

AllowGroups wheel admin

AllowUsers dancy

Subsystem   sftp   /usr/lib/misc/sftp-server

```

----------

## Dancy

[RISOLTO]

ho cambiato sshd_config :

```
LogLevel VERBOSE
```

  :Razz: 

Altra domanda....

config lato client

```

#destinazione del log

destination sshlog { tcp(xxx.xxx.xxx.xxx,4000); };

#rule of log

filter f_ssh { match("ssh"); };

#definizione del log

log { source(src); filter(f_ssh); destination(sshlog); };
```

config lato server

```

source host { tcp(yyy.yyy.yyy.yyy,4000); };

#destinazione del log

destination sshlog { file("/var/log/ssh.log"); };

#rule of log

filter f_ssh { match("ssh"); };

#definizione del log

log { source(host); filter(f_ssh); destination(sshlog); };
```

dovrei avere il server con la porta 4000 aperta che si registra i log ssh del client??

i dati vengono cifrati???  :Question: 

----------

