CentOS4.x Bind9

ネームサーバであるbind9を導入・設定してみます

構築する環境

ネットワーク192.168.0.0/24
ドメイン名test.local
ホスト名host1.test.local(192.168.0.150)
host2.test.local(192.168.0.151)
host1.test.localに対するAliaswww,ftp,mail

Recommend Book

DNSを手っ取り早く構築したい人におすすめ

導入

yumにてbind9の導入を行います。

rootにて以下を実行します。

# yum install bind

/var/named/下にルートキャッシュファイルを作成します。

ファイル名はnamed.rootとします。

rootにて、以下のコマンドを実行します。

# dig @e.root-servers.net . ns > /var/named/named.root
# chown named:named /var/named/named.root
# chmod 600 /var/named/named.root

digコマンドがない場合、ftp://rs.internic.net/domain/named.rootよりルートキャッシュファイルを入手できます。

localhostの正引き/逆引きファイルの作成

正引きファイルの作成

作成するファイル名は/var/named/localhost.zone

ファイルのオーナ:グループは、named:named、パーミッションは600で作成します。

作成するファイルの内容は以下です。

$ORIGIN localhost.
$TTL 86400
@               IN      SOA     localhost. root.localhost.(
                                2005052501      ; serial
                                10800           ; refresh
                                3600            ; retry
                                3600000         ; expire
                                86400           ; TTL
                        )
;
                IN      NS      @
                IN      A       127.0.0.1

逆引きファイルの作成

作成するファイル名は/var/named/localhost.rev

ファイルのオーナ:グループは、named:named、パーミッションは600で作成します。

作成するファイルの内容は以下です。

$ORIGIN 0.0.127.in-addr.arpa.
$TTL 86400
@               IN      SOA     localhost. root.localhost.(
                                2005052501      ; serial
                                10800           ; refresh
                                3600            ; retry
                                3600000         ; expire
                                86400           ; TTL
                        )
;
                IN      NS      localhost.
1               IN      PTR     localhost.

test.localの正引き/逆引きファイルの作成

正引きファイルの作成

作成するファイル名は/var/named/test.local.zone

ファイルのオーナ:グループは、named:named、パーミッションは600で作成します。

作成するファイルの内容は以下です。

$ORIGIN test.local.
$TTL    86400
@               IN      SOA      host1.test.local. root.test.local. (
                        2005052501              ; serial
                        3600                    ; refresh 1Hour
                        900                     ; retry 15min
                        604800                  ; expiry 1w
                        86400                   ; min 24Hour
)
;
                IN              NS              host1.test.local.
                IN              MX      10      host1.test.local.

localhost       IN              A               127.0.0.1
host1           IN              A               192.168.0.150
host2           IN              A               192.168.0.151

mail            IN              CNAME           host1
ftp             IN              CNAME           host1
www             IN              CNAME           host1

逆引きファイルの作成

作成するファイル名は/var/named/test.local.rev

ファイルのオーナ:グループは、named:named、パーミッションは600で作成します。

作成するファイルの内容は以下です。

$ORIGIN 0.168.192.in-addr.arpa.
$TTL    86400
@               IN      SOA      host1.test.local. root.test.local. (
                        2005052501              ; serial
                        3600                    ; refresh 1Hour
                        900                     ; retry 15min
                        604800                  ; expiry 1w
                        3600                    ; minimum 24Hour
)
;
                IN              NS              host1.test.local.

150             IN              PTR             host1.test.local.
151             IN              PTR             host2.test.local.

/etc/named.confの修正

/etc/named.confにルートキャッシュ/localhostの正引き・逆引き及びtest.localの情報を追加します。

追加する位置は、

include "/etc/rndc.key";

が記載されている行の前です。

zone "." IN {
    type hint;
    file "named.root";
};

zone "localhost" {
    type master;
    file "localhost.zone";
    allow-update { none; };
};
zone "0.0.127.in-addr.arpa" {
    type master;
    file "localhost.rev";
    allow-update { none; };
};

zone "test.local" IN {
    type master;
    file "test.local.zone";
};
zone "0.168.192.in-addr.arpa" IN {
    type master;
    file "test.local.rev";
};

設定ファイルのチェック

/usr/sbin/named-checkzoneでゾーン定義ファイルをチェックします。

使い方

# /usr/sbin/named-checkzone
  usage: named-checkzone [-djqv] [-c class] zonename filename

localhostゾーンの正引き/逆引き設定ファイルのチェック

# /usr/sbin/named-checkzone localhost /var/named/localhost.zone
  zone localhost/IN: loaded serial 2005052501
  OK

# /usr/sbin/named-checkzone 0.0.127.in-addr.arpa /var/named/localhost.rev
  zone 0.0.127.in-addr.arpa/IN: loaded serial 2005052501
  OK

test.localゾーンの正引き/逆引き設定ファイルのチェック

# /usr/sbin/named-checkzone imanet.local /var/named/test.local.zone
  zone test.local/IN: loaded serial 2005052501
  OK

# # /usr/sbin/named-checkzone 0.168.192.in-addr.arpa /var/named/test.local.rev
  zone 0.168.192.in-addr.arpa/IN: loaded serial 2005052501
  OK

/etc/named.conf設定ファイルのチェック

/usr/sbin/named-checkconfで/etc/named.confの設定チェックを行います。

使い方

# /usr/sbin/named-checkconf --help
  usage: named-checkconf [-v] [-t directory] [named.conf]

/etc/named.confの設定チェック

# /usr/sbin/named-checkconf /etc/named.conf

起動

rootにて以下を実行します。

# /etc/rc.d/init.d/named start

自動起動設定

マシン起動時に自動的にbindが起動する様にします。

rootにて以下を実行します。

# chkconfig named on

動作確認

nslookupコマンドやdigコマンドで正引き・逆引きがうまくいくか確認する

何かうまくいかない場合は、/var/log/messageにログが書き込まれているので確認するといいかも。

ファイアウォールについて

ファイアウォール(iptables)が有効になっていると他のマシンからの問い合わせで失敗する為、DNSのポート(domain)に穴をあけなければいけません。(ポート53のTCP及びUDP)

iptablesの設定ファイルは/etc/sysconfig/iptablesです。

/etc/sysconfig/iptablesに以下を追加します。

  :        :
  :        :
  :        :
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

追加後は、iptablesの再起動を行う。

# /etc/rc.d/init.d/iptables restart

なお、iptablesの設定確認は以下の様にします

# iptables -L
  Chain INPUT (policy ACCEPT)
  target     prot opt source               destination
  RH-Firewall-1-INPUT  all  --  anywhere             anywhere

  Chain FORWARD (policy ACCEPT)
  target     prot opt source               destination
  RH-Firewall-1-INPUT  all  --  anywhere             anywhere

  Chain OUTPUT (policy ACCEPT)
  target     prot opt source               destination

  Chain RH-Firewall-1-INPUT (2 references)
  target     prot opt source               destination
  ACCEPT     all  --  anywhere             anywhere
  ACCEPT     icmp --  anywhere             anywhere            icmp any
  ACCEPT     ipv6-crypt--  anywhere             anywhere
  ACCEPT     ipv6-auth--  anywhere             anywhere
  ACCEPT     udp  --  anywhere             224.0.0.251         udp dpt:5353
  ACCEPT     udp  --  anywhere             anywhere            udp dpt:ipp
  ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
  ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:http
  ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:https
  ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ftp
  ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:smtp
  ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh
  ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:domain
  ACCEPT     udp  --  anywhere             anywhere            state NEW udp dpt:domain
  REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

関連ページ