Groupe de travail Réseau	D. New & M. Rose	
Request for Comments : 3195	Dover Beach Consulting, Inc.	
Catégorie : En cours de normalisation	novembre 2001	
Traduction Claude Brière de L’Isle		

Livraison fiable pour syslog

Statut de ce mémoire
Le présent document spécifie un protocole Internet en cours de normalisation pour la communauté de l’Internet, et appelle à des discussions et des suggestions pour son amélioration. Prière de se reporter à l’édition actuelle du STD 1 "Normes des protocoles officiels de l’Internet" pour connaître l’état de normalisation et le statut de ce protocole. La distribution du présent mémoire n’est soumise à aucune restriction.

Notice de copyright
Copyright (C) The Internet Society (2001). Tous droits réservés

Résumé
Le protocole Syslog BSD décrit un certain nombre d’options de service qui se rapportent à la propagation de messages d’événement. Le présent mémoire décrit deux transpositions du protocole syslog sur des connexions TCP, toutes deux utiles pour la livraison fiable des messages d’événement. La première donne une transposition triviale qui maximise la rétro compatibilité. La seconde donne une transposition plus complète. Toutes deux fournissent un degré de robustesse et de sécurité dans la livraison du message qui est indisponible au protocole syslog usuel fondé sur UDP, en fournissant le chiffrement et l’authentification sur un protocole en mode connexion.

Table des Matières
1. Introduction	2
2. Modèle	2
3. Profil RAW	3
3.1 Généralités sur le profil RAW	3
3.2 Identification et initialisation du profil RAW	5
3.3 Syntaxe du message de profil RAW	5
3.4 Sémantique du message de profil RAW	5
4. Profil COOKED	5
4.1 Généralités sur le profil COOKED	5
4.2 Identification et initialisation du profil COOKED	6
4.3 Syntaxe de message du profil COOKED	6
4.4 Sémantique du message de profil COOKED	6
5. Dispositions supplémentaires	13
5.1 Authenticité de message	13
5.2 Répétition de message	13
5.3 Intégrité de message	13
5.4 Observation de message	14
5.5 Résumé des pratiques recommandées	14
6. Enregistrements initiaux	14
6.1 Enregistrement : profil RAW	14
6.2 Enregistrement : profil COOKED	14
7. DTD syslog	14
8. Codes de réponse	16
9. Considérations relatives à l’IANA	17
9.1 Enregistrement : profils BEEP	17
9.2 Enregistrement : numéro d’accès (bien connu) de système TCP pour syslog-conn	17
10. Considérations sur la sécurité	17
11. Remerciements	17
12. Références	17
Adresses des auteurs	18
Déclaration complète de droits de reproduction	18

1.	Introduction

Le protocole syslog [RFC3164] présente un spectre d’options de service pour approvisionner un service de connexion fondé sur l’événement sur un réseau. Chaque option est associée à des avantages et des inconvénients. En conséquence, le choix d’approvisionner une combinaison d’options est une décision à la fois d’ingénierie et administrative. Le présent mémoire décrit comment réaliser le protocole syslog lorsque une livraison fiable est choisie comme service demandé. Il sort du domaine d’application du présent mémoire de discuter pour, ou contre, l’utilisation de la livraison fiable pour le protocole syslog.

Dans le présent document, les mots clés "DOIT", "NE DOIT PAS", "EXIGE", "DEVRA", "NE DEVRA PAS", "DEVRAIT", "NE DEVRAIT PAS", "RECOMMETE", "PEUT", et "FACULTATIF" sont à interpréter comme décrit dans le BCP 14, [RFC2119].

2.	Modèle

Le service syslog prend en charge trois rôles de fonctionnement : appareil, relais, et collecteur.

Appareils et collecteurs agissent respectivement comme source et comme réceptacle, des entrées syslog. Dans le cas le plus simple, seuls un appareil et un collecteur sont présents. Par exemple,

     +--------+        +-----------+
     |Appareil| -----> | Collecteur|
     +--------+        +-----------+

Les relations entre les appareils et les collecteurs sont potentiellement de plusieurs à plusieurs. C’est-à-dire qu’un appareil peut communiquer avec de nombreux collecteurs ; de même, un collecteur peut communiquer avec de nombreux appareils.

Un relais fonctionne selon les deux modes, acceptant des entrées syslog des appareils et autres relais et transmettant ces entrées aux collecteurs et autres relais.

Par exemple,

     +--------+      +-------+        +-------+      +-----------+
     |Appareil| ---> | Relais| -...-> | Relais| ---> | Collecteur|
     +--------+      +-------+        +-------+      +-----------+

Comme le montre la figure, plus d’un relais peut être présent entre un appareil et un collecteur.

Un relais peut être nécessaire pour des raisons administratives. Par exemple, un relais peut fonctionner comme un mandataire d’application sur un pare-feu. Aussi, il peut y avoir un relais par département d’une entreprise, qui authentifie tous les appareils du département, et qui à son tour s’authentifie auprès d’un collecteur général de l’entreprise.

Un relais peut aussi servir à filtrer les messages. Par exemple, un relais peut collecter les informations syslog provenant d’un concentrateur serveur à l’échelle de la Toile toute entière, récapitulant les comptes de touches pour générer des rapports, transmettant les messages "page non trouvée" (qui indique une possible rupture de liaison) à un collecteur qui le présente au webmestre, et envoie des messages plus urgents (tels que les rapports de défaillance de matériel) à un collecteur qui les fait passer à un téléavertisseur. Un relais peut aussi être utilisé pour convertir les formats de sortie d’un appareil en entrées d’un collecteur.

On devrait noter que le rôle d’un appareil, relais ou collecteur, n’est pertinent que pour un certain canal BEEP (voir ci-dessous). Un seul serveur peut servir d’appareil, de relais, et de collecteur, tout à la fois, si il y est configuré. Il peut même servir comme relais et comme collecteur pour le même appareil en même temps en utilisant des canaux BEEP différents sur la même session en mode connexion ; cela peut être utile pour collecter des états et relayer des messages d’erreur urgents.

Pour assurer une livraison fiable lors de l’exécution du protocole syslog, le présent mémoire définit deux profils BEEP. BEEP [RFC3080] est un cadre générique de protocole d’application pour les interactions asynchrones en mode connexion. Au sein de BEEP sont fournies, à travers la retransmission, des caractéristiques telles que l’authentification, la confidentialité, et la fiabilité. Deux profils sont définis dans ce mémoire :
o	Le profil RAW est conçu pour fournir de bonnes performances et un faible impact, en utilisant essentiellement le même format que le service syslog existant fondé sur UDP.
o	Le profil COOKED est conçu pour fournir un format d’entrée structuré, dans lequel les entrées individuelles sont acquittées (positivement ou négativement).

Noter que les deux profils fonctionnent sur BEEP. BEEP définit des "transpositions de transport", qui spécifient comment les messages BEEP sont portés sur les technologies de transport sous-jacentes. Au moment de la rédaction de ce document, un seul de ces transports est défini, dans la [RFC3081], qui spécifie BEEP sur TCP. Toutes les transpositions de transport sont obligées de prendre en charge une fiabilité et un séquençage suffisants pour permettre que tous les messages BEEP sur un certain canal soient livrés de façon fiable et dans l’ordre. Donc, les deux profils RAW et COOKED fournissent la livraison fiable de leurs messages.

