CentOSでは、DNSを実装した代表的なソフトウェアのBINDが使えます。
BINDは用途が広く、マスターターバ・スレーブサーバのいずれでも動作します。またローカルなDNSサーバとしても機能することができます。
■パッケージのインストール
# yum -y install bind
# yum -y install bind-chroot
# yum -y install caching-nameserver
bindパッケージは、DNSサーバを構築するために必要です。
サービス名はnamed。インストールした時点では、自動起動されない設定になっています。
bind-chrootパッケージは、BINDが参照するファイルシステムのルートが、/var/named/chroot にあるように見せることで、悪意のある第三者に攻撃されても、システムのファイルに影響が及ばないようにします。
chaching-nameserverパッケージは、自ホスト内で発生する様々な名前参照の問い合わせ結果を、DNSサーバのシステム内にキャッシュするためのものです。
■bind-chroot
bind-chrootパッケージをインストールすることで、nameedが使用するファイル全てが、/var/named/chroot以下にコピーされます。これまで標準的に存在していたファイル(ex. /etc/named.conf)は、/var/named/chroot以下のファイルのシンボリックリンクとして残されます。
例)初期設定ファイル : /etc/named.conf ⇒ /var/named/chroot/etc/named.conf
■サービスの起動
# /etc/init.d/named start
もしくは
# service named start
デフォルトでは自動起動される設定になっていません。
# chkconfig --list named
named 0:off 1:off 2:off 3:off 4:off 5:off 6:off
自動起動の設定
# chkconfig --level 345 named on
■初期設定ファイル
bind-chrootをインストールしたものとして話を進めます。
BINDは、/etc/named/chroot/etc/named.confを初期設定ファイルとして使用します。BINDにおいて、ステートメントとして定義されているのは12個あります。logging, options, zone, acl, key, trusted-keys, server, controls, include, masters, lwres, viewです。そのうち、重要となるのは、optionsとzoneです。
named.conf
# cat named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
# namedの動作に関する基本的な設定を行うoptionsステートメント
options {
# namedがどのアドレスとポートでリクエストを受け付けるかの指定
listen-on port 53 { 127.0.0.1; };
# namedがどのアドレスとポートでリクエストを受け付けるかの指定(IPv6用)
listen-on-v6 port 53 { ::1; };
# マスターファイルの置き場所の指定
directory “/var/named”;
# rndcコマンドのdumpdb命令で、namedがキャッシュしているデータをダンプする場合に出力されるファイル名
dump-file “/var/named/data/cache_dump.db”;
# rndcコマンドのstats命令で、統計情報を出力する場合に出力されるファイル名
statistics-file “/var/named/data/named_stats.txt”;
# namedが終了時にメモリの使用統計を出力されるファイル名
memstatistics-file “/var/named/data/named_mem_stats.txt”;
# DNSサーバに問い合わせできるクライアントを限定する指定
allow-query { localhost; };
# 再帰的なクエリの許可
recursion yes;
# DNSSECの有効の許可
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file “/etc/named.iscdlv.key”;
};
# BINDのログ出力方法の設定を行うloggingステートメント
logging {
channel default_debug {
file “data/named.run”;
severity dynamic;
};
};
# ルートドメインに相当するゾーンの設定を行うzoneステートメント
zone “.” IN {
type hint;
file “named.ca”;
};
# includeで指定されたファイルの情報を設定として読み込む
include “/etc/named.rfc1912.zones”; |
■named.rfc1912.zone
RFC1912で定められたDNSサーバとして必要最小限のDNSレコードを設定するための設定ファイルです。
named.rfc1912.zone
# cat named.rfc1912.zones
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
// (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
# localhost.localdomain というホスト名を参照するための設定
zone “localhost.localdomain” IN {
type master;
file “named.localhost”;
allow-update { none; };
};
# localhost というホスト名を参照するための設定
zone “localhost” IN {
type master;
file “named.localhost”;
allow-update { none; };
};
# ローカルループバックゾーンのIPv6用の逆引き
zone “1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa” IN {
type master;
file “named.loopback”;
allow-update { none; };
};
# ローカルループバックゾーンの逆引き
zone “1.0.0.127.in-addr.arpa” IN {
type master;
file “named.loopback”;
allow-update { none; };
};
# 0.0.0.0 に対する逆引き処理のための設定
zone “0.in-addr.arpa” IN {
type master;
file “named.empty”;
allow-update { none; };
}; |
■設定の反映
# service named reload
参考)
・『CentOS5 で作るネットワークサーバ構築ガイド』
・自宅内DNSサーバーの構築
http://www.obenri.com/_dnsserver/named_conf.html