うちで管理しているドメインの スレーブ DNS をしているサーバに、
Nov 16 09:17:52 dns2 named[10**]: client 210.130.***.***#47601: query 'exsample.com/MX/IN' deniedNov 16 09:17:54 dns2 named[10**]: client 114.111.***.***#47670: query 'hoge.exsample.com/A/IN' denied
みたいなメッセージが山ほど出てるんでなんだ?と思ったんだけど、オープンリゾルバ対策で named.conf を触った時の設定ミスであった(^^;
この間、スレーブ DNS サーバを切り替えたのよ。その時から出てたってことか(^^;
まあ、特に外部からの Web やメールサーバへのアクセスには影響は出てないけど。
大量のログが出ているものをほってもおけないので named.conf の修正。
要は、
options {directory "/usr/local/etc/namedb";pid-file "/usr/local/etc/namedb/run/named.pid";allow-transfer {none ;};allow-query {localhost;my-network;};allow-query-cache {localhost;my-network;};};
という具合に query の受付を localhost と my-network で登録した IP からのみに絞ってるのに、自社管理ドメインのサイトのゾーンファイルに関する問い合わせに対してもその設定をそのまま適用しているのがまずい。
拒否したいのは「他社管理ドメインへの問い合わせ」のみ。DDoS 攻撃の踏み台にされないようにね。自社管理ドメインへの問い合わせまで拒否してちゃまずいやろう(^^;
というわけで対応。
例えば、
zone "exsample.com" in {type slave;file "s/exsample.com.zone.bak";masters {***.***.***.107;};allow-query { any ; };};
のように、allow-query { any ; }; を設定に加えてやれば良いだけ。
以上の設定を行って named 再起動でメッセージの出力は止まった。
一応、JPCERT/CC が公開してくれている
オープンリゾルバ確認サイト
でオープンリゾルバ状態になってないか確認。
このサイトは、アクセスしたホストが設定している DNS と、自身の IP に対してチェックが行われるので、ssh 接続した Linux サーバ上などからチェックするには、コマンドラインからこのサイトに http でアクセスする必要がある。
wget などを使って、
$ wget -qO - http://www.openresolver.jp/cli/check.html
みたいな感じで。
Configured DNS server: [NOT open] 214.***.***.6(s1100.exsample.net)Source IP address: [NOT open] 214.***.***.128(dns2.exsample.com)
という具合に結果が返ってくるので、[NOT open] になっていれば OK だ。
コメントする