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 クエリーを記録し、ドメインの正常性と共に Web サイトまたは IP アドレス情報を収集できます。

前提条件

  • BIND パッケージをバージョン bind-9.11.26-2 以降にアップグレードします。
警告

BIND バージョンがすでにインストールされ、実行されている場合、新しいバージョンの BIND を追加すると、既存のバージョンが上書きされます。

手順

DNS クエリーを記録する手順は次のとおりです。

  1. options ブロックの /etc/named.conf ファイルを編集し、dnstap と target ファイルを有効にします。

    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 で 1 日 1 回実行されます。数値 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]