---
date: 2020-05-17T13:09:05+02:00
description: "Mettre en place et visualiser la journalisation dans relayd, serveur relai(s) sous OpenBSD"
draft: false
tags: ['relayd','log','OpenBSD','astuce']
title: "Relayd : Journalisation (Log)"
translationKey: "relayd-log"
---
## Description
**OpenBSD** intègre par défaut dans le système de base, depuis 5.7, le
serveur de relais nommé **relayd**.
* Site web : https://bsd.plumbing/
* OpenBSD : **6.6, 6.7**
---
Le but de cet article est de savoir comment mettre en place une journalisation
du flux HTTP(S) qui passe au-travers de **relayd**.
C'est très simple !
## Configuration
* Par défault, le fichier de configuration : `/etc/relayd.conf`
### Configuration Globale
Dans un premier temps, nous devons déclarer le paramètre global `log` dans
le fichier de configuration de **relayd**. *{{< man "relayd.conf" 5 log >}}*
Les déclarations de journal suivantes ont pour signification les suivantes :
* `log state changes` ou `log host checks` sont utiles pour suivre l'état
de l'hôte ou les contrôles effectués dessus.
* les états peuvent être de type :
* `up` si l'état de santé de l'hôte est positif
* `down` si celui est arrété ou si les contrôles ne sont pas bons.
* en état `unknown` si l'hôte est désactivé ou n'a pas encore été
contrôlé.
* `log connection` nous permet de journaliser les connexions TCP, **si relayd
est configuré en tant que relai(s)** {{< color orange >}}1{{}}.
À noter l'ajout de l'option `errors` pour le cas où nous voulons journaliser
que les erreurs de connexions TCP.
{{< color orange >}}1{{}} *En effet, **relayd** peut aussi
être configuré en tant que routeur ou serveur de redirection*.
### Règles de filtrage
Toujours dans le contexte du fichier de configuration de **relayd**, les
relais ont la possibilité de filtrer les connexions par le biais de paramètres
de filtrage spécifiques.
Ainsi nous utiliserons l'action de correspondance `match` sur laquelle
nous appliquons l'option de journalisation `log`. *{{< man "relayd.conf" 5 match >}}*
Cette action de correspondance s'appliquera sur un type d'action ;
actuellement, 5 types d'actions sont définies :
* `cookie` : une action qui a lieu sur un cookie. {{< color orange >}}2{{}} *{{< man "relayd.conf" 5 cookie >}}*
* `header` : une action ciblant le protocol d'entête HTTP - les fameuses **header**s *{{< man "relayd.conf" 5 header >}}*
* `path` : une action qui analyse le chemin de l'URL demandée. {{< color orange >}}2{{}} *{{< man "relayd.conf" 5 path >}}*
* `query` : une action pour chercher la partie query de l'URL demandée. {{< color orange >}}2{{}} *{{< man "relayd.conf" 5 query >}}*
* `url` : l'action récupérant l'URL complète… {{< color orange >}}2{{}} *{{< man "relayd.conf" 5 url >}}*
{{< color orange >}}2{{}} *seulement disponible sur une requête HTTP.*
### Exemple de configuration
L'exemple ci-dessous nous montre cinq règles de filtrage :
* les quatre premières ayant lieu sur une correspondance d'entête
* la dernière journalisant l'URL dans son ensemble.
{{< file "web-httpd-relayd-log-example" sh "/etc/relayd.conf" >}}
## Journaux
Là encore, tout simplement, une fois la configuration établie, validée,
et le service relayd fonctionnel, les différents journaux se retrouvent
principalement dans :
* `/var/log/daemon`,
* `/var/log/message`.
### Exemple log daemon
{{< code "web-httpd-relayd-log-example-daemon" sh >}}
Cet exemple nous restitue :
* des connexions réussies `done`
* des connexions échouées, ici de type erreur 403, bloquées selon des règles
de filtrage bloquantes `block` - *non expliquées ici*
### Exemple log message
{{< code "web-httpd-relayd-log-example-messages" sh >}}
Cet exemple nous montre 3 écritures de journalisation de règles bloquantes,
provoquant une erreur 403, sur des critères de filtrage non expliqués ici.
## Documentations
### Manpages
* {{< man "relayd.conf" 5 >}}
---