Le choix du profil est indépendant des rôles opérationnels exposés plus haut.

Par exemple, la liaison appareil relais pourrait être configurée à utiliser le profil RAW, tandis que la liaison relais collecteur pourrait être configurée à utiliser le profil COOKED. (Par exemple, le relais peut analyser les messages syslog RAW à partir de l’appareil, sachant les détails de leurs formats, avant de les passer à un collecteur plus générique.) Bien sûr, le même appareil peut utiliser des profils différents, selon le collecteur auquel il envoie les entrées.

     +--------+        +-------+        +-----------+
     |Appareil| -----> | Relais| -----> | Collecteur|
     +--------+        +-------+        +-----------+

Les appareils et relais PEUVENT découvrir les relais et collecteurs via l’algorithme DNS SRV [RFC2782]. Si il est configuré à cela, le service utilisé est "syslog" et le protocole utilisé est "tcp". Cela permet une administration centrale de l’adressage, la récupération des relais et collecteurs en échec, et l’équilibrage de charge statique. Les politiques de sécurité et les configurations de matériel peuvent être telles que cette configuration d’appareil soit plus sûre que le serveur DNS. Les appareils peuvent avoir des ressources si limitées que l’accès DNS SRV soit inapproprié. Les pare-feu et autres mécanismes d’acheminement restrictifs peuvent devoir être traités avant qu’une connexion syslog fiable puisse être établie. Dans ce cas, le DNS peut n’être pas le mécanisme de configuration le plus approprié.

3.	Profil RAW
3.1	Généralités sur le profil RAW
Le profil RAW est conçu pour un effort minimal de mise en œuvre, une forte efficacité, et une rétro compatibilité. Il est particulièrement approprié dans les cas où le traitement syslog traditionnel va être appliqué.

Il devrait être noté que bien que le profil RAW utilise le même format pour les charges utiles de message que la version UDP qu’utilise syslog, la livraison est fiable. Le profil RAW syslog est un profil de BEEP [RFC3080], et BEEP garantit une livraison fiable dans l’ordre des messages au sein de chaque canal individuel.

Lorsque le profil commence, aucune données portées ne sont fournies. Tous les messages BEEP dans le profil RAW sont spécifiés comme ayant un type de contenu MIME [RFC2046] d’application/flux d’octets. Une fois que le canal est ouvert, celui qui écoute (pas l’initiateur) envoie un message MSG indiquant qu’il est prêt à agir comme collecteur syslog. (Se reporter au paragraphe 2.1 de la [RFC3080] pour la discussion des rôles qu’un homologue BEEP peut effectuer, y compris les définitions des termes "écouteur", "initiateur", "client", et "serveur".)

L’initiateur utilise les réponses ANS pour fournir une ou plusieurs entrées syslog dans le format UDP courant, comme spécifié à la Section 3 de la [RFC3164]. Lorsque l’initiateur n’a plus d’entrées à envoyer, il termine avec une réponse NUL et ferme le canal.

Un exemple pourrait être comme suit :
L: <attente de connexion entrante>
I: <établissement de connexion>
L: RPY 0 0 . 0 201
L: Content-type: application/beep+xml
L:
L: <greeting>
L:   <profile
L:     uri='http://xml.resource.org/profiles/syslog/COOKED' />
L:   <profile uri='http://xml.resource.org/profiles/syslog/RAW' />
L: </greeting>
L: END
I: RPY 0 0 . 0 52
I: Content-type: application/beep+xml
I:
I: <greeting />
I: END
I: MSG 0 1 . 52 133
I: Content-type: application/beep+xml
I:
I: <start number='1'>
I:   <profile uri='http://xml.resource.org/profiles/syslog/RAW' />
I: </start>
I: END
L: RPY 0 1 . 201 100
L: Content-type: application/beep+xml
L:
L: <profile uri='http://xml.resource.org/profiles/syslog/RAW' />
L: END
L: MSG 1 0 . 0 50
L:
L: Services centraux. Ceci n’a pas été un enregistrement.
L: END
I: ANS 1 0 . 0 61 0
I:
I: <29>Oct 27 13:21:08 ductwork imxpd[141]: Alerte de chauffage.END
I: ANS 1 0 . 61 58 1
I:
I: <29>Oct 27 13:22:15 ductwork imxpd[141]: Contacter Tuttle.END
I: NUL 1 0 . 119 0
I: END
L: MSG 0 3 . 301 70
L: Content-Type: application/beep+xml
L:
L: <close number='1' code='200' />
L: END
I: RPY 0 3 . 185 46
I: Content-Type: application/beep+xml
I:
I: <ok />
I: END
I: MSG 0 4 . 231 72
I: Content-Type: application/beep+xml
I:
I: <close number='0' code='200' />
I: END
L: RPY 0 4 . 371 46
L: Content-type: application/beep+xml
L:
L: <ok />
L: END
L: <ferme la connexion>
I: <ferme la connexion>
L: <attente de la prochaine connexion>

On voit ici une session BEEP établie, suivie par l’utilisation du profil RAW. L’initiateur est un appareil, alors que l’écouteur est un collecteur. L’initiateur ouvre le canal, mais l’écouteur envoie le premier MSG. Cela permet à l’initiateur d’envoyer un nombre quelconque de réponses ANS portant des messages d’événement syslog. L’initiateur envoie une réponse NUL pour indiquer qu’il a fini. À réception du NUL, l’écouteur ferme le canal RAW. L’initiateur a le choix de fermer la session BEEP entière ou d’ouvrir un nouveau canal syslog (RAW ou COOKED) pour d’autres transferts. Dans cet exemple, l’initiateur choisit de clore la session BEEP entière.

La redondance pour une trame ANS est d’environ trente octets, une fois que les prises de contact initiales ont été échangées. Si cette redondance est trop élevée, les messages vont alors être vraisemblablement générés à un rythme élevé. Dans ce cas, plusieurs messages syslog peuvent être agrégés en une seule trame ANS, chacune séparée par une séquence CRLF de la précédente. Le message final NE DOIT quand même PAS se terminer par un CRLF.

Par exemple,

L: MSG 1 0 . 0 50
L:
L: Services centraux. Ceci n’a pas été un enregistrement.
L: END
I: ANS 1 0 . 0 119 0
I:
I: <29>Oct 27 13:21:08 ductwork imxpd[141]: Alerte de chauffage.
I: <29>Oct 27 13:21:09 ductwork imxpd[141]: Contacter Tuttle.END
I: NUL 1 0 . 119 0
I: END

3.2	Identification et initialisation du profil RAW
Le profil RAW syslog est identifié par

http://xml.resource.org/profiles/syslog/RAW

dans l’élément BEEP "profile" durant la création de canal.

Aucune données ne sont portées durant la création de canal.

3.3	Syntaxe du message de profil RAW
Tous les messages BEEP dans ce profil ont un type de contenu MIME de application/flux d’octets. Le premier message BEEP de l’écouteur est ignoré et peut bien sûr être vide excepté les en-têtes ; donc, toute syntaxe est acceptable.

