実践Linux
RockyLinux8 RockyLinux8 目次へ TOP(HOME)へ
DNSサーバー(BIND) 2021年7月
DNSサーバ(bind 9.11.26-4)
●インストール状況の調査
# dnf list installed | grep bind
bind-utils等はあるがbind本体などがインストールされていないので、インストール。
# dnf install -y bind bind-chroot
namedを起動していない状態では/var/named/chroot/var/named配下には何もファイルはない状態。bindを起動すると、ここにファイルがマウントされるようになっている。
●設定ファイル
/etc/named.conf
/named.rfc1912.zones ローカル部分の設定ファイル
/var/named/ゾーンファイル
●/etc/named.confの編集
acl my-network { // 追加:aclで、my-networkという名前を定義し、IPアドレスを設定
192.168.7.0/24;
333.333.333.208/29;
localhost;
};
options {
listen-on port 53 { 127.0.0.1; 192.168.7.1; 333.333.333.210; }; // 追記しないとLAN内部から外に出られない
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";
//オープンリゾルバ対策
//権威DNSサーバーとして何処からもクエリを受け取り、キャッシュサーバーはLANからのみクエリを許可
#allow-query { localhost; }; // コメントアウト
allow-query { any; }; // 何処からのクエリでも受け取る
recursion yes; // キャッシュDNSサーバーとして動作
allow-recursion { my-network; }; // 追加:リゾルバーとしての応答をmy-networkからのみ許可
allow-query-cache { my-network; }; // 追加:キャッシュの内容をmy-networkのみに返す
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";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
###########################以下を追加###########################
zone "my-dom.xxx" {
type master;
file "my-dom.zone";
allow-update { localhost; };
allow-transfer { 333.333.333.211; ***.***.***.***; }; セカンダリ(***.***.***.***はプロバイダのものを記入)
notify yes;
};
192.168.7.0/24;
333.333.333.208/29;
localhost;
};
options {
listen-on port 53 { 127.0.0.1; 192.168.7.1; 333.333.333.210; }; // 追記しないとLAN内部から外に出られない
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";
//オープンリゾルバ対策
//権威DNSサーバーとして何処からもクエリを受け取り、キャッシュサーバーはLANからのみクエリを許可
#allow-query { localhost; }; // コメントアウト
allow-query { any; }; // 何処からのクエリでも受け取る
recursion yes; // キャッシュDNSサーバーとして動作
allow-recursion { my-network; }; // 追加:リゾルバーとしての応答をmy-networkからのみ許可
allow-query-cache { my-network; }; // 追加:キャッシュの内容をmy-networkのみに返す
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";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
###########################以下を追加###########################
zone "my-dom.xxx" {
type master;
file "my-dom.zone";
allow-update { localhost; };
allow-transfer { 333.333.333.211; ***.***.***.***; }; セカンダリ(***.***.***.***はプロバイダのものを記入)
notify yes;
};
逆引きはプロバイダによるが、自サーバーにはおかない。 プロバイダ側に設定。
プロバイダ側の逆引き設定で、ns1.my-dom.xxxとns2.my-dom.xxxを設定する。
●/var/named/my-dom.zone
$TTL 3H | |||
@ | IN | SOA | ns1.my-dom.xxx. root.my-dom.xxx. ( |
0 ;serial(d.adams) | |||
10 ;refresh | |||
1H ;retry | |||
1W ;expiry | |||
3H ) ;minimum | |||
IN | NS | ns1 | |
IN | NS | ns2 | |
IN | NS | ***.***.***.jp. プロバイダのNAMEサーバー | |
IN | A | 333.333.333.210 | |
IN | MX 10 | ||
localhost | IN | A | 127.0.0.1 |
ns1 | IN | A | 333.333.333.210 |
ns2 | IN | A | 333.333.333.211 |
IN | CNAME | ns1 | |
www | IN | CNAME | ns1 |
※内容を変更した場合は、シリアル番号を増やしておくこと。そうでないとセカンダリ等に変更したことが伝わらない。
●/var/named/my-dom.zoneのプロパティ変更
ファイルのアクセス権の変更 所有者root グループnamed アクセス640
SELinuxタイプの確認
# ls -Z /var/named
named_zone_tならばOK。
●/etc/resolve.conf
nameserver 127.0.0.1
nameserver ***.***.***.*** プロバイダのアドレスを指定。
nameserver 192.168.7.1
nameserver ***.***.***.*** プロバイダのアドレスを指定。
nameserver 192.168.7.1
●firewalldの設定
trustedゾーンに対しては、必要ない。
externalゾーンの設定
# firewall-cmd --get-services 定義されているサービス一覧
# firewall-cmd --list-service --zone=external
# firewall-cmd --add-service=dns --zone=external
# firewall-cmd --add-service=dns --zone=external --permanent
●namedサービスを起動
namedは起動しない。named-chrootのみ起動するようにする。
# systemctl --type=service list-unit-files インストールされたサービス一覧
# systemctl --type=service list-units | grep named 実行中のサービスにnamedがあるか
# systemctl start named-chroot
# systemctl enable named-chroot
テスト
# named-checkconf -z エラーが表示されなければOK。
# service named checkconfig 上と同様。
# named-checkzone my-dom.xxx /var/named/my-dom.zone
# dig @333.333.333.210 my-dom.xxx AXFR ゾーン転送のテスト
# dig www.my-dom.xxx
# host www.my-dom.xxx
# nslookup 等々
●ドメインを追加したいときは、「CentOS7/ドメインの追加」参照
TOP(HOME)へ