Since 12/1/2007
Home > Linux > CentOS5 > DNSサーバーの構築[BIND] > BINDのインストール

CentOS5 DNSサーバーの構築[BIND] BINDのインストール - itochif.com

DNSサーバーには以下の三種類があります。

  • キャッシュサーバー
    名前解決要求を受けると、コンテンツサーバに対して反復問い合わせを行い、回答してくれるDNSサーバー。主に内部ネットワークからの問い合わせに使用します。…主にというよりも、外部に公開するべきではありません。キャッシュサーバーはDDos攻撃の踏み台にされたり、DNSポイゾニングを行われたりする可能性があります。
  • コンテンツサーバー
    一つ以上のドメインの情報を管理し、管理しているドメインの情報への問合に対してのみ回答するDNSサーバー。主に外部のキャッシュサーバーに応答する目的で使用します。
  • 兼用サーバー
    キャッシュサーバーとコンテンツサーバーのどちらの特性も併せ持つDNSサーバーです。管理しているドメインはもちろん、管理していないドメインの事も調べて回答してくれるDNSサーバー。主に内部ネットワークで使用します。内部ネットワークで使用しているドメインの名前解決を行いつつ、外部ドメインの名前解決も行います。外部に公開されているDNSサーバーでも兼用サーバーはよく見かけますが、キャッシュサーバーの機能も持っているため、外部に公開するべきではありません。外部に公開する場合は外部からの問い合わせにはキャッシュサーバーとして機能しないように設定する必要があります。

サーバーをいずれかの用途に使う事を前提に、BINDのインストールを行います。
※DNSサーバーを必要としない人はインストールする必要はありません。

富士通

BINDのインストール

yumを使用してBINDをインストールします。また、仮にDNSサーバープログラムから不正侵入された場合の被害を抑えるために、bind-chrootもインストールします。
※chrootのディレクトリは/etc/sysconfig/namedファイル内の"ROOTDIR"値で変更できます。

# yum -y install bind bind-chroot
Loading "installonlyn" plugin
Setting up Install Process
Setting up repositories
extras                    100% |=========================| 1.1 kB    00:00
updates                   100% |=========================|  951 B    00:00
base                      100% |=========================| 1.1 kB    00:00
addons                    100% |=========================|  951 B    00:00
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for bind-chroot to pack into transaction set.
bind-chroot-9.3.3-10.el5. 100% |=========================|  38 kB    00:00
---> Package bind-chroot.i386 30:9.3.3-10.el5 set to be updated
---> Downloading header for bind to pack into transaction set.
bind-9.3.3-10.el5.i386.rp 100% |=========================|  49 kB    00:00
---> Package bind.i386 30:9.3.3-10.el5 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 bind                    i386       30:9.3.3-10.el5  base              954 k
 bind-chroot             i386       30:9.3.3-10.el5  base               39 k

Transaction Summary
=============================================================================
Install      2 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 993 k
Downloading Packages:
(1/2): bind-chroot-9.3.3- 100% |=========================|  39 kB    00:00
(2/2): bind-9.3.3-10.el5. 100% |=========================| 954 kB    00:02
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: bind                         ######################### [1/2]
  Installing: bind-chroot                  ######################### [2/2]
Locating /var/named/chroot//etc/named.conf failed:
[失敗]

Installed: bind.i386 30:9.3.3-10.el5 bind-chroot.i386 30:9.3.3-10.el5
Complete!
図1.bindとbind-chrootのインストール

設定ファイル(named.conf)の作成

インストール途中で以下のエラーが出ています。
=========================================================
Locating /var/named/chroot//etc/named.conf failed:
[失敗]
=========================================================
これはchroot環境に設定ファイルをコピーしようとして、設定ファイルが存在しなかったために出ているため、存在しなかった設定ファイルを作成します。

# touch /var/named/chroot/etc/named.conf
図2.設定ファイルの作成

富士通

ファイアウォールの設定

ファイアウォールの設定で行ったiptablesの設定ではDNSサーバーとしての要求と応答の通信が破棄されてしまいます。 以下はDNSサーバー稼動後、クライアントから問い合わせを行おうとした時の/var/log/messagesの内容です。

# /bin/grep DROP /var/log/messages
Mar  9 16:00:00 www kernel: [DROP DEFAULT] :IN=eth0 OUT= SRC=xxx.xxx.xxx.xxx DST=192.168.10.2 LEN=61 TOS=0x00 PREC=0x00 TTL=128 ID=60914 PROTO=UDP SPT=6675 DPT=53 LEN=41
Mar  9 16:00:00 www kernel: [DROP DEFAULT] :IN=eth0 OUT= SRC=xxx.xxx.xxx.xxx DST=192.168.10.2 LEN=48 TOS=0x00 PREC=0x00 TTL=128 ID=38023 DF PROTO=TCP SPT=6877 DPT=53 WINDOW=65535 RES=0x00 SYN URGP=0
図3.ファイアウォールによって破棄されたクライアントからの問い合わせ(抜粋)

これら通信を行うために上記ログから必要な情報を抜き出すと以下のリストになります。

  • 内向きの新規UDPとTCP通信(IN=eth0/PROTO=UDP/PROTO=TCP)
  • 宛先IPアドレスはこのサーバ(DST=192.168.10.2)
  • 宛先ポートは53(DPT=53)

ファイアウォールの設定で作成したシェルスクリプトに、この情報を元にして作成したiptablesコマンドを追記します。 「※この下に受け入れる接続を記述する」の部分に以下の設定を追記します。

# ----- DNSの問い合わせを許可する
/sbin/iptables -A INPUT	-p udp -i $IF1 -d $IP1 --dport 53 -m state --state NEW -j ACCEPT
/sbin/iptables -A INPUT	-p tcp -i $IF1 -d $IP1 --dport 53 -m state --state NEW -j ACCEPT
図4.「ファイアウォールの設定」に追記するコマンド

上記のコマンドを追記した後、以下のコマンドでパケットフィルタテーブルを更新します。

# /usr/local/sbin/iptables.sh
ファイアウォールのルールを /etc/sysconfig/iptables に保存中[  OK  ]
ファイアウォールルールを適用中:                            [  OK  ]
チェインポリシーを ACCEPT に設定中filter                   [  OK  ]
iptables モジュールを取り外し中                            [  OK  ]
iptables ファイアウォールルールを適用中:                   [  OK  ]
iptables モジュールを読み込み中ip_conntrack_netbios_ns     [  OK  ]
図5. パケットフィルタテーブルの更新

これでBINDのインストールは完了です。この後は用途に応じて設定を行います。

マウスコンピューター/G-Tune

掲載日 3/13/2008