Les réponses ANS qu’envoie l’initiateur en réponse DOIVENT être formées conformément à la Section 4 de la [RFC3164]. En particulier, si le receveur agit comme relais, il DOIT suivre les règles établies au paragraphe 4.2.2 de la [RFC3164].

Si plusieurs messages syslog sont inclus dans une seule réponse ANS, chacune est séparée de la précédente par un CRLF. Il n’y a pas de délimiteur de fin, mais chaque longueur de corps de message d’événement syslog DOIT être de 1024 octets au plus, excluant la redondance de tramage BEEP. Noter qu’il NE DOIT PAS y avoir de CRLF entre le texte du message d’événement syslog final et la marque "END" de la queue de la trame BEEP.

3.4	Sémantique du message de profil RAW

Le message MSG d’ouverture de BEEP de l’écouteur n’a pas de sémantique. (C’est le bon endroit pour placer un message d’accueil identifiant.) Les réponses ANS de l’initiateur DOIVENT spécifier une facilité, sévérité, et un message textuel, comme décrit dans la [RFC3164].

4.	Profil COOKED
4.1	Généralités sur le profil COOKED
Le profil COOKED est conçu pour les nouvelles mises en œuvre capables de traiter le protocole syslog. Il fournit une granularité beaucoup plus fine de l’étiquetage d’informations, permettant un plus haut degré d’automatisation du traitement. Naturellement, il comporte aussi à l’appui de cela un niveau de redondance plus important.

Le profil COOKED prend en charge trois éléments intéressants :
o	L’élément "iam" identifie l’envoyeur pour le receveur, permettant à chaque homologue de se désigner auprès de l’autre, et de spécifier les rôles (appareil, relais, ou collecteur) que chacun joue.
o	L’élément "entry" donne une version analysée de l’entrée syslog, avec la déclaration des divers champs intéressants.
o	L’élément "path" identifie une liste de relais à travers lesquels est passée une collection étiquetée d’éléments "entry", ainsi qu’un ensemble de fanions indiquant quelles assurances de sécurité ont été effectives jusqu’à sa livraison.

4.2	Identification et initialisation du profil COOKED
Le profil syslog COOKED est identifié par

http://xml.resource.org/profiles/syslog/COOKED

dans l’élément BEEP "profile" durant la création de canal.

Durant la création de canal, l’élément "profile" correspondant dans l’élément BEEP "start" peut contenir un élément "iam". Si la création de canal réussit, avant d’envoyer la réponse correspondante, l’homologue BEEP traite alors l’élément "iam" et inclut la réponse résultante dans la réplique. Cette réponse sera un élément "ok" ou un élément "error". Le choix de l’élément retourné dépend du provisionnement local du receveur. L’inclusion d’un "iam" dans l’élément "start" initial a exactement la même sémantique que de le passer comme premier message MSG sur le canal.

4.3	Syntaxe de message du profil COOKED
Tous les messages BEEP dans ce profil ont un type de contenu MIME [RFC2046] de application/beep+xml. La syntaxe des éléments individuels est spécifiée à la Section 7.

4.4	Sémantique du message de profil COOKED
Les initiateurs produisent deux éléments : "iam" et "entry", chacun utilisant un message "MSG". L’écouteur produit un "ok" dans les messages "RPY" et "error" dans les messages "ERR". (Voir au paragraphe 2.3.1 de la [RFC3080] les définitions des éléments "error" et "ok".)

4.4.1	Élément IAM
L’élément "iam" sert à identifier un appareil, relais, ou collecteur à une extrémité du canal BEEP avec l’appareil, relais, ou collecteur à l’autre extrémité du canal. L’élément "iam" comporte le type de l’homologue (appareil, relais, ou collecteur) le nom de domaine pleinement qualifié de l’homologue, et l’adresse IP de l’homologue. (L’adresse IP choisie DEVRAIT être l’adresse IP associée au protocole de transport sous-jacent qui porte le canal.) Les données de caractères de l’élément sont du texte de forme libre lisible par l’homme. Elles peuvent être utilisées pour identifier l’homologue, comme en décrivant la localisation physique de la machine.

Un élément "iam" peut être utilisé par l’initiateur du canal à tout moment. L’écouteur répond à un élément "iam" par un "ok" (qui indique l’acceptation) ou par une "error" (qui indique le rejet). L’identité et le rôle effectifs sont spécifiés par le plus récent "iam" auquel on a répondu par un "ok".

Un "iam" pourrait être rejeté (avec un élément "error") par l’écouteur si la confidentialité ou l’authentification qui a été négociée est inadéquate ou si l’usager authentifié n’a pas l’autorisation de servir dans le rôle spécifié. On s’attend à ce que la plupart des installations exigent un "iam" de l’homologue avant d’accepter aucun message "entry".

Par exemple, une création réussie pourrait ressembler à ceci :

I: MSG 0 10 . 1832 259
I: Content-type: application/beep+xml
I:
I: <start number='1'>
I:   <profile
I:       uri='http://xml.resource.org/profiles/syslog/COOKED'>
I:     <![CDATA[ <iam fqdn='lowry.example.com' ip='10.0.0.27'
I:       type='device'/> ]]>
I:   </profile>
I: </start>
L: END
L: RPY 0 10 . 704 138
L: Content-type: application/beep+xml
L:
L: <profile uri='http://xml.resource.org/profiles/syslog/COOKED'>
L:   <![CDATA[ <ok /> ]]>
L: </profile>
L: END

Une création avec un "iam" incorporé qui échoue pourrait ressembler à ceci :

C: MSG 0 12 . 1832 259
C: Content-type: application/beep+xml
C:
C: <start number='1'>
C:   <profile
C:       uri='http://xml.resource.org/profiles/syslog/COOKED'>
C:     <![CDATA[ <iam fqdn='tuttle.example.com' ip='10.0.0.29'
C:       type='relay'/> ]]>
C:   </profile>
C: </start>
C: END
S: RPY 0 12 . 704 241
S: Content-type: application/beep+xml
S:
S: <profile uri='http://xml.resource.org/profiles/syslog/COOKED'>
S:   <![CDATA[
S:     <error code='535'>Usager 'buttle.example.com' non admis
S:       to "iam" for 'tuttle.example.com'</error> ]]>
S: </profile>
S: END

Dans ce cas, le code d’erreur indique que l’usager "buttle.example.com" s’est connecté via un profil SASL, mais la mise en œuvre de profil COOKED syslog prétend être "tuttle.example.com", une discordance que le serveur ne permet pas.

4.4.2	Élément ENTRY
L’élément "entry" porte les détails d’une seule entrée syslog. Les attributs d’un élément "entry" comportent "facility", "severity", "horodatage", "nom d’hôte", et "tag". "Facility" et "severity" ont la sémantique définie au paragraphe 4.1 de la [RFC3164]. Les autres attributs ont la sémantique des paragraphes 4.2.1 et 4.2.3 de la [RFC3164]. Un élément "entry" peut aussi contenir un attribut "pathID", décrit plus loin.

