Precedent Haut Suivant


8.2.5 -  Serveur PetiteOurse :

8.2.5.A -  Concentrateur de logs :

La fonctionnalité de concentration des logs passe par l’écoute par le démon en charge des logs des trames syslog en provenance du réseau. Deux options sont ici possibles :

-                     modification du script « /etc/init.d/sysklogd » pour permettre l’écoute réseau du démon « syslogd » à l’aide de l’option « -r »,

-                     mise en place du démon « syslog-ng » qui est considéré comme la nouvelle génération du démon syslog.

Dans le cadre de la maquette l’installation du package syslog-ng (version 1.5.15-1) est retenue.

è      apt-get install syslog-ng

 

Le démon « syslog-ng » est configuré à l’aide du fichier de configuration « /etc/syslog-ng/syslog-ng.conf ». Le fichier de configuration de PetiteOurse est donné ci-dessous :

#

# Emplacement : Maquette de test SGA

# Description : Fichier de configuration de syslog New Generation

# Serveur     : PetiteOurse

# Copyright   : marc.boget@gendarmerie.org

 

# Definition des options generales

options {

long_hostnames(off);         # Utilisation des noms longs

time_reopen(10);             # Attend 10 secondes avant de se

                             # reconnecter si la connexion est tombée

sync(0);                     # Nombre d'evenements avant d'ecrire ds

                             #les journaux

owner("syslog");             # Proprietaire des journaux

group("syslog");             # Groupe des journaux

perm(0640);                  # Permission des fichiers

keep_hostname(yes);

create_dirs(yes);            # Creation des repertoire de stockage des

                             # journaux

use_time_recvd(no);          # L'heure utilisée ds les journaux =

                             # heure locale

gc_idle_threshold(100);      # Le "garbage collector" est lancé au

                             # bout de 100 evenements si syslog-ng est

                             # inactif

gc_busy_threshold(3000);     # Le "garbage collector" est lancé au

                             # bout de 3000 evenements si syslog-ng

                             # est actif

                            

     };

 

 

# Definition des sources d'approvisionnement des logs

 

source src-interne

     {

     unix-stream("/dev/log");

     internal();

     file("/proc/kmsg");

     };  

source src-reseau

     {

     udp(ip(0.0.0.0) port(514));    # Port reseau utilisé = UDP 514

     };

 

# Definition des differentes destinations

 

# Les destinations "standards"

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

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

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

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

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

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

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

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

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

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

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

 

# Config specifique Eridan

# destination apacheerror { file("/var/esentry/apache/logs/error_log"); };

 

destination hosts

     {

     file ("/var/log/RESEAU/$HOST/$FACILITY/$YEAR/$MONTH/$DAY/$FACILITY$YEAR$MONTH$DAY"

     owner("syslog")

     group("syslog")

     perm(0600)

     dir_perm(0700)

     create_dirs(yes));

     };

 

# Definition des filtres

# On peut filtrer :

#   par facility (filtrage par type) : facility(facility[,facility]),

#   par level(filtrage par priorités) : level(pri[,pri1..pri2[,pri3]]),

#   par program (sur le nom du programme generant le message) :

#    program(exp.reg.),

#   par host(filtrage sur une expression reguliere de l'expediteur) :

#    host(exp.reg.),

#   par match(filtrage du message sur une expression reguliere) :

#    match(exp.reg.),

#   par filter(utilisation d'un autre filtre) :

#    filter(nom_filtre)

# Tous les mots cles peuvent etre utilises plusieurs fois et separes

# par des booleens : AND, OR, NOT

 

filter f_all {level(debug..emerg); };

filter f_authpriv { facility(auth, authpriv); };

filter f_syslog { not facility(auth, authpriv); };

filter f_cron { facility(cron); };

filter f_daemon { facility(daemon); };

filter f_kern { facility(kern); };

filter f_lpr { facility(lpr); };

filter f_mail { facility(mail); };

filter f_user { facility(user); };

filter f_uucp { facility(uucp); };

 

filter f_news { facility(news); };

 

filter f_debug { not facility(auth, authpriv, news, mail); };

filter f_messages { level(info .. warn)

     and not facility(auth, authpriv, cron, daemon, mail, news); };

filter f_emergency { level(emerg); };

 

filter f_info { level(info); };

filter f_notice { level(notice); };

filter f_warn { level(warn); };

filter f_crit { level(crit); };

filter f_err { level(err); };

 

filter f_cnews { level(notice, err, crit) and facility(news); };

filter f_cother { level(debug, info, notice, warn) or facility(daemon, mail); };

 

filter ppp { facility(local2); };

 

 

# Definition de la gestion des logs (permet de decider ou envoyer quoi

# et suivant quel critere)

 

log { source(src-interne); filter(f_authpriv); destination(auth); };

log { source(src-interne); filter(f_syslog); destination(syslog); };

log { source(src-interne); filter(f_cron); destination(cron); };

log { source(src-interne); filter(f_daemon); destination(daemon); };

log { source(src-interne); filter(f_kern); destination(kern); };

log { source(src-interne); filter(f_lpr); destination(lpr); };

log { source(src-interne); filter(f_mail); destination(mail); };

log { source(src-interne); filter(f_user); destination(user); };

log { source(src-interne); filter(f_uucp); destination(uucp); };

log { source(src-interne); filter(f_debug); destination(debug); };

log { source(src-interne); filter(f_messages); destination(messages); };

 

log { source(src-reseau); filter(f_all); destination(hosts); };

 

NB : syslog-ng offre la possibilité d’être mis en cage (cf. paragraphe 8.2.2.B - ). Le fichier de démarrage « /etc/init.d/syslog-ng » doit alors être modifié pour lancer le démon à l’aide des options « -C répertoire_de_cage -u utilisateur_possedant_le_process_demon -g groupe_utilisateur »

8.2.5.A.1 -  Compression des logs :

La configuration du démon « syslog-ng » sur PetiteOurse définit la destination des logs en provenance du réseau vers « /var/log/RESEAU … ». Ce rangement est très pratique pour retrouver les logs des différents serveurs mais rend l’utilisation de « logrotate » délicate ou tout au moins fastidieuse.

Le script ci-dessous inclus dans la « crontab » journalière permet de compresser les différents fichiers de logs :

#!/bin/sh

#

# Emplacement : Maquette de test SGA

# Description : Script permettant de compresser les logs de syslog-ng

# Serveur     : PetiteOurse

# Copyright   : marc.boget@gendarmerie.org

#

 

/usr/bin/find /var/log/RESEAU ! -name "*.bz2" -type f ! -path "*`/bin/date +%Y/%m/%d`*" -exec /usr/bin/bzip2 {} \;

 

logger "`date +%d/%m/%Y` : Compression des logs terminee"

 

Il nécessite l’installation du package « bzip2 » (version 1.0.2-1) :

è      apt-get install bzip2

 

Ce package dépend des packages suivants :

   - libbz2-1.0

   - libc6 (version >= 2.2.4-4)

8.2.5.B -  Serveur SSH :

L’installation du serveur SSH est décrite dans le paragraphe 8.2.3.E - .

8.2.5.C -  Authentification des utilisateurs sur l’annuaire LDAP :

Le paramétrage de l’authentification des utilisateurs sur l’annuaire GrandeOurse est décrit au paragraphe 8.2.6.D - .



Precedent Haut Suivant