Projet

Général

Profil

Gestion logs » Historique » Version 32

Benjamin Bohard, 09/06/2014 12:20

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