CentOS 7 で BIND を使い、外部公開用の権威 DNS サーバーを構築する手順です。内部 DNS と異なり、外部向けでは recursion を無効にし、自分が管理するゾーンだけに責任を持つ構成にします。
コマンドはコピペしやすい形を優先しています。ただし、BIND、OpenLDAP、Samba は既存値との重複や環境差が出やすいため、長大な設定ファイルはバックアップを取り、設定断片として確認して反映します。
この手順は CentOS 7 設定マニュアル の一部として整理しています。
参考書籍
参考書籍
DNS がよくわかる教科書 第 2 版
DNS の基本、名前解決、権威 DNS、キャッシュ DNS、DNSSEC などを体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
インストール
yum install bind-chrootゾーンファイルディレクトリ
mkdir -p /var/named/myzone
chmod 770 /var/named/myzone
chgrp named /var/named/myzonenamed.conf の設定
公開 DNS では、再帰問い合わせを受けないことが重要です。named.conf は設定断片として確認して反映します。
cp -a /etc/named.conf /etc/named.conf.bak
cat <<'EOF'
# /etc/named.conf の該当項目を以下のように整理する
options {
listen-on port 53 { any; };
allow-query { any; };
recursion no;
version "";
allow-update { none; };
allow-transfer { none; };
notify no;
};
zone "mydomain.com" {
type master;
file "myzone/mydomain.com.zone";
};
EOFIPv4 のみで起動する設定
cp -a /etc/sysconfig/named /etc/sysconfig/named.bak
cat <<'EOF' >> /etc/sysconfig/named
OPTIONS="-4"
EOF公開ゾーンファイル
cat <<'EOF' > /var/named/myzone/mydomain.com.zone
$TTL 172800
@ IN SOA dns.mydomain.com. root.mydomain.com. (
2019010101
3600
300
360000
86400
)
@ IN NS dns.mydomain.com.
@ IN MX 10 mail.mydomain.com.
@ IN A xxx.xxx.xxx.xxx
mail IN A xxx.xxx.xxx.xxx
dns IN A xxx.xxx.xxx.xxx
www IN A xxx.xxx.xxx.xxx
EOF権限と起動
chmod 640 /var/named/myzone/*
chgrp named /var/named/myzone/*
systemctl enable --now named-chroot.service
systemctl status named-chroot.service確認
named-checkconf /etc/named.conf
named-checkzone mydomain.com /var/named/myzone/mydomain.com.zone
dig @127.0.0.1 mydomain.com SOA
dig @127.0.0.1 www.mydomain.com A確認するポイント
- 公開 DNS で recursion が有効になっていないか。
- allow-transfer を必要な相手だけに制限しているか。
- SOA serial を更新時に増やしているか。
- 外部から 53/udp と 53/tcp に到達できるか。
外部 DNS は公開面そのものです。内部 DNS のようなフォワーダ用途と混ぜず、権威 DNS として必要な応答だけを返す構成にします。
この手順は CentOS 7 設定マニュアル の一部として整理しています。
CentOS 7 BIND 外部 DNS サーバー構築 – 公開ゾーンの基本設定




