Standards:SMIRK LOG1106

From documentation SEPAmail
Jump to navigation Jump to search


Statut de ce document discussion

Cette demande de commentaires (SMIRK pour SepaMail Internal Request for Komment) spécifie les règles communes de journalisation. Ce SMIRK est un standard de la communauté SEPAmail, spécifié et maintenu par le scheme SEPAmail.

Ce document est en statut discussion.

Introduction

La journalisation consiste à inscrire des informations permettant d'externaliser des fonctions de :

  • supervision de l'exploitation
  • vérification du fonctionnement protocolaire de SEPAmail
  • réalisation de piste d'audit
  • contrôle de la fraude interne
  • authentification des échanges par contrôle d'huissier de justice

Cette journalisation doit permettre ces fonctions externes dans le respect des exigences fonctionnelles de l'exploitation SEPAmail, notamment en terme de sécurité, qualité de service et confidentialité.

Ce document spécifie les règles à mettre en œuvre dans le cadre énoncé ci-dessus.

Les principes

Les principes retenus pour la journalisation sont :

  • l'agrégation possible avec la syslog du système d'exploitation
  • le confinement personnalisé
  • pas d'écriture possible si ce n'est à la fin du fichier
  • la séparation possible des journaux sur paramétrage
  • des niveaux
  • un utilisateur dédié avec des droits restreints
  • une rotation des journaux après archivage
  • une piste sobre et claire, en anglais, complète permettant d'agréger des journaux sans confusion de doublons ou de perte d'information.
  • un horodatage « Date Heure Format GMT »
  • des bonnes pratiques conformes à la RFC 5424[1]

Les niveaux

On utilise la facilité et la sévérité de la RFC 5424, soit : 2 (mail system) pour la facilité et les sévérités résumées dans le tableau ci-dessous :

Les niveaux de la journalisation
Sévérité Description
0 Emergency: system is unusable
1 Alert: action must be taken immediately
2 Critical: critical conditions
3 Error: error conditions
4 Warning: warning conditions
5 Notice: normal but significant condition
6 Informational: informational messages
7 Debug: debug-level messages

Les niveaux 0 à 4 sont essentiellement utilisés pour prévenir l'exploitation de SEPAmail.

Les niveaux 5 et 6 sont utilisés respectivement pour les traces signifiantes autour du protocole d'échange SEPAmail (réception de missive, émission de missive etc...).

Le niveau 7 sert exclusivement à la recherche et la réparation d'anomalie.

La structure de l'information

L'information est structurée selon la RFC 5424 avec les éléments suivants.

     The syslog message has the following ABNF [RFC5234] definition:
     SYSLOG-MSG      = HEADER SP STRUCTURED-DATA [SP MSG]
     HEADER          = PRI VERSION SP TIMESTAMP SP HOSTNAME
         SP APP-NAME SP PROCID SP MSGID
     PRI             = "<" PRIVAL ">"
     PRIVAL          = 1*3DIGIT ; range 0 .. 191
     VERSION         = NONZERO-DIGIT 0*2DIGIT
     HOSTNAME        = NILVALUE / 1*255PRINTUSASCII
     APP-NAME        = NILVALUE / 1*48PRINTUSASCII
     PROCID          = NILVALUE / 1*128PRINTUSASCII
     MSGID           = NILVALUE / 1*32PRINTUSASCII
     TIMESTAMP       = NILVALUE / FULL-DATE "T" FULL-TIME
     FULL-DATE       = DATE-FULLYEAR "-" DATE-MONTH "-" DATE-MDAY
     DATE-FULLYEAR   = 4DIGIT
     DATE-MONTH      = 2DIGIT  ; 01-12
     DATE-MDAY       = 2DIGIT  ; 01-28, 01-29, 01-30, 01-31 based on
   ; month/year
     FULL-TIME       = PARTIAL-TIME TIME-OFFSET
     PARTIAL-TIME    = TIME-HOUR ":" TIME-MINUTE ":" TIME-SECOND
         [TIME-SECFRAC]
     TIME-HOUR       = 2DIGIT  ; 00-23
     TIME-MINUTE     = 2DIGIT  ; 00-59
     TIME-SECOND     = 2DIGIT  ; 00-59
     TIME-SECFRAC    = "." 1*6DIGIT
     TIME-OFFSET     = "Z" / TIME-NUMOFFSET
     TIME-NUMOFFSET  = ("+" / "-") TIME-HOUR ":" TIME-MINUTE
     STRUCTURED-DATA = NILVALUE / 1*SD-ELEMENT
     SD-ELEMENT      = "[" SD-ID *(SP SD-PARAM) "]"
     SD-PARAM        = PARAM-NAME "=" %d34 PARAM-VALUE %d34
     SD-ID           = SD-NAME
     PARAM-NAME      = SD-NAME
     PARAM-VALUE     = UTF-8-STRING ; characters '"', '\' and
        ; ']' MUST be escaped.
     SD-NAME         = 1*32PRINTUSASCII
         ; except '=', SP, ']', %d34 (")
     MSG             = MSG-ANY / MSG-UTF8
     MSG-ANY         = *OCTET ; not starting with BOM
     MSG-UTF8        = BOM UTF-8-STRING
     BOM             = %xEF.BB.BF

APP-NAME

Le nom de l'application est celui du composant logiciel SEPAmail qui génère la piste de journalisation :

  • SMART
  • SMILE
  • RUBIS
  • GEMME
  • SAPPhire

PROCID

Remarque : reprendre la fonctionnalité de reprise en cas de reboot avec l'identifiant de l'id du processus ?

MSGID

Remarque : lister les différents types de messagepossibles : MsvNomIN, MsvNomOut, MsvAckIn etc...

STRUCTURED-DATA

Remarque : il faut spécifier les normes communes.

On y retrouve au moins l'information suivante, selon les cas :

  • condensat de la missive
  • signature de la missive
  • champ to et from de l'enveloppe SMTP
  • code erreur avec description succincte en anglais
  • MsvRcv et MsvSnd (smart et smile)
  • MsgRcv et MsgSbd (rubis, gemme et sapphire)

Références