Gestion des hôtes dans syslog.conf

J’ai, dans mon réseau, des équipements capables d’utiliser le protocole syslog. Bien évidemment, je me suis mis en tête de mettre en route cette fonctionnalité, et ainsi de configurer ma passerelle NetBSD afin qu’elle serve également de serveur syslog.

Syslog est démarré par défaut sous NetBSD, mais uniquement en “secure mode”. On peut constater cela dans le fichier /etc/defaults/rc.conf :

Le flag "-s" ordonne à syslogd de n’écouter que sur une socket UNIX, au lieu d’une socket UDP. La première étape consiste donc à ajouter dans le fichier /etc/rc.conf la ligne suivante :

La partie moins triviale réside dans la séparation des logs fonction des hôtes desquels ils proviennent. Je n’ai pas trouvé le man de syslog.conf très explicite, et plusieurs tests ont été nécessaires pour comprendre le mécanisme d’“attachement” d’événements. Voici une partie de mon fichier /etc/syslog.conf :

L’astuce réside evidemment dans les 3 premières lignes. Il faut les comprendre de cette façon :

  • Pour tous les messages en provenance de host1 et host2, on applique les règles qui suivent
  • Tout type de message est écrit dans /var/log/hosts.log
  • Pour toute autre machine (y compris la machine locale), on applique les règles qui suivent
  • Suivent les règles par defaut du fichier syslog.conf Moyennant quoi, j’ai désormais un fichier de log distinct par équipement.