Si le client est un relais, l’élément "entry" DEVRAIT aussi contenir les attributs "deviceFQDN" et "deviceIP", qui spécifient le FQDN et l’adresse IP de l’appareil qui a créé l’entrée à l’origine. Ces attributs peuvent être ajoutés par le relais ou par l’appareil d’origine. Si possible, l’appareil DEVRAIT ajouter ces entrées, en se référant à l’interface la plus étroitement associée à l’entrée syslog. Avant qu’un relais transmette une entrée provenant d’un appareil qui ne porte pas ces attributs, il DEVRAIT les ajouter sur la base de l’élément "iam" qu’il a reçu de l’appareil, ou sur la base de l’adresse de connexion du transport sous-jacent. Un relais NE DOIT PAS ajouter ces champs si ils manquent et si un élément "iam" sur le canal a indiqué que les messages viennent d’un autre relais.

L’attribut "pathID" indique le chemin qu’a suivi cette entrée, passant de l’appareil à travers les relais jusqu’au collecteur final. Syntaxiquement, sa valeur est une chaîne de chiffres qui doivent correspondre à l’attribut "pathID" d’un élément "path" envoyé plus tôt sur le canal actuel. Sémantiquement, il indique que la liste des relais et fanions indiqués dans cet élément "path" précédent s’applique à cet élément "entry".

Les données de caractères pour cet élément sont le message d’événement syslog non structuré qui est l’objet de l’enregistrement. Si l’appareil d’origine livre le message pour la première fois via le profil COOKED, il peut avoir n’importe quelle structure au sein de CDATA. Cependant, pour une compatibilité maximale, l’appareil DEVRAIT formater le CDATA du message conformément aux paragraphes 4.2.1 à 4.2.3 de la [RFC3164].

Dans le message relayé, "tag" DEVRAIT être celle de l’appareil d’origine qui génère l’entrée (sauf si l’appareil ne peut pas fournir une étiquette). Le champ "horodatage" DEVRAIT être celui de l’heure de génération de l’entrée d’origine, plutôt que l’heure à laquelle l’entrée a été passée en sortie du relais. Le "nom d’hôte" DEVRAIT être le nom de l’hôte ou l’adresse IP par laquelle l’appareil se connaît lui-même ; ceci DOIT suivre les règles établies aux paragraphes 4.2.1 à 4.2.3 de la [RFC3164]. Le contenu d’origine du message syslog DOIT être préservé dans le CDATA de l’élément "entry" ; ceci inclut la préservation du contenu exact durant la traduction des formats UDP ou RAW. En particulier, les horodatages NE DOIVENT PAS être réécrits dans le CDATA de l’élément "entry", l’étiquette NE DOIT PAS être retirée du CDATA même si elle est présentée aussi dans les attributs "entry", et ainsi de suite.

Pour être cohérent avec l’esprit de la [RFC3164], un relais qui reçoit un message qui ne contient pas une priorité valide, un horodatage ou nom d’hôte va suivre les mêmes règles générales que décrit au paragraphe 4.2.2 de la [RFC3164] tout en incluant le contenu exact du paquet syslog reçu comme CDATA. Les valeurs de la facilité et de la sévérité seront construites comme étant respectivement 8 et 6 et seront placées dans les attributs appropriés de l’élément "entry". Le nom d’hôte sera le nom de l’appareil comme il est connu du relais et sera aussi inséré dans les attributs de l’élément "entry". L’horodatage devrait être réglé à l’heure de réception, inséré seulement dans les attributs de l’élément "entry". Par exemple, considérons ce message reçu sur l’accès UDP 514 et interprété comme un message syslog traditionnel, en supposant que l’adresse de source IP sous-jacente est celle de la machine "pipeworks" :

<.....eeeek!

Pour être relayé, il doit être modifié comme suit :

C: MSG 1 0 . 2079 156
C: Content-Type: application/beep+xml
C:
C: <entry facility='8' severity='6'
C:   nom d’hôte='pipeworks'
C:   horodatage='Oct 31 23:59:59'
C:  >&lt;.....eeeek!</entry>
C: END
S: RPY 1 0 . 933 45
S: Content-Type: application/beep+xml
S:
S: <ok/>
S: END

Dans un autre exemple, considérons un message reçu qui ne respecte pas correctement les conventions décrites au paragraphe 4.2.2 de la [RFC3164]. En particulier, l’horodatage a une année, donnant un format  non standard :

<166> 1990 Oct 22 01:00:00 bomb tick[0]: BOOM!

Cela serait relayé comme suit :

C: MSG 1 0 . 2235 242
C: Content-Type: application/beep+xml
C:
C: <entry facility='160' severity='6'
C:   nom d’hôte='bomb'
C:   deviceFQDN='bomb.terrorist.net' deviceIP='10.0.0.83'
C:   horodatage='Oct 22 01:00:04'
C:  >&lt;166> 1990 Oct 22 01:00:00 bomb tick[0]: BOOM!</entry>
C: END
S: RPY 1 0 . 978 45
S: Content-Type: application/beep+xml
S:
S: <ok/>
S: END

Noter que la valeur d’étiquette n’était pas directement apparente à partir du message reçu (à cause de l’échec de l’analyse de l’horodatage) de sorte qu’elle n’a pas été incluse dans l’élément "entry".

Il est explicitement permis à un relais d’analyser les messages bruts d’une façon plus sophistiquée, mais toutes les mises en œuvre DOIVENT être capables d’analyser les messages présentés dans le format décrit dans la [RFC3164]. Un relais plus sophistiqué pourrait avoir reconnu l’année et analysé complètement l’heure correcte, l’étiquette, et le nom d’hôte, mais une telle capacité d’analyse supplémentaire est FACULTATIVE.

À l’opposé, considérons l’exemple suivant :

<166> Oct 22 01:00:00 bomb tick[0]: BOOM!

Ce message conforme serait relayé comme suit :

C: MSG 1 0 . 2477 248
C: Content-Type: application/beep+xml
C:
C: <entry facility='160' severity='6'
C:   nom d’hôte='bomb'
C:   deviceFQDN='bomb.terrorist.net' deviceIP='10.0.0.83'
C:   horodatage='Oct 22 01:00:00' tag='tick'
C:  >&lt;166> Oct 22 01:00:00 bomb tick[0]: BOOM!</entry>
C: END
S: RPY 1 0 . 1023 45
S: Content-Type: application/beep+xml
S:
S: <ok/>
S: END

Dans ce cas, l’étiquette est détectée et l’horodatage représente l’heure de génération du message plutôt que l’heure de réception du message.

Finalement, l’élément "entry" peut aussi contenir un attribut "xml:lang", indiquant le langage dans lequel le contenu CDATA de l’étiquette est présenté, comme décrit dans la [RFC3066].

On répond à l’élément "entry" soit par un élément "ok" vide si tout a réussi, soit par un élément standard "error" si il y avait un problème. Un élément "entry" peut être rejeté si aucun élément "iam" n’a été accepté par l’écouteur. Il peut aussi être rejeté si l’usager authentifié dans la session BEEP (si il en est un) n’a pas l’autorité pour générer (comme un appareil) ou relayer cette entrée. Une erreur est aussi possible si l’attribut "pathID" se réfère à un élément "path" inconnu (ou rejeté).

