BIND

DNSサーバとして最もよく利用されているのが BIND らしい
ちょっと調べてみたら日本にあるルートサーバも BIND らしいですね

BIND を利用するために必要なパッケージ

  • bind
  • bind-utils
  • bind-libs
  • caching-nameserver

※ caching-nameserver は CentOS6 以降、BIND に統合されたみたい。

Package 32:bind-9.8.2-0.17.rc1.el6_4.4.x86_64 already installed and latest 
CentOS6以降の場合

この2種類のパッケージを用意すればよさそうな感じ

yum install bind bind-chroot

BIND の設定

デフォルトの設定では、キャッシュ専用サーバとして利用できる
BIND の設定は、2種類から構成されている

  • /etc/named.conf
  • DNSデータベースであるゾーンファイル

/etc/named.conf

  • ゾーンファイルを格納するディレクトリ
 13     directory   "/var/named";

chroot によって、実際に格納されているディレクトリは /var/named/chroot/var/named

  • キャッシュダンプファイルの指定
 14     dump-file   "/var/named/data/cache_dump.db";
  • 統計を保存するファイルの指定
 15         statistics-file "/var/named/data/named_stats.txt";
  • バージョンの隠蔽
 16    version     "Unknown";

デフォルトでは、問い合わせに対してBINDはソフトウェア名やバージョン番号を出力する。
これをヒントに的確な攻撃を受けるのを回避するために、ソフトウェアやバージョンが特定できない文字列を指定すると安心感アップ。

  • ルートゾーンの設定
 38 zone "." IN {
 39     type hint;         # ルート検索のヒントに利用する
 40     file "named.ca";   # ヒントファイルの指定(ルートネームサーバの一覧が記述されたファイルのこと)
 41 };
  • localdomainゾーンの設定
zone "localdomain" IN {
        type master;               # このサーバがマスターDNSサーバであるという指定
        file "localdomain.zone";   # ゾーンファイルの指定
        allow-update { none };     # ゾーン内の情報を動的に更新することを禁止
};