BIND9 DNSゾーンサーバ構築(目次)


Table of Contents

↑

はじめに

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

↑

インストール環境

  • OS
    • CentOS 5.5 (kernel 2.6.18-194.3.1.el5)
  • パッケージ
    • bind-9.3.6-4.P1.el5_4.2
↑

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

  • bind 本体のインストール
    # yum install bind bind-chroot
  • 必要な設定ファイルをコピーします。
    # cd /usr/share/doc/bind-9.3.6/sample/# cp -rp etc /var/named/chroot/etc# cp -rp var/named/local* /var/named/chroot/var/named# cp -rp var/named/named* /var/named/chroot/var/named
  • コピーした設定ファイルの権限を変更します。
    # chown -R root:named /var/named/chroot

↑

設定

↑

chrootの設定

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

↑

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

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

named.confの編集

  • 設定ファイル「/var/named/chroot/etc/named.conf」を編集します。
    # 動作全般に関する設定options{    # バージョンを隠す設定    version "unknown";    # 設定ファイルのディレクトリ (デフォルト)    # 下記設定の場合、chrootにより /var/named/chroot/var/named が設定される    directory "/var/named";    # キャッシュの内容を保存するファイル(rndcで利用)    dump-file       "data/cache_dump.db";      # 名前解決の回数などの統計データを保存するファイル(rndcで利用)    statistics-file     "data/named_stats.txt";    # サーバ終了時にメモリ使用統計について出力するファイルのパス名(rndcで利用)    memstatistics-file  "data/named_mem_stats.txt";};# ログに関する設定(デフォルト)logging{        //デバック時のログ出力先 (主にrndc trace コマンドで利用)        channel default_debug {                file "data/named.run";                severity dynamic;        };};# 内部向けDNSの設定view "internal"{    match-clients       { 192.168.11.0/24; };    match-destinations  { 192.168.11.0/24; };    recursion yes;    include "/etc/named.root.hints";    include "/etc/named.rfc1912.zones";    zone "oss-d.net" {        type master;        file "oss-d.net.in_zone";    };    zone "11.168.192.in-addr.arpa" IN {         type master;        file "11.168.192.in-addr.arpa.in_zone";     };};#rndcによるアクセス許可の設定controls {    inet 127.0.0.1 allow { localhost; } keys { rndckey; };};#rndcで利用する暗号鍵の指定include "/etc/rndc.key";# 外部向けDNSの設定view    "external"{    match-clients       { any; };    match-destinations  { any; };    recursion no;    allow-query-cache { none; };    include "/etc/named.root.hints";    include "/etc/named.rfc1912.zones";    zone "oss-d.net" {        type master;        file "oss-d.net.ex_zone";    };    zone "0.0.10.in-addr.arpa" IN {         type master;        file "0.0.10.in-addr.arpa.ex_zone";     };};
↑

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の編集

  • TSIG認証用の鍵を生成
    # /usr/sbin/dns-keygenI4S67zB1IQpAu6SGRO8bSoW6Mpju6Klv2zZLHaKMGYtQKbYeAP9ql40hEKCl

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

rndc.confの編集

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

内部向けゾーンファイルの設定

↑

正引きの設定

  • 内部向けの正引きゾーンファイルを設定します。
    # vi /var/named/chroot/var/named/oss-d.net.in_zone$TTL    86400@    IN    SOA   dns.oss-d.net. root.oss-d.net.  (                2010060601    ; Serial                3H            ; Refresh                15M           ; Retry                1W            ; Expire                1D )          ; Minimum;         IN    NS     dns.oss-d.net.         IN    MX 10  mx.oss-d.net.;mx       IN    A      192.168.11.10dns      IN    A      192.168.11.100www      IN    CNAME  dnsinternal IN    A      192.168.11.200
↑

逆引きの設定

  • 内部向けの逆引きゾーンファイルを設定します。
    # vi /var/named/chroot/var/named/11.168.192.in-addr.arpa.in_zone$TTL    86400@    IN    SOA   dns.oss-d.net. root.oss-d.net.  (                2010060601    ; Serial                3H            ; Refresh                15M           ; Retry                1W            ; Expire                1D )          ; Minimum;         IN    NS     dns.oss-d.net.;10       IN    PTR    mx.oss-d.net.100      IN    PTR    dns.oss-d.net.200      IN    PTR    internal.oss-d.net.
↑

外部向けゾーンファイルの設定

↑

正引きの設定

  • 外部向け正引きゾーンファイルを設定します。
    # vi /var/named/chroot/var/named/oss-d.net.ex_zone$TTL    86400@    IN    SOA   dns.oss-d.net. root.oss-d.net.  (                2010060601    ; Serial                3H            ; Refresh                15M           ; Retry                1W            ; Expire                1D )          ; Minimum;         IN    NS     dns.oss-d.net.         IN    MX 10  mx.oss-d.net.;mx       IN    A      10.0.0.10dns      IN    A      10.0.0.100www      IN    CNAME  dnsexternal IN    A      10.0.0.201
↑

逆引きの設定

  • 外部向け逆引きゾーンファイルを設定します。
    # vi /var/named/chroot/var/named/0.0.10.in-addr.arpa.ex_zone$TTL    86400@    IN    SOA   dns.oss-d.net. root.oss-d.net.  (                2010060601    ; Serial                3H            ; Refresh                15M           ; Retry                1W            ; Expire                1D )          ; Minimum;         IN    NS     dns.oss-d.net.;10       IN    PTR    mx.oss-d.net.100      IN    PTR    dns.oss-d.net.201      IN    PTR    external.oss-d.net.
↑

リゾルバの設定

  • リゾルバを設定します
    # vi /etc/resolv.confnameserver 127.0.0.1
↑

起動・自動起動

↑

自動起動の設定

  • 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の動作確認を行います
    # rndc statusnumber of zones: 16debug level: 0xfers running: 0xfers deferred: 0soa queries in progress: 0query logging is OFFrecursive clients: 0/1000tcp clients: 0/100server is up and running

↑

内部向け設定の確認

  • 正引きを確認します。(192系のIPアドレスで回答されます)
    # nslookup dns.oss-d.net 192.168.11.100Server:         192.168.11.100Address:        192.168.11.100#53Name:   dns.oss-d.netAddress: 192.168.11.100
  • 逆引きを確認します。
    # nslookup 192.168.11.100 192.168.11.100Server:         192.168.11.100Address:        192.168.11.100#53100.11.168.192.in-addr.arpa     name = dns.oss-d.net.
↑

外部向け設定の確認

外向けの設定はDNSサーバを127.0.0.1に設定して確認します。

  • 正引きを確認します。(10系のIPアドレスで回答されます)
    # nslookup dns.oss-d.net 127.0.0.1Server:         127.0.0.1Address:        127.0.0.1#53Name:   dns.oss-d.netAddress: 10.0.0.100
  • 逆引きを確認します。
    # nslookup 10.0.0.100 127.0.0.1Server:         127.0.0.1Address:        127.0.0.1#53100.0.0.10.in-addr.arpa name = dns.oss-d.net.
↑

各種コマンド

↑

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

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

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

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

このエントリーをはてなブックマークに追加
Last-modified: 2010-09-24 (金) 10:29:30   最終更新のRSS