カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

DNSサーバーをオープンリゾルバーにしない

この記事は最終更新日から1年以上経過しています。

今年に入って、DNSの再帰的な問い合わせを使ったDDos攻撃が報告されているようです。
DNSキャッシュサーバーとして運用している場合でも、制限を設けて適切に設定をしておかないと、
DDos攻撃の踏み台にされてしまいます。

詳しくはこちらのサイトを参考にしてください。
http://www.jpcert.or.jp/pr/2013/pr130002.html

管理しているサーバーがオープンリゾルバーになっていないかどうかを確認するサイトが開設されています。
http://www.openresolver.jp/

OSやBINDのバージョンによっても異なりますが、設定例をご紹介します。

まず、オープンリゾルバーになっていないかを確認します。
前述したオープンリゾルバー確認サイトも確認できますが、ここではコマンドラインで確認します。

$ wget -qO - http://www.openresolver.jp/cli/check.html

コマンドを実行すると結果が表示されます。

your remote ip: close 192.0.2.1(gw.example.com)
your use resolver: open 192.0.2.2(ns.example.com)


この結果のどちらもcloseになっていないといけません。
どちらかがopenになっている場合は要対策です。

その他の確認方法として、実際に外部から再帰問い合わせを行っても確認することができます。

$ dig @dns.example.jp www.example.com

結果

; <<>> DiG 9.3.6-P2 <<>> @dns.example.jp www.example.com
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37859
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.example.com.                  IN      A

;; ANSWER SECTION:
www.example.com.        86400      IN      A     0.0.0.0

;; Query time: 45 msec
;; SERVER: 192.168.1.0#53(192.168.1.0)
;; WHEN: Wed Dec  4 13:52:17 2013
;; MSG SIZE  rcvd: 62

6行目のflagsに「ra」という記述があれば再帰問い合わせが有効(recursion available)になっているということです。

BINDの設定ファイルnamed.confを編集します。
※再帰的な問い合わせに対する設定のみを記述しています。他の設定は省略しています。

options {
    allow-recursion {
        127.0.0.1;    #ローカルホスト
        ::1;          #IPv6用ローカルホスト
        192.0.2.0/24; #ローカルネットワーク
    }
};

編集が終わったら、BINDを再起動します。

再度、確認コマンドを実行し、結果を確認します。

your remote ip: close 192.0.2.1(gw.example.com)
your use resolver: close 192.0.2.2(ns.example.com)

両方の結果がcloseとなりました。

これで、許可したホストからでないとDNSの再帰的な問い合わせをすることができなくなります。
その他、ゾーン転送の許可制限なども忘れないようにしてください。

ゾーン転送の許可設定については
http://www.k-sugi.sakura.ne.jp/linux/22/

この記事がお役に立ちましたらシェアお願いします
7,840 views

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です