私は自分でホストしている 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 に関連するインスタンスです。
私の質問は次のとおりです:
- これを止めるためにファイアウォールやバインド構成で何かできることはありますか?
- なぜ私のバインド設定は 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#