Projet

Général

Profil

Gestion logs » Historique » Version 31

Benjamin Bohard, 09/06/2014 11:47

1 13 Daniel Dehennin
{{toc}}
2 13 Daniel Dehennin
3 1 Benjamin Bohard
h1. Gestion des journaux
4 1 Benjamin Bohard
5 1 Benjamin Bohard
Les objectifs fondamentaux de la journalisation sont les suivants :
6 1 Benjamin Bohard
7 31 Benjamin Bohard
* conserver l'information en vue d'établir des diagnostics de panne et d'incidents de sécurité,
8 1 Benjamin Bohard
* conserver l'information en vue de statistiques d'utilisation,
9 1 Benjamin Bohard
* conserver l'information par contrainte légale.
10 1 Benjamin Bohard
11 1 Benjamin Bohard
Les écueils à éviter sont les suivants :
12 1 Benjamin Bohard
13 1 Benjamin Bohard
* saturation de la partition stockant les journaux,
14 1 Benjamin Bohard
* compromission des informations des journaux par application de droits d'accès inadaptés.
15 1 Benjamin Bohard
16 1 Benjamin Bohard
Ces objectifs et écueils guident la politique de journalisation à mettre en œuvre. Les contraintes les plus fortes sont l'obligation légale de conserver l'information et le risque de saturation du support de stockage. Les journaux, ou partie de journaux, concernés par l'obligation légale doivent être traités prioritairement. Les autres doivent s’accommoder de la contrainte d'espace de stockage.
17 31 Benjamin Bohard
18 31 Benjamin Bohard
h2. Recommandations de l'ANSSI (2 décembre 2013)
19 31 Benjamin Bohard
20 31 Benjamin Bohard
Voici les recommandations issues du guide "Recommandations de sécurité pour
21 31 Benjamin Bohard
la mise en œuvre d’un système de journalisation" accessible à l'adresse http://www.ssi.gouv.fr/fr/bonnes-pratiques/recommandations-et-guides/
22 31 Benjamin Bohard
23 31 Benjamin Bohard
h3. Recommandation 1
24 31 Benjamin Bohard
25 31 Benjamin Bohard
Utiliser des systèmes et des applicatifs disposant nativement d’une fonctionnalité de jour-
26 31 Benjamin Bohard
nalisation est primordial. La prise en compte de cette fonction doit se faire lors de toute
27 31 Benjamin Bohard
démarche de conception et de développement.
28 31 Benjamin Bohard
29 31 Benjamin Bohard
h3. Recommandation 2
30 31 Benjamin Bohard
31 31 Benjamin Bohard
L’horodatage doit être activé pour l’ensemble des évènements afin de permettre une
32 31 Benjamin Bohard
meilleure exploitation des journaux.
33 31 Benjamin Bohard
34 31 Benjamin Bohard
h3. Recommandation 3
35 31 Benjamin Bohard
36 31 Benjamin Bohard
Les horloges des équipements doivent être synchronisées sur plusieurs sources de temps
37 31 Benjamin Bohard
internes cohérentes entre elles. Ces sources pourront elles-mêmes être synchronisées sur
38 31 Benjamin Bohard
plusieurs sources fiables externes, sauf pour les réseaux isolés.
39 31 Benjamin Bohard
40 31 Benjamin Bohard
h3. Recommandation 4
41 31 Benjamin Bohard
42 31 Benjamin Bohard
Lors du dimensionnement des équipements, l’estimation de l’espace de stockage nécessaire
43 31 Benjamin Bohard
à la conservation locale des journaux est indispensable.
44 31 Benjamin Bohard
45 31 Benjamin Bohard
h3. Recommandation 5
46 31 Benjamin Bohard
47 31 Benjamin Bohard
Les journaux doivent être automatiquement exportés sur une machine physique différente
48 31 Benjamin Bohard
de celle qui les a générés.
49 31 Benjamin Bohard
50 31 Benjamin Bohard
h3. Recommandation 6
51 31 Benjamin Bohard
52 31 Benjamin Bohard
Les journaux de l’ensemble des équipements du système d’information doivent être trans-
53 31 Benjamin Bohard
férés sur un ou plusieurs serveurs centraux dédiés.
54 31 Benjamin Bohard
55 31 Benjamin Bohard
h3. Recommandation 7
56 31 Benjamin Bohard
57 31 Benjamin Bohard
Si le parc d’équipements qui génère des journaux est important, le serveur central devra
58 31 Benjamin Bohard
être redondé afin d’accroître la disponibilité du service de collecte de journaux.
59 31 Benjamin Bohard
60 31 Benjamin Bohard
h3. Recommandation 8
61 31 Benjamin Bohard
62 31 Benjamin Bohard
Si la taille ou la typologie du système d’information le nécessite, une approche hiérarchique
63 31 Benjamin Bohard
pour l’organisation des serveurs de collecte doit être retenue.
64 31 Benjamin Bohard
65 31 Benjamin Bohard
h3. Recommandation 9
66 31 Benjamin Bohard
67 31 Benjamin Bohard
Si le contexte le permet, un transfert en temps réel des journaux sur les serveurs centraux
68 31 Benjamin Bohard
doit être privilégié.
69 31 Benjamin Bohard
70 31 Benjamin Bohard
h3. Recommandation 10
71 31 Benjamin Bohard
72 31 Benjamin Bohard
Il est recommandé de ne pas effectuer de traitement sur les journaux avant leur transfert.
73 31 Benjamin Bohard
74 31 Benjamin Bohard
h3. Recommandation 11
75 31 Benjamin Bohard
76 31 Benjamin Bohard
Il est recommandé d’utiliser des protocoles d’envoi de journaux basés sur TCP pour fia-
77 31 Benjamin Bohard
biliser le transfert de données entre les machines émettrices et les serveurs centraux.
78 31 Benjamin Bohard
79 31 Benjamin Bohard
h3. Recommandation 12
80 31 Benjamin Bohard
81 31 Benjamin Bohard
Il est recommandé d’utiliser des protocoles de transfert de journaux qui s’appuient sur des
82 31 Benjamin Bohard
mécanismes cryptographiques robustes en particulier lorsque les données transitent sur des
83 31 Benjamin Bohard
réseaux non maîtrisés.
84 31 Benjamin Bohard
85 31 Benjamin Bohard
h3. Recommandation 13
86 31 Benjamin Bohard
87 31 Benjamin Bohard
Il est recommandé de bien contrôler la bande passante des flux réseau utilisée pour trans-
88 31 Benjamin Bohard
férer les journaux d’évènements.
89 31 Benjamin Bohard
90 31 Benjamin Bohard
h3. Recommandation 14
91 31 Benjamin Bohard
92 31 Benjamin Bohard
Lorsque le besoin de sécurité pour le transfert des journaux est important, il doit se faire
93 31 Benjamin Bohard
sur un réseau d’administration dédié.
94 31 Benjamin Bohard
95 31 Benjamin Bohard
h3. Recommandation 15
96 31 Benjamin Bohard
97 31 Benjamin Bohard
S’il n’existe pas de réseaux d’administration dans l’architecture pour accueillir les serveurs
98 31 Benjamin Bohard
de journalisation, ils doivent être placés dans une zone interne non exposée directement à
99 31 Benjamin Bohard
des réseaux qui ne sont pas de confiance (par exemple Internet).
100 31 Benjamin Bohard
101 31 Benjamin Bohard
h3. Recommandation 16
102 31 Benjamin Bohard
103 31 Benjamin Bohard
Une partition disque doit être dédiée au stockage des journaux d’évènements sur les
104 31 Benjamin Bohard
équipements qui les génèrent ou qui les centralisent.
105 31 Benjamin Bohard
106 31 Benjamin Bohard
h3. Recommandation 17
107 31 Benjamin Bohard
108 31 Benjamin Bohard
Il est recommandé d’adopter une arborescence pour le stockage des journaux d’évènements.
109 31 Benjamin Bohard
110 31 Benjamin Bohard
h3. Recommandation 18
111 31 Benjamin Bohard
112 31 Benjamin Bohard
Une politique de rotation des journaux d’évènements doit être formalisée et mise en œuvre
113 31 Benjamin Bohard
sur l’ensemble des équipements du système de journalisation.
114 31 Benjamin Bohard
115 31 Benjamin Bohard
h3. Recommandation 19
116 31 Benjamin Bohard
117 31 Benjamin Bohard
La durée de conservation des fichiers de journaux étant soumise à des contraintes légales
118 31 Benjamin Bohard
et réglementaires, il convient d’en prendre connaissance pour définir les moyens techniques
119 31 Benjamin Bohard
nécessaire à l’archivage des journaux.
120 31 Benjamin Bohard
121 31 Benjamin Bohard
h3. Recommandation 20
122 31 Benjamin Bohard
123 31 Benjamin Bohard
L’accès aux journaux doit être limité en écriture à un nombre restreint de comptes ayant
124 31 Benjamin Bohard
le besoin d’en connaître.
125 31 Benjamin Bohard
126 31 Benjamin Bohard
h3. Recommandation 21
127 31 Benjamin Bohard
128 31 Benjamin Bohard
Les processus de journalisation et de collecte doivent être exécutés par des comptes dis-
129 31 Benjamin Bohard
posant de peu privilèges.
130 31 Benjamin Bohard
131 31 Benjamin Bohard
h3. Recommandation 22
132 31 Benjamin Bohard
133 31 Benjamin Bohard
Un outil spécifique doit être utilisé pour une meilleure exploitation des journaux présents
134 31 Benjamin Bohard
sur les serveurs centraux, la détection d’évènements anormaux en sera facilitée.
135 31 Benjamin Bohard
136 31 Benjamin Bohard
h3. Recommandation 23
137 31 Benjamin Bohard
138 31 Benjamin Bohard
Les comptes ayant accès à l’outil de consultation centralisée des journaux doivent être
139 31 Benjamin Bohard
associés à des rôles prédéterminés.
140 31 Benjamin Bohard
141 31 Benjamin Bohard
h3. Recommandation 24
142 31 Benjamin Bohard
143 31 Benjamin Bohard
L’espace disque des équipements qui génèrent et stockent les journaux doit être surpervisé.
144 1 Benjamin Bohard
145 1 Benjamin Bohard
h2. Contextes de journalisation
146 1 Benjamin Bohard
147 1 Benjamin Bohard
La gestion des journaux d'une distribution EOLE est guidée par différents contextes d'utilisation. Un contexte d'utilisation est une topologie réseau particulière de machines, virtuelles ou physiques, à laquelle s'applique une politique de journalisation commune. Les rôles possibles dans un réseau sont :
148 1 Benjamin Bohard
* une machine émettrice : transmission des journaux à une machine réceptrice ;
149 1 Benjamin Bohard
* une machine réceptrice : conservation des journaux locaux, réception des journaux de machines émettrices.
150 1 Benjamin Bohard
151 9 Daniel Dehennin
Les machines émettrices se déclinent en matériel réseau, machines physiques et conteneurs LXC. Cette distinction introduit une distinction entre les machines réceptrices qui ne gèrent que les conteneurs qu'elles hébergent et celles qui centralisent les journaux de matériels physiques distants. Certains modules de la distribution EOLE se prêtent plus à l'exécution d'un rôle particulier. ZéphirLog, notamment a été créé pour assumer le rôle de machine réceptrice vis-à-vis des autres modules. Cependant, la modularité permet à un autre module de jouer ce rôle. L'utilisation du mode conteneur ou non est plus contraignant sur les rôles par contre.
152 1 Benjamin Bohard
153 1 Benjamin Bohard
h3. Solution EOLE en mode non conteneur
154 1 Benjamin Bohard
155 1 Benjamin Bohard
Une machine en mode non conteneur est le cas le plus simple :
156 1 Benjamin Bohard
157 1 Benjamin Bohard
* un seul environnement d'exécution ;
158 1 Benjamin Bohard
* la machine peut jouer les rôles de machine émettrice et transmettre ses journaux et de machine réceptrice et recevoir des journaux.
159 1 Benjamin Bohard
160 1 Benjamin Bohard
h3. Solution EOLE en mode conteneur
161 1 Benjamin Bohard
162 1 Benjamin Bohard
Une machine en mode conteneur amène un autre niveau :
163 1 Benjamin Bohard
164 1 Benjamin Bohard
* une hiérarchie d'environnement d'exécution à deux niveaux :
165 1 Benjamin Bohard
** un maître ;
166 1 Benjamin Bohard
** des conteneurs ;
167 1 Benjamin Bohard
* les conteneurs jouent le rôle de machines émettrices et transmettent leurs journaux ;
168 1 Benjamin Bohard
* les maîtres jouent forcément le rôle de machines réceptrices, au moins vis-à-vis des conteneurs, et peuvent jouer le rôle de machines émettrices et transmettre leurs journaux.
169 1 Benjamin Bohard
170 1 Benjamin Bohard
h3. Autre
171 1 Benjamin Bohard
172 1 Benjamin Bohard
Le reste du matériel participant au réseau (équipement réseau, machines clientes hors solutions EOLE, etc.) jouent le rôle de machines émettrices dans la structure envisagée.
173 1 Benjamin Bohard
174 1 Benjamin Bohard
h2. La problématique de la transmission réseau
175 1 Benjamin Bohard
176 1 Benjamin Bohard
Une machine réceptrice peut potentiellement recevoir de plusieurs sources : 
177 1 Benjamin Bohard
* des conteneurs ;
178 1 Benjamin Bohard
* des machines distantes pouvant utiliser le protocole RELP ;
179 1 Benjamin Bohard
* des machines distantes pouvant utiliser le protocole TCP ;
180 1 Benjamin Bohard
* des machines distantes pouvant utiliser le protocole UDP.
181 1 Benjamin Bohard
182 2 Benjamin Bohard
La transmission devant être fiable, le protocole RELP est à privilégier, ainsi que l'usage des queues, essentiellement pour les journaux à valeur légale. Le protocole TCP est encore incontournable pour l'utilisation d'une liaison sécurisée avec GnuTLS. Le protocole UDP est à réserver pour les équipements ne pouvant utiliser le protocole TCP ou RELP.
183 1 Benjamin Bohard
184 1 Benjamin Bohard
Il doit être possible de trier les journaux par zone émettrice. Différentes granularités sont envisageables pour définir les zones émettrices. La granularité la plus grossière distingue la zone interne (les conteneurs) de la zone externe.
185 1 Benjamin Bohard
186 1 Benjamin Bohard
h2. Les services
187 1 Benjamin Bohard
188 1 Benjamin Bohard
Les services prioritaires sont ceux dont les journaux ont une valeur légale et une durée de rétention prévue par la loi.
189 1 Benjamin Bohard
190 1 Benjamin Bohard
h2. La configuration de rsyslog dans EOLE
191 1 Benjamin Bohard
192 1 Benjamin Bohard
Le service rsyslog est démarré par défaut sur tous les modules EOLE, maître et conteneurs.
193 1 Benjamin Bohard
La configuration minimale est composée d'une partie commune et de fichiers de configuration rattachés aux différents services.
194 12 Benjamin Bohard
La stratégie d'agrégation des journaux est décidée à l'instanciation.
195 1 Benjamin Bohard
196 1 Benjamin Bohard
h3. La configuration minimale
197 1 Benjamin Bohard
198 11 Daniel Dehennin
* Sur le maître, sur un module en mode conteneur ou non conteneur :
199 11 Daniel Dehennin
** Un dispatcher pour les journaux locaux et conteneurs dans @/var/log/rsyslog/local/<APPLI>/<APPLI>.<SEVERITY>.log@
200 11 Daniel Dehennin
** Un dispatcher pour les journaux des hôtes réseaux dans @/var/log/rsyslog/remote/<HOSTNAME>/<APPLI>/<APPLI>.<SEVERITY>.log@
201 11 Daniel Dehennin
* Sur les conteneurs :
202 11 Daniel Dehennin
** Des règles avec mise en place de queues pour les journaux sensibles
203 11 Daniel Dehennin
** Une règle globale pour le reste
204 1 Benjamin Bohard
205 12 Benjamin Bohard
h3. L'agrégation
206 1 Benjamin Bohard
207 12 Benjamin Bohard
L'agrégation des journaux des conteneurs sur le maître est imposée.
208 1 Benjamin Bohard
209 12 Benjamin Bohard
Le choix du mode d'agrégation porte sur :
210 1 Benjamin Bohard
* l'activation de l'envoi : spécification de l'adresse de destination, protocole imposé (RELP), port imposé (20515 ?) ;
211 1 Benjamin Bohard
* l'activation de la réception :
212 1 Benjamin Bohard
** réception de clients utilisant RELP : schéma de répartition, liste des adresses des clients, port imposé (20515 ?) ;
213 1 Benjamin Bohard
** réception de clients utilisant TCP : schéma de répartition, liste des adresses des clients, port imposé (10514 ?) ;
214 1 Benjamin Bohard
** réception de clients utilisant UDP : schéma de répartition, liste des adresses des clients, port imposé (514) ;
215 1 Benjamin Bohard
* utilisation du chiffrement : emplacement du certificat.
216 1 Benjamin Bohard
217 21 Benjamin Bohard
h3. L'organisation de la configuration (< EOLE 2.3.9)
218 1 Benjamin Bohard
219 1 Benjamin Bohard
La lecture séquentielle de la configuration de rsyslog impose une organisation particulière :
220 1 Benjamin Bohard
* les modules (entrée, sortie) doivent être chargés avant d'être utilisés ;
221 1 Benjamin Bohard
* les ensembles de règles doivent être spécifiés avant d'être associés aux entrées ;
222 1 Benjamin Bohard
* les modèles doivent être spécifiés avant d'être utilisés ;
223 1 Benjamin Bohard
* les messages ne doivent pas être sortis de la chaîne de traitement prématurément.
224 1 Benjamin Bohard
225 10 Benjamin Bohard
Plages de fichiers :
226 10 Benjamin Bohard
227 10 Benjamin Bohard
00-09 : fichiers EOLE contenant la configuration générique en début de chaîne de traitement
228 10 Benjamin Bohard
229 16 Benjamin Bohard
10-19 : fichiers EOLE de règles non-destructrices
230 10 Benjamin Bohard
231 16 Benjamin Bohard
20-49 : fichiers de règles personnalisées non-destructrices
232 10 Benjamin Bohard
233 10 Benjamin Bohard
50 : seuil d'utilisation de & ~ pour enlever les messages de la file après traitement
234 10 Benjamin Bohard
235 16 Benjamin Bohard
50-79 : fichiers de règles personnalisées destructrices
236 10 Benjamin Bohard
237 16 Benjamin Bohard
80-98 : fichiers EOLE de règles destructrices
238 10 Benjamin Bohard
239 18 Benjamin Bohard
99-general_dispatch.conf
240 1 Benjamin Bohard
241 1 Benjamin Bohard
h4. rsyslog.conf
242 10 Benjamin Bohard
243 19 Benjamin Bohard
eole-common:source:tmpl/rsyslog.conf
244 1 Benjamin Bohard
<pre>
245 16 Benjamin Bohard
$ModLoad imuxsock # provides support for local system logging
246 16 Benjamin Bohard
$ModLoad immark  # provides --MARK-- message capability
247 1 Benjamin Bohard
248 16 Benjamin Bohard
# commented in container (eole-conteneur/lxc_install.sh l.216-7)
249 16 Benjamin Bohard
$ModLoad imklog   # provides kernel logging support (previously done by rklogd)
250 16 Benjamin Bohard
$KLogPath /proc/kmsg
251 16 Benjamin Bohard
252 16 Benjamin Bohard
$PreserveFQDN on
253 16 Benjamin Bohard
254 16 Benjamin Bohard
# utilisation du protocole RELP
255 16 Benjamin Bohard
%if %%mode_conteneur_actif == 'oui' or %%activer_reception_logs_relp == 'oui'
256 16 Benjamin Bohard
257 16 Benjamin Bohard
$ModLoad imrelp
258 16 Benjamin Bohard
$InputRELPServerRun 20514
259 16 Benjamin Bohard
260 16 Benjamin Bohard
%end if
261 16 Benjamin Bohard
262 16 Benjamin Bohard
# utilisation du protocole TCP
263 16 Benjamin Bohard
%if %%activer_reception_logs_tcp == 'oui'
264 16 Benjamin Bohard
265 16 Benjamin Bohard
$ModLoad imtcp
266 16 Benjamin Bohard
267 16 Benjamin Bohard
# utilisation du chiffrement
268 16 Benjamin Bohard
%if %%rsyslog_tls == "oui" and (%%rsyslog_envoi_tls == "oui" or %%rsyslog_reception_tls == "oui")
269 16 Benjamin Bohard
270 16 Benjamin Bohard
# configuration general pour le chiffrement
271 16 Benjamin Bohard
$DefaultNetstreamDriver gtls
272 16 Benjamin Bohard
$DefaultNetstreamDriverCAFile %%rsyslog_ca_file
273 16 Benjamin Bohard
$DefaultNetstreamDriverCertFile  /etc/ssl/certs/eole.crt
274 16 Benjamin Bohard
$DefaultNetstreamDriverKeyFile  /etc/ssl/certs/eole.key
275 16 Benjamin Bohard
276 16 Benjamin Bohard
277 16 Benjamin Bohard
# configuration propre a la reception
278 16 Benjamin Bohard
%if %%rsyslog_reception_tls == "oui"
279 16 Benjamin Bohard
280 16 Benjamin Bohard
$InputTCPServerStreamDriverMode 1
281 16 Benjamin Bohard
$InputTCPServerStreamDriverAuthMode anon
282 16 Benjamin Bohard
%for %%client_ip in %%adresses_ip_clients_logs_tcp
283 16 Benjamin Bohard
$InputTCPServerStreamDriverPermittedPeer %%client_ip
284 16 Benjamin Bohard
%end for
285 16 Benjamin Bohard
286 16 Benjamin Bohard
%end if
287 16 Benjamin Bohard
%end if
288 16 Benjamin Bohard
289 16 Benjamin Bohard
$AllowedSender TCP, %%custom_join(%%adresses_ip_clients_logs_tcp, separator=', ')
290 16 Benjamin Bohard
291 16 Benjamin Bohard
$InputTCPServerRun 10514
292 16 Benjamin Bohard
%end if
293 16 Benjamin Bohard
294 16 Benjamin Bohard
# utilisation du protocole UDP
295 16 Benjamin Bohard
%if %%activer_reception_logs_udp == 'oui'
296 16 Benjamin Bohard
297 16 Benjamin Bohard
$ModLoad imudp
298 16 Benjamin Bohard
$AllowedSender UDP, %%custom_join(%%adresses_ip_clients_logs_udp, separator=', ')
299 16 Benjamin Bohard
$UDPServerRun 514
300 16 Benjamin Bohard
301 16 Benjamin Bohard
%end if
302 16 Benjamin Bohard
303 16 Benjamin Bohard
###########################
304 16 Benjamin Bohard
#### GLOBAL DIRECTIVES ####
305 16 Benjamin Bohard
###########################
306 16 Benjamin Bohard
307 16 Benjamin Bohard
#
308 16 Benjamin Bohard
# Use traditional timestamp format.
309 16 Benjamin Bohard
# To enable high precision timestamps, comment out the following line.
310 16 Benjamin Bohard
#
311 16 Benjamin Bohard
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
312 16 Benjamin Bohard
313 16 Benjamin Bohard
# Filter duplicated messages
314 16 Benjamin Bohard
$RepeatedMsgReduction on
315 16 Benjamin Bohard
316 16 Benjamin Bohard
#
317 16 Benjamin Bohard
# Set the default permissions for all log files.
318 16 Benjamin Bohard
#
319 16 Benjamin Bohard
$FileOwner syslog
320 16 Benjamin Bohard
$FileGroup adm
321 16 Benjamin Bohard
$FileCreateMode 0640
322 16 Benjamin Bohard
$DirCreateMode 0755
323 16 Benjamin Bohard
$Umask 0022
324 16 Benjamin Bohard
$PrivDropToUser syslog
325 16 Benjamin Bohard
$PrivDropToGroup adm
326 16 Benjamin Bohard
327 16 Benjamin Bohard
#
328 16 Benjamin Bohard
# Include all config files in /etc/rsyslog.d/
329 16 Benjamin Bohard
#
330 16 Benjamin Bohard
$IncludeConfig /etc/rsyslog.d/*.conf
331 16 Benjamin Bohard
332 1 Benjamin Bohard
</pre>
333 10 Benjamin Bohard
334 14 Benjamin Bohard
h4. rsyslog.d/
335 1 Benjamin Bohard
336 19 Benjamin Bohard
eole-common:source:tmpl/00-aggregation.conf
337 14 Benjamin Bohard
<pre>
338 1 Benjamin Bohard
%if %%is_defined('activer_envoi_logs') and %%activer_envoi_logs == 'oui'
339 1 Benjamin Bohard
340 14 Benjamin Bohard
%if %%rsyslog_envoi_tls == 'non'
341 14 Benjamin Bohard
342 14 Benjamin Bohard
$ModLoad omrelp
343 1 Benjamin Bohard
344 14 Benjamin Bohard
%end if
345 1 Benjamin Bohard
346 14 Benjamin Bohard
$WorkDirectory /var/log/rsyslog
347 1 Benjamin Bohard
$ActionQueueType LinkedList
348 1 Benjamin Bohard
%if %%is_defined('activate_squid_realtime') and %%activate_squid_realtime == 'non'
349 1 Benjamin Bohard
$ActionQueueDequeueTimeBegin %%squid_heure_debut
350 14 Benjamin Bohard
$ActionQueueDequeueTimeEnd %%squid_heure_fin
351 1 Benjamin Bohard
%end if
352 14 Benjamin Bohard
$ActionQueueFileName relpact
353 14 Benjamin Bohard
$ActionQueueSaveOnShutdown on
354 14 Benjamin Bohard
355 14 Benjamin Bohard
%if %%rsyslog_envoi_tls == 'oui'
356 14 Benjamin Bohard
357 14 Benjamin Bohard
$ActionSendStreamDriverAuthMode anon
358 14 Benjamin Bohard
$ActionSendStreamDriverPermittedPeer %%adresse_ip_serveur_logs
359 14 Benjamin Bohard
$ActionSendStreamDriverMode 1
360 14 Benjamin Bohard
:programname, isequal, "squid" @@%%adresse_ip_serveur_logs:10514
361 14 Benjamin Bohard
362 14 Benjamin Bohard
$ActionSendStreamDriverAuthMode anon
363 14 Benjamin Bohard
$ActionSendStreamDriverPermittedPeer %%adresse_ip_serveur_logs
364 14 Benjamin Bohard
$ActionSendStreamDriverMode 1
365 14 Benjamin Bohard
:programname, !isequal, "squid"	@@%%adresse_ip_serveur_logs:10514
366 14 Benjamin Bohard
367 14 Benjamin Bohard
%else
368 14 Benjamin Bohard
369 14 Benjamin Bohard
:programname, isequal, "squid" :omrelp:%%adresse_ip_serveur_logs:20514
370 14 Benjamin Bohard
371 14 Benjamin Bohard
:programname, !isequal, "squid" :omrelp:%%adresse_ip_serveur_logs:20514
372 14 Benjamin Bohard
373 14 Benjamin Bohard
%end if
374 1 Benjamin Bohard
375 1 Benjamin Bohard
%else
376 1 Benjamin Bohard
# cette machine n'est pas configurée pour transmettre ses logs à une machine distante
377 1 Benjamin Bohard
%end if
378 14 Benjamin Bohard
379 1 Benjamin Bohard
</pre>
380 1 Benjamin Bohard
381 19 Benjamin Bohard
eole-common:source:tmpl/00-conteneur.conf
382 14 Benjamin Bohard
383 1 Benjamin Bohard
<pre>
384 14 Benjamin Bohard
$ModLoad omrelp
385 14 Benjamin Bohard
386 16 Benjamin Bohard
$WorkDirectory /var/log/rsyslog
387 1 Benjamin Bohard
$ActionQueueType LinkedList
388 1 Benjamin Bohard
389 14 Benjamin Bohard
%if %%is_defined('activate_squid_realtime') and %%activate_squid_realtime == 'non'
390 14 Benjamin Bohard
391 14 Benjamin Bohard
$ActionQueueDequeueTimeBegin %%squid_heure_debut
392 1 Benjamin Bohard
$ActionQueueDequeueTimeEnd %%squid_heure_fin
393 1 Benjamin Bohard
394 1 Benjamin Bohard
%end if
395 14 Benjamin Bohard
396 1 Benjamin Bohard
$ActionQueueFileName relpact
397 1 Benjamin Bohard
$ActionQueueSaveOnShutdown on
398 14 Benjamin Bohard
399 1 Benjamin Bohard
:programname, isequal, "squid" :omrelp:%%adresse_ip_br0:20514
400 14 Benjamin Bohard
& ~
401 1 Benjamin Bohard
402 14 Benjamin Bohard
*.*	:omrelp:%%adresse_ip_br0:20514
403 1 Benjamin Bohard
& ~
404 1 Benjamin Bohard
</pre>
405 14 Benjamin Bohard
406 19 Benjamin Bohard
eole-common:source:tmpl/01-templates.conf
407 14 Benjamin Bohard
<pre>
408 1 Benjamin Bohard
$template DynLocalDispatch, "/var/log/rsyslog/local/%programname%/%programname%.%syslogseverity-text%.log"
409 14 Benjamin Bohard
410 20 Benjamin Bohard
$template DynRemoteDispatch, "/var/log/rsyslog/remote/%hostname:::secpath-replace%/%programname%/%programname%.%syslogseverity-text%.log"
411 1 Benjamin Bohard
</pre>
412 19 Benjamin Bohard
eole-common:source:tmpl/10-erreurs.conf
413 1 Benjamin Bohard
414 1 Benjamin Bohard
<pre>
415 1 Benjamin Bohard
*.err  /var/log/syslog
416 1 Benjamin Bohard
</pre>
417 1 Benjamin Bohard
418 16 Benjamin Bohard
20-auth.conf
419 16 Benjamin Bohard
<pre>
420 16 Benjamin Bohard
$template DynLocalAuth, "/var/log/rsyslog/local/auth/auth.%syslogseverity-text%.log"
421 20 Benjamin Bohard
$template DynRemotelAuth, "/var/log/rsyslog/remote/%hostname:::secpath-replace%/auth/auth.%syslogseverity-text%.log"
422 16 Benjamin Bohard
%if %%activer_reception_logs == 'non'
423 16 Benjamin Bohard
auth, authpriv.* ?DynLocalAuth
424 16 Benjamin Bohard
%else
425 16 Benjamin Bohard
if $syslogfacility-text startswith 'auth' and $fromhost-ip startswith '127' then ?DynLocalAuth
426 16 Benjamin Bohard
%if %%mode_conteneur_actif == 'oui'
427 16 Benjamin Bohard
if $syslogfacility-text startswith 'auth' and $fromhost-ip startswith '%%adresse_ip_br0[:-2]' then ?DynLocalAuth
428 16 Benjamin Bohard
%end if
429 16 Benjamin Bohard
if $syslogfacility-text startswith 'auth' and not ($fromhost-ip startswith '%%adresse_ip_br0[:-2]' or $fromhost-ip startswith '127') then ?DynRemoteAuth
430 1 Benjamin Bohard
%end if
431 16 Benjamin Bohard
</pre>
432 1 Benjamin Bohard
433 16 Benjamin Bohard
50-79….conf : les règles personnalisées pour filter les services individuellement sur le modèle de 80-rsyslog.conf
434 16 Benjamin Bohard
435 19 Benjamin Bohard
eole-common:source:tmpl/80-rsyslog.conf
436 1 Benjamin Bohard
<pre>
437 16 Benjamin Bohard
$template DynLocalRsyslog, "/var/log/rsyslog/local/rsyslog/rsyslog.%syslogseverity-text%.log"
438 20 Benjamin Bohard
$template DynRemoteRsyslog, "/var/log/rsyslog/remote/%hostname:::secpath-replace%/rsyslog/rsyslog.%syslogseverity-text%.log"
439 16 Benjamin Bohard
%if %%activer_reception_logs == 'non'
440 16 Benjamin Bohard
:programname, startswith, "rsyslog" ?DynLocalRsyslog
441 16 Benjamin Bohard
%else
442 16 Benjamin Bohard
if $programname startswith 'rsyslog' and $fromhost-ip startswith '127' then ?DynLocalRsyslog
443 1 Benjamin Bohard
& ~
444 16 Benjamin Bohard
%if %%mode_conteneur_actif == 'oui'
445 16 Benjamin Bohard
if $programname startswith 'rsyslog' and $fromhost-ip startswith '%%adresse_ip_br0[:-2]' then ?DynLocalRsyslog
446 16 Benjamin Bohard
& ~
447 16 Benjamin Bohard
%end if
448 1 Benjamin Bohard
:programname, startswith, "rsyslog" ?DynRemoteRsyslog
449 16 Benjamin Bohard
& ~
450 16 Benjamin Bohard
%end if
451 16 Benjamin Bohard
452 1 Benjamin Bohard
</pre>
453 15 Benjamin Bohard
454 19 Benjamin Bohard
eole-common:source:tmpl/99-general_dispatch.conf
455 15 Benjamin Bohard
456 15 Benjamin Bohard
<pre>
457 16 Benjamin Bohard
%if %%activer_reception_logs == 'non'
458 16 Benjamin Bohard
*.* ?DynLocalDispatch
459 16 Benjamin Bohard
%else
460 15 Benjamin Bohard
:fromhost-ip, isequal, "127" ?DynLocalDispatch
461 1 Benjamin Bohard
& ~
462 15 Benjamin Bohard
463 15 Benjamin Bohard
%if %%mode_conteneur_actif == 'oui'
464 15 Benjamin Bohard
465 15 Benjamin Bohard
:fromhost-ip, startswith, "%%adresse_ip_brO[:-2]" ?DynLocalDispatch
466 15 Benjamin Bohard
& ~
467 15 Benjamin Bohard
%end if
468 15 Benjamin Bohard
469 15 Benjamin Bohard
*.* ?DynRemoteDispatch
470 5 Benjamin Bohard
%end if
471 1 Benjamin Bohard
</pre>
472 1 Benjamin Bohard
Actuellement, les services qui disposent de règles spécifiques sont squid, charon, iptables, ufw, smbd, nmbd, named, exim4. Une règle générale peut être ajoutée pour traiter les autres cas. Ces règles personnalisées ne sont pas essentielles sauf dans le cas de fork (exemple de rsyslog qui ajoute le numéro de PID au nom de programme de ses différentes instances). Dans ce cas, il faut une règle avec une expression régulière ou startswith (ou utiliser la facility si elle est univoque).
473 1 Benjamin Bohard
474 22 Benjamin Bohard
h3. L'organisation de la configuration (>= EOLE 2.3.9)
475 22 Benjamin Bohard
476 22 Benjamin Bohard
La lecture séquentielle de la configuration de rsyslog impose une organisation particulière :
477 22 Benjamin Bohard
* les modules (entrée, sortie) doivent être chargés avant d'être utilisés ;
478 22 Benjamin Bohard
* les ensembles de règles doivent être spécifiés avant d'être associés aux entrées ;
479 22 Benjamin Bohard
* les modèles doivent être spécifiés avant d'être utilisés ;
480 22 Benjamin Bohard
* les messages ne doivent pas être sortis de la chaîne de traitement prématurément.
481 22 Benjamin Bohard
482 22 Benjamin Bohard
Sous-dossiers et fichiers du répertoire /etc/rsyslog.d :
483 22 Benjamin Bohard
484 22 Benjamin Bohard
* aggregation/ : contient les règles pour l'envoi des journaux à une machine distante ;
485 22 Benjamin Bohard
* templates/ : contient les modèles dynamiques (peuvent aussi être placés en en-tête des filtres) ;
486 22 Benjamin Bohard
* eole_views/ : contient les vues (filtres qui ne sortent pas les messages de la chaîne de traitement) définies par EOLE ;
487 22 Benjamin Bohard
* custom_views/ : contient les vues (filtres qui ne sortent pas les messages de la chaîne de traitement) définies localement ;
488 22 Benjamin Bohard
* custom_traps/ : contient les pièges (filtres qui sortent les messages de la chaîne de traitement) définies localement ;
489 22 Benjamin Bohard
* eole_traps/ : contient les pièges (filtres qui sortent les messages de la chaîne de traitement) définies par EOLE ;
490 22 Benjamin Bohard
* default_dispatch.conf : filtre générique.
491 22 Benjamin Bohard
492 22 Benjamin Bohard
h4. rsyslog.conf
493 22 Benjamin Bohard
494 25 Benjamin Bohard
eole-common:source:tmpl/rsyslog.conf@476ca7cd
495 22 Benjamin Bohard
496 22 Benjamin Bohard
Le changement porte sur l'inclusion des fragments de configuration et le déplacement de la directive d'import du module omrelp.
497 22 Benjamin Bohard
<pre>
498 22 Benjamin Bohard
#  /etc/rsyslog.conf    Configuration file for rsyslog.
499 22 Benjamin Bohard
#
500 22 Benjamin Bohard
#                       For more information see
501 22 Benjamin Bohard
#                       /usr/share/doc/rsyslog-doc/html/rsyslog_conf.html
502 22 Benjamin Bohard
#
503 22 Benjamin Bohard
#  Default logging rules can be found in /etc/rsyslog.d/50-default.conf
504 22 Benjamin Bohard
505 22 Benjamin Bohard
506 22 Benjamin Bohard
#################
507 22 Benjamin Bohard
#### MODULES ####
508 22 Benjamin Bohard
#################
509 22 Benjamin Bohard
510 22 Benjamin Bohard
$ModLoad imuxsock # provides support for local system logging
511 22 Benjamin Bohard
$ModLoad immark  # provides --MARK-- message capability
512 22 Benjamin Bohard
513 22 Benjamin Bohard
# commented in container (eole-conteneur/lxc_install.sh l.216-7)
514 22 Benjamin Bohard
$ModLoad imklog   # provides kernel logging support (previously done by rklogd)
515 22 Benjamin Bohard
$KLogPath /proc/kmsg
516 22 Benjamin Bohard
517 22 Benjamin Bohard
$PreserveFQDN on
518 22 Benjamin Bohard
519 22 Benjamin Bohard
# utilisation du chiffrement
520 22 Benjamin Bohard
%if %%activer_log_distant == 'oui' and ((%%activer_reception_logs_tcp == 'oui' and %%rsyslog_reception_tls == 'oui' ) or (%%activer_envoi_logs == "oui" and %%rsyslog_envoi_tls == "oui"))
521 22 Benjamin Bohard
522 22 Benjamin Bohard
# configuration general pour le chiffrement
523 22 Benjamin Bohard
$DefaultNetstreamDriver gtls
524 22 Benjamin Bohard
$DefaultNetstreamDriverCAFile %%rsyslog_ca_file
525 22 Benjamin Bohard
$DefaultNetstreamDriverCertFile  %%rsyslog_cert_file
526 22 Benjamin Bohard
$DefaultNetstreamDriverKeyFile  %%rsyslog_privkey_file
527 22 Benjamin Bohard
528 22 Benjamin Bohard
%end if
529 22 Benjamin Bohard
530 22 Benjamin Bohard
# utilisation du protocole RELP
531 22 Benjamin Bohard
%if %%mode_conteneur_actif == 'oui' or (%%activer_log_distant == 'oui' and %%activer_reception_logs == 'oui' and %%activer_reception_logs_relp == 'oui')
532 22 Benjamin Bohard
533 22 Benjamin Bohard
$ModLoad imrelp
534 22 Benjamin Bohard
$InputRELPServerRun 20514
535 22 Benjamin Bohard
536 22 Benjamin Bohard
%end if
537 22 Benjamin Bohard
538 22 Benjamin Bohard
# utilisation du protocole TCP
539 22 Benjamin Bohard
%if %%activer_log_distant == 'oui' and %%activer_reception_logs == 'oui' and %%activer_reception_logs_tcp == 'oui'
540 22 Benjamin Bohard
541 22 Benjamin Bohard
$ModLoad imtcp
542 22 Benjamin Bohard
543 22 Benjamin Bohard
# configuration TLS propre a la reception
544 22 Benjamin Bohard
%if %%rsyslog_reception_tls == "oui"
545 22 Benjamin Bohard
546 22 Benjamin Bohard
$InputTCPServerStreamDriverMode 1
547 22 Benjamin Bohard
$InputTCPServerStreamDriverAuthMode x509/name
548 22 Benjamin Bohard
$IncludeConfig /etc/rsyslog.d/incoming_peers/*.peers
549 22 Benjamin Bohard
550 22 Benjamin Bohard
%end if
551 22 Benjamin Bohard
552 22 Benjamin Bohard
$InputTCPServerRun 10514
553 22 Benjamin Bohard
%end if
554 22 Benjamin Bohard
555 22 Benjamin Bohard
# utilisation du protocole UDP
556 22 Benjamin Bohard
%if %%activer_log_distant == 'oui' and %%activer_reception_logs == 'oui' and %%activer_reception_logs_udp == 'oui'
557 22 Benjamin Bohard
558 22 Benjamin Bohard
$ModLoad imudp
559 22 Benjamin Bohard
$AllowedSender UDP%slurp
560 22 Benjamin Bohard
%for %%adresse in %%adresses_ip_clients_logs_udp
561 22 Benjamin Bohard
, %%adresse/%%calc_classe(%%adresse.netmask_client_logs_udp)%slurp
562 22 Benjamin Bohard
%end for
563 22 Benjamin Bohard
564 22 Benjamin Bohard
$UDPServerRun 514
565 22 Benjamin Bohard
566 22 Benjamin Bohard
%end if
567 22 Benjamin Bohard
568 22 Benjamin Bohard
###########################
569 22 Benjamin Bohard
#### GLOBAL DIRECTIVES ####
570 22 Benjamin Bohard
###########################
571 22 Benjamin Bohard
572 22 Benjamin Bohard
#
573 22 Benjamin Bohard
# Use traditional timestamp format.
574 22 Benjamin Bohard
# To enable high precision timestamps, comment out the following line.
575 22 Benjamin Bohard
#
576 22 Benjamin Bohard
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
577 22 Benjamin Bohard
578 22 Benjamin Bohard
# Filter duplicated messages
579 22 Benjamin Bohard
$RepeatedMsgReduction on
580 22 Benjamin Bohard
581 22 Benjamin Bohard
#
582 22 Benjamin Bohard
# Set the default permissions for all log files.
583 22 Benjamin Bohard
#
584 22 Benjamin Bohard
$DirOwner syslog
585 22 Benjamin Bohard
$DirGroup adm
586 22 Benjamin Bohard
$FileOwner syslog
587 22 Benjamin Bohard
$FileGroup adm
588 22 Benjamin Bohard
$FileCreateMode 0640
589 22 Benjamin Bohard
$DirCreateMode 0755
590 22 Benjamin Bohard
$Umask 0022
591 22 Benjamin Bohard
$PrivDropToUser syslog
592 22 Benjamin Bohard
$PrivDropToGroup adm
593 22 Benjamin Bohard
594 22 Benjamin Bohard
%if %%activer_log_distant == 'oui' and %%activer_envoi_logs == 'oui' and  %%rsyslog_envoi_tls == 'non'
595 22 Benjamin Bohard
#
596 22 Benjamin Bohard
# Use omrelp module to send logs.
597 22 Benjamin Bohard
#
598 22 Benjamin Bohard
599 22 Benjamin Bohard
$ModLoad omrelp
600 22 Benjamin Bohard
%end if
601 22 Benjamin Bohard
602 22 Benjamin Bohard
#
603 22 Benjamin Bohard
# Include config files in /etc/rsyslog.d/
604 22 Benjamin Bohard
#
605 22 Benjamin Bohard
$IncludeConfig /etc/rsyslog.d/aggregation/*.conf
606 22 Benjamin Bohard
$IncludeConfig /etc/rsyslog.d/templates/*.conf
607 22 Benjamin Bohard
$IncludeConfig /etc/rsyslog.d/eole-views/*.conf
608 22 Benjamin Bohard
$IncludeConfig /etc/rsyslog.d/custom-views/*.conf
609 22 Benjamin Bohard
$IncludeConfig /etc/rsyslog.d/custom-traps/*.conf
610 22 Benjamin Bohard
$IncludeConfig /etc/rsyslog.d/eole-traps/*.conf
611 22 Benjamin Bohard
$IncludeConfig /etc/rsyslog.d/default_dispatching.conf
612 22 Benjamin Bohard
</pre>
613 22 Benjamin Bohard
614 22 Benjamin Bohard
h4. rsyslog.d/
615 22 Benjamin Bohard
616 28 Benjamin Bohard
h5. aggregation
617 28 Benjamin Bohard
618 28 Benjamin Bohard
Le répertoire aggregation regroupe les règles pour l'envoi à un serveur distant.
619 26 Benjamin Bohard
eole-common:source:tmpl/rsyslog_aggregation.conf@476ca7cd
620 23 Benjamin Bohard
621 23 Benjamin Bohard
L'import du module omrelp est supprimé (ajouté dans rsyslog.conf) et la possibilité de définir une plage horaire pour l'envoi différé est ajoutée (expérimental).
622 22 Benjamin Bohard
<pre>
623 22 Benjamin Bohard
%if %%activer_log_distant == 'oui' and %%activer_envoi_logs == 'oui' and %%envoyer_tous_logs == 'oui'
624 22 Benjamin Bohard
625 22 Benjamin Bohard
$WorkDirectory /var/log/rsyslog/queues
626 22 Benjamin Bohard
$ActionQueueType LinkedList
627 22 Benjamin Bohard
  %if %%utiliser_rsyslog_plage_envoi_globale == 'oui' and %%rsyslog_plage_globale_heure_debut != '' and %%rsyslog_plage_globale_heure_fin != ''
628 22 Benjamin Bohard
$ActionQueueSize 10000
629 22 Benjamin Bohard
$ActionQueueDequeueTimeBegin %%rsyslog_plage_globale_heure_debut
630 22 Benjamin Bohard
$ActionQueueDequeueTimeEnd %%rsyslog_plage_globale_heure_fin
631 22 Benjamin Bohard
  %end if
632 22 Benjamin Bohard
$ActionQueueFileName send_all
633 22 Benjamin Bohard
$ActionQueueSaveOnShutdown on
634 22 Benjamin Bohard
635 22 Benjamin Bohard
  %if %%rsyslog_envoi_tls == 'oui'
636 22 Benjamin Bohard
$ActionSendStreamDriverAuthMode x509/name
637 22 Benjamin Bohard
$IncludeConfig /etc/rsyslog.d/outgoing_peers/*.peers
638 22 Benjamin Bohard
$ActionSendStreamDriverMode 1
639 22 Benjamin Bohard
*.* @@%%adresse_ip_serveur_logs:10514
640 22 Benjamin Bohard
  %else
641 22 Benjamin Bohard
*.* :omrelp:%%adresse_ip_serveur_logs:20514
642 22 Benjamin Bohard
  %end if
643 22 Benjamin Bohard
644 22 Benjamin Bohard
%else
645 22 Benjamin Bohard
# Cette machine n'est pas configurée pour transmettre ses logs en globalité à une machine distante.
646 27 Benjamin Bohard
%end if
647 27 Benjamin Bohard
</pre>
648 27 Benjamin Bohard
649 28 Benjamin Bohard
h5. templates
650 27 Benjamin Bohard
651 28 Benjamin Bohard
Le dossier templates regroupe les directives template de rsyslog.
652 28 Benjamin Bohard
653 1 Benjamin Bohard
eole-common:source:tmpl/rsyslog_templates.conf@476ca7cd
654 26 Benjamin Bohard
<pre>
655 22 Benjamin Bohard
$template DynLocalDispatch, "/var/log/rsyslog/local/%programname%/%programname%.%syslogseverity-text%.log"
656 22 Benjamin Bohard
657 1 Benjamin Bohard
$template DynRemoteDispatch, "/var/log/rsyslog/remote/%fromhost%/%programname%/%programname%.%syslogseverity-text%.log"
658 22 Benjamin Bohard
</pre>
659 1 Benjamin Bohard
660 27 Benjamin Bohard
eole-common:source:tmpl/rsyslog_errors.conf@476ca7cd
661 22 Benjamin Bohard
<pre>
662 26 Benjamin Bohard
*.err  /var/log/syslog
663 27 Benjamin Bohard
</pre>
664 22 Benjamin Bohard
665 28 Benjamin Bohard
h5. eole-views
666 28 Benjamin Bohard
667 28 Benjamin Bohard
Le dossier eole-views contient les règles "passantes" élaborées par EOLE.
668 27 Benjamin Bohard
eole-common:source:tmpl/rsyslog_views_auth.conf@476ca7cd
669 1 Benjamin Bohard
<pre>
670 1 Benjamin Bohard
$template DynLocalAuth, "/var/log/rsyslog/local/auth/auth.%syslogseverity-text%.log"
671 1 Benjamin Bohard
$template DynRemoteAuth, "/var/log/rsyslog/remote/%fromhost%/auth/auth.%syslogseverity-text%.log"
672 1 Benjamin Bohard
%if %%activer_reception_logs == 'non'
673 1 Benjamin Bohard
auth, authpriv.* ?DynLocalAuth
674 1 Benjamin Bohard
%else
675 1 Benjamin Bohard
if $syslogfacility-text startswith 'auth' and $fromhost-ip startswith '127' then ?DynLocalAuth
676 1 Benjamin Bohard
 %if %%mode_conteneur_actif == 'oui'
677 1 Benjamin Bohard
if $syslogfacility-text startswith 'auth' and ($fromhost-ip startswith '%%adresse_ip_br0[:-2]' or $fromhost startswith '%%adresse_ip_br0[:-2]') then ?DynLocalAuth
678 1 Benjamin Bohard
if $syslogfacility-text startswith 'auth' and not ($fromhost-ip startswith '%%adresse_ip_br0[:-2]' or $fromhost startswith '%%adresse_ip_br0[:-2]' or $fromhost-ip startswith '127') then ?DynRemoteAuth
679 1 Benjamin Bohard
 %else
680 1 Benjamin Bohard
if $syslogfacility-text startswith 'auth' and not ($fromhost-ip startswith '%%adresse_ip_br0[:-2]' or $fromhost startswith '%%adresse_ip_br0[:-2]' or $fromhost-ip startswith '127') then ?DynRemoteAuth
681 1 Benjamin Bohard
 %end if
682 1 Benjamin Bohard
%end if
683 1 Benjamin Bohard
</pre>
684 1 Benjamin Bohard
685 28 Benjamin Bohard
h5. custom-views
686 28 Benjamin Bohard
687 28 Benjamin Bohard
Le dossier custom-views est laissé à la disposition des administrateurs souhaitant insérer des règles "passantes".
688 28 Benjamin Bohard
689 28 Benjamin Bohard
Les règles personnalisées pour filtrer les services individuellement suivent le modèle de la précédente.
690 28 Benjamin Bohard
691 28 Benjamin Bohard
h5. custom-traps
692 28 Benjamin Bohard
693 28 Benjamin Bohard
Le dossier custom-traps est laissé à la disposition des administrateurs souhaitant insérer des règles "non passantes".
694 28 Benjamin Bohard
695 28 Benjamin Bohard
Les règles personnalisées pour filtrer les services individuellement suivent le modèle de la suivante.
696 28 Benjamin Bohard
697 28 Benjamin Bohard
h5. eole-traps
698 28 Benjamin Bohard
699 28 Benjamin Bohard
Le dossier eole-traps contient les règles "non passantes" élaborées par EOLE.
700 22 Benjamin Bohard
701 22 Benjamin Bohard
eole-common:source:tmpl/rsyslog_traps_rsyslog.conf@476ca7cd
702 22 Benjamin Bohard
<pre>
703 22 Benjamin Bohard
$template DynLocalRsyslog, "/var/log/rsyslog/local/rsyslog/rsyslog.%syslogseverity-text%.log"
704 27 Benjamin Bohard
$template DynRemoteRsyslog, "/var/log/rsyslog/remote/%fromhost%/rsyslog/rsyslog.%syslogseverity-text%.log"
705 22 Benjamin Bohard
%if %%activer_reception_logs == 'non'
706 1 Benjamin Bohard
:programname, startswith, "rsyslog" ?DynLocalRsyslog
707 1 Benjamin Bohard
%else
708 1 Benjamin Bohard
if $programname startswith 'rsyslog' and $fromhost-ip startswith '127' then ?DynLocalRsyslog
709 1 Benjamin Bohard
& ~
710 1 Benjamin Bohard
%if %%mode_conteneur_actif == 'oui'
711 1 Benjamin Bohard
if $programname startswith 'rsyslog' and $fromhost-ip startswith '%%adresse_ip_br0[:-2]' then ?DynLocalRsyslog
712 1 Benjamin Bohard
& ~
713 22 Benjamin Bohard
%end if
714 1 Benjamin Bohard
:programname, startswith, "rsyslog" ?DynRemoteRsyslog
715 22 Benjamin Bohard
& ~
716 22 Benjamin Bohard
%end if
717 1 Benjamin Bohard
718 22 Benjamin Bohard
</pre>
719 22 Benjamin Bohard
720 29 Benjamin Bohard
h5. default_dispatching.conf
721 29 Benjamin Bohard
722 27 Benjamin Bohard
eole-common:source:tmpl/rsyslog_default_dispatching.conf@476ca7cd
723 22 Benjamin Bohard
<pre>
724 27 Benjamin Bohard
:fromhost-ip, startswith, "127" ?DynLocalDispatch
725 22 Benjamin Bohard
& ~
726 22 Benjamin Bohard
%if %%mode_conteneur_actif == 'oui'
727 27 Benjamin Bohard
:fromhost-ip, startswith, "%%adresse_ip_br0[:-2]" ?DynLocalDispatch
728 22 Benjamin Bohard
& ~
729 27 Benjamin Bohard
# Use fromhost in addition to fromhost-ip since there are issues
730 27 Benjamin Bohard
# http://dev-eole.ac-dijon.fr/issues/1204#note-4
731 27 Benjamin Bohard
:fromhost, startswith, "%%adresse_ip_br0[:-2]" ?DynLocalDispatch
732 27 Benjamin Bohard
& ~
733 22 Benjamin Bohard
%end if
734 27 Benjamin Bohard
:fromhost, isequal, "" ?DynLocalDispatch
735 27 Benjamin Bohard
& ~
736 27 Benjamin Bohard
%if %%activer_log_distant == 'oui' and %%activer_reception_logs == 'oui'
737 22 Benjamin Bohard
*.* ?DynRemoteDispatch
738 27 Benjamin Bohard
& ~
739 22 Benjamin Bohard
%end if
740 22 Benjamin Bohard
</pre>
741 27 Benjamin Bohard
742 30 Benjamin Bohard
h4. Couverture des règles
743 30 Benjamin Bohard
744 30 Benjamin Bohard
Actuellement, les services qui disposent de règles spécifiques sont squid, charon, iptables, ufw, smbd, nmbd, named, exim4. Une règle générale traite les autres cas. Ces règles personnalisées ne sont pas essentielles sauf dans le cas de fork (exemple de rsyslog qui ajoute le numéro de PID au nom de programme de ses différentes instances). Dans ce cas, il faut une règle avec une expression régulière ou startswith (ou utiliser la facility si elle est univoque).
745 1 Benjamin Bohard
746 1 Benjamin Bohard
h3. Utilisation des ensembles de règles
747 3 Benjamin Bohard
748 1 Benjamin Bohard
Les règles peuvent être regroupées et les groupes exécutées en fonction de la provenance des messages. La dissociation des ports pour les différentes sources permet d'exécuter des jeux de règles différents pour les messages originaires des conteneurs, de machines distantes ou les messages locaux.
749 1 Benjamin Bohard
750 1 Benjamin Bohard
Le protocole RELP ne bénéficie pas de la possibilité d'utiliser les ensembles de règles (la directive pour associer un ensemble donné à une connection RELP n'apparaît que dans la version 6.3.6 : la version prévue pour precise est la 5.8.6).
751 8 Daniel Dehennin
752 1 Benjamin Bohard
h2. L'arborescence typique
753 8 Daniel Dehennin
754 8 Daniel Dehennin
<pre>
755 8 Daniel Dehennin
/var/log/syslog
756 8 Daniel Dehennin
├── local
757 8 Daniel Dehennin
│   ├── exim
758 8 Daniel Dehennin
│   │   ├── exim.alert
759 8 Daniel Dehennin
│   │   ├── exim.info
760 8 Daniel Dehennin
│   │   └── exim.notice
761 8 Daniel Dehennin
│   └── smbd
762 8 Daniel Dehennin
│       ├── smbd.debug
763 8 Daniel Dehennin
│       └── smbd.info
764 8 Daniel Dehennin
└── remote
765 8 Daniel Dehennin
    ├── 10.11.12.13
766 8 Daniel Dehennin
    │   ├── aaa
767 8 Daniel Dehennin
    │   │   └── aaa.info
768 8 Daniel Dehennin
    │   └── ipsec
769 8 Daniel Dehennin
    │       └── ipsec.error
770 8 Daniel Dehennin
    ├── 15.16.17.18
771 8 Daniel Dehennin
    │   ├── apache2
772 8 Daniel Dehennin
    │   │   └── apache2.error
773 8 Daniel Dehennin
    │   └── kerberos
774 8 Daniel Dehennin
    │       └── kerberos.info
775 8 Daniel Dehennin
    └── sw12-4
776 6 Benjamin Bohard
        └── aaa
777 6 Benjamin Bohard
            └── aaa.info
778 6 Benjamin Bohard
</pre>
779 6 Benjamin Bohard
780 6 Benjamin Bohard
h2. Rotation des journaux
781 6 Benjamin Bohard
782 7 Benjamin Bohard
h3. Principes de logrotate
783 7 Benjamin Bohard
784 6 Benjamin Bohard
* options globales : des options peuvent être définies en début de fichier ;
785 6 Benjamin Bohard
* -overriding : les fichiers sont lus séquentiellement, celui qui parle en dernier à raison- ;
786 6 Benjamin Bohard
* gobbling : les règles spécifques peuvent utiliser le wildcard * (problème des redondances de règles cependant.
787 7 Benjamin Bohard
788 1 Benjamin Bohard
h3. Mise en œuvre de logrotate
789 1 Benjamin Bohard
790 1 Benjamin Bohard
Pour composer avec les contraintes de logrotate, on ajoute .log à la fin de chaque fihier. Cela permet d'utiliser le globbing sur un dossier en excluant les journaux archivés.