CentOS 7 は既にサポートが終了しています。このページは新規構築を推奨するものではなく、過去環境の保守、移行前調査、設定の読み解きに使うためのレガシー Linux 手順です。新規構築では、現在サポートされている Linux ディストリビューションを利用してください。
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/myzonenamed.conf の基本設定を確認する
公開 DNS では、再帰問い合わせを受けないことが重要です。バックアップを取ったうえで、権威 DNS として必要な項目だけを確認します。
cp -a /etc/named.conf /etc/named.conf.bakoptions {
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 とゾーンファイルを分けて読み、公開している名前の責任範囲を確認します。
関連する記事
- CentOS 7 サーバー管理ガイド
CentOS 7 系の記事をまとめたハブページです。 - CentOS 7 ネットワーク設定 – network サービスと ifcfg の既存運用
Web / DNS サーバーの前提になる固定 IP や ifcfg 設定を確認します。 - CentOS 7 BIND 内部 DNS サーバー構築 – forwarder と内部ゾーンの基本
内部向け DNS と forwarder を扱う記事です。
参考書籍
書籍
DNS の基本、名前解決、権威 DNS、キャッシュ DNS、DNSSEC などを体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。



