搜索

4.9. 使用 dnstap 记录 DNS 查询

download PDF

作为网络管理员,您可以记录域名系统(DNS)详情来分析 DNS 流量模式、监控 DNS 服务器性能,并对 DNS 问题进行故障排除。如果您希望有一个高级方法来监控和记录传入名称查询的详细信息,请使用 dnstap 接口记录从 named 服务发送的消息。您可以捕获并记录 DNS 查询,来收集有关网站或 IP 地址的信息。

先决条件

  • bind-9.11.26-2 软件包或更新版本已安装。
警告

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

流程

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

    options
    {
    # ...
    dnstap { all; }; # Configure filter
    dnstap-output file "/var/named/data/dnstap.bin";
    # ...
    };
    # end of options
  2. 要指定您要记录的 DNS 流量类型,请将 dnstap 过滤器添加到 /etc/named.conf 文件中的 dnstap 块中。您可以使用以下过滤器:

    • auth - 权威区域响应或回答。
    • client - 内部客户端查询或回答。
    • forwarder - 转发的查询或来自它的响应。
    • resolver - 迭代的解析查询或响应。
    • update - 动态区域更新请求。
    • all - 以上选项中的任何一个。
    • queryresponse - 如果您没有指定 queryresponse 关键字,则 dnstap 两个都记录。

      注意

      dnstap 过滤器包含多个由 ; 分隔的定义,dnstap {} 块的语法如下:dnstap{(all | auth | client | forwarder | resolver | update)[(query | response)]; …​ };

  3. 要应用您的更改,请重启 named 服务:

    # systemctl restart named.service
  4. 为活跃日志配置定期回滚

    在以下示例中,cron 调度程序每天运行一次用户编辑的脚本的内容。值为 3roll 选项指定 dnstap 最多可以创建三个备份日志文件。值 3 覆盖 dnstap-output 变量的 version 参数,并将备份日志文件数限制为三个。此外,二进制日志文件被移到另一个目录并被重命名,并且永远不会达到 .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
  5. 使用 dnstap-read 工具以人类可读的格式处理和分析日志:

    在以下示例中,dnstap-read 工具以 YAML 文件格式打印输出。

    Example:
    
    dnstap-read -y [file-name]
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.