--- 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 >}} ---