コマンドラインによる、確認方法(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 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。