ネームサーバのセキュリティ、DNSリフレクション、DNS ampなどを使って悪用されたりすることが多いと言われています。
http://web-tan.forum.impressrd.jp/e/2009/01/15/4414
http://www.atmarkit.co.jp/fwin2k/win2ktips/781dnsamp/dnsamp.html
基本的な設定ができていれば問題はないはずなのですがなかなか慣れないとbindの設定は難しいものです。recursionの設定とLOGさえしっかりと行っておくと万が一の対応も出来るかと思います。本当に基本的な設定、ゾーンファイルの定義などはここでは説明していません。ゾーンファイルの書き方、設定の仕方はgoogleなどで検索してみてください。bindの基本的な設定は下記のとおり。
/etc/bind/named.confファイル
include "/etc/bind/named.conf.options"; include "/etc/bind/named.conf.logging"; include "/etc/bind/named.conf.zones"; include "/etc/bind/named.conf.local";
/etc/bind/named.conf.zonesファイル
acl localnet { 127.0.0.1; }; view "internal" { match-clients { localnet; }; recursion yes; allow-recursion { localnet; }; allow-query { localnet; }; allow-transfer{ localnet; }; zone "." { type hint; file "/etc/bind/db.root"; }; zone "localhost" { type master; file "/etc/bind/db.local"; }; zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; }; zone "0.in-addr.arpa" { type master; file "/etc/bind/db.0"; }; zone "255.in-addr.arpa" { type master; file "/etc/bind/db.255"; }; }; view "external" { match-clients{ any; }; allow-query { any; }; recursion no; zone "yourdomain.com" { type master; file "/etc/bind/yourdomain.com.zone"; }; };
/etc/bind/named.conf.optionsファイル
options { directory "/var/cache/bind"; recursion no; allow-query { none; }; allow-transfer{ none; }; auth-nxdomain no; # conform to RFC1035 listen-on-v6 { any; }; }; /etc/bind/named.conf.loggingファイル logging { channel "log_default"{ file "/var/log/named/named.log" versions 7 size 10m; severity info; print-time yes; print-category yes; }; channel "log_security" { file "/var/log/named/security.log" versions 3 size 10m; severity info; print-time yes; print-category yes; }; category default { "log_default"; }; category security { "log_security"; }; category client { "log_security"; }; };
設定ファイルの構文チェックは
# named-checkconf
で行います。
設定してもこれをどうテストするかというのも重要です。テスト、デバック方法がわからないというケースが意外と多くあるように思います。
# tcpdump -n udp and port 53 // パケットの閲覧 # tail -f /var/log/named/security.log // namedログファイルの閲覧 # dig yourdomain.com @nameserver.com // 実際にDNSへの問い合わせ nameserver.comへ問い合わせ
ゾーン設定のテンプレもついでにのせておきます。
google appsの設定をサンプルにしておきました。
/etc/bind/yourdomain.com.zoneファイル
$TTL 3600 @ IN SOA ns1.yourdomain.com. info.yourdomain.com. ( 2011110601 3600 900 36000 3600 ) IN NS ns1.yourdomain.com. ; IN MX 1 aspmx.l.google.com. IN MX 5 alt1.aspmx.l.google.com. IN MX 5 alt2.aspmx.l.google.com. IN MX 10 aspmx2.googlemail.com. IN MX 10 aspmx3.googlemail.com. ; IN A 0.0.0.0 ns1 IN A 0.0.0.0 www IN A 0.0.0.0 ; mail IN CNAME ghs.google.com. docs IN CNAME ghs.google.com. calendar IN CNAME ghs.google.com. sites IN CNAME ghs.google.com. start IN CNAME ghs.google.com. ; google._domainkey 86400 IN TXT ("v=DKIM1; k=rsa; p=XXXXXXXXXXXXX")
ゾーン設定ファイルの詳細なチェックは
# named-checkconf -z
などで出来ます。