外向けDNSゾーンサーバ構築(目次)


Table of Contents

↑

はじめに

BIND 9.7による外向けDNSゾーンサーバの構築手順です。
OSはCentOS 6.2を利用して、rndcに対応させます。

↑

環境

  • OS
    • CentOS 6.2 (kernel 2.6.32-220.4.1.el6)
  • パッケージ
    • bind-9.7.3-8.P3.el6_2.2
  • その他
    • ローカルネットは192.168.11.0/24とします
↑

インストール

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

  • 必要な設定ファイルをコピーします。
    # cd /usr/share/doc/bind-9.7.3/sample/# cp -rp etc/* /var/named/chroot/etc# cp -rp var/named/named* /var/named/chroot/var/named

  • コピーした設定ファイルの権限を変更します。
    # chown -R root:named /var/named/chroot
↑

設定

↑

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」を編集します。
    # vi /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
                            "
                            ;     
                            # サービスのListenポートとIP
                            
                            listen
                            -
                            on
                            
                            port
                            
                            53
                            
                            {
                            
                            any
                            ; 
                            }
                            ;     
                            listen
                            -
                            on
                            -
                            v6
                            
                            port
                            
                            53
                            
                            {
                             ::
                            1
                            ; 
                            }
                            ;     
                            # 問い合わせ元をローカルホストに限定します(デフォルト)
                            
                            allow
                            -
                            qu
                            ery             { localhost; };     # キャッシュの応答先をローカルホストに限定します(デフォルト)     allow-q
                            u
                            ery
                            -
                            cache
                            
                            {
                            
                            localhost
                            ; 
                            }
                            ;     
                            # 再帰問い合わせの設定(viewで再定義します)
                            
                            recursion
                            
                            no
                            ;     
                            # DNSSECは無効にします。(後で有効にします)
                            
                            dnssec
                            -
                            enable
                            
                            no
                            ;     
                            dnssec
                            -
                            validation
                            
                            no
                            ;     
                            dnssec
                            -
                            lookaside
                            
                            auto
                            ;  
                            #autoを指定するとトラストアンカの設定が自動作成されます。
                            
                            # ゾーン情報の転送を許可するセカンダリDNS
                            
                            allow
                            -
                            transfer
                            
                            {
                            
                            192.168
                            .11
                            .101
                            ; 
                            }
                            ; 
                            }
                            ; 
                            # ログ設定(デフォルト)
                            
                            logging
                            
                            {
                            
                            #デバック時のログ出力先 (主にrndc trace コマンドで利用)
                            
                            channel
                            
                            default_debug
                            
                            {
                            
                            file
                            
                            "
                            data/named.run
                            "
                            ;                 
                            severity
                            
                            dynamic
                            ;         
                            }
                            ; 
                            }
                            ; 
                            # 外部向けDNSの設定
                            
                            view
                            
                            "
                            external
                            "
                            
                            {
                            
                            match
                            -
                            clients
                            
                            {
                            
                            any
                            ; 
                            }
                            ;    
                            match
                            -
                            destinations
                            
                            {
                            
                            any
                            ; 
                            }
                            ;     
                            zone
                            
                            "
                            .
                            "
                            
                            IN
                            
                            {
                            
                            type
                            
                            hint
                            ;            
                            file
                            
                            "
                            /var/named/named.ca
                            "
                            ;    
                            }
                            ;    
                            recursion
                            
                            no
                            ;    
                            allow
                            -
                            qu
                            ery-cache { none; };    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";     };};
                          
  • 統計情報やログの出力先となるフォルダを作成します。フォルダ所有者はnamedに変更します。
    # mkdir /var/named/chroot/var/named/dynamic# mkdir /var/named/chroot/var/named/data# chown named:named /var/named/chroot/var/named/dynamic# chown named:named /var/named/chroot/var/named/data
↑

SElinuxの設定

  • 「/var/named/chroot/var/named」配下はnamedで書き込みできないため、
    書き込み可能にするようSELinuxの設定を変更します

  • SElinuxのパラメータを確認します。
    # getsebool -a|grep namednamed_write_master_zones --> off
  • SElinuxのパラメータを変更します。
    # setsebool -P named_write_master_zones 1
↑

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

  • グローバルIPがないので、10系のローカルIPを外部向けとして記載しています。
↑

正引きの設定

  • 外部向け正引きゾーンファイルを設定します。
    # vi /var/named/chroot/var/named/oss-d.net.ex_zone
                            $TTL
                            
                            86400
                            @    
                            IN
                            
                            SOA
                            
                            dns
                            .
                            oss
                            -
                            d
                            .
                            net
                            . 
                            root
                            .
                            oss
                            -
                            d
                            .
                            net
                            .  
                            (
                            
                            2012050101
                                ; 
                            Serial
                            
                            3
                            H
                                        ; 
                            Refresh
                            
                            15
                            M
                                       ; 
                            Retry
                            
                            1
                            W
                                        ; 
                            Expire
                            
                            1
                            D
                            
                            )
                                      ; 
                            Minimum
                            ;         
                            IN
                            
                            NS
                            
                            dns
                            .
                            oss
                            -
                            d
                            .
                            net
                            .         
                            IN
                            
                            MX
                            
                            10
                            
                            mx
                            .
                            oss
                            -
                            d
                            .
                            net
                            .;
                            mx
                            
                            IN
                            
                            A
                            
                            10.0
                            .0
                            .10
                            
                            dns
                            
                            IN
                            
                            A
                            
                            10.0
                            .0
                            .100
                            
                            www
                            
                            IN
                            
                            CNAME
                            
                            dns
                            
                            external
                            
                            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
                            .  
                            (
                            
                            2012050101
                                ; 
                            Serial
                            
                            3
                            H
                                        ; 
                            Refresh
                            
                            15
                            M
                                       ; 
                            Retry
                            
                            1
                            W
                                        ; 
                            Expire
                            
                            1
                            D
                            
                            )
                                      ; 
                            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.conf
                            
                            nameserver
                            
                            127.0
                            .0
                            .1
                          
↑

起動・自動起動

自動起動の設定

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

  • chkconfigコマンドで自動起動の確認をします。LUNレベル3,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
↑

動作確認

↑

外部向け設定の確認

外向けの設定は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.
  • 再帰問い合わせの確認(外部向けは再帰問い合わせ不可能です)
    # nslookup exsample.com 127.0.0.1Server:         127.0.0.1Address:        127.0.0.1#53** server can't find exsample.com: REFUSED
↑

rndcの設定

  • rndcを設定して、BINDをリモートから制御可能にします。
↑

DNSSECの設定

  • DNSキャッシュポイズニング対策としてDNSSECを導入します。
↑

各種コマンド

dig

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

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

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

  • 設定ファイルの内容確認
    # named-checkconf -p -t /var/named/chroot

このエントリーをはてなブックマークに追加
Last-modified: 2012-05-01 (火) 20:29:13   最終更新のRSS