2015年4月4日土曜日

bind9 オープンリゾルバ対策

【重要】オープンリゾルバ対策にご協力ください(2014/03/28)

コマンドラインによる、確認方法(digコマンド)
# dig   www.yahoo.co.jp  @自分のdnsサーバ(ipアドレス又はホスト名)
※dnsサーバと無関係のネットワークからテストすること
これで引けなければ【OK】
引けたら、【NG】  <--- オープンレゾルバ状態

★ bind9の対策
----------------------------------------------------------------------
設定例1)権威DNSサーバーのみを運用している場合
----------------------------------------------------------------------
リゾルバーとしての動作を禁止します。(例)
//======================================
// /etc/named.conf
//======================================
options {
  ...
  recursion no;            // リゾルバーとして動作しません「全て禁止」
  allow-query { any; };        // 何処からのクエリでも受け取ります
  allow-recursion { none };     // リゾルバーとして動作しません 「ここで指定ipを許可」
                        noneではなくて、許可ネットワークを指定する
  allow-query-cache { none; };   // キャッシュの内容を返しません
  ...
};

★ 実際の対策
// generated by named-bootconf.pl
acl internet {          <----- acl で許可したいネットワークを記述
xxx.xxx.xxx.xxx/27; <----- 自身のグローバルアドレス
192.168.0.0/24; <----- 自身のローカルアドレス
127.0.0.1; <----- 自分(サーバ)
};
options {
directory "/usr/local/bind9.x.x/etc";
allow-query { any; }; <----- 全てのリスエストに答える
allow-transfer { none; }; <----- セカンダリーが無いので「none」
allow-recursion { internet; }; <----- ② 自分自身が利用できるようにする。
/* <----- 今回コメント
recursion no; <---- ① すべて不許可 ②を記述した場合①は省略可能
*/ <----- 今回コメント
version ""; <----- バージョン情報を隠す
};

初め、①、②が無い状態で、dnsがうまく機能しましたので、これで道筋がある程度たちました。
logへのエラーがなくなりました。(外、内どちらも引けました。)

①、② が無い状態で、dnsサーバとして正常に動作しますが、オープンレゾルバとして動作してしまいます。

そこで下記を試してみました。

(1)①のみで②無しの場合、「dnsサーバ」自身でdnsが内部、外部、共に引けなくなりました。

(2)②のみで①無しの場合、dns正常動作、オープンレゾルバ 対策OKとなりました。

※①だけだと全て禁止、 ②だけだと指定IPのみ許可となるようです。

多分本来なら、 ①、②の両方記述し、①で全面禁止した後、②で自分のネットワークのみ許可とするのが、正しいような気がしました。

やっと理解できました。

ネットで調べたり、上位プロバイダーから指示は、「recursion no」のみだったので、私が、思い違いしてしまったようです。

なんにしてもうまくいきました。
よかったです。

【対策完了日】2015-04-04

★ チェックサイトは下記サイトで確認できます。

(1)http://www.cman.jp/network/support/nslookup.html

ホスト名に、「www.yahoo.co.jp」 とか 「www.google.co.jp」 と入力
DNSサーバ(問合せ先DNSを指定する場合のみ)の欄に自身のdnsサーバを記入し「nslookup」を押す

------------------------------------------------------------------------
下記のように引けなければ「オープンリゾルバ対策」済みです。
Non-authoritative answer:
*** Can't find www.yahoo.co.jp: No answer <--- Can't findと出れば【OK】

------------------------------------------------------------------------

------------------------------------------------------------------------
下記のように引けたら 【NG】 オープンリゾルバ動作しています。
Non-authoritative answer:
www.yahoo.co.jp canonical name = www.g.yahoo.co.jp.
 
Authoritative answers can be found from:
yahoo.co.jp nameserver = ns12.yahoo.co.jp.
yahoo.co.jp nameserver = ns02.yahoo.co.jp.
yahoo.co.jp nameserver = ns01.yahoo.co.jp.
yahoo.co.jp nameserver = ns11.yahoo.co.jp.
ns12.yahoo.co.jp internet address = 124.83.255.101
ns02.yahoo.co.jp internet address = 118.151.254.149
ns01.yahoo.co.jp internet address = 118.151.254.133
ns11.yahoo.co.jp internet address = 124.83.255.37

------------------------------------------------------------------------


(2)http://info.interlink.or.jp/support-tool/server.html 
「dig(DNS)応答確認」を選択し、ホスト名に「www.yahoo.co.jp」、問い合わせDNSに自身の固定IPアドレスを入力のうえ、【digの実行】をクリックします。
テスト中...の後、「digステータス:問い合わせ先DNSが存在しません。」 と赤字で表記されればオープンリゾルバ対策は成功しています。
 「digステータス: digコマンドが終了しました。」と緑色で表記されればインターネット側からDNSサーバが利用可能な状況になっています。


0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。