Un échange réussi d’un élément "entry" peut ressembler à ceci :

C: MSG 1 0 . 2725 173
C: Content-Type: application/beep+xml
C:
C: <entry facility='24' severity='5'
C:   horodatage='Jan 26 15:16:17'
C:   nom d’hôte='pipework' tag='imxp'>
C:     No 27B/6 available</entry>
C: END
S: RPY 1 0 . 1068 45
S: Content-Type: application/beep+xml
S:
S: <ok/>
S: END
Ici, l’adresse IP et le FQDN de l’appareil sont tirés de l’élément "iam", si il en est un, ou des informations de connexion sous-jacente.

Un exemple où un élément "entry" est rejeté avec un élément "error" :
C: MSG 1 2 . 2898 223
C: Content-Type: application/beep+xml
C:
C: <entry facility='24' severity='5' horodatage='Jan 02 13:22:15'
C:   deviceFQDN='jack.example.net' deviceIP='10.0.0.83'
C:   tag='imxpd'>
C:     Appareil de remplacement trouvé dans la narine.
C: </entry>
C: END
S: ERR 1 2 . 1113 111
S: Content-Type: application/beep+xml
S:
S: <error code='554'>pas permis de relayer pour jack.example.net</error>
S: END

Ici, le client tente de relayer une entrée au nom de jack.example.com, mais l’entrée est refusée par le collecteur pour des raisons administratives. Cela peut arriver, par exemple, si lowry.example.com est dans un département différent de jack.example.com.

4.4.3	Élément PATH
L’élément "path" sert à décrire une liste de relais à travers lesquels cet élément est passé, ainsi qu’un ensemble de fanions qui indiquent les propriétés que partagent toutes les liaisons de l’appareil au relais. Chaque élément "path" contient soit un autre élément "path" soit est vide. Un élément "path" vide identifie un appareil, tandis qu’un élément "path" avec un élément "path" incorporé identifie un relais. Chaque élément "path" désigne un FQDN et une adresse IP de l’interface qui a envoyé l’élément. Chaque élément "path" désigne aussi un FQDN et une adresse IP pour l’interface qui a reçu l’élément. Chaque élément "path" porte aussi un attribut "linkprops" qui spécifie les propriétés de la liaison qu’il décrit.

Chaque élément "path" a un attribut "pathID" qui doit être unique pour tous les éléments "path" envoyés sur ce canal depuis son commencement. Syntaxiquement, l’attribut "pathID" est une chaîne de chiffres. Sémantiquement, il sert à identifier un élément "path" parmi de nombreux autres, et il sert à relier un élément "path" avec un ou plusieurs éléments "entry". Tout attribut "pathID" est sans relation avec tout attribut "pathID" dans les éléments "path" incorporés ou sur d’autres canaux.

Chaque élément "path" a un attribut "fromFQDN" et un attribut "fromIP". L’attribut "fromFQDN" DEVRAIT être le nom de domaine pleinement qualifié de l’interface sur laquelle l’élément "path" a été envoyé. (Le "fromFQDN" peut être omis si cette interface n’a pas d’entrée de DNS.) De même, l’attribut "fromIP" DOIT être l’adresse IP de l’interface sur laquelle l’élément "path" a été envoyé.

Chaque élément "path" a un attribut "toFQDN" et un attribut "toIP". L’attribut "toFQDN" DEVRAIT être le nom de domaine pleinement qualifié de l’interface sur laquelle l’élément "path" a été reçu.  (Le "toFQDN" peut être omis si cette interface n’a pas d’entrée de DNS.) De même, l’attribut "toIP" DOIT être l’adresse IP de cette interface sur laquelle l’élément "path" a été reçu.

Finalement, chaque élément "path" porte un attribut "linkprops". Syntaxiquement, c’est une chaîne de caractères individuels, dont chacun indique une propriété du canal sur lequel cet élément "path" est porté. Noter que des éléments "path" externes peuvent avoir de plus fortes garanties que des éléments "path" internes ; il faut veiller à l’interprétation des fanions. La sémantique de chaque caractère possible dans cette chaîne est la suivante :

o :	Lorsque présent, "o" (lettre minuscule "o") indique qu’une confidentialité faible a été négociée sur cette liaison, protégeant faiblement contre l’observation du contenu des entrées associées à cet élément "path". (La confidentialité faible est un chiffrement avec moins de 80 bits de clé.)

O :	Lorsque présent, "O" (lettre majuscule "O") indique qu’une confidentialité forte a été négociée sur cette liaison, protégeant fortement contre l’observation du contenu des entrées associées à cet élément "path". (Une confidentialité forte est un chiffrement avec 80 bits de clé ou plus, ou un mécanisme de transfert qui est par ailleurs impossible à observer.)

U :	Lorsque présent, "U" indique qu’un utilisateur valide a été authentifié (via SASL ou TLS) et un élément "iam" a été accepté.

A :	Lorsque présent, "A" indique que cette liaison a été protégée par une couche d’authentification, authentifiant la source de toute "entrée" associée à ce chemin.

R :	Lorsque présent, "R" indique que cette liaison a été protégée contre la répétition de message.

I :	Lorsque présent, "I" indique que cette liaison a été protégée contre les modifications des messages dans le transfert.  ("I" est l’abrégé pour Intégrité de message.)

L :	Lorsque présent, "L" indique que cette liaison a été protégée contre la perte des messages. C’est-à-dire que c’est une liaison à livraison fiable.

D :	Lorsque présent, "D" indique que le côté "from" de cette liaison est un appareil. Si il n’est pas présent sur l’élément "path" le plus interne, les éléments "entry" associés à ce chemin n’ont pas été portés par le profil COOKED pendant la totalité de leur durée de vie.

À réception d’un élément "path", l’homologue DOIT effectuer les vérifications suivantes :
o	Les "fromFQDN" et "fromIP" doivent correspondre à la connexion de transport sous-jacente.
o	Les fanions dans l’attribut "linkprops" doivent correspondre aux attributs de la session.
o	Les "toFQDN" et "toIP" doivent correspondre à la connexion de transport sous-jacente.
o	L’attribut "pathID" doit être unique par rapport à tous les autres éléments "path" reçus sur ce canal.

Si toutes ces vérifications réussissent, l’élément "path" est accepté avec un élément "ok". Autrement, un élément "error" est généré avec un code approprié. De plus, si un des éléments "path" incorporés se réfère à la machine qui reçoit l’élément, il peut indiquer une boucle d’acheminement dans la configuration du chemin ainsi identifié, et les mesures appropriées devraient être prises.

Si l’homologue qui reçoit un élément "entry" le reçoit directement d’un appareil via un profil syslog-conn, et si l’appareil n’a pas généré un élément "path", le receveur peut générer lui-même un élément "path" approprié, soit à enregistrer dans les journaux (si cet homologue est un collecteur) soit à passer à l’homologue suivant (si cet homologue est un relais). Si un homologue reçoit un message syslog via UDP, il peut facultativement générer un élément "peer" approprié sur la base de toute information cryptographique fournie dans le message lui-même.

