DNS(Domain Name System)について
Debianでの設定について、簡単に注意することをまとめました。
詳細は 「実践 Debian GNU/Linuxサーバー ルート養成講座」 (秀和システム) という本がわかりやすく、良いと思います。
プライマリ
Bind 9 のchroot化について
https://wiki.debian.org/Bind9#Bind_Chroot
DebianでBind 9 を稼働させるときにchroot化したいと思います。そこで、以下のサイトの手順を参考に設定しました。
http://www.mk-mode.com/octopress/2013/10/18/debian-7-dns-chroot/
Debian 7 と Debian 8 でインストールテストしました。
- Bind 9 をインストールし、停止する
aptitude -y install bind9 bind9utils dnsutils
- chrootディレクトリは /var/bind9/chroot
起動オプションの編集 /etc/default/bind9
#OPTIONS="-u bind -4"
OPTIONS="-u bind -4 -t /var/bind9/chroot"
chrootディレクトリ作成
mkdir -p /var/bind9/chroot/{etc,dev,var/cache/bind,var/run/named}
chroot化で必用なスペシャルファイルの作成、パーミッション
mknod /var/bind9/chroot/dev/null c 1 3
mknod /var/bind9/chroot/dev/random c 1 8
chmod 660 /var/bind9/chroot/dev/{null,random}
元のBindディレクトリをchrootへ移動
mv /etc/bind /var/bind9/chroot/etc
シンボリックリンクの作成
ln -s /var/bind9/chroot/etc/bind /etc/bind
オーナー、グループ、パーミッション変更
chown -R bind:bind /etc/bind/*
chmod 775 /var/bind9/chroot/var/{cache/bind,run/named}
chgrp bind /var/bind9/chroot/var/{cache/bind,run/named}
起動スクリプトの編集 /etc/init.d/bind9 PIDファイルのパス変更
PIDFILE=/var/bind9/chroot/var/run/named/named.pid
rsyslogにログ出力するように変更
echo "\$AddUnixListenSocket /var/bind9/chroot/dev/log" > /etc/rsyslog.d/bind-chroot.conf
syslogdの再起動
/etc/init.d/rsyslog restart
Bind9の再起動
/etc/init.d/bind9 start
セカンダリ
マスターサーバと同じようにBind9をインストールし、ゾーンファイルのディレクトリを作成します。
mkdir -p /etc/bind/zones/slave chown -R bind:bind /etc/bind/zones
/etc/bind/named.conf.local ファイルの編集
zone "example.jp" { type slave; file "/etc/bind/zones/slave/example.jp.zone#; masters {xxx.xxx.xxx.xxx;}; };
必用なドメイン名とそのゾーンファイルを定義して、Bind 再起動。
スレーブ・サーバの動作確認
dig @スレーブサーバIPアドレス a www.example.jp +short
SPFレコードの設定
- Bind9などのDNSシステムでの一般的な設定方法として
使用するドメイン名.com TXT 3600 v=spf1 +ip4:(メールサーバーと設定したIPドレス) ~all
xxxxxx.com TXT 3600 v=spf1 +ip4:202.1xx.xxx.xxx ~all
上記設定でお名前ドットコムサイトでのDNS設定でSPF設定はOKでした。2021年2月の時点で。
一つのドメインに複数のSPFレコードを記述する際には、一行で記述します。
例: example.jp. IN TXT "v=spf1 +ip4:192.168.10.0/24 +ip4:10.1.2.0/24 ~all"
メールサーバーを持っているドメインの場合
例: example.jp. IN TXT "v=spf1 include:_spf.google.com +ip4:202.212.xxx.xxx/29 mx ~all"
- SPFレコードの検証サイト: https://www.kitterman.com/spf/validate.html
- SPFレコードのチェックサイト: https://dmarcian.com/spf-survey/
備考
DNS機能が正常かどうか確認する方法は、いくつかありますが、Webサイトでの確認する方法として、http://dnscheck.iis.se/ というサイトを使っております。 シンプルです。 そのほかにもたくさんサイトがありますが、信頼できそうなサイトを利用しましょう。
FAQ
- ゾーンファイルの設定確認方法(Debian11)
/usr/sbin/named-checkzone example.com /etc/bind/example.com.zonefile
- named.confの設定確認方法(Debian11)
/usr/sbin/named-checkconf /etc/bind/named.conf