web-dev-qa-db-ja.com

予期しないRCODEが拒否されました-ログファイルを使い果たしています

私は自分でホストしているWebサイトを持っており、DNSサーバーとしてbind9を使用しています(自分のネームサーバーなどをホストしています)。

トラフィックの帯域幅に問題があり、syslogに次のタイプの問題がいっぱいです。

error (unexpected RCODE REFUSED) resolving 'target-express.com/AAAA/IN': 193.95.142.60#53
error (unexpected RCODE REFUSED) resolving 'target-express.com/A/IN': 2001:7c8:3:2::5#53

今日のsyslogには144258のインスタンスがあり、すべてtarget-express.comに関連しています。

私の質問は:

  1. これを停止するためにファイアウォールやバインド構成を実行できることはありますか?
  2. バインド設定でtarget-express.comを解決しようとするのはなぜですか(ドメインではなく、私とは関係ありません)。

Named.confでフォワーダーを確認しましたが、ログに表示されるIPに一致するものはありません(これらはすべて193.95.142.60だけでなく、基本的にすべて異なるIPです)。

私のiptablesは次のとおりです。

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
REJECT     all  --  anywhere             loopback/8           reject-with icmp-port-unreachable
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
ACCEPT     icmp --  anywhere             anywhere             icmp echo-request
LOG        all  --  anywhere             anywhere             limit: avg 5/min burst 5 LOG level debug prefix "iptables denied: "
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere 

[〜#〜]更新[〜#〜]

Named.conf.optionsで以下を試し、再帰をブロックしました。

allow-transfer {"none";};
allow-recursion {"none";};
recursion no;

これを実行すると、syslogに次のように表示されます。

Mar  4 00:02:21 mail named[29037]: client 127.0.0.1#42139: query (cache) '24.124.41.103.in-addr.arpa/PTR/IN' denied
Mar  4 00:02:22 mail named[29037]: client 127.0.0.1#58405: query (cache) '45.124.41.103.in-addr.arpa/PTR/IN' denied
Mar  4 00:02:24 mail named[29037]: client 127.0.0.1#48692: query (cache) '106.49.174.61.in-addr.arpa/PTR/IN' denied

上記を取り除くために、私は追加しました:

    additional-from-cache no;
2
pokero

DNSフォワーダーがリクエストを元のサーバーに転送して戻していませんか?

もしそうなら、これは昨年の問題のようなものかもしれません( Windows DNSサーバーがSERVFAIL応答を受け取ったときにゾーン内のレコードを繰り返し要求する を参照)。修正は、転送ループがないことです。これは、SERVFAILを返すゾーンでの重大な問題としてのみ表示されます。これらの応答はキャッシュされないためです。

元のクエリを開始したもの(1つしかなかった可能性がある)については、Webアクセス制御用のDNSルックアップなど、ほぼすべての可能性があります。

増幅を回避するには(おそらくループよりも適切な説明)、これらのメッセージが表示されているDNSサーバーが、要求を転送する可能性のあるサーバーにクエリを転送していないことを確認する必要があります。ローカルDNSサーバーで構成したサーバーは管理下にありますか、それとも外部ですか?

1
Paul Haldane

ほとんどの場合、サーバーは「target-express.com」を解決しようとしており、失敗しています。失敗している理由は、「target-express.com」のNSサーバーが正しくセットアップされていないためです。 (Googleの「不完全なサーバー」)。 'Dig + trace'を実行すると、ドメインの2つのNSレコードが表示されますが、それらのドメインをクエリすると、応答がありません。

さて、問題は誰があなたのサーバーをクエリしているのかです-

1.正当な内部ユーザー/アプリ-私はこれについて心配しません。

2.承認されていない外部ユーザー-DNSサーバーは、権限のあるドメインに対してのみ解決を許可する必要があります。 DNSサーバーをオープンするつもりがない場合は、DNS構成に制限を設け、許可されたホストのみがサーバーを再帰クエリに使用できるようにします。

 root @ svm1010:/ var/tmp#Dig @ 8.8.8.8 target-express.com NS + short 
 root @ svm1010:/ var/tmp#Dig + trace target-express.com NS 
 
; > Dig 9.7.0-P1> + trace target-express.com NS 
 ;;グローバルオプション:+ cmd 
。 16978 IN NS d.root-servers.net。
。 16978 IN NS i.root-servers.net。
。 16978 IN NS f.root-servers.net。
。 16978 IN NS b.root-servers.net。
。 16978 IN NS a.root-servers.net。
。 16978 IN NS k.root-servers.net。
。 16978 IN NS l.root-servers.net。
。 16978 IN NS h.root-servers.net。
。 16978 IN NS e.root-servers.net。
。 16978 IN NS j.root-servers.net。
。 16978 IN NS m.root-servers.net。
。 16978 IN NS g.root-servers.net。
。 16978 IN NS c.root-servers.net。
 ;; 9ミリ秒で8.8.8.8#53(8.8.8.8)から228バイトを受信しました
 
 com。 172800 IN NS j.gtld-servers.net。
 com。 172800 IN NS a.gtld-servers.net。
 com。 172800 IN NS m.gtld-servers.net。
 com。 172800 IN NS b.gtld-servers.net。
 com。 172800 IN NS c.gtld-servers.net。
 com。 172800 IN NS i.gtld-servers.net。
 com。 172800 IN NS l.gtld-servers.net。
 com。 172800 IN NS h.gtld-servers.net。
 com。 172800 IN NS f.gtld-servers.net。
 com。 172800 IN NS k.gtld-servers.net。
 com。 172800 IN NS d.gtld-servers.net。
 com。 172800 IN NS e.gtld-servers.net。
 com。 172800 IN NS g.gtld-servers.net。
 ;; 199.7.91.13#53(d.root-servers.net)から496バイトを15ミリ秒で受信しました
 
 target-express.com。 172800 IN NS sec02.ns.esat.net。
 target-express.com。 172800 IN NS auth02.ns.esat.net。
 ;; 192.48.79.30#53(j.gtld-servers.net)から120バイトを221ミリ秒で受信しました
 
 ;; 192.111.39.112#53(sec02.ns.esat.net)から36バイトを111ミリ秒で受信しました
 
 root @ svm1010:/ var/tmp#Dig @ sec02.ns.esat.net。 target-express.com。 soa + short 
 root @ svm1010:/ var/tmp#Dig @ auth02.ns.esat.net。 target-express.com。 soa + short 
 root @ svm1010:/ var/tmp#
2
Daniel t.