Dans un cadre professionnel, il peut s'avérer utile de centraliser ses logs sur un serveur dédié. Cela permet d'avoir une copie de ceux-ci mais cela permet sourtout de pouvoir les exploiter plus facilement. Dans le cas présent, nous souhaitions déporter les logs de notre firewall PFSense vers un serveur syslog sous Debian GNU/Linux avec Syslog-NG.

Dans un premier temps, il est nécessaire de configurer le daemon syslog-ng afin qu'il soit prêt à récupérer les logs arrivant du pare-feu :

Le fichier à éditer en root est le suivant /etc/syslog-ng/syslog-ng.conf, voici ce que nous y avons rajouté :

source pf-s { udp(port(514)); };

destination pf-d_kern { file("/var/log/pfsense/kernel.log"); };

destination pf-d_mesg { file("/var/log/pfsense/messages.log"); };

destination pf-d_auth { file("/var/log/pfsense/secure.log"); };

destination pf-d_mail { file("/var/log/pfsense/maillog.log"); };

destination pf-d_uucp { file("/var/log/pfsense/spooler.log"); };

destination pf-d_boot { file("/var/log/pfsense/boot.log"); };

destination pf-d_emerg { file("/var/log/pfsense/emerg.log"); };

destination pf-d_sshd { file("/var/log/pfsense/sshd.log"); };

destination pf-d_pptpd { file("/var/log/pfsense/pptpd.log"); };

destination pf-d_daemon { file("/var/log/pfsense/daemon.log"); };

destination pf-d_firewall { file("/var/log/pfsense/firewall.log"); };

filter pf-f_kern        { facility(kern); };

filter pf-f_mesg        { level(info) and not facility(mail,authpriv,kern,local7); };

filter pf-f_auth        { facility(authpriv); };

filter pf-f_mail        { facility(mail); };

filter pf-f_uucp        { facility(uucp); };

filter pf-f_boot        { facility(local7); };

filter pf-f_emerg       { level(emerg); };

filter pf-f_sshd        { program("sshd"); };

filter pf-f_pptpd       { message("pptpd"); };

filter pf-f_daemon      { facility(daemon); };

filter pf-f_firewall    { level(debug); };

log { source(pf-s); filter(pf-f_kern); destination(pf-d_kern); };

log { source(pf-s); filter(pf-f_mesg); destination(pf-d_mesg); };

log { source(pf-s); filter(pf-f_auth); destination(pf-d_auth); };

log { source(pf-s); filter(pf-f_mail); destination(pf-d_mail); };

log { source(pf-s); filter(pf-f_uucp); destination(pf-d_uucp); };

log { source(pf-s); filter(pf-f_boot); destination(pf-d_boot); };

log { source(pf-s); filter(pf-f_emerg); destination(pf-d_emerg); };

log { source(pf-s); filter(pf-f_sshd); destination(pf-d_sshd); };

log { source(pf-s); filter(pf-f_pptpd); destination(pf-d_pptpd); };

log { source(pf-s); filter(pf-f_daemon); destination(pf-d_daemon); };

log { source(pf-s); filter(pf-f_firewall); destination(pf-d_firewall); };

 

Ensuite, il est nécessaire via l'interface Web de configurer le pare-feu afin que celui-ci duplique ses fichiers syslog vers le serveur de centralisation :

 

Il restait ensuite à gérer la problématique des logs du proxy Squid. En effet, Squid est un service qui gère lui même ses journaux (comme Apache par exemple). Nous avons du dire au proxy qu'il devait déléguer sa gestion de journaux au syslog du PFSense qui lui-même les enverrait sur le serveur Syslog-NG.

 

Et enjoy nos logs sont maintenant bien déportés sur notre serveur dédié ! ;)