Red Hat Training

A Red Hat training course is available for RHEL 8

4.4. 在 BIND DNS 服务器中配置日志记录

默认 /etc/named.conf 文件中的配置(如 bind 软件包提供)使用 default_debug 通道,并将消息记录到 /var/named/data/named.run 文件中。default_debug 频道仅在服务器的 debug 级别为零时记录条目。

使用不同的频道和类别,您可以将 BIND 配置为将具有定义的严重性的不同事件写入单独的文件。

先决条件

  • 已配置了 BIND,例如作为缓存名称服务器。
  • namednamed-chroot 服务正在运行。

流程

  1. 编辑 /etc/named.conf 文件,并将 categorychannel 添加到 logging 语句中,例如:

    logging {
        ...
    
        category notify { zone_transfer_log; };
        category xfer-in { zone_transfer_log; };
        category xfer-out { zone_transfer_log; };
        channel zone_transfer_log {
            file "/var/named/log/transfer.log" versions 10 size 50m;
            print-time yes;
            print-category yes;
            print-severity yes;
            severity info;
         };
    
         ...
    };

    使用这个示例配置,BIND 会记录与区域传送相关的消息,到 /var/named/log/transfer.log。BIND 创建最多 10 个日志文件版本,如果它们达到 50 MB 的最大大小,则轮转它们。

    category 定义了 BIND 向哪些频道发送类别信息。

    channel 定义了日志消息的目的地,包括版本数量、最大文件大小以及 BIND 应记录到频道的严重性等级。其他设置(如启用日志的时间戳、类别和严重性)是可选的,但可用于调试目的。

  2. 如果不存在,创建日志目录,并为 named 用户授予对这个目录的写权限:

    # mkdir /var/named/log/
    # chown named:named /var/named/log/
    # chmod 700 /var/named/log/
  3. 验证 /etc/named.conf 文件的语法:

    # named-checkconf

    如果命令没有显示输出,则语法为正确的。

  4. 重启 BIND:

    # systemctl restart named

    如果在 change-root 环境中运行 BIND,请使用 systemctl restart named-chroot 命令来重启该服务。

验证

  • 显示日志文件的内容:

    # cat /var/named/log/transfer.log
    ...
    06-Jul-2022 15:08:51.261 xfer-out: info: client @0x7fecbc0b0700 192.0.2.2#36121/key example-transfer-key (example.com): transfer of 'example.com/IN': AXFR started: TSIG example-transfer-key (serial 2022070603)
    06-Jul-2022 15:08:51.261 xfer-out: info: client @0x7fecbc0b0700 192.0.2.2#36121/key example-transfer-key (example.com): transfer of 'example.com/IN': AXFR ended

其它资源