Syslog-ng

Pour des raisons de facilité mettez vous en root ça évitera les sudo avant chaque commande : sudo -i

Avant toute chose mettez votre liste de serveur à jour : apt-get update
Télécharger les paquets syslog-ng : apt-get install syslog-ng.

Le fichier de configuration de syslog se trouve dans le repertoire /etc/syslog-ng/syslog-ng.conf
Il est constitué de 5 grande parties :
- les OPTIONS
- les SOURCES
- les DESTINATIONS
- les FILTRES pour mettre en place des filtres avec leurs propres règles
- les LOG pour configurer la journalistaion

D'abords il faut différencier les différents champs de chaque log :
- Facility : correspond au type d'application
  Ex : Auth , ftp,Kern,user etc ...

-Level : correspond au niveau de gravité
Ex: Emerg( le plus grave) ,Alert ,warning ,Info etc...

Chaque message est généré de la manière suivante : facility.level  , exemple l'erreur la plus critique Kern.Emerg.

Bon ok mais syslog-ng dans tout ça il sert à quoi ?
Son but est simple : il permet de chercher la bonne info en mettant en place des filtres !

Le shéma est le suivant : Source(s)   ->   Filtre(s)  ->  Destination(s)

Comment déclarer une source ?
Une source par default est 
  1. source src {
  2. unix-stream("/dev/log/log");
  3. internal();
  4. file("/proc/kmsg") };
Elle permet d'attraper les logs du kernel.
Autre exemple de source.

source router-gw {
tcp(ip(10.2.12.1) port(514)) } ;

Maitenant comment déclarer une destination ?

  1. destination endroit1 {
  2. file ( " /var/log/meslog/log");
  3. tcp("12.12.12.12" port(514)) ; 
  4. } ;
Le script /usr/bin/MailToAdmin sert à envoyer ces logs par mail il faudra configurer le script auparavant !

Le filtrage désormais peut être éfféctué sur plusieurs critères comme la facility, la priorité ou encore un mot clé ou toute une combinaison à vous de choisir celle qui vous conviendra !
Comment mettre en place ce filtre ?

La synthaxe est easy   :     =D

filter <identifier> { expression; } ;

Pour fixer les règles que l'on veut tout ce passe dans le champs expression !
Voici les mots clés à retenir :

Les expressions peuvent contenir "AND" "OR" et ou "NOT".
Les expressions sont définies par les mots clefs suivant :
-
facility(faciliy[,facility]) : afin de filter par type.
- level(pri[,pri1..pri2[,pri3]]) : pour filtrer sur les priorité ou niveaux.
- program(regexp) : permet de filtrer sur le nom du programme générant le message.
- host(regexp) : filtrage sur une expression régulière du nomd'hôte de l'expéditeur du message.
- match(regexp) : filtrage du message sur une expression régulière.
- filter(filtername) : utilise un autre filtre.


Tous ces mots clefs peuvent êtres utilisés plusieurs fois et séparés par
des opérateurs booléens (AND, OR et NOT) exemples :
  1. filter f_iptables { match("IN=.*OUT=.*MAC=.*"); };
  2. filter f_snort { match("snort: "); };
  3. filter f_full { not filter(f_snort) AND NOT filter(f_iptables); };
  4. filter f_messages { level(info..warn) and not facility(auth, authpriv, mail, news); };


Bon voilà vous avez les bases pour debuter avec syslog-ng !