Lorsque un homologue reçoit un élément "path", il s’en souvient pour une utilisation ultérieure. Un collecteur va le mémoriser dans le journal pour référence ultérieure. Un relais va s’en souvenir. Lorsque une "entry" arrive qui fait référence à l’élément "path" reçu, et lorsque cette entrée a besoin d’être transmise à un autre relais ou collecteur, et lorsque aucun élément "path" approprié n’a encore été généré, un élément "path" approprié est généré et envoyé sur le canal sortant avant la transmission de l’entrée. Un élément "path" approprié est créé en prenant l’élément "path" reçu, en l’enveloppant dans un nouvel élément "path" avec les attributs appropriés, et en lui allouant un nouvel attribut "pathID". Lorsque de futurs éléments "entry" arrivent avec le même attribut "pathID" entrant, et si ils ont besoin d’être transmis à un canal sur lequel un attribut "pathID" approprié a déjà été envoyé, seul l’attribut "pathID" de l’élément "entry" doit être réécrit pour se référer à l’élément "path" sur le canal sortant.

On notera que la plus grande partie de la complexité de la gestion des éléments "path" ne vient que des relais. En particulier, les appareils n’ont jamais besoin de générer des éléments "path" et les collecteurs ont seulement besoin de les vérifier, de les enregistrer, et éventuellement de les utiliser dans les affichages et les rapports. Les collecteurs n’ont pas besoin de générer des éléments "path" ou de réécrire des éléments "entry". Donc, c’est seulement dans des configurations complexes (où ils sont les plus utiles) que surviennent des configurations complexes de "path".

Par exemple, soit un élément path envoyé de lowry.records.example.com à kurtzman.records.example.com. Il indique que les entrées de lowry à kurtzman étiquetées avec pathID='173' ont été générées par screen.lowry.records.example.com. Il indique que screen.lowry.records.example.com est estimé par lowry.records.example.com être l’appareil générateur, et que les entrées sur ce chemin sont livrées sans perte et sans modification, bien que les messages puissent être répétés ou observés. La liaison entre lowry et kurtzman, évite cependant les attaques en répétition, les pertes de message, et les modifications de message. Alors que screen.lowry.records.example.com ne s’est pas authentifié auprès de lowry.records.example.com, lowry prétend s’être authentifié lui-même auprès de kurtzman.

C: MSG 2 1 . 3121 426
C: Content-type: application/beep+xml
C:
C: <path fromFQDN='lowry.records.example.com'
C:       fromIP='10.0.0.50'
C:       toFQDN='kurtzman.records.example.com'
C:       toIP='10.0.0.51'
C:       linkprops='ULRI'
C:       pathID='173'>
C: <path fromFQDN='screen.lowry.records.example.com'
C:       fromIP='10.0.0.47'
C:       toFQDN='lowry.records.example.com'
C:       toIP='10.0.0.50'
C:       linkprops='DLI'
C:       pathID='24'>
C: </path>
C: </path>
C: END
S: ERR 2 1 . 1224 114
S: Content-type: application/beep+xml
S:
S: <error code='530'>linkprops inclut 'U' mais pas d’'iam' reçu</error>
S: END

Cependant, kurtzman.records.example.com rejette l’élément "path", car l’attribut "linkprops" prétend que lowry s’est authentifié lui-même, mais kurtzman n’est pas d’accord, n’ayant pas reçu d’élément "iam".

Dans un second exemple, cet élément "path" informe collector.example.com que le pare-feu du département d’enregistrement va transmettre des éléments "entry" avec un attribut "pathID" dont la valeur est "17". Ces éléments "entry" viendront sur l’interface "10.0.0.2" du pare-feu, pour être transmis en sortie sur l’interface "134.130.74.56" du pare-feu. Le bond final a toutes les garanties possibles, bien que les entrées transférées au sein du département des enregistrements (derrière le pare-feu) puissent avoir été observées au passage.

C: MSG 2 2 . 3547 813
C: Content-type: application/beep+xml
C:
C: <path fromFQDN='fwall.records.example.com'
C:       fromIP='134.130.74.56'
C:       toFQDN='collector.example.com'
C:       toIP='134.130.74.12'
C:       linkprops='OUARIL'
C:       pathID='17'>
C: <path fromFQDN='kurtzman.records.example.com'
C:       fromIP='10.0.0.50'
C:       toFQDN='fwall.records.example.com'
C:       toIP='10.0.0.2'
C:       linkprops='ULRI'
C:       pathID='120'>
C: <path fromFQDN='lowry.records.example.com'
C:       fromIP='10.0.0.50'
C:       toFQDN='kurtzman.records.example.com'
C:       toIP='10.0.0.51'
C:       linkprops='ULRI'
C:       pathID='173'>
C: <path fromFQDN='screen.lowry.records.example.com'
C:       fromIP='10.0.0.47'
C:       toFQDN='lowry.records.example.com'
C:       toIP='10.0.0.50'
C:       linkprops='DLI'
C:       pathID='24'>
C: </path></path></path></path>
C: END
S: RPY 2 2 . 1338 45
S: Content-type: application/beep+xml
S:
S: <ok/>
S: END

En exemple final, un élément "entry" venant de l’écran de Lowry arrive au pare-feu. L’attribut "path" est réécrit, et est transmis au collecteur.

L’entrée arrive sur l’interface 10.0.0.2 :

C: MSG 2 3 . 4360 250
C: Content-Type: application/beep+xml
C:
C: <entry facility='24' severity='5'
C:   horodatage='Oct 27 13:24:12'
C:   deviceFQDN='screen.lowry.records.example.com'
C:   deviceIP='10.0.0.47'
C:   pathID='173'
C:   tag='dvd'>
C:     On fait une pause – le patron surveille.
C: </entry>
C: END
S: RPY 2 3 . 1383 45
S: Content-Type: application/beep+xml
S:
S: <ok/>
S: END

Il est transmis sur l’interface 134.130.74.56 :

C: MSG 7 9 . 9375 276
C: Content-Type: application/beep+xml
C:
C: <entry facility='24' severity='5'
C:   horodatage='Oct 27 13:24:12'
C:   deviceFQDN='screen.lowry.records.example.com'
C:   deviceIP='10.0.0.47'
C:   pathID='17'
C:   tag='dvd'>
C:     On fait une pause – le patron surveille.
C: </entry>
C: END
S: RPY 7 9 . 338 45
S: Content-Type: application/beep+xml
S:
S: <ok/>
S: END

La discussion sur le bien fondé de configurer la machine de Lowry à transmettre de tels messages via la machine de Kurtzman sort du domaine d’application de ce document.

5.	Dispositions supplémentaires

Dans des configurations plus évoluées, les appareils, relais et collecteurs syslog peuvent être configurés à prendre en charge diverses priorités de livraison. Plusieurs canaux fonctionnant sous le même profil peuvent être ouverts entre deux homologues, avec les messages syslog de priorité supérieure acheminés sur un canal auquel on donne plus de bande passante. Un tel provisionnement est une affaire locale.

Syslog [RFC3164] discute un certain nombre des raisons pour lesquelles la confidentialité et l’authentification des messages d’entrée de syslog peuvent être importantes dans un environnement d’informatique en réseau. La nature de BEEP permet une mise en couche pratique de l’authentification et de la confidentialité sur tout canal BEEP.

