DNS(bind)における、named.confの設定

DNSサーバー(bind)を更新した際、少々アズった(手こずった)ので、その備忘録として。

ダウンロード (1)

☆ options部の設定

一般項目

  •  version  [ヴァージョン名]
    DNSソフトウェアのヴァージョンの問い合わせに対して返送する文字列を指定します。ヴァージョンを知られないようにするのはセキュリティ対策の基本ですので、”UNKNOWN”, “GUESS”等、ヴァージョンを悟られないように適当な文字列を設定しておきます。
  • hostname [ホスト名]
    DNSサーバのホスト名の問い合わせに対して返送する文字列を設定します。この項目を省略した場合OSにて設定したホスト名が返されます。DNSサーバホストのDNSでの名前がOS設定でのホスト名と異なる場合に使用すると便利です(例:ロードバランス)。

各種ファイル配置を指定する項目

  • directory  [パス名]
    named.confの中で、ファイルのパスが相対パスで指定されている場合、ここに指定した場所が、その相対パスの起点となります。/var/namedが一般的です。
  • dump-file [パス名]
    rndcを使ってdbのダンプを要求した際のダンプ先ファイルのパスを設定します。デフォルトは{namedのカレントディレクトリ}/named_dump.dbです。
  • statistics-file [パス名]
    rndcを使ってステータス情報を要求した際に統計情報が追記されるファイルのパスを設定します。デフォルトは、{namedのカレントディレクトリ}/named.statsです。
  • pid-file [パス名]
    namedプロセスのPID(プロセスID)を書き出すファイルのパスを設定します。PIDファイルは/var/run以下に書くのが一般的です。上記の例では、name専用にディレクトリ「/var/run/named」を設けています。

リッスンアドレス、ポート番号の設定

  • listen-on port [ポート番号] { [IPアドレス]; …. };
    DNSホストに割り当てられたIPアドレスについて、DNSサービスへのアクセスが可能なものを限定する場合に指定します。複数のネットワークインタフェイスが実装されたホストや、IPエリアスでネットワークインタフェイスに複数のIPアドレスが割り当てられているホストで、DNSサービスを特定のアドレスに限定したい場合に設定します。省略した場合、namedはホストに割り当てられたすべてのアドレスをリッスンします。

ゾーン転送関連の設定

  • notify [yes | no]
    このDNSサーバがSOAであるマスターゾーンについて、ゾーンデータに更新があった際に、その更新をあらかじめ指定されたスレーブサーバに伝えるかどうかを決定します。この値は、各ゾーンの設定部分でも指定変更可能です。
  • max-transfer-time-in [秒数]
    インバウンドのゾーン転送のタイムアウト時間を数値(分単位)で指定します。省略時は120(2時間)です。ゾーン転送についての設定項目はこのほかインバウンド/アウトバウンドともに数多くありますが、他でまとめて解説します。

    • transfer-format [one-answer | many-answers]
      ゾーン転送するマスターサーバ側で設定します。one-answerが指定されている場合、マスターサーバは一回の応答につき1レコードのみを転送します。many-answersが指定されてりる場合は、複数のレコードを一回の応答でまとめて転送します。many-answersのほうが転送効率が良いのは言うまでもありませんが、古いDNSサーバはこれに対応できない場合があります。BINDではBIND9, BIND8, BIND4.9.5が対応しています。また、最近のMicrosoft Windowsサーバ製品のDNSサービスがこれに対応しています。省略時の規定値は、many-answersです。
    • transfers-in [数値]
      同時実行可能なインバウンド方向のゾーン転送の最大数を設定します。省略時の規定値は10です。数値を増加されると転送効率が向上しますが、リモートサーバの負荷も増加します。
    • transfers-per-ns [数値]
      同時実行可能なインバウンド方向のゾーン転送の、リモートサーバ一台あたりの最大数です。省略時の規定値は2です。数値を増加させると転送効率が増大しますが、リモートサーバの負荷も増加します。

    アクセス制限に関する設定

    • allow-transfer { [IPアドレス、ネットワークアドレスまたはACL名]; … }
      ゾーン転送を許可するリモートサーバを定義します。
    • allow-query-cache { [IPアドレス、ネットワークアドレスまたはACL名]}
      キャッシュデータに対するDNSクエリーを許可するリモートホストを定義します。
    • allow-query{ [IPアドレス、ネットワークアドレスまたはACL名]; … }
      DNSクエリーを許可するリモートホストを定義します。

    再帰的クエリーに関する設定

    • recursion [yes | no]
      再帰的クエリーに対する措置を決定します。yesに設定されたDNSサーバは、自分がマスターでないゾーンについてのクエリーを受けると、そのゾーンのSOAである他のDNSサーバに問い合わせをかけ、調べて回答します。noに設定されたDNSサーバは、自分がSOAであるゾーンのみについて名前解決をおこないます。内部ネットワークからインターネットへのアクセスについてDNSサービスを提供しなければならないDNSサーバの場合、この設定項目や次のallow-recursionにより再帰的クエリーを内部のクライアントに許可する必要がありますが、再帰的クエリーの実行は、悪意ある攻撃の対象となる可能性があります。(再起的クエリー関連の設定は、セキュリティにかかわる重要項目です。あとでまとめて解説します)
    • allow-recursion { [IPアドレス、ネットワークアドレスまたはACL名]}
      再帰的クエリーを特定のホストやネットワークに限定して許可する場合に使用します。DNSサーバはこれらのホストの要求に対しては、再帰的クエリーを実行します。

    その他

    •  auth-nxdomain [yes | no]
      yesが設定された場合、要求されたdnsクエリーを行った結果、指定されたドメインが見つからずクエリー発行元にNXDOMAIN(non- existent domain)を返す際に、SOAでない場合も、強制的にAAビットをたてます。BIND8まではデフォルト値がtrueでしたが、今では、この機能が必 要なケースがまれであるためBIND9からはfalseがデフォルト値となりました。DNS参照をする古いソフトウェアでは必要なケースがあります。

\ 最新情報をチェック /

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です