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


Table of Contents

↑

はじめに

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

DNSキャッシュサーバの構築手順については下記を参照して下さい。

↑

環境

  • 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; 192.168.11.0/24; };    # キャッシュを応答する先をローカルホストとローカルネットワークに限定します    allow-q
                            u
                            ery
                            -
                            cache
                            
                            {
                            
                            localhost
                            ; 
                            192.168
                            .11
                            .0
                            /
                            24
                            ; 
                            }
                            ;    
                            # 再帰問い合わせの設定(viewで再定義します)
                            
                            recursion
                            
                            no
                            ;    
                            # DNSSECは無効にします。(後で有効にします)
                            
                            dnssec
                            -
                            enable
                            
                            no
                            ;    
                            dnssec
                            -
                            validation
                            
                            no
                            ;    
                            dnssec
                            -
                            lookaside
                            
                            auto
                            ;  
                            #autoを指定するとトラストアンカの設定が自動作成されます。
                            
                            # ゾーン情報の転送を許可するセカンダリDNS
                            
                            allow
                            -
                            transfer
                            
                            {
                            
                            192.168
                            .11
                            .101
                            ; 
                            }
                            ;    
                            # NSレコードおよび、also-notifyに対して変更通知を送る
                            
                            notify
                            
                            yes
                            ;    
                            # NSレコード以外で変更通知を送るサーバ
                            
                            also
                            -
                            notify
                            
                            {
                            
                            192.168
                            .11
                            .101
                            ; 
                            }
                            ;
                            }
                            ;
                            # ログ設定(デフォルト)
                            
                            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
                            ;    
                            #ルートゾーンの設定
                            
                            zone
                            
                            "
                            .
                            "
                            
                            IN
                            
                            {
                            
                            type
                            
                            hint
                            ;            
                            file
                            
                            "
                            /var/named/named.ca
                            "
                            ;    
                            }
                            ;    
                            #ローカルホストに名前解決に関する設定
                            
                            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
                            "
                            ;     
                            }
                            ;
                            }
                            ;
                          
  • 統計情報やログの出力先となるフォルダを作成します。フォルダ所有者は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
↑

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

↑

正引きの設定

  • 内部向けの正引きゾーンファイルを設定します。
    # vi /var/named/chroot/var/named/oss-d.net.in_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
                            
                            NS
                            
                            dns
                            -
                            slave
                            .
                            oss
                            -
                            d
                            .
                            net
                            .           
                            IN
                            
                            MX
                            
                            10
                            
                            mx
                            .
                            oss
                            -
                            d
                            .
                            net
                            .;
                            mx
                            
                            IN
                            
                            A
                            
                            192.168
                            .11
                            .10
                            
                            dns
                            
                            IN
                            
                            A
                            
                            192.168
                            .11
                            .100
                            
                            www
                            
                            IN
                            
                            CNAME
                            
                            dns
                            
                            dns
                            -
                            slave
                            
                            IN
                            
                            A
                            
                            192.168
                            .11
                            .101
                            
                            internal
                            
                            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
                            .  
                            (
                            
                            2012050101
                                ; 
                            Serial
                            
                            3
                            H
                                        ; 
                            Refresh
                            
                            15
                            M
                                       ; 
                            Retry
                            
                            1
                            W
                                        ; 
                            Expire
                            
                            1
                            D
                            
                            )
                                      ; 
                            Minimum
                            ;         
                            IN
                            
                            NS
                            
                            dns
                            .
                            oss
                            -
                            d
                            .
                            net
                            .         
                            IN
                            
                            NS
                            
                            dns
                            -
                            slave
                            .
                            oss
                            -
                            d
                            .
                            net
                            .;
                            10
                            
                            IN
                            
                            PTR
                            
                            mx
                            .
                            oss
                            -
                            d
                            .
                            net
                            .
                            100
                            
                            IN
                            
                            PTR
                            
                            dns
                            .
                            oss
                            -
                            d
                            .
                            net
                            .
                            100
                            
                            IN
                            
                            PTR
                            
                            dns
                            -
                            slave
                            .
                            oss
                            -
                            d
                            .
                            net
                            .
                            200
                            
                            IN
                            
                            PTR
                            
                            internal
                            .
                            oss
                            -
                            d
                            .
                            net
                            .
                          
↑

リゾルバの設定

  • リゾルバを設定します
    # vi /etc/resolv.confnameserver 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
↑

動作確認

↑

内部向け設定の確認

  • 正引きを確認します。(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.
  • 再帰問い合わせの確認(内部向けは再帰問い合わせ可能です)
    # nslookup exsample.com 192.168.11.100Server:         192.168.11.100Address:        192.168.11.100#53Non-authoritative answer:Name:   exsample.comAddress: 69.43.160.151
↑

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:29   最終更新のRSS