bindで,キャッシュポイズニングの問題があり,それに関連して,DDoS攻撃もあって,まんまと私のサーバも踏み台にされていたようだ。
クエリーのログを見るとこんなのが,沢山あった。DNSの問い合わせに対しての対策は何もしていなかったせいで,「DDoS攻撃」の記述を読みながら対策を行った。allow-queryオプションの設定などを行ったが,一部まずい点があり,コンテンツサーバとして動作しなかったりと,いろいろと試行錯誤したが,たぶん今は動作している。(たぶん)
そこで気になったのは,bindのログの見方がよく分からないということ。何となく読めば分かるログもあるが,queryのログに関してはフラグの説明や解説が無くて,ソースまで見ながら調べた。
query: . IN NS +
クエリーのログを見るとこんなのが,沢山あった。DNSの問い合わせに対しての対策は何もしていなかったせいで,「DDoS攻撃」の記述を読みながら対策を行った。allow-queryオプションの設定などを行ったが,一部まずい点があり,コンテンツサーバとして動作しなかったりと,いろいろと試行錯誤したが,たぶん今は動作している。(たぶん)
そこで気になったのは,bindのログの見方がよく分からないということ。何となく読めば分かるログもあるが,queryのログに関してはフラグの説明や解説が無くて,ソースまで見ながら調べた。
参考にしたページ:
ソースの該当箇所:
NS_LOGCATEGORYとかは,named.confのloggingオプションのフラグで,カテゴリ表示などを制御するインタフェース。
<問い合わせドメイン名> クエリされているホスト名やドメイン名
<クラス> 普通は,"IN"。nslookup(1)に,クラスの説明がある。
<タイプ> 問い合わせのタイプ。
{+|-} 再帰問い合わせするか?
[S] <署名付き
[E] EDNS問い合わせ
再帰問い合わせ(recursion)を行う場合,「+」が付いて,そうで無い場合は,「-」。
署名付き(Signer)なら,「S」が付いて,EDNS(拡張)問い合わせなら,「E」が付く。
問い合わせのデータのログで,それに対しての回答の情報はない。
また,blackholeオプションに該当したサーバからの問い合わせでは,queryログは出力されないようだ。これじゃ,間違ったblackhole指定は気づかないなあ。
<http://prefetch.net/blog/index.php/2006/12/10/logfile-format-for-bind-queries/>
<http://www.atmarkit.co.jp/flinux/rensai/bind913/bind913a.html>
ソースの該当箇所:
bind-9.3.4-P1/bin/named/query.c: log_query()関数query: <問い合わせドメイン名> <クラス> <タイプ> {+|-}[SE]
ns_client_log(client, NS_LOGCATEGORY_QUERIES, NS_LOGMODULE_QUERY,
level, "query: %s %s %s %s%s%s", namebuf, classname,
typename, WANTRECURSION(client) ? "+" : "-",
(client->signer != NULL) ? "S": "",
(client->opt != NULL) ? "E" : "");
NS_LOGCATEGORYとかは,named.confのloggingオプションのフラグで,カテゴリ表示などを制御するインタフェース。
<問い合わせドメイン名> クエリされているホスト名やドメイン名
<クラス> 普通は,"IN"。nslookup(1)に,クラスの説明がある。
<タイプ> 問い合わせのタイプ。
{+|-} 再帰問い合わせするか?
[S] <署名付き
[E] EDNS問い合わせ
再帰問い合わせ(recursion)を行う場合,「+」が付いて,そうで無い場合は,「-」。
署名付き(Signer)なら,「S」が付いて,EDNS(拡張)問い合わせなら,「E」が付く。
問い合わせのデータのログで,それに対しての回答の情報はない。
また,blackholeオプションに該当したサーバからの問い合わせでは,queryログは出力されないようだ。これじゃ,間違ったblackhole指定は気づかないなあ。

コメントする