Projet

Général

Profil

Gestion logs » Historique » Version 52

Benjamin Bohard, 09/06/2014 14:23

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