DNS BIND bind

zone transfer ‘example.net/AXFR/IN’ denied BIND DNS

優 DNS BIND bind

DNS BIND bind

DNSサーバを作る場合にはマスター、スレーブを作ることは必須になっています。

マスターのゾーン転送でエラーが出たので備忘録としてTipsをご紹介。

 

スレーブからマスターへゾーン転送要求を行う

[root@SG-DNS-Slave slaves]# dig @xxx.xxx.xxx.xxx example.net axfr

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.4 <<>> @xxx.xxx.xxx.xxx example.net axfr
; (1 server found)
;; global options: +cmd
; Transfer failed.

 

; Transfer failed.

ゾーン転送に失敗していますね。

 

マスターのログを確認します。

[root@SG-DNS-Master ~]# tail -f /var/log/messages

Aug  1 08:43:36 SG-DNS-Master named[41106]: client 10.15.0.61#60973: received notify for zone 'ccc.bbb.aaa.in-addr.arpa'
Aug  1 08:43:40 SG-DNS-Master named[41106]: client 10.15.0.61#39609: zone transfer 'example.net/AXFR/IN' denied
Aug  1 08:45:09 SG-DNS-Master named[41106]: client 10.15.0.61#51290: zone transfer 'example.net/AXFR/IN' denied
Aug  1 08:45:17 SG-DNS-Master named[41106]: client 10.15.0.61#45920: received notify for zone 'ccc.bbb.aaa.in-addr.arpa'
Aug  1 08:45:18 SG-DNS-Master named[41106]: client 10.15.0.61#40606: zone transfer 'example.net/AXFR/IN' denied
Aug  1 08:45:33 SG-DNS-Master named[41106]: client 10.15.0.61#34692: zone transfer 'example.net/AXFR/IN' denied
Aug  1 08:45:42 SG-DNS-Master named[41106]: client 10.15.0.61#33853: zone transfer 'example.net/AXFR/IN' denied

まずはログを見てみましょう。

 

zone transfer 'example.net/AXFR/IN' denied

ゾーン転送要求が拒否されています。

 

client 10.15.0.61#

マスタはスレーブを10.15.0.61と認識してログに出していますね。

 

 

マスター設定ファイル編集

マスターが認識しているスレーブのIPをallow-transferディレクティブに追加します。

# vi /etc/named.conf


    // 管理するゾーンの設定
    zone "example.net" {
        type master;
        file "master/catchallmail.net.zone";
        //転送先スレーブの指定
        allow-transfer {
            10.15.0.61; ←追加
            10.15.0.7;
            スレーブグローバルIP;
        };
        notify yes;
        also-notify
        {
            10.15.0.61; ←追加
            10.15.0.7;
            スレーブグローバルIP;
        };

    };

    zone "ccc.bbb.aaa.in-addr.arpa" {
        type master;
        file "master/ccc.bbb.aaa.in-addr.arpa.zone";
        //転送先スレーブの指定
        allow-transfer
        {
            10.15.0.61; ←追加
            10.15.0.7;
            スレーブグローバルIP;
        };
        notify yes;
        also-notify
        {
            10.15.0.61; ←追加
            10.15.0.7;
            スレーブグローバルIP;
        };
    };

 

 

構文エラー確認

# named-checkconf /etc/named.conf

 

再起動で反映させます。

# service named restart

 

digでスレーブからマスターへゾーン転送要求を行います。

[root@SG-DNS-Slave slaves]# dig @xxx.xxx.xxx.xxx example.net axfr

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.4 <<>> @xxx.xxx.xxx.xxx example.net. axfr
; (1 server found)
;; global options: +cmd
example.net.       200     IN      SOA     ns1.example.net. root.example.net. 2014100812 200 200 200 200
example.net.       200     IN      TXT     "v=spf1 ip4:xxx.xxx.xxx.xxx ~all"
example.net.       200     IN      NS      ns1.catchallmail.net.
example.net.       200     IN      NS      ns2.catchallmail.net.
example.net.       200     IN      MX      10 mail1.catchallmail.net.
example.net.       200     IN      A       xxx.xxx.xxx.xxx
mail1.example.net. 200     IN      A       xxx.xxx.xxx.xxx
ns1.example.net.   200     IN      A       xxx.xxx.xxx.xxx
ns2.example.net.   200     IN      A       yyy.yyy.yyy.yyy
www.example.net.   200     IN      A       xxx.xxx.xxx.xxx
example.net.       200     IN      SOA     ns1.example.net. root.example.net. 2014100812 200 200 200 200
;; Query time: 0 msec
;; SERVER: 210.140.84.68#53(210.140.84.68)
;; WHEN: Tue Aug  1 09:03:05 2017
;; XFR size: 11 records (messages 1, bytes 295)

ゾーンが転送されました。

 

スレーブからゾーン転送ファイルを確認する。

[root@SG-DNS-Slave slaves]# ls -laht /var/named/slaves
合計 16K
-rw-r--r-- 1 named named  452  8月  1 09:22 2017 ccc.bbb.aaa.in-addr.arpa.zone
-rw-r--r-- 1 named named  596  8月  1 09:20 2017 example.net.zone
drwxrwxr-x 6 named named 4.0K  8月  1 08:59 2017 ..
drwxr-x--- 2 named named 4.0K  8月  1 08:59 2017 .

転送されています。

 

他のサーバからゾーン転送要求を行います。

[hoge@another-server ~]$ dig @xxx.xxx.xxx.xxx example.net axfr

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.2 <<>> @xxx.xxx.xxx.xxx example.net axfr
; (1 server found)
;; global options: +cmd
; Transfer failed.

拒否されました。ちゃんと設定が行われていることが確認できています。

 

あなたのDNSサーバ ちゃんと管理出来ていますか?

@see https://jprs.jp/tech/

 

BINDは緊急対応レベルの脆弱性が多く、アップデートをその都度行わないといけません。まともに管理するのは凄く大変。それにDNSサーバはマスター・スレーブで2台も必要になってきますし、維持コストもかかります。

 

TSIG, ゾーン転送の脆弱性回避術

脆弱性がよくあるBINDのゾーン転送機能を使わないように設定し、ゾーンファイルをrsyncとCronでスレーブに転送し、定期的に同期させるという方法で回避できます。

 

DNSサーバアウトソースのすすめ

  1. 特にDNSを自前で管理する理由がない
    →ドメイン管理レジストラのDNSサービスを利用する。
  2. メールフィルタで逆引きは必要だ
    →逆引きが可能なクラウドサービスを使う。

 

そのようにすると管理が楽だし、コストも自前でDNSサーバを維持するよりずっと安く効率的。それにドメイン業者やクラウド側にはDNSの専門家がいるので安心ですよ。基本的にお客様の要望がなければ、DNSは外部に持つようにして、お客様の運用コストを減らしています。

上記はインターネット公開用のDNSサーバの話で、社内LAN用のDNSならば必要になります。

 

お疲れ様です。

DNS BIND bind
最新情報をチェックしよう!
>システム構築・保守に特化した会社です。

システム構築・保守に特化した会社です。

システムの構築・保守運用「システムガーディアン」 社内システム担当が欲しいが、専属で雇うほどの仕事量はない。 必要な時に必要なだけ頼りたいというお悩みを持つ企業様へ専門知識を持って対応を行っております。 サーバから各種システムまで自社・他社で構築されたシステムに対してサポートを行っております。

CTR IMG