web-dev-qa-db-ja.com

bind:client X ... zone transfer'example.com / AXFR / IN'denied、but allow-transfer {X; };セットです!

ゾーン転送を開始しようとすると、アクセスが拒否されます。

Dig @ns.example.com example.com axfrの場合

client 71.252.219.43#58392: zone transfer 'balticovo.eu/AXFR/IN' denied

構成:

  1. サーバーはNATedファイアウォールの背後です。ファイアウォールの問題である場合、そのような要求が行われたことをコンピュータのログファイルに表示しません。
  2. 名前付きプロセスは、/var/lib/namedでchrootされたバインドユーザーとして実行されます。
  3. named.conf:

    web:/var/lib/named/etc# cat named.conf
    options {
        directory "/etc";
        pid-file "/var/run/named.pid";
        statistics-file "/var/run/named.stats";
        allow-transfer { 127.0.0.1; };
        listen-on port 53 { any; };
        listen-on-v6 port 53 { any; };
    };
    
    logging {
        category default { default_syslog; default_debug; };
        category unmatched { null; };
    
        channel default_syslog {
            syslog daemon;
            severity info;
        };
    
        channel default_debug {
            file "named.run";
            severity dynamic;
        };
    
        channel default_stderr {
            stderr;
            severity info;
        };
    
        channel null {
            null;
        };
    };
    
    zone "." {
        type hint;
        file "/etc/root.hints";
    };
    
    zone "localhost" {
        type master;
        file "/etc/localhost";
    };
    
    zone "0.0.127.in-addr.arpa" {
        type master;
        file "/etc/127.0.0";
    };
    
    zone "example.com" IN {
            type master;
            file "sites/example.com/forward.zone";
            allow-transfer { 202.157.182.142; 71.252.219.43; };
            allow-update { none; };
            allow-query { any; };
            zone-statistics yes;
    };   
    
  4. すべてのファイルはbindが所有しています。そして、名前付きプロセスは、chrootされたユーザーによって実際に実行されます。
  5. Axfrレコード以外の掘削は機能します。
  6. named -v出力BIND 9.6-ESV-R3
2
Janis Veinbergs

この問題は解決されました。私はかなり大きな変更を加えました:

  1. ファイルのいくつかのアクセス許可によるセキュリティの強化(これまでは問題がなかったため、おそらくそうではありません)
  2. Rndc構成が設定されていません。キーを生成し、rndcを設定します。
  3. そして.... named.confに変更を加えて再起動したとき、前のプロセスは強制終了されなかったようですが、新しいプロセスが生成され、ログにそのような行がありました。

    Jan 25 15:43:22 web named[18863]: listening on IPv6 interfaces, port 53
    Jan 25 15:43:22 web named[18863]: binding TCP socket: address in use
    Jan 25 15:43:22 web named[18863]: listening on IPv4 interface lo, 127.0.0.1#53
    Jan 25 15:43:22 web named[18863]: binding TCP socket: address in use
    Jan 25 15:43:22 web named[18863]: listening on IPv4 interface eth0, 10.3.0.10#53
    Jan 25 15:43:22 web named[18863]: binding TCP socket: address in use
    ...
    Jan 25 15:43:22 web named[18863]: /etc/named.conf:12: couldn't add command channel 0.0.0.0#953: address in use
    

    今私はkillall named その後 /etc/init.d/bind9 startそしてすべてうまくいった。

おそらく3番目のポイントで問題が解決しました。named.confを変更したときに、実際には最新のconfファイルで機能していなかったためです。

3
Janis Veinbergs

構成ファイルには、127.0.0.1の転送許可オプションのみが表示されます。これが、クライアントが拒否されている理由である可能性があります。次のようなものを含めるように構成を変更する必要があります。

allow-transfer { 127.0.0.1; 71.252.219.43; };

(71.252.219.43が、ゾーン転送を実行できると予想されるクライアントのアドレスであると想定しています。)

1
larsks