ゾーンサーバーとキャッシュサーバー
bind9では、ゾーンサーバーとキャッシュサーバーの機能が提供されている。
しかし、セキュリティを考えた場合、ゾーンサーバーとキャッシュサーバーを分けたい。
キャッシュサーバーを無効にするには、
options {
(省略)
recursion no;
(省略)
};
と、recursion no;を記述する。
また、範囲指定で指定するには
allow-recursion{192.168.0.1}
などと、記述する様である。
rndc.confとrndc-key
rndc-confgenコマンドで生成
# rndc-confgen -r keyboard
rndc-confgenを実行すると
# Start of rndc.conf
key "rndc-key" {
algorithm hmac-md5;
secret "kZODTQSPDxKRCZe5bbJQCA==";
};
options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
};
# End of rndc.conf
# Use with the following in named.conf, adjusting the allow list as needed:
# key "rndc-key" {
# algorithm hmac-md5;
# secret "kZODTQSPDxKRCZe5bbJQCA==";
# };
#
# controls {
# inet 127.0.0.1 port 953
# allow { 127.0.0.1; } keys { "rndc-key"; };
# };
# End of named.conf
と、表示される。
「# Start of rndc.conf」と「# End of rndc.conf」の間の内容をrndc.confに、
記述するようになっている。また、named.confに
key "rndc-key" {
algorithm hmac-md5;
secret "kZODTQSPDxKRCZe5bbJQCA==";
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
を記述するようになるのだが、キーは、別ファイルにして、
たとえば、rndc.confは、
options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
};
include "/etc/rndc.key";
の様にする。また、named.confについても
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
include "/etc/rndc.key";
とする。
rndc.keyのパーミションは400にすることが望ましい。
named.confの設定でログの設定(例)
logging {
// ログの出力方法をlog_defaultとして定義
channel "log_default" {
// 1ファイル当たり10Mで最大7世代までログファイルをローテーションする
// あらかじめフォルダーは用意すること
file "/var/log/named.log" versions 7 size 10m;
// ログレベルinfo以上のものを記録
severity info;
// 時間をログに表記
print-time yes;
// カテゴリをログに表記
print-category yes;
};
// ログの出力方法をlog_securityとして定義
channel "log_security" {
// 1ファイル当たり10Mで最大3世代までログファイルをローテーションする
file "/var/log/security.log" versions 3 size 10m;
severity info;
print-time yes;
print-category yes;
};
// デフォルトログをlog_defaultの定義どおりに出力
category default { "log_default"; };
// セキュリティログをlog_securityの定義どおりに出力
category security { "log_security"; };
// クライアントログをlog_securityの定義どおりに出力
category client { "log_security"; };
// 「lame server resolving …」というエラーログを出力ないようにする
category lame-servers { null; };
};
named.confの構文チェックは
# named-checkconf /etc/named.conf
で、行うことが出来るようである。
ゾーンの構文チェックは
# named-checkzone ajmt.net /var/named/ajmt.net
で、行うことが出来るようである。