Chapitre 23. Enregistrement des requêtes DNS à l'aide de dnstap dans RHEL
En tant qu'administrateur réseau, vous pouvez enregistrer les détails du système de noms de domaine (DNS) pour analyser les schémas de trafic DNS, surveiller les performances du serveur DNS et résoudre les problèmes DNS. Si vous souhaitez disposer d'un moyen avancé de surveiller et d'enregistrer les détails des requêtes de noms entrantes, utilisez l'interface dnstap
qui enregistre les messages envoyés par le service named
. Vous pouvez capturer et enregistrer les requêtes DNS pour collecter des informations sur les sites web ou les adresses IP.
Conditions préalables
-
Mettre à jour les paquets
BIND
vers la versionbind-9.16.15-3
ou ultérieure, qui contient l'interfacednstap
.
Si une version de BIND
est déjà installée et fonctionne, l'ajout d'une nouvelle version de BIND
écrasera la version existante.
Procédure
Activez
dnstap
et le fichier cible en modifiant le fichier/etc/named.conf
dans le blocoptions
:options { # … dnstap { all; }; # Configure filter dnstap-output file "/var/named/data/dnstap.bin" versions 2; # … }; # end of options
Pour spécifier les types de trafic DNS que vous souhaitez enregistrer, ajoutez des filtres
dnstap
au blocdnstap
dans le fichier/etc/named.conf
. Vous pouvez utiliser les filtres suivants :-
auth
- Réponse ou réponse d'une zone faisant autorité. -
client
- Requête ou réponse interne du client. -
forwarder
- Requête transmise ou réponse de sa part. -
resolver
- Requête ou réponse de résolution itérative. -
update
- Demandes de mise à jour dynamique de la zone. -
all
- N'importe laquelle des options ci-dessus. -
query
ouresponse
- Si vous ne spécifiez pas de mot-cléquery
ouresponse
,dnstap
enregistre les deux.
NoteLe filtre
dnstap
contient plusieurs définitions délimitées par un;
dans le blocdnstap {}
avec la syntaxe suivante :dnstap { ( all | auth | client | forwarder | resolver | update ) [ ( query | response ) ]; … };
-
Pour personnaliser le comportement de l'utilitaire
dnstap
sur les paquets enregistrés, modifiez l'optiondnstap-output
en fournissant des paramètres supplémentaires, comme suit :-
size
(illimité | <size>) - Active le renouvellement automatique du fichierdnstap
lorsque sa taille atteint la limite spécifiée. -
versions
(illimité | <integer>) - Spécifiez le nombre de fichiers roulés automatiquement à conserver. suffix
(incrément | horodatage ) - Choisissez la convention de nommage pour les fichiers déployés. Par défaut, l'incrément commence par.0
. Vous pouvez également utiliser l'horodatage UNIX en définissant la valeurtimestamp
.L'exemple suivant demande uniquement les réponses de
auth
, les requêtes declient
et à la fois les requêtes et les réponses de la dynamiqueupdates
:Example: dnstap {auth response; client query; update;};
-
Pour appliquer vos modifications, redémarrez le service
named
:# systemctl restart named.service
Configurer un déploiement périodique pour les journaux actifs
Dans l'exemple suivant, le planificateur
cron
exécute le contenu du script édité par l'utilisateur une fois par jour. L'optionroll
avec la valeur3
spécifie quednstap
peut créer jusqu'à trois fichiers journaux de sauvegarde. La valeur3
remplace le paramètreversion
de la variablednstap-output
et limite le nombre de fichiers journaux de sauvegarde à trois. En outre, le fichier journal binaire est déplacé dans un autre répertoire et renommé, et il n'atteint jamais le suffixe.2
, même si trois fichiers journaux de sauvegarde existent déjà. Vous pouvez ignorer cette étape si le roulement automatique des journaux binaires en fonction de la taille limite est suffisant.Example: sudoedit /etc/cron.daily/dnstap #!/bin/sh rndc dnstap -roll 3 mv /var/named/data/dnstap.bin.1 /var/log/named/dnstap/dnstap-$(date -I).bin # use dnstap-read to analyze saved logs sudo chmod a+x /etc/cron.daily/dnstap
L'utilitaire
dnstap-read
permet de traiter et d'analyser les journaux dans un format lisible par l'homme :Dans l'exemple suivant, l'utilitaire
dnstap-read
imprime la sortie au format de fichierYAML
.Example: dnstap-read -y [file-name]