運用TIPS
今回は他のDNSサーバとの連携方法や運用TIPSについて紹介します。
設定ファイルの記述が正しいか確認する
デフォルトの設定ファイルに設定を少し追加しただけの場合は問題ないですが、設定を次々と追加していくと記述間違いが出てくる恐れがあります。そのため、設定ファイルを書き換えた後にはunbound-checkconfコマンドを実行することにより、設定ファイルのエラーの確認を行うことができます。
実行例は次の通りです。
問い合わせをゾーン毎に制御する
ローカルゾーン「local-zone」の設定を行うことで、「local-data」に記述がない場合の動作を設定することができます。
記述方法は次の通りです。
下表のようなタイプの指定を行うことができます。local-zoneの指定がないときには「transparent」がデフォルトです。
refuse | rcodeをREFUSEDにして、エラーメッセージを返す |
drop | 回答を送信しない |
static | NXDOMAINかNODATAを返す |
transparent | 通常の再帰問い合わせの処理をする |
redirect | ゾーンのサブドメインを異なるアドレスにリダイレクトする |
nodefault | AS112ゾーン(※)のデフォルトの設定をオフにする |
※ AS112ゾーンはプライベートアドレスやリンクローカルアドレスの逆引きのゾーンのことです。Unboundではデフォルトでこのゾーンに対する問い合わせにはNXDOMAIN(情報なし)を返します。
設定例を1つ紹介します。
試験用のドメイン「local.」を運用していて、登録したホスト以外への問い合わせに対してはインターネットに問い合わせが行かないようにしたいときには、次のような設定を行い、タイプには「static」を記述します。
この設定では、host1.localのAレコードの問い合わせには192.168.0.1が返されますが、host2.localのAレコードの問い合わせにはNXDOMAINが返されます。
指定したDNSコンテンツサーバに問い合わる
特定のドメインに対して指定したDNSコンテンツサーバに問い合わせを行いたいときにはスタブゾーン「stub-zone」を設定します。図1のような関係になります。
記述方法は次の通りです。「stub-addr」と「stub-host」はどちらか1つ以上の記述があれば良いです。
次の例は「example.org」ゾーンとその逆引き「0.168.192.in-addr.arpa」ゾーンのDNSコンテンツサーバへの問い合わせ先のIPアドレスが「192.168.0.4」であることを示します。
プライベートアドレスの逆引きのゾーンに対する問い合わせはUnboundではデフォルトでNXDOMAINを返すので、server節に次のようにローカルゾーンの設定を行い、「transparent」の指定を行います。
問い合わせを指定したDNSキャッシュサーバにフォワードする
特定のドメインに対する再帰問い合わせを指定したDNSキャッシュサーバにフォワードしたいときにはフォワードゾーン「forward-zone」を設定します。図2のような関係になります。
記述方法は次の通りです。「forward-addr」と「forward-host」はどちらか1つ以上の記述があればよいです。
次の例は「example.org」ゾーンとその逆引き「0.168.192.in-addr.arpa」ゾーンのDNSキャッシュサーバへのフォワード先のIPアドレスが「192.168.0.5」であることを示します。
プライベートアドレスの逆引きのゾーンに対する問い合わせはUnboundではデフォルトでNXDOMAINを返すので、server節に次のようにローカルゾーンの設定を行い、「transparent」の指定を行います。
すべての問い合わせを指定したDNSキャッシュサーバにフォワードする
すべての問い合わせを指定したDNSキャッシュサーバにフォワードする場合にはフォワードゾーン「forward-zone」の設定で「name」として「.」を、「forward-addr」としてDNSキャッシュサーバのIPアドレスを指定します。設定例は次の通りです。
バージョン番号を調べる
digやdrillを使って次のようにしてバージョンを確認できます。
バージョン番号を設定したり、隠したりする
ソフトウェアのバージョン特有の脆弱性への攻撃を防ぐために、バージョン番号を変えたり、隠したりしたいという考えがあります。
設定ファイルunbound.confに次のような設定を加えるとバージョン番号の文字列を変えることができます。
また、設定ファイルunbound.confに次のような設定を加えるとバージョン番号を返さなくなります。
統計情報を出力する
「statistics-interval」に指定した秒数の間隔で統計情報をログに出力することができます。また、「statistics-cumulative」に「yes」を指定することにより、統計のカウンターをクリアせず累積の統計情報を出力するようになります。
設定例は次のようになります。
ログの出力例は次のようになります。なお、デフォルトではログはsyslogに出力されます。
参考までに、このデータは筆者が迷惑メール対策ソフトウェアのSpamAssassin用に使っているマシンの結果です。DNSの問い合わせのほとんどがヘッダ解析のDNSテストやRBLやURIBLです。
まとめ
4回に渡ってUnboundについての紹介をしてきました。UnboundはDNSキャッシュサーバとして必要な機能はほぼ実装されているのがわかったでしょうか? 通常のDNSキャッシュサーバとして足らないのはDNSラウンドロビン対応とrndcのような制御ツールくらいと思われます。本記事を読まれて興味を持たれた方は試してください。
また、2008年12月18日発売の『Software Design』2009年1月号にて、Unboundの特集記事が掲載されます。こちらも合わせてご覧ください。
最後に、日本Unboundユーザ会のWebサイトではマニュアルの日本語の翻訳などの日本語での情報発信を細々と行っています。興味がありましたら訪れてください。