5.1	Authenticité de message
Le paragraphe 6.2 de la [RFC3164] discute des dangers des entrées syslog non authentifiées. Pour empêcher que soient acceptés des messages d’événements syslog non authentiques, on configure les homologues syslog à exiger l’utilisation d’une technologie d’authentification forte pour la session BEEP.

Si elle est provisionnée pour l’authentification du message, la mise en œuvre DEVRAIT utiliser le mécanisme  SASL DIGEST-MD5 [RFC2831] pour provisionner ce service.

5.2	Répétition de message
Le paragraphe 6.3.4 de la [RFC3164] discute des dangers de la répétition du message syslog. Pour empêcher les messages d’événement syslog d’être répétés, on configure les homologues syslog à exiger l’utilisation d’une technologie d’authentification forte pour la session BEEP.

Si les mises en œuvre sont provisionnées pour détecter la répétition de message, elles DEVRAIENT utiliser le mécanisme SASL DIGEST-MD5 [RFC2831] pour fournir ce service.

5.3	Intégrité de message
Le paragraphe 6.5 de la [RFC3164] discute des dangers des messages d’événements syslog qui sont altérés par un attaquant malveillant. Pour empêcher d’altérer les messages, on configure les homologues syslog à exiger l’utilisation d’une technologie d’authentification forte pour la session BEEP.

Si les mises en œuvre sont provisionnées pour protéger l’intégrité du message, elles DEVRAIENT utiliser les mécanisme SASL DIGEST-MD5 [RFC2831] pour fournir ce service.

5.4	Observation de message
Le paragraphe 6.6 de la [RFC3164] discute des dangers (et des avantages) de rendre visible les messages syslog aux points intermédiaires le long du chemin de transmission entre appareil et collecteur. Pour empêcher les messages d’être vus par un attaquant, on configure les homologues syslog à exiger l’utilisation d’un profil de sécurité du transport pour la session BEEP. (Cependant, d’autres caractéristiques du trafic, par exemple, le volume et le rythme de transmissions, restent observables.)

Si les mises en œuvre sont provisionnées pour sécuriser les messages contre l’observation non autorisée, elles DEVRAIENT utiliser le profil TLS [RFC3080] pour fournir ce service. L’algorithme de chiffrement utilisé DEVRAIT être TLS_RSA_WITH_3DES_EDE_CBC_SHA.

5.5	Résumé des pratiques recommandées
Pour les protections indiquées, les mises en œuvre DEVRAIT être configurées à utiliser les mécanismes indiqués :

Protection désirée	DEVRAIT être réglée en utilisant
Authentification	http://iana.org/beep/SASL/DIGEST-MD5
+ Répétition	http://iana.org/beep/SASL/DIGEST-MD5
+ Intégrité	http://iana.org/beep/SASL/DIGEST-MD5
+ Observation	http://iana.org/beep/TLS

Les identités d’homologue BEEP utilisées pour l’authentification DEVRAIENT correspondre au FQDN de l’homologue initiateur. C’est à dire qu’un relais fonctionnant sur relay.example.com devrait utiliser un "identifiant d’utilisateur" de "relay.example.com" au sein des profils d’authentification SASL, ainsi que dans le FQDN de l’élément "iam".

6.	Enregistrements initiaux
6.1	Enregistrement : profil RAW
Identification de profil : http://xml.resource.org/profiles/syslog/RAW 
Messages échangés durant la création de canal : aucun
Messages commençant les échanges d’un à un : libre
Messages dans les réponses positives : aucun
Messages dans les réponses négatives : aucun
Messages dans les échanges d’un à plusieurs : libre
Syntaxe de message : voir au paragraphe 3.3
Sémantique de message : voir au paragraphe 3.4
Informations de contact : voir la Section "Adresse des auteurs" du présent mémoire

6.2	Enregistrement : profil COOKED
Identification de profil : http://xml.resource.org/profiles/syslog/COOKED 
Messages échangés durant la création de canal : iam
Messages commençant les échanges d’un à un : iam, entry, path
Messages dans les réponses positives : ok
Messages dans les réponses négatives : error
Messages dans les échanges d’un à plusieurs :  aucun
Syntaxe de message : voir au paragraphe  4.3
Sémantique de message : voir au paragraphe  4.4
Informations de contact : voir la Section "Adresse des auteurs" du présent mémoire

7.	DTD syslog

La présente Section donne la déclaration de type de données (DTD, Data Type Declaration) qui définit les éléments valides pour la transposition de syslog sur BEEP.

<!--  DTD pour syslog sur BEEP, au 2000-10-10

On se réfère à cette DTD comme :

<!ENTITY % SYSLOG PUBLIC "-//Blocks//DTD SYSLOGRELIABLE//EN" ""> %SYSLOG; -->

<!-- Contenu
      Généralités
Inclut
  Résumés de profils
  Définitions d’entités

Opérations
           iam
           entry
           path
     -->

<!-- Généralités
    Paquets syslog livrés via BEEP
     -->

<!-- Inclut -->
          <!ENTITY % BEEP PUBLIC "-//Blocks//DTD BEEP//EN" ""> %BEEP;

<!--  Résumés de profils

Profil BEEP SYSLOG-RAW
rôle	MSG	ANS	ERR
  L	texte	texte	texte

Profil BEEP SYSLOG-COOKED
rôle	MSG	RPY	ERR
I ou L	iam	ok	error
I ou L	entry	ok	error
I ou L	path 	ok	error

-->

<!—Définitions d’entité

entité	syntaxe/référence	exemple
Nom de domaine pleinement qualifié FQDN	Voir [RFC1034]	www.example.com
Adresse IP séparée par des points	1*3CHIFFRE "." 1*3CHIFFRE "." 1*3CHIFFRE "." 1*3CHIFFRE
IP	10.0.0.27
Facilité syslog
FACILITY	Voir la [RFC3164]
	1*3CHIFFRE	80
Sévérité syslog
SEVERITY	Voir la [RFC3164]
	CHIFFRE	4
Horodatage	Voir la [RFC3164]	Jan 03 18:43:12
TIMESTAMP
Entier identifiant IDINT	1*CHIFFRE	1027

-->

<!ENTITY % FQDN	"CDATA">
<!ENTITY % IP	"CDATA">
<!ENTITY % FACILITY	"CDATA">
<!ENTITY % SEVERITY	"CDATA">
<!ENTITY % TIMESTAMP	"CDATA">
<!ENTITY % IDINT	"CDATA">

<!—L’élément iam déclare le rôle et l’identité de l’homologue qui le produit. Le contenu de l’élément peut inclure du texte informatif lisible par l’homme, comme la localisation physique de l’ordinateur qui produit le "iam".  -->

