テクニカルノーツ

DNS

  • 2014.1.23
    DNS

    DNSサーバを構築してみた

    Debian wheezyでDNSサーバを構築してみました。 基本的なインストール方法と設定手順を説明します。 なお、各正・逆引きファイルの設定内容は省略しています。 BINDインストール #aptitude install bind9 bind9-host bind9utils 設定ファイルの設定 named.confの設定 以下の2行のみ設定を有効にする include "/etc/bind/named.conf.options";include "/etc/bind/named.conf.local"; named.conf.optionsの設定 options { directory "/var/cache/bind"; //query-source address * port 53; //コメントアウト auth-nxdomain no; # conform to RFC1035   listen-on-v6 { none; }; //IPv6は使用しないので設定 allow-query { 192.168.XXX.0/24; XXX.XXX.XXX.XXX/XX; }; allow-transfer { 192.168.XXX.0/24; XXX.XXX.XXX.XXX/XX; }; version "DNS Server";} 設定内容 //query-source address * port 53 コメントアウトするのは、ポートを固定すると攻撃先のポートが特定されて攻撃へのリスクが高くなります。 allow-query 問合せを許可する範囲を設定します。 allow-transfer ゾーンの転送を許可する範囲を設定します。 named.conf.localの設定 各正・逆引きゾーンファイルの設定内容は省略します。 なお、ゾーンファイルの命名規則は、内側はファイル名の頭に「db.」+ホスト名、外側はファイル名の頭に「zone.」+ホスト名にして、ファイル名で各ホストの外側・内側の設定ファイルがわかりやすいようしています。 view "internal" { match-clients { 192.168.XXX.0/16; 127.0.0.0/8; }; recursion yes; zone "0.in-addr.arpa" { type master; file "/etc/bind/db.0"; }; zone "one-x.co.jp" { type master; file "/etc/bind/db.one-x.co.jp"; }; } view "external" { match-clients { any; }; allow-query { any; }; recursion no; zone "one-x.co.jp" in { type master; file "/etc/bind/one-x.co.jp.zone"; } ;} 設定内容 view "internal" 内向けのLAN内の設定を記載します。 view "external" 外向けのWAN側の設定を記載します。 match-clients 指定範囲の物が定義を参照します。 recursion 再帰検索の設定。外側の設定は禁止(no)にすること。yesにすると攻撃(不正なリクエスト)に対して再帰検索による不要な検索(管理外のドメインに対する検索)やDNSキャッシュするで、サーバに負荷がかかったりやキャッシュポイズニング等にる攻撃に弱くなるためです。 設定の確認 以下のコマンドで設定のシンタックスエラーをチェックできます。 問題がある場合は、コマンド実行後にエラーが表示されます。表示されない場合は問題ありません。 # named-checkconf /etc/bind/named.conf BINDの起動 #/etc/init.d/bind9 start 動作検証 dnsutils をインストール digコマンドを使うので dnsutils をインストールします。 #aptitude install dnsutils dig コマンドで検証 dig コマンドで AUTHORITY SECTION が正常に取得できることを確認します。 以下は、コマンド実施の例です。 #dig @localhost one-x.co.jp MX; DiG 9.8.4-rpz2+rl005.12-P1 @localhost one-x.co.jp MX; (1 server found);; global options: +cmd;; Got answer:;; -HEADER- opcode: QUERY, status: NOERROR, id: 35491;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1;; QUESTION SECTION:;one-x.co.jp. IN MX;; ANSWER SECTION:one-x.co.jp. 86400 IN MX 0 mail.one-x.co.jp.;; AUTHORITY SECTION:one-x.co.jp. 86400 IN NS ns.one-x.co.jp.;; ADDITIONAL SECTION:ns.one-x.co.jp. 86400 IN A XXX.XXX.X.XX;; Query time: 9 msec;; SERVER: 127.0.0.1#53(127.0.0.1);; WHEN: Thu Jan 23 16:26:01 2014;; MSG SIZE rcvd: 83 以上