Red Hat Training

A Red Hat training course is available for RHEL 8

第 28 章 在 RHEL 8 中使用 dnstap

dnstap 工具提供了监控和记录传入名称查询详情的高级方法。它记录从 named 服务发送的信息。本节介绍如何使用 dnstap 记录 DNS 查询。

28.1. 在 RHEL 8 中使用 dnstap 记录 DNS 查询

网络管理员可以记录 DNS 查询,以收集网站或 IP 地址信息以及域健康状况。

先决条件

  • BIND 软件包升级到版本 bind-9.11.26-2 或更新版本。
警告

如果您已经安装并运行了 BIND 版本,添加新版本 BIND 将覆盖现有的版本。

流程

以下是记录 DNS 查询的步骤:

  1. 编辑 options 块中的 /etc/named.conf 文件启用 dnstap 和目标文件:

    options
    {
    # …
    
    dnstap { all; }; # Configure filter
    dnstap-output file “/var/named/data/dnstap.bin”;
    
    # …
    };
    # end of options

    ( all | auth | client | forwarder | resolver | update ) [ ( query | response ) ];

    dnstap 过滤器包含 dnstap {} 块中由 ; 分隔的多个定义。

    下面是每个规则的语法:

    • auth - 权威区响应或回答。
    • client - 内部客户端查询或回答。
    • forwarder - 转发查询或响应。
    • resolver - 迭代解析查询或响应。
    • update - 动态区更新请求。
    • all - 以上选项中的任何选项。
    • query | response - 如果没有指定查询或响应关键字,则会记录这两个词。

      以下示例只请求 auth 响应, client queries 以及动态 updates 的查询和响应:

    Example:
    
    dnstap {auth response; client query; update;};
  2. 为活跃的日志配置定期推出部署。

    在以下示例中,用户编辑的脚本的内容由 cron 每天运行一次。第 3 号表示备份日志文件仅限于这个数字。因为该文件被删除,所以它永远不会达到 .2 后缀。

    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
  3. 使用 dnstap-read 实用程序以人类可读格式处理和分析日志。

    在以下示例中,详细 dnstap 输出以 YAML 文件格式打印。

    Example:
    
    dnstap-read -y [file-name]