DNSの再帰的な問合せを使ったDDoS攻撃の対策
の編集
https://yassu.jp/pukiwiki/index.php?DNS%A4%CE%BA%C6%B5%A2%C5%AA%A4%CA%CC%E4%B9%E7%A4%BB%A4%F2%BB%C8%A4%C3%A4%BFDDoS%B9%B6%B7%E2%A4%CE%C2%D0%BA%F6
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
サーバーを立ち上げてDNSサーバーをプライマリーにて運用していたところ、ある日『あなたのサーバーから大量のデータ送信が送られ、攻撃を受けた』とお叱りを受けました。 どうやらDNSのキャッシュ機能を悪用したDDoS攻撃の踏み台にされていたようです。 攻撃名は「DNSamp」や「DNSリフレクション攻撃」と呼ばれたりするようです。 DNSにはBIND9をしており、以下のような対策をしたので、メモしておきます。 *BINDを最新バージョンにする [#eec504c1] # yum update bind *問い合わせを受け付けるネットワークを制限する [#q9a21e0d] 条件 -プライマリサーバーのIPは192.168.0.2 -セカンダリサーバーのIPは192.168.0.3 -プライマリで運用しているドメインはexample.com -セカンダリで運用しているドメインはexample2.com # vi /etc/named.conf // 許可するネットワークを定義 acl my-network { 192.168.0.2/32; 192.168.0.3/32; }; options { directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; //fetch-glue no; // BIND9の場合は不要 recursion yes; // キャッシュサーバーの場合 yes // 問い合わせを許可するネットワーク allow-query { localhost; my-network; }; allow-transfer { none; }; // 転送は全部拒否 }; zone "example.com" IN { type master; file "example.com"; allow-query { any; }; // 公開するゾーンなのでどこからでも問い合わせOK allow-transfer { 192.168.0.3; // セカンダリに転送許可 }; }; zone "example2.com" { type slave; file "example2.com"; masters { 192.168.0.2; }; allow-query { any; }; // 公開するゾーンなのでどこからでも問い合わせOK }; これでexample.comとexample2.com以外についての問い合わせは応答しなくなるので、踏み台にされることは無くなるはずです。 *確認方法 [#q29424f3] $ dig @192.168.0.2 yahoo.co.jp any status: REFUSED などと出て、IPアドレスを引くことができなければ成功です。たぶん~ もちろん自ドメインについて正引きができることも確認しておきましょう。 **参考資料 [#ic5ac2d2] 警視庁資料~ http://www.npa.go.jp/cyberpolice/server/rd_env/pdf/20060711_DNS-DDoS.pdf JPRS資料~ http://jprs.jp/tech/notice/2006-03-29-dns-cache-server.html Web担当者Forum~ http://web-tan.forum.impressrd.jp/e/2009/01/15/4414
タイムスタンプを変更しない
サーバーを立ち上げてDNSサーバーをプライマリーにて運用していたところ、ある日『あなたのサーバーから大量のデータ送信が送られ、攻撃を受けた』とお叱りを受けました。 どうやらDNSのキャッシュ機能を悪用したDDoS攻撃の踏み台にされていたようです。 攻撃名は「DNSamp」や「DNSリフレクション攻撃」と呼ばれたりするようです。 DNSにはBIND9をしており、以下のような対策をしたので、メモしておきます。 *BINDを最新バージョンにする [#eec504c1] # yum update bind *問い合わせを受け付けるネットワークを制限する [#q9a21e0d] 条件 -プライマリサーバーのIPは192.168.0.2 -セカンダリサーバーのIPは192.168.0.3 -プライマリで運用しているドメインはexample.com -セカンダリで運用しているドメインはexample2.com # vi /etc/named.conf // 許可するネットワークを定義 acl my-network { 192.168.0.2/32; 192.168.0.3/32; }; options { directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; //fetch-glue no; // BIND9の場合は不要 recursion yes; // キャッシュサーバーの場合 yes // 問い合わせを許可するネットワーク allow-query { localhost; my-network; }; allow-transfer { none; }; // 転送は全部拒否 }; zone "example.com" IN { type master; file "example.com"; allow-query { any; }; // 公開するゾーンなのでどこからでも問い合わせOK allow-transfer { 192.168.0.3; // セカンダリに転送許可 }; }; zone "example2.com" { type slave; file "example2.com"; masters { 192.168.0.2; }; allow-query { any; }; // 公開するゾーンなのでどこからでも問い合わせOK }; これでexample.comとexample2.com以外についての問い合わせは応答しなくなるので、踏み台にされることは無くなるはずです。 *確認方法 [#q29424f3] $ dig @192.168.0.2 yahoo.co.jp any status: REFUSED などと出て、IPアドレスを引くことができなければ成功です。たぶん~ もちろん自ドメインについて正引きができることも確認しておきましょう。 **参考資料 [#ic5ac2d2] 警視庁資料~ http://www.npa.go.jp/cyberpolice/server/rd_env/pdf/20060711_DNS-DDoS.pdf JPRS資料~ http://jprs.jp/tech/notice/2006-03-29-dns-cache-server.html Web担当者Forum~ http://web-tan.forum.impressrd.jp/e/2009/01/15/4414
テキスト整形のルールを表示する