73 73 73 73
Dec/16/2002
Copyright(C) 2002 Koh-ichi Ito, All rights, reserved, 145
allow-query に関する失敗例
makanai makanai makanai
makanai.don.gr. .don.gr. .don.gr. .don.gr.jp jp jp jpゾーン
ゾーンゾーンゾーン((((allow allow allow allow- -- -query query query queryで制限
で制限で制限で制限))))makanai
makanai makanai
makanai.don.gr. .don.gr. .don.gr. .don.gr.jp jp jp jp....ゾーン
ゾーンゾーンゾーン((((allow allow allow allow- -- -query query query設定漏れ query
設定漏れ設定漏れ))))設定漏れslave slave slave slave
cache cache cache cache
query query query queryを
をををallowallow allow allow don.gr.
don.gr. don.gr.
don.gr.jp jp jpの jp
のののauthority
authority
authority
authority
74 74 74 74
Dec/16/2002
Copyright(C) 2002 Koh-ichi Ito, All rights, reserved, 147
allow-transfer( 続き )
• 自分にも許可しておかないと動作確認する ときに不便。
– localhostというaclが組み込みで定義されている。
• lo0だけでなく、自分のインターフェースに振られてい
るアドレス全部。•
と書いてあるが、v6アドレスは含まれないらしい。• Brute Force には無力だがエレガントなアタッ クを試みる輩には提供しているサービスな どのヒントを与えてしまう。
– slave
でも適切に設定。Dec/16/2002
Copyright(C) 2002 Koh-ichi Ito, All rights, reserved, 148
allow-transfer( 続き )
• 小さなコマンドで大きな仕事をさせられる。
– DoS
アタックのツールとしては有効。• 通常の query でも datagram に乗り切らないと TCP に fallback するので、 TCP コネクション 自体を拒否するわけではない。
– SYN flood
予防にはならない。• 関連
– options{transfers-out N;};
•
同時に受け付けるゾーン転送の本数の上限。– options{tcp-clients N;};
•
同時に受け付けるTCPコネクションの本数の上限。75 75 75 75
Dec/16/2002
Copyright(C) 2002 Koh-ichi Ito, All rights, reserved, 149
recursion,allow-recursion
• recursive query のアクセス制限。
–
いずれもoptions{}
で指定。– recursionはyes/no。
– allow-recursion
は範囲を指定して許可。• recursive query は原理的に non-recursive query より重い。
–
不正使用は拒否。• (RFC1035 でいう )resolver としては機能しな くなる。
Dec/16/2002
Copyright(C) 2002 Koh-ichi Ito, All rights, reserved, 150
アクセス制限
• そのネームサーバの役割を明確にする。
– (RFC1035
でいう)resolver
か?
•
サービスを提供すべき範囲は?–
何かのゾーンのauthority
か?
76 76 76 76
Dec/16/2002
Copyright(C) 2002 Koh-ichi Ito, All rights, reserved, 151
アクセス制限 ( 続き )
• resolver
–
正当な範囲だけにallow-recursion
すればいい。• allow-queryという意見もある。
• authority
– recursion offでよい。
– localhost.
とその逆索きはサービス不要。–
各ゾーンはslave
だけにallow-transfer
。Dec/16/2002
Copyright(C) 2002 Koh-ichi Ito, All rights, reserved, 152
Advanced topics
77 77 77 77
Dec/16/2002
Copyright(C) 2002 Koh-ichi Ito, All rights, reserved, 153
ログの監査
• ログにはさまざまな情報が出ている。
–
ちゃんと見ることは重要。• でもあまり量が多いと、ちゃんと見るのも大変。
–
重要なメッセージが埋もれてしまう。• その解決策を根性論に立脚した肉体労働に 見出すのは不毛。
–
せっかく計算機を使ってるんだから…
。Dec/16/2002
Copyright(C) 2002 Koh-ichi Ito, All rights, reserved, 154
ログの監査 ( 続き )
• なぜ量が多くなるか ?
–
同じ内容のメッセージが繰り返し出ている。–
正常動作の報告が出ている。• ではどうする ?
– severity
は必要に応じて調整。– null
を活用。–
サマリーを作成してメールでレポート。•
不審な点は生ログをチェック。•
もっとリアルタイムな監視は矢萩さんのチュートリア ルで:-)78 78 78 78
Dec/16/2002
Copyright(C) 2002 Koh-ichi Ito, All rights, reserved, 155
ログの監査 ( 続き )
• サマリーの作成
#!/usr/bin/perl(sed
でもruby
でも…) –
タイムスタンプを削除。– pid
を削除。• file
で採取するとつかないが、syslog
経由だとつく。– active open
側ソケットのポート番号を削除。–
正常動作に関するメッセージを削除。| sort | uniq | mail
• これでいわゆる「 S/N 比」 (signal/noise) は向 上する。
Dec/16/2002
Copyright(C) 2002 Koh-ichi Ito, All rights, reserved, 156
dnswalk
• 正索き / 逆索きの整合性や文字セットなどを チェックするツール。
• http://www.visi.com/~barr/dnswalk/
• perl スクリプト。
– Net::DNS
モジュールが必要。• 今のところ v6 はサポートしていない。
• cron で実行し、ログのサマリーと一緒にメー
ルすると便利。
–
不可避な警告やエラーが出るなら、前日の結 果とdiffを取ると抑制できる。79 79 79 79
Dec/16/2002
Copyright(C) 2002 Koh-ichi Ito, All rights, reserved, 157
大規模ネームサーバ構築 tips
• 多くのゾーンをサービスするネームサーバ –
必然的に取り扱うファイルも増える。•
ゾーンファイルzone “don.gr.jp” IN {
file “slave/reg/d/don.gr.jp”;
: };
–
ゾーン名でハッシュ。–
“ja/gr/don.gr.jp”は多分、愚か。– 1ディレクトリに存在するファイルを減らすことにより namei()が高速化され、namedの起動が速くなる、かどう
かは知らない:-)
–
人間の視認性は向上。Dec/16/2002
Copyright(C) 2002 Koh-ichi Ito, All rights, reserved, 158
大規模ネームサーバ構築 tips( 続き )
– named.conf
も大きくなる。include “conf/slave/reg”
include “conf/slave/v4inv”
include “conf/slave/v6inv”
• 1ファイルの寸法を小さく留める。
–
編集時の扱いやすさ。–
ロバスト性向上にも貢献。80 80 80 80
Dec/16/2002
Copyright(C) 2002 Koh-ichi Ito, All rights, reserved, 159
ロバスト性の向上
• 目指すこと
–
壊れにくいように。–
壊れちゃったらすばやく直せるように。Dec/16/2002
Copyright(C) 2002 Koh-ichi Ito, All rights, reserved, 160
ロバスト性の向上 ( 続き )
• ファイルの分類
–
取り返し/
あきらめがつくファイルv.s.
つかない ファイル。•
ログ–
なくても動作する。• slaveのdumpファイル
–
建前はmasterから取って来れば復活するはず。»
ところがmasterが既にダメになっていることも…(^^;。• masterのゾーンファイル
• configファイル
–
がーん;_;
81 81 81 81
Dec/16/2002
Copyright(C) 2002 Koh-ichi Ito, All rights, reserved, 161
ロバスト性の向上 ( 続き )
–
アクセスの激しいファイル•
ログ– named関連のファイルでは一番アクセスが激しいのでは?
• slaveのdumpファイル
–
知らないうちに更新される。• masterのゾーンファイル
• configファイル
–
設定変更や再起動時ぐらい。•
アクセスが激しければ、その分、ディスクの負担も 大きい。Dec/16/2002
Copyright(C) 2002 Koh-ichi Ito, All rights, reserved, 162
ロバスト性の向上 ( 続き )
• 取り返し / あきらめがつく / つかない
• アクセスの激しさ –
分類の結果は一致。• /var をわける。
– /,swap,
おしまい、はダメ。–
クラッシュ時の被害範囲の局所化。–
危険要素の閉じ込め。• ログは普通 /var の下。
• slave の dump ファイルは /var の下に配置。
82 82 82 82
Dec/16/2002
Copyright(C) 2002 Koh-ichi Ito, All rights, reserved, 163
設定ファイルの履歴管理
• メリット
–
不思議な設定に出会ったときの手がかり。–
編集ミスで壊したときの復旧の種。–
設定ミスの影響範囲の同定。–
返金沙汰になったときに、誰の給料を天引きす ればいいか。• デメリット
–
まぁ面倒といえば面倒だが…Dec/16/2002
Copyright(C) 2002 Koh-ichi Ito, All rights, reserved, 164
設定ファイルの履歴管理 ( 続き )
• RCS で管理。
• SCCS に愛があれば SCCS でもよい。
• 極めて個人的見解だが、 CVS はちょっと … –
設定ファイルはソースと異なり排他制御も重要な要素。
• CVS
もロックを有効にする設定あり。– 1
つのレポジトリを複数箇所にcheckout
できる。• namedが参照しているリビジョンとレポジトリの内容
が不一致だと困る。83 83 83 83
Dec/16/2002
Copyright(C) 2002 Koh-ichi Ito, All rights, reserved, 165