
Contexte
Dans un environnement hybride, centraliser les journaux Windows sur un serveur Linux simplifie l’analyse, la conformité et la rétention. Syslog‑ng est un démon syslog moderne, flexible et performant, parfaitement adapté à Debian 12.

Quand l’utiliser ?
- Vous avez plusieurs serveurs Windows (2016/2019/2022) et vous souhaitez collecter leurs événements dans un SIEM ou un stockage partagé.
- Vous cherchez une solution open‑source, légère et facile à automatiser via scripts.
- Vous devez respecter des exigences de rétention de logs (ex. 30 jours) et de sécurisation des flux.
🟢 Étapes de déploiement
🔹 1. Préparer le serveur Debian 12
# Mettre à jour le système
apt update && apt upgrade -y
# Installer les paquets nécessaires
apt install -y syslog-ng syslog-ng-modules-extra rsyslog
🔹 2. Configurer Syslog‑ng pour écouter le port 514/UDP
# Sauvegarder la configuration d’origine
cp /etc/syslog-ng/syslog-ng.conf /etc/syslog-ng/syslog-ng.conf.bak
# Éditer le fichier de configuration
cat > /etc/syslog-ng/conf.d/10-windows.conf <<'EOF'
# Source UDP pour les logs Windows
source s_windows {
udp(ip(0.0.0.0) port(514));
};
# Destination fichier par hôte
destination d_windows {
file("/var/log/windows/${HOST}/${YEAR}-${MONTH}-${DAY}.log"
create-dir(yes));
};
# Filtre générique (tout)
filter f_all { level(info..emerg); };
# Règle de log
log {
source(s_windows);
filter(f_all);
destination(d_windows);
};
EOF
🔹 3. Créer la hiérarchie de dossiers et définir les permissions
# Créer le répertoire racine
mkdir -p /var/log/windows
# Attribuer le propriétaire syslog
chown -R syslog:adm /var/log/windows
# Appliquer des permissions restrictives
chmod -R 750 /var/log/windows
🔹 4. Redémarrer le service et vérifier le fonctionnement
# Redémarrer Syslog‑ng
systemctl restart syslog-ng
# Vérifier le statut
systemctl status syslog-ng --no-pager
🔹 5. Configurer les serveurs Windows pour envoyer leurs logs
Sur chaque serveur Windows, exécuter PowerShell en tant qu’administrateur :
# Activer le service WinRM (si besoin)
Enable-PSRemoting -Force
# Créer une source de log personnalisée (exemple Application)
New-EventLog -LogName "Application" -Source "MyApp"
# Configurer l’envoi vers le syslog Linux (UDP 514)
$server = "10.0.0.10" # IP du serveur Debian
$port = 514
# Utiliser le module SyslogLogger (install‑module -Name SyslogLogger)
Install-Module -Name SyslogLogger -Force
Import-Module SyslogLogger
# Fonction d’envoi
function Send-WinEventToSyslog {
Get-WinEvent -LogName Application -MaxEvents 10 |
ForEach-Object {
$_ | Write-Syslog -Server $server -Port $port -Facility Local0 -Severity Informational
}
}
# Planifier l’envoi toutes les 5 minutes (Scheduled Task)
$action = New-ScheduledTaskAction -Execute 'PowerShell.exe' -Argument '-NoProfile -WindowStyle Hidden -Command "& {Send-WinEventToSyslog}"'
$trigger = New-ScheduledTaskTrigger -RepetitionInterval (New-TimeSpan -Minutes 5) -Once -At (Get-Date)
Register-ScheduledTask -TaskName "SendAppLogToSyslog" -Action $action -Trigger $trigger -RunLevel Highest -Description "Envoie les logs Application vers le serveur Syslog-ng"
🔹 6. Valider la réception des logs
# Sur le serveur Debian, afficher les logs récents
tail -f /var/log/windows/WIN-SRV01/2024-10-31.log
⚠️ Méthode alternative
Si vous préférez ne pas toucher à PowerShell, vous pouvez installer nxlog sur chaque serveur Windows et le configurer pour pousser les logs vers le même serveur Debian :
# Exemple de configuration nxlog.conf (côté Windows)
Module im_msvistalog
Path in => out
✅ Bonnes pratiques de sécurité
- Filtrage réseau : Restreindre le trafic UDP 514 à l’aide d’une règle firewall sur le serveur Debian (
iptables -A INPUT -p udp --dport 514 -s 10.0.0.0/24 -j ACCEPT). - Intégrité des logs : Utiliser
logrotatepour compresser et archiver les fichiers après 7 jours (/etc/logrotate.d/syslog-ng-windows). - Authentification : Syslog‑ng ne chiffre pas nativement. Pour sécuriser le transport, encapsuler le flux UDP dans un tunnel IPsec ou passer à TLS avec le module
syslog-ng-modules-tls. - Permissions : Le répertoire
/var/log/windowsdoit être accessible uniquement au comptesysloget aux administrateurs.
✅ Conclusion
Vous avez maintenant un serveur Debian 12 capable de centraliser les journaux d’événements Windows via Syslog‑ng. Cette architecture simplifie la corrélation d’incidents, la conformité et la sauvegarde des logs. N’hésitez pas à enrichir les filtres pour ne récupérer que les événements critiques et à intégrer la solution à votre SIEM préféré.
