手当たり次第に書くんだ

飽きっぽいのは本能

CentOS 7 BIND 外部 DNS サーバー構築 – 公開ゾーンの基本設定

CentOS 7 は既にサポートが終了しています。このページは新規構築を推奨するものではなく、過去環境の保守、移行前調査、設定の読み解きに使うためのレガシー Linux 手順です。新規構築では、現在サポートされている Linux ディストリビューションを利用してください。

CentOS 7 サーバー管理ガイドへ戻る

CentOS 7 で BIND を使い、外部公開用の権威 DNS サーバーを構築する手順です。内部 DNS と異なり、外部向けでは recursion を無効にし、自分が管理するゾーンだけに責任を持つ構成にします。

公開 DNS サーバーは、インターネットから問い合わせを受ける前提になります。そのため、ゾーン情報の正確性だけでなく、再帰問い合わせを受けないこと、不要な情報を出さないこと、転送を安易に許可しないことが重要です。

公開 DNS の役割を整理する

  • 自分が管理する公開ゾーンに対して権威応答する。
  • キャッシュ DNS として使わせない。
  • zone transfer を不用意に許可しない。
  • SOA、NS、MX、A レコードの整合性を確認する。

BIND をインストールする

yum install bind-chroot

ゾーンファイル用ディレクトリを作成する

mkdir -p /var/named/myzone
chmod 770 /var/named/myzone
chgrp named /var/named/myzone

named.conf の基本設定を確認する

公開 DNS では、再帰問い合わせを受けないことが重要です。バックアップを取ったうえで、権威 DNS として必要な項目だけを確認します。

cp -a /etc/named.conf /etc/named.conf.bak
options {
    listen-on port 53 { any; };
    allow-query { any; };
    recursion no;
    allow-update { none; };
    allow-transfer { none; };
    notify no;
    version "";
};

zone "mydomain.com" {
    type master;
    file "myzone/mydomain.com.zone";
};

IPv4 のみで起動する場合

cp -a /etc/sysconfig/named /etc/sysconfig/named.bak
cat >> /etc/sysconfig/named <<'EOF'
OPTIONS="-4"
EOF

公開ゾーンファイルを作成する

以下は公開ゾーンの例です。実際の IP アドレス、メールサーバー、NS 名、シリアル番号は自分の環境に合わせます。

$TTL 172800
@   IN SOA dns.mydomain.com. root.mydomain.com. (
        2020010101
        3600
        300
        360000
        86400 )

@       IN NS   dns.mydomain.com.
@       IN MX   10 mail.mydomain.com.
@       IN A    203.0.113.10
dns     IN A    203.0.113.10
mail    IN A    203.0.113.20
www     IN A    203.0.113.30

設定を検証して起動する

named-checkconf
named-checkzone mydomain.com /var/named/myzone/mydomain.com.zone
systemctl enable named
systemctl restart named
systemctl status named

外部向けの応答を確認する

dig @127.0.0.1 mydomain.com SOA
dig @127.0.0.1 mydomain.com NS
dig @127.0.0.1 www.mydomain.com A
dig @127.0.0.1 www.example.com

最後の外部ドメイン問い合わせで再帰応答しないことを確認します。公開 DNS がキャッシュ DNS として使われる状態は避けます。

確認するポイント

  • recursion が無効になっているか。
  • SOA のシリアル番号を更新時に上げているか。
  • NS レコードと実際の委任情報が一致しているか。
  • allow-transfer を安易に any にしていないか。
  • 公開する必要のない内部名をゾーンに含めていないか。

まとめ

外部向け BIND は、内部 DNS よりも役割を絞って考える必要があります。公開ゾーンに対して正しく権威応答し、再帰問い合わせを受けず、不要な転送や情報公開を避けることが基本です。CentOS 7 の既存環境では、named.conf とゾーンファイルを分けて読み、公開している名前の責任範囲を確認します。

関連する記事

参考書籍

参考
書籍
参考書籍
DNS がよくわかる教科書 第 2 版

DNS の基本、名前解決、権威 DNS、キャッシュ DNS、DNSSEC などを体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。

Amazon で見る

このリンクは Amazon アソシエイトリンクです。

CentOS 7 BIND 外部 DNS サーバー構築 – 公開ゾーンの基本設定

コメントを残す

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

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る