Contents
概要
内部向けのDNSサーバーを構築します。このDNSサーバーは内部サーバーの名前解決と、リゾルバとして使用します。
前提条件
OS
CentOS Stream 8を使用します。
SELinux
有効です。無効にする場合はこちらを参照して下さい。
Firewalld
無効です。有効化する場合はこちらを参照して必要な許可設定をして下さい。
標準ポート番号
TCP:53 (DNS), UDP:53 (DNS)
通常はUDPが使われます。TCPはゾーン転送やデータサイズにより使用されるようです。
設定
インストール
BINDをインストールします。bind-chrootが必要ならそれでも構いませんし、後続の設定や手順に変わりはありません。尚、bind-chrootはコンテナ環境ではうまく動きませんでした。
[root@centos ~]# dnf install bind
ゾーンファイル格納用ディレクトリ
デフォルトのゾーンファイル格納先は/var/namedですが、他のファイルも格納されているため、管理上、ディレクトリを分けています。必須ではありませんので、好みに応じて設定して下さい。
[root@centos ~]# mkdir /var/named/myzone [root@centos ~]# chmod 770 /var/named/myzone [root@centos ~]# chgrp named /var/named/myzone
/etc/named.conf
named.confはBINDの設定ファイルです。
named.confのデフォルト値
コメント行等をしたnamed.confは下記の通りです。
options { listen-on port 53 { 127.0.0.1; }; listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; secroots-file "/var/named/data/named.secroots"; recursing-file "/var/named/data/named.recursing"; allow-query { localhost; }; recursion yes; dnssec-enable yes; dnssec-validation yes; managed-keys-directory "/var/named/dynamic"; pid-file "/run/named/named.pid"; session-keyfile "/run/named/session.key"; include "/etc/crypto-policies/back-ends/bind.config"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; };
named.confの設定
named.confを編集します。
[root@centos ~]# vi /etc/named.conf options { listen-on port 53 { any; }; listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; secroots-file "/var/named/data/named.secroots"; recursing-file "/var/named/data/named.recursing"; allow-query { any; }; recursion yes; dnssec-enable yes; dnssec-validation yes; managed-keys-directory "/var/named/dynamic"; pid-file "/run/named/named.pid"; session-keyfile "/run/named/session.key"; include "/etc/crypto-policies/back-ends/bind.config"; version ""; forwarders { 8.8.8.8; 8.8.4.4; }; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; zone "si1230.com" { type master; file "myzone/si1230.com.zone"; }; zone "0.0.10.in-addr.arpa" { type master; file "myzone/0.0.10.in-addr.arpa"; };
- listen-on port
- デフォルト値は127.0.0.1です。anyに変更します。IPアドレスを指定すれば特定のインターフェイスだけ有効にできます。
- allow-query
- デフォルト値はlocalhostです。anyに変更します。IPアドレス、ネットワークアドレスを指定すれば範囲を限定できます。
- version
- 追加です。BINDのバージョン情報を非表示にします。
- forwarders
- 追加です。BIND自身が保持しないZone情報の名前解決を指定したDNSサーバーに転送します。例としてGoogleの公開DNSを指定しています。
- zone “si1230.com”
- si1230.com(例)の正引き設定です。デフォルトの格納先の場合はmyzone/が不要です。
- zone “0.0.10.in-addr.arpa”
- 10.0.0.0/24(例)の逆引き設定です。デフォルトの格納先の場合はmyzone/が不要です。
ゾーンファイル
各ゾーンファイルを作成します。
正引き用ゾーンファイル
正引き用ゾーンファイルを作成します。
[root@centos ~]# vi /var/named/myzone/si1230.com.zone
$TTL 172800
@ IN SOA dns.si1230.com. root.si1230.com. (
2021042701
3600
300
360000
86400
)
IN NS dns.si1230.com.
IN MX 10 smtp.si1230.com.
dns IN A 10.0.0.100
smtp IN A 10.0.0.101
www IN A 10.0.0.102
逆引き用ゾーンファイル
逆引き用ゾーンファイルを作成します。
[root@centos ~]# vi /var/named/myzone/0.0.10.in-addr.arpa
$TTL 172800
@ IN SOA dns.si1230.com. root.si1230.com. (
2021042701
3600
300
360000
86400
)
IN NS dns.si1230.com.
100 IN PTR dns.si1230.com.
101 IN PTR smtp.si1230.com.
102 IN PTR www.si1230.com.
ゾーンファイルのパーミッション変更
ディレクトリを分けているとこういった操作が簡単です。
[root@centos ~]# chmod 640 /var/named/myzone/* [root@centos ~]# chgrp named /var/named/myzone/*
サービス起動設定
DNSサーバーを起動します。
[root@centos ~]# systemctl enable --now named.service [root@centos ~]# systemctl status named.service
CentOS 8 BIND 内部用 DNS サーバー構築