予期しない RCODE 拒否 - ログ ファイルを消費します

予期しない 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 と一致するものはありませんでした (基本的にすべて異なる IP であり、193.95.142.60 だけではありません)。

私の 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;

答え1

DNS フォワーダーがリクエストを元のサーバーに転送している可能性がありますか?

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

元のクエリを開始したもの (1 つだけだった可能性もあります) は、Web アクセス制御の DNS ルックアップなど、何でもかまいません。

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

答え2

おそらく、サーバーは 'target-express.com' を解決しようとして失敗しています。失敗の理由は、'target-express.com' の NS サーバーが適切に設定されていないためです (Google で「lame servers」を検索してください)。'dig +trace' を実行すると、ドメインの NS レコードが 2 つ表示されますが、それらのドメインをクエリしても応答はありません。

ここで問題となるのは、誰があなたのサーバーにクエリを行っているかです。

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 > +トレース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.
;; 8.8.8.8#53(8.8.8.8) から 9 ミリ秒で 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) から 15 ミリ秒で 496 バイトを受信

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) から 221 ミリ秒で 120 バイトを受信

;; 192.111.39.112#53(sec02.ns.esat.net) から 111 ミリ秒で 36 バイトを受信

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
ルート@svm1010:/var/tmp#

関連情報