BINDインストール+ゾーン情報定義
目次
構成
想定環境
サーバ構成
OSバージョン
CentOS release 5 (Final) 32bit
パッケージ一覧
bind-9.3.3-7.el5.i386.rpm
bind-chroot-9.3.3-7.el5.i386.rpm
クライアント構成
OSバージョン
Windows XP Professional Service Pack 3
ソフトウェア一覧
特になし
環境構築
インストール
DNSサーバに必要なパッケージを2つインストールします。
そのうち一つはDNSサーバのセキュリティを高めるために必要なパッケージです。
DVDドライブにCentOS 5のDVD-ROMをセットし、以下のコマンドを実行します。
# mount /dev/cdrom /media/cdrom # cd /media/cdrom/CentOS/ # rpm -ihv bind-9.3.3-7.el5.i386.rpm Preparing... ########################################### [100%] 1:bind ########################################### [100%] # rpm -ihv bind-chroot-9.3.3-7.el5.i386.rpm Preparing... ########################################### [100%] 1:bind-chroot ########################################### [100%] Locating /var/named/chroot//etc/named.conf failed: [■■] # cd / # umount /media/cdrom
設定
DNSサーバには大きく2つの役割があります。
一つ目は自身が管理しているドメイン(ranonet.ne.jp)に対する名前解決に応答すること。
二つ目は自身が管理していないドメインに対する名前解決を受け付けた場合に、
他のDNSサーバに対して名前解決を要求し、結果を元に応答すること。
自身が管理しているドメインに対するリゾルバ(DNSクライアントのこと)からの
名前解決要求については、ホスト名とIPアドレスの対応情報(以降、ゾーン情報という)を元に応答します。
自身で管理していないドメインに関する名前解決要求に対しては、
該当情報を管理しているDNSサーバへ代理で問い合わせ(以降、再起問い合わせという)を行い、
得られた結果をクライアントへ応答します(キャッシュサーバ機能)。
DNSサーバは悪意ある攻撃の対象となるケースが多いため、
セキュリティを考慮した設定も行います。
DNSサーバの設定
CentOS 5ではインストール時にnamed.confファイルの生成に失敗して
しまいましたので、ファイルが存在しません
(インストール時にLocatingがfailedと表示されています)。
サンプルの設定ファイルをコピーして使用することもできますが、
ゴチャゴチャしてあまり綺麗ではないので新規に作成することにします。
参考までにサンプルの設定ファイルは/usr/share/doc/bind-9.3.3/sample/etc/named.confです。
viエディタでBINDの設定ファイル(named.conf)を開き、設定を追加します。
# cd /var/named/chroot/etc/ # touch named.conf # chown root:named named.conf # chmod 640 named.conf # vi named.conf
※新規作成※
// /var/named/chroot/etc/named.conf
options
{
listen-on port 53 { any; };
listen-on-v6 port 53 { none; };
query-source port 53;
directory "/var/named";
dump-file "data/cache_dump.db";
statistics-file "data/named_stats.txt";
memstatistics-file "data/named_mem_stats.txt";
allow-transfer { 210.11.22.13; };
version "Unknown";
};
logging
{
channel default_debug {
file "data/named.run";
severity dynamic;
};
channel "log_queries" {
file "/var/log/named/named_queries.log" versions 3 size 50m;
severity info;
print-time yes;
print-severity yes;
print-category yes;
};
channel "log_default" {
file "/var/log/named/named_server.log" versions 3 size 10m;
severity info;
print-time yes;
print-severity yes;
print-category yes;
};
category queries { "log_queries"; };
category default { "log_default"; };
};
view "localhost_resolver"
{
match-clients { localhost; };
match-destinations { localhost; };
recursion yes;
include "/etc/named.rfc1912.zones";
include "/etc/named.ranonet.zones";
};
view "internal"
{
match-clients { localnets; };
match-destinations { localnets; };
recursion yes;
include "/etc/named.rfc1912.zones";
include "/etc/named.ranonet.zones";
};
view "external"
{
match-clients { any; };
match-destinations { any; };
recursion no;
include "/etc/named.ranonet.zones";
};
ゾーン定義ファイルの作成
以前のバージョンではゾーンの定義はnamed.confファイル内で直接行っていました。
しかしviewが採用されるようになったバージョン9.3.3辺りから、
別ファイルで定義してincludeする記述構造が主流になっています。
以前と同じ記述方法でも構わないのですが、一応現在の主流に乗っ取って記述することにします。
ゾーンを定義するファイルは初期状態では存在していないので、
新規に作成し、適切なパーミッションを設定します。
その後viエディタでファイル(named.ranonet.zones)を開き、ゾーンの定義を記述します。
# cd /var/named/chroot/etc/ # touch named.ranonet.zones # chown root:named named.ranonet.zones # vi named.ranonet.zones
※新規作成※
zone "ranonet.ne.jp" IN {
type master;
file "ranonet.ne.jp.zone";
allow-update { none; };
};
zone "22.11.210.in-addr.arpa" IN {
type master;
file "22.11.210.in-addr.arpa.zone";
allow-update { none; };
};
正引き用ゾーン情報の作成
ゾーン情報の定義ファイルは初期状態では存在していません。
ゾーン情報ファイルはテキストファイルですので、
まずはファイルを新規に作成し、適切なパーミッションを設定します。
その後viエディタでファイル(ranonet.ne.jp.zone)を開き、管理情報を記述します。
# cd /var/named/chroot/var/named/ # touch ranonet.ne.jp.zone # chown named:named ranonet.ne.jp.zone # chmod 640 ranonet.ne.jp.zone # vi ranonet.ne.jp.zone
※新規作成※
$TTL 86400
@ IN SOA ns1.ranonet.ne.jp. root.ranonet.ne.jp. (
2010030101 ; Serial
7200 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ; Negative Cache TTL
)
IN NS ns1.ranonet.ne.jp.
IN NS ns2.ranonet.ne.jp.
IN MX 10 mail.ranonet.ne.jp.
ns1 IN A 210.11.22.12
ns2 IN A 210.11.22.13
mail IN A 210.11.22.14
www IN A 210.11.22.15
smtp IN CNAME mail
pop3 IN CNAME mail
逆引き用ゾーン情報の作成
正引きゾーン情報と同様に、逆引きゾーン情報を作成します。
作成手順も同様でゾーン情報ファイルを新規に作成し、
適切なパーミッションを設定します。
その後viエディタでファイル(22.11.210.in-addr.arpa.zone)を開き、管理情報を記述します。
# cd /var/named/chroot/var/named/ # touch 22.11.210.in-addr.arpa.zone # chown root:named 22.11.210.in-addr.arpa.zone # chmod 640 22.11.210.in-addr.arpa.zone # vi 22.11.210.in-addr.arpa.zone
※新規作成※
$TTL 86400
@ IN SOA ns1.ranonet.ne.jp. root.ranonet.ne.jp. (
2010030101 ; Serial
7200 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ; Negative Cache TTL
)
IN NS ns1.ranonet.ne.jp.
IN NS ns2.ranonet.ne.jp.
12 IN PTR ns1.ranonet.ne.jp.
13 IN PTR ns2.ranonet.ne.jp.
14 IN PTR mail.ranonet.ne.jp.
15 IN PTR www.ranonet.ne.jp.
ログ出力用ディレクトリの作成
ログを出力するためのディレクトリを作成します。 本来であれば /var/log/named/ ディレクトリ以下にログを出力させたいのですが、 chroot jail機能によってアクセス不可となっているため /var/named/chroot/var/log/named/ ディレクトリ以下に出力させるようにしています。 ディレクトリを作成して適切なパーミッションを設定します。
# cd /var/named/chroot/var/ # mkdir log # cd log/ # mkdir named
DNSサーバの起動ランレベル変更
OSの起動に併せてデーモンを自動起動する設定に変更します。
# chkconfig named on
以上で設定が終了したのでrcスクリプトを使用してデーモンを起動します。
# /etc/rc.d/init.d/named start Starting named: [ OK ]
設定ファイル
/var/named/chroot/etc/named.conf
/var/named/chroot/etc/named.ranonet.zones
/var/named/chroot/var/named/ranonet.ne.jp.zone
/var/named/chroot/var/named/22.11.210.in-addr.arpa.zone
クライアント設定
設定
画面左下の [スタート] - [マイ ネットワーク] をマウスで右クリックし、 表示されたサブメニューから [プロパティ] を選択する。
「ネットワーク接続」 ウィンドウが表示されたら、 [ローカル エリア接続] をマウスで右クリックし、 表示されたサブメニューから [プロパティ] を選択する。
「ローカル エリア接続のプロパティ」 ウィンドウが表示されたら、 [インターネット プロトコル (TCP/IP)] を選択し、 [プロパティ] ボタンをクリックする。
「インターネット プロトコル (TCP/IP)のプロパティ」 ウィンドウが表示されたら、 以下の通りに入力して [OK] ボタンをクリックする。
「ローカル エリア接続のプロパティ」 ウィンドウで [OK] ボタンをクリックする。