Haut Précedent Suivant Titre Sommaire

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 :
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 - .

Haut Précedent Suivant Titre Sommaire