OSS Fan ~OSSでLinuxサーバ構築~

このエントリーをはてなブックマークに追加

BINDインストール+ゾーン情報定義

カテゴリ:OSSセットアップ | ソフトウェア:BIND | タグ:
最終更新日:2020/11/01 | 公開日:2010/03/01

目次

構成

想定環境

サーバ構成

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
※新規作成※
// /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
ファイル名:/var/named/chroot/etc/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
ファイル名:/var/named/chroot/var/named/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
ファイル名:/var/named/chroot/var/named/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] ボタンをクリックする。