<!ELEMENT	iam	(#PCDATA)>
<!ATTLIST	iam
	fqdn	%FQDN;	 #EXIGÉ
	ip	%IP;	#EXIGÉ
	type	(appareil|relais|collecteur)	#EXIGÉ>

<!—L’élément entry porte un seul message syslog.  -->

<!ELEMENT	entry	(#PCDATA)>
<!ATTLIST	entry
	xml:lang	%LANG;	"i-default"
	facility	%FACILITY;	#EXIGÉ
	severity	%SEVERITY;	#EXIGÉ
	horodatage	%TIMESTAMP;	#IMPLICITE
	tag	%ATEXT;	#IMPLICITE
	deviceFQDN	%FQDN;	#IMPLICITE
	deviceIP	%IP;	#IMPLICITE
	pathID	%IDINT;	#IMPLICITE>

<!—L’élément path porte une liste des relais à travers lesquels les entrées sont passées.  -->

<!ELEMENT	path	(path?)>
<!ATTLIST	path
	pathID	%IDINT;	#EXIGÉ
	fromFQDN	%FQDN	#IMPLICITE
	fromIP	%IP;	#EXIGÉ
	toFQDN	%FQDN;	#IMPLICITE
	toIP	%IP;	#EXIGÉ
	linkprops	%ATEXT;	#EXIGÉ>

<!—Fin de la DTD -->

8.	Codes de réponse

Les codes d’erreur suivants sont utilisés dans le protocole :

code	signification
 200	réussite
 421	service non disponible
 451	action demandée interrompue (par exemple, erreur locale dans le traitement)
 454	échec temporaire d’authentification
 500	erreur générale de syntaxe (par exemple, XML mal formé)
 501	erreur de syntaxe dans les paramètres (par exemple, XML non valide)
 504	paramètre non mis en œuvre
 530	authentification exigée
 534	mécanisme d’authentification insuffisant (par exemple, trop faible, séquence épuisée, etc.)
 535	échec d’authentification
 537	action non autorisée pour l’usager
 538	mécanisme d’authentification exigeant le chiffrement
 550	action requise non effectuée (par exemple, aucun des profils demandés n’est acceptable)
 553	paramètre invalide
 554	échec de transaction (par exemple, violation de la politique)

9.	Considérations relatives à l’IANA
9.1	Enregistrement : profils BEEP
L’IANA enregistre les profils spécifiés à la Section 6, et choisit les URL spécifiques de l’IANA "http://iana.org/beep/SYSLOG/RAW" et "http://iana.org/beep/SYSLOG/COOKED".

9.2	Enregistrement : numéro d’accès (bien connu) de système TCP pour syslog-conn
Un seul accès bien connu (601) est alloué à syslog-conn. La négociation dans la bande détermine si syslog-conn COOKED ou RAW est utilisé.

Numéro de protocole : TCP
Formats, types, Opcodes, et séquences de message : voir les paragraphes 3.3 et 4.4.
Fonctions : voir les paragraphes 3.3 et 4.4.
Utilisation de diffusion/diffusion groupée : aucune
Nom proposé : Service syslog fiable
Nom abrégé : syslog-conn
Informations de contact : voir la Section "Adresse des auteurs" du présent mémoire

10.	Considérations sur la sécurité

Consulter la Section 6 de la [RFC3164] pour un exposé sur les questions de sécurité pour le service syslog. De plus, comme les profils RAW et COOKED sont définis en utilisant le cadre BEEP, consulter la Section 8 de la [RFC3080] pour un exposé sur les questions de sécurité spécifiques de BEEP.
BEEP est utilisé pour assurer la sécurité de la communication mais pas l’intégrité de l’objet. En d’autres termes, le message "en vol" peut être protégé, mais un appareil compromis peut générer de façon indétectable des messages incorrects, et les relais et collecteurs peuvent modifier, insérer, ou supprimer les messages sans être détectés. D’autres techniques doivent être utilisées pour assurer que de telles compromissions sont détectables.

11.	Remerciements

Les auteurs remercie de leurs contributions Christopher Calabrese, Keith McCloghrie, Balazs Scheidler, et David Waitzman.

12.	Références

[RFC2046]	N. Freed et N. Borenstein, "Extensions de messagerie Internet multi-objets (MIME) Partie 2 : Types de support", novembre 1996. (D. S., MàJ par 2646, 3798, 5147, 6657.)

[RFC2119]	S. Bradner, "Mots clés à utiliser dans les RFC pour indiquer les niveaux d'exigence", BCP 14, mars 1997.

[RFC2782]	A. Gulbrandsen, P. Vixie et L. Esibov, "Enregistrement de ressource DNS pour la spécification  de la localisation des services (DNS SRV)", février 2000.

[RFC2831]	P. Leach et C. Newman, "Utilisation de l'authentification par résumé comme mécanisme SASL", mai  2000. (Obsolète, voir RFC6331)

[RFC3066]	H. Alvestrand, "Étiquettes pour l'identification des langues", BCP 47, janvier 2001. (Remplacée par RFC4646.)

[RFC3080]	M. Rose, "Cœur du protocole extensible d'échange de blocs (BEEP)", mars 2001. (P.S.)

[RFC3081]	M. Rose, "Transposition du cœur BEEP en TCP", mars 2001. (P.S.)

[RFC3164]	C. Lonvick, "Protocole BSD de Syslog", août 2001. (Remplacée par RFC5424, Information)

Adresses des auteurs

Darren New	Marshall T. Rose	
5390 Caminito Exquisito	Dover Beach Consulting, Inc.	
San Diego, CA  92130	POB 255268	
USA	Sacramento, CA  95865-5268	
téléphone : +1 858 350 9733	USA	
mél : dnew@san.rr.com 	téléphone : +1 916 483 8878	
	mél : mrose@dbc.mtview.ca.us 	

Déclaration complète de droits de reproduction

Copyright (C) The Internet Society (2001). Tous droits réservés.

Le présent document et ses traductions peuvent être copiés et fournis aux tiers, et les travaux dérivés qui les commentent ou les expliquent ou aident à leur mise en œuvre peuvent être préparés, copiés, publiés et distribués, en tout ou partie, sans restriction d’aucune sorte, pourvu que la déclaration de droits de reproduction ci-dessus et le présent paragraphe soient inclus dans toutes telles copies et travaux dérivés. Cependant, le présent document lui-même ne peut être modifié d’aucune façon, en particulier en retirant la notice de droits de reproduction ou les références à la Internet Society ou aux autres organisations Internet, excepté autant qu’il est nécessaire pour le besoin du développement des normes Internet, auquel cas les procédures de droits de reproduction définies dans les procédures des normes Internet doivent être suivies, ou pour les besoins de la traduction dans d’autres langues que l’anglais.

Les permissions limitées accordées ci-dessus sont perpétuelles et ne seront pas révoquées par la Internet Society ou ses successeurs ou ayant droits.

Le présent document et les informations contenues sont fournis sur une base "EN L’ÉTAT" et le contributeur, l’organisation qu’il ou elle représente ou qui le/la finance (s’il en est), la INTERNET SOCIETY et la INTERNET ENGINEERING TASK FORCE déclinent toutes garanties, exprimées ou implicites, y compris mais non limitées à toute garantie que l’utilisation des informations encloses ne violent aucun droit ou aucune garantie implicite de commercialisation ou d’aptitude à un objet particulier.

Le financement de la fonction d’édition des RFC est actuellement fourni par l’Internet Society.