BIND 9.3 DNSキャッシュサーバ構築


Table of Contents

↑

はじめに

BINDによるDNSキャッシュサーバの構築手順です。
ゾーンサーバの構築手順については下記を参照して下さい。

↑

インストール環境

  • OS
    • CentOS 5.3
  • パッケージ
    • bind-9.3.4-10.P1.el5_3.3
↑

パッケージのインストール

  • bind 本体のインストール
    # yum install bind caching-nameserver bind-chroot

↑

chrootの設定

第三者に権限が奪取された場合を想定してchrootを導入します。
chrootはnamedプロセスにおけるルートディレクトリを変更する事で、権限が奪取された場合に上位階層のファイルへアクセス出来ないようにします。

↑

ルートディレクトリの設定

  • /etc/sysconfig/named でルートディレクトリを設定します。
    ROOTDIR=/var/named/chroot
    これで権限が奪取されたとしても「/var/named/chroot」より上の階層にアクセスできません。
↑

基本設定

↑

named.confの編集

  • 設定ファイル「named.conf」をコピーします。
    # cp -rp /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.conf
  • 設定ファイル「/var/named/chroot/etc/named.conf」を編集します。
    #動作全般に関する設定(■一部追加)options {    version "unknown"; #バージョンを隠す設定    #listen-on port 53 { 127.0.0.1; };    #listen-on-v6 port 53 { ::1; };    directory   "/var/named";    dump-file   "/var/named/data/cache_dump.db";        statistics-file "/var/named/data/named_stats.txt";        memstatistics-file "/var/named/data/named_mem_stats.txt";    #DNSを利用するネットワークを設定    allow-query {        localhost;        192.168.11.0/24;    };};#ログに関する設定(デフォルト)logging {        #デバック時のログ出力先を指定        channel default_debug {                file "data/named.run";                severity dynamic;        };};#キャッシュサーバ用の設定を定義(デフォルト)view localhost_resolver {    match-clients      { localhost; };    match-destinations { localhost; };    recursion yes;    include "/etc/named.rfc1912.zones";};#rndcによるアクセス許可設定(■追加)controls {    inet 127.0.0.1 allow { localhost; } keys { rndckey; };};#rndcで利用する暗号鍵の指定(■追加)include "/etc/rndc.key";
↑

rndcの設定

↑

named.confの編集

  • 設定ファイル「/var/named/chroot/etc/named.conf」へ下記を追加します。
    #rndcによるアクセス許可設定controls {    inet 127.0.0.1 allow { localhost; } keys { rndckey; };};include "/etc/rndc.key";
↑

rndc.keyの編集

  • /var/named/chroot/etc/rndc.key の設定
    key "rndckey" {    algorithm hmac-md5;    secret "u8rYXb5zv5vezCqYPXcQ9wNuO1yDiegDemAswrIML2Mz1BFN0u585tW1cncA";};
↑

rndc.confの編集

  • 「/etc/rndc.conf」の設定
    key "rndckey" {    algorithm       hmac-md5;    secret  "u8rYXb5zv5vezCqYPXcQ9wNuO1yDiegDemAswrIML2Mz1BFN0u585tW1cncA";};options {    default-key "rndc-key";    default-server 127.0.0.1;    default-port 953;};
↑

起動・自動起動

↑

自動起動の設定

  • chkconfigコマンドで自動起動をONにします
    # chkconfig named on

  • chkconfigコマンドで自動起動の確認をします。LUNレベル3,4,5がonになっていれば問題ありません。
    # chkconfig --list named named           0:off   1:off   2:on    3:on    4:on    5:on    6:off
↑

起動

  • BIND を起動します。
    # /etc/init.d/named start

  • psコマンドで起動の確認を行います。
    # ps ax |grep named 4711 ?        Ssl    0:00 /usr/sbin/named -u named -t /var/named/chroot
  • rndcの確認
    # rndc statusnumber of zones: 6debug level: 0xfers running: 0xfers deferred: 0soa queries in progress: 0query logging is OFFrecursive clients: 0/1000tcp clients: 0/100server is up and running

    rndcコマンドで下記エラーが出る場合は/var/log/messages を確認します。
    "This may indicate that the remote server is using an older version of the command protocol, this host is not authorized to connect, or the key is invalid."

    /var/log/messages
    /etc/named.conf:59: couldn't find key 'rndc_key' for use with command channel 127.0.0.1#953



↑

各種コマンド

↑

dig

  • 正引き(@のDNSサーバは省略可)
    # dig @localhost example.com 

  • 逆引き(@のDNSサーバは省略可)
    # dig @localhost -x 192.168.11.101

  • MXレコードの確認
    # dig @localhost example.com mx


↑

rndc

  • namedサービスをただちに停止します。
    # rndc halt 

  • このネームサーバーに送られたクエリの すべてをログします。
    # rndc querylog

  • ネームサーバーのデータベースをリフレッシュします。
    # rndc refresh

  • ゾーンファイルをリロードしますが、以前にキャッシュされた 他の回答を全て保存します。
    # rndc reload
    このコマンドを使用すると、すべての保存された解決を消失することなく ゾーンファイルの変更が出来ます。
    もし、変更が特定のゾーンのみに影響する場合、reloadコマンドの後に そのゾーン名を付加することで1つのゾーンだけをリロードします。

  • 現在のnamed統計を /var/named/named.statsファイルにダンプします。
    # rndc stats

  • サーバーを安全に停止し、終了前に動的な更新やIXFR (Incremental Zone ransfers)データを保存します。
    # rndc stop 

  • DNSサーバのキャッシュ情報をクリアする
    # rndc flush 

このエントリーをはてなブックマークに追加
Last-modified: 2010-06-05 (土) 12:30:45   最終更新のRSS