Aller à : navigation, rechercher

SAMBA - Audit requetes DNS et logs Bind9

Audit requetes DNS Bind

Création des deux fichiers de logs : /var/log/bind/audit.log et /var/log/bind/requests.log

mkdir -p /var/log/bind/
touch /var/log/bind/audit.log
touch /var/log/bind/requests.log
chown -R bind /var/log/bind
chmod u+rw /var/log/bind

Mise en place du fichier de configuration de log

Créer un fichier de configuration des logs /etc/bind/log.conf que l'on va inclure dans la configuration Bind9

 logging {
        channel default_syslog {
                // log syslog classique
                syslog local2;
        };
 
        channel audit_log {
                // log audit avancé (hors requetes)
                file "/var/log/bind/audit.log" size 10m;
                severity debug;
                print-category yes;
                print-severity yes;
                print-time yes;
        };
 
        channel requetes_log {
                // log requetes DNS
                file "/var/log/bind/requests.log" size 10m;
                severity debug;
                print-time yes;
                print-category yes;
                print-severity yes;
        };
 
        channel null {
                null;
        };
 
        category default { default_syslog; };
        category general { audit_log; };
        category security { audit_log; };
        category config { audit_log; };
        category resolver { audit_log; };
        category xfer-in { audit_log; };
        category xfer-out { audit_log; };
        category notify { audit_log; };
        category client { audit_log; };
        category network { audit_log; };
        category update { audit_log; };
        category queries { requetes_log; audit_log; };
        category lame-servers { null; };
 
};

Inclure le fichier de configuration dans le fichier /etc/bind/named.conf (ou /etc/named.conf si CentOS)

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
include "/etc/bind/log.conf";

Activer le log de query DNS

rndc querylog on

Redémarrer Bind9 et vérifier que Bind9 est bien démarré

systemctl restart bind9; systemctl status bind9

Mise en place du logrotate

La volumétrie peut être très vite élevée sur ce genre d'audit, on met en place un rotate journalier avec conservation de 7+jours

Créer le fichier /etc/logrotate.d/bind

/var/log/bind/audit.log {
  daily
  missingok
  rotate 7
  compress
  delaycompress
  notifempty
  create 644 bind bind
  postrotate
    systemctl reload bind9 > /dev/null
  endscript
}
 
/var/log/bind/requests.log {
  daily
  missingok
  rotate 7
  compress
  delaycompress
  notifempty
  create 644 bind bind
  postrotate
    systemctl reload bind9 > /dev/null
  endscript
}

Recharger logrotate

logrotate -d /etc/logrotate.d/bind

Désactiver le log des requetes

Relancer la commande avec l'argument off

rndc querylog off