dns

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"

 

備考

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

 

 

タグ: 

オープンソースソフトウェア: