Installer un serveur de logs (Rsyslog) sur FreeBSD 13.2 et configurer un client (debian 12)
Introduction
Un serveur de logs va centraliser les logs de toutes les machines du réseau.
Il va réceptionner les logs envoyés par toutes les machines.
Nous allons mettre en place un tel serveur ainsi que montrer la configuration de base d'un client (qui enverra ses logs au serveur)
Je ne détaille pas ici la configuration réseau des machines, elle est déjà faîte.
Voir les articles consacrés en cas de besoin.
Architecture Réseau
Nous avons 2 zones réseau :
- un LAN (10.10.10.0/24) :
* : 10.10.10.1 : passerelle
* : 10.10.10.10 : un client windows 11 pro
* : 10.10.10.200 : un serveur de supervision Nagios-XI
* : 10.10.10.210 : un serveur Linux FreeBSD 13.2 qui sera notre serveur de logs Rsyslog - une DMZ (10.10.11.0/30) :
* : 10.10.11.1 : passerelle
* : 10.10.11.2 : un serveur web sous debian avec Wordpress installé dessus
Configuration du Serveur Rsyslog
1) Changer le hostname
(le hostname par défaut de ma VM est "freebsd", je vais le changer pour "RSYSLOG")
Passez en root :
su -
Changez le hostname
sed -i '' 's/^hostname=.*$/hostname="RSYSLOG"/' /etc/rc.conf
echo "RSYSLOG" > /etc/hostname
Redémarrez
reboot
2) Installer et configurer rsyslog
(toujours en root)
pkg update
pkg ins -y rsyslog
sysrc syslogd_enable=NO
sysrc rsyslogd_enable=YES
Configurez rsyslog afin que les flux passent uniquement en UDP, sur le port par défaut (514) et qu'il n'autorise que les machines sur nos réseaux à lui envoyer des logs.
(faîtes un copier/coller des commandes suivantes)
echo '#############################################' >> /usr/local/etc/rsyslog.conf
echo '# CONFIGURATION SERVEUR' >> /usr/local/etc/rsyslog.conf
echo 'module(load="imudp")' >> /usr/local/etc/rsyslog.conf
echo 'input(type="imudp" port="514")' >> /usr/local/etc/rsyslog.conf
echo '$AllowedSender UDP, 127.0.0.1, 10.10.10.0/24, 10.10.11.0/30' >> /usr/local/etc/rsyslog.conf
Nous allons à présent faire en sorte que les logs de chaque client arrivent dans un dossier nominatif et distinct :
(sous la forme /var/log/rsyslogclients/HOSTNAMECLIENT-IPCLIENT/rsyslog.log)
echo '$template DynamicFile,"/var/log/rsyslogclients/%source%-%fromhost-ip%/rsyslog.log"' >> /usr/local/etc/rsyslog.conf
echo '*.* ?DynamicFile' >> /usr/local/etc/rsyslog.conf
Créer le dossier de logs pour les clients :
mkdir /var/log/rsyslogclients
Redémarrer le serveur (car syslogd est toujours actif et va poser problème)
reboot
Vérifiez si tout s'est bien passé
service rsyslog status
sockstat -4l | grep 514
(le service doit être lancé et le port 514 doit apparaître)
Configuration d'un Client (Debian WORDPRESS)
1) Changer le hostname
(le hostname par défaut de ma VM est "debian", je vais le changer pour "WORDPRESS")
Passez en root :
su -
Changez le hostname
sed -i 's/debian/WORDPRESS/' /etc/hosts
sed -i 's/debian/WORDPRESS/' /etc/hostname
Redémarrez
reboot
2) Installer et configurer rsyslog
(toujours en root)
apt update
apt install rsyslog -y
systemctl enable rsyslog
Configurer le rôle de client (afin que notre WORDPRESS renvoie ses logs à RSYSLOG)
(faîtes un copier/coller des commandes suivantes)
echo '#############################################' >> /etc/rsyslog.conf
echo '# CONFIGURATION CLIENT' >> /etc/rsyslog.conf
echo 'auth,authpriv.* @10.10.10.210' >> /etc/rsyslog.conf
Démarrez le service
systemctl start rsyslog
Vous devriez voir les logs de votre client WORDPRESS remonter sur le serveur RSYSLOG, dans le dossier /var/log/rsyslogclients/
↑ Haut de page