○ Bindのインストール

・独自にDNSサーバ (グローバル、ローカル兼用) を立てます
・bind-9.8.1をソースからインストールし、設定します
・LINUXルータ上で固定グローバルIPで動かします
・openssl 0.9.7l以上、0.9.8d以上を必要とします
・make はメンテナンスマシンで行っています

・ソースの取得、削除は省略します
・エディタ、ファイラーの操作は省略します
・ソースを展開したら説明文を読みましょう
・Enterキーを省略します

・ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
・設定ファイルで "#" で始まる行はコメントとして解釈されます

○関連サイト

:bind-9.8.1.tar.gz (http://www.isc.org/)

○参照ファイル

パッケージの追加
最初の設定 (Router)
opensslのインストール

○インストール環境

:OS CentOS 5.6
:selinux permissive
:インストール先  /usr/local/(デフォルト)
:作業 /usr/src
:言語 LANG=en_US.UTF-8
:ユーザー rootで実行

・メンテナンスの場合は一般ユーザから行います



○bind-9.8.1

○既存パッケージの削除

[root@venus:~]
rpm -e bind-libs bind-utils

○bind専用ユーザーを作成します

uid/gid情報を参照
・zoneファイル専用ディレクトリを作ります

[root@venus:~]
# useradd -u 25 -d /dev/null -s /bin/false named
# mkdir -p /var/named/{data,slave}
# chown -R named:named /var/named
# chmod -R 750 /var/named

○ソースの展開・インストール

・CFLAGSの-DDIG_SIGCHASEでdigの+sigchaseオプションを有効にします

# cd /usr/src
[root@venus:/usr/src]
# tar zxvf bind-9.8.1.tar.gz
# chown -R root:root bind-9.8.1
# cd bind-9.8.1
[root@venus:/usr/src/bind-9.8.1]
# make distclean
# ./configure CFLAGS="-O2 -march=pentium3 -DDIG_SIGCHASE" \
--sysconfdir=/etc \
--localstatedir=/var \
--with-randomdev=/dev/urandom \
--with-libtool \
--with-openssl=/usr/local

・CFLAGS="-O2 -march=pentium3" (CPU最適化オプション)
・該当しない場合は指定しない
・オプションは半角を入れて続けて記入した方が良い

# make && make test
# make install
# cd ..
[root@venus:/usr/src]
# tar jcvf bind-9.8.1-110902.tar.bz2 bind-9.8.1/

○キャッシュ情報の更新と確認

・/usr/local/libの設定がされているなら、ldconfigのみ実行します

# cd ~
[root@venus:~]
# echo /usr/local/lib >> /etc/ld.so.conf.d/usrlocal.conf
# ldconfig
# ldconfig -p | grep -e libbind -e libdns -e libisc -e liblwres

○rndc.confファイルを作成

・opensslが上手く組み込まれないとrndc-confgenは動作しないと思う?
・同時にkeyが作成されるのでそのまま使用します
・"-b 512"は512bitsでkeyをつくる指定です

[root@venus:~]
# rndc-confgen -b 512 >> /etc/rndc.conf

・configureでrandomdevを指定しない場合、作成に時間がかかる場合があります
・-rオプションでrandomfileを指定します

# rndc-confgen -b 512 -r /dev/urandom >> /etc/rndc.conf

:/etc/rndc.conf

・コメントされている部分(key,controls)をnamed.confに書き込みます
・key の "secret" の値は128bitの値で、実際とは異なります

# Start of rndc.conf
key "rndc-key" {
        algorithm hmac-md5;
        secret "BsLtRyyU2gIgPAmofxAssQ==";
};

options {
        default-key "rndc-key";
        default-server 127.0.0.1;
        default-port 953;
};
# End of rndc.conf

# Use with the following in named.conf, 
# adjusting the allow list as needed:
# key "rndc-key" {
#       algorithm hmac-md5;
#       secret "BsLtRyyU2gIgPAmofxAssQ==";
# };
# 
# controls {
#       inet 127.0.0.1 port 953
#               allow { 127.0.0.1; } keys { "rndc-key"; };
# };
# End of named.conf

○"." 情報を取得し、/var/named/dataに保存します

・A.ROOT-SERVERに問い合わせ "." 情報を取得します

[root@venus:~]
# cd /var/named/data
[root@venus:/var/named/data]
# dig . ns @198.41.0.4 > named.cache

○zoneファイルをつくり、/var/named/dataに保存します

zoneファイル (詳細別記)

○named.conf,resolv.confファイルを作り、/etcに保存します

/étc/named.conf (詳細別記)

:/etc/resolv.conf

・aaa.bbb.ccc.ddd には2nd.name.serverのアドレスを入れます

search 528p.com
nameserver 127.0.0.1
nameserver aaa.bbb.ccc.ddd

○/etc/sysconfig/namedファイル

・named起動スクリプトで読みこみます
・IPv4のみの接続にします

#ROOTDIR=/var/chroot/bind
OPTIONS=-4

○named起動スクリプトを作り、/etc/rc.d/init.dに保存します

/étc/rc.d/init.d/named (詳細別記)

○ファイル及びディレクトリのユーザ・グループ・パーミッションの設定

・変更コマンド省略
・( )のファイルは起動後に作られます

etc/ 755 root:root
named.conf 640 root:named

rndc.conf 640 root:named

bind.keys 640 root:named

sysconfig/ 755 root:root


named 644 root:root
var/ 755 root:root

named/ 750 named:named


(named.pid) 644 named:named


(queries.log) 644 named:named


(*.mkeys) 644 named:named


(*.mkeys.jnl) 644 named:named


(session.key) 600 named:named


slave/ 750 named:named


data/ 750 named:named



zone-file 640 named:named



named.cache 440 named:named

○rp-pppoeのDNS設定を変更します

rp-pppoeのインストールを参照
・xxxxxxxxxxxxの部分にはプロバイダーのユーザーIDをいれます
・"DNS: Do not adjust"でresolv.confが書き変わらなくなります
・/etc/ppp/pppoe.confを直接修正しても良いです

# cd ~
[root@venus:~]
# pppoe-setup

USERNAME
>>> Enter your PPPoE user name:xxxxxxxxxxxx@ka.il24.net

INTERFACE
(default eth1):eth1

>>> Enter the demand value (default no):no

DNS
>>> Enter the DNS information here:← 未入力でEnterキー

PASSWORD
>>> Please enter your PPPoE password:← パスワードを入力
>>> Please re-enter your PPPoE password:← 再入力

FIREWALLING
>>> choose a type of firewall (0-2):2

** Summary of what you enterd **
Ethernet Interface:eth1
User name:xxxxxxxxxxxx@ka.il24.net
Active-on-demand:NO
DNS: Do not adjust
Firewalling:MASQUERADE

>>>Accept these settings and adjust configuration files(y/N)?y

○iptableの設定

Netfilter(iptables)で制御している場合、ポートを開けてください

Netfilter(iptables)の設定を参照

○selinuxの対応 (selinuxが有効の場合)

・新規インストールファイルのselinuxラベルを修正

[root@venus:~]
# restorecon -Rv /etc
# restorecon -Rv /usr/local
# restorecon -Rv /var

○namedの自動起動をonにし、再起動します

[root@venus:~]
# chkconfig --add named
# shutdown -r now



○bind起動後の確認

○digコマンドで1st.name.serverの問い合わせをします

・"aaa.bbb.ccc.ddd"には2nd.name.serverのアドレスを入れます

・正引き(ルートサーバから引きます)

[sola@mars ~]
$ dig ns 528p.com @A.ROOT-SERVERS.NET

・A.GTLD-SERVERS.NET(192.5.6.30)がcomを管理しているのが解かる
・A.GTLD-SERVERS.NET(192.5.6.30)で引く

$ dig ns 528p.com @192.5.6.30

・自分のDNSサーバ(master)で自分のDNSサーバを引く

$ dig ns.528p.com @219.117.201.3 

・DNSサーバ(slave)で自分のDNSサーバを引く

$ dig ns.528p.com @aaa.bbb.ccc.ddd

・逆引き(ルートサーバから引きます)

$ dig ptr 3.201.117.219.in-addr.arpa @A.ROOT-SERVERS.NET

・219.in-addr.arpaはNS1.APNIC.NETが管理しているのが解かる
・NS1.APNIC.NETで引く

$ dig ptr 3.201.117.219.in-addr.arpa @NS1.APNIC.NET

・117.219.in-addr.arpaはa.dns.jp.が管理しているのが解かる
・a.dns.jp.で引く

$ dig ptr 3.201.117.219.in-addr.arpa @a.dns.jp

・201.117.219.in-addr.arpaはddns1.interlink.or.jpが管理しているのが解かる
・ddns1.interlink.or.jpで引く

$ dig ptr 3.201.117.219.in-addr.arpa @ddns1.interlink.or.jp

・プロバイダで逆引きの権限委譲をしているのでDNSサーバ名を返す


○rndcコマンドを使う

・chroot環境に係わらず、/etc/rndc.confを読みにいきます
・使用できるcommandを"# rndc --help"で確認します

・サーバの起動状態の表示

[root@venus:~]
# rndc status

・(rndc querylogの実行ごとに)querylogの有効・無効の切り替え

# rndc querylog
# rndc status

・サーバの統計情報をファイルに出力します

# rndc stats
# less /var/named/named.stats

・キャッシュの内容をファイルに出力します

# rndc dumpdb
# less /var/named/named_dump.db

・キャッシュの内容をクリアします

# rndc flush
# rndc dumpdb
# less /var/named/named_dump.db

○ Copyright(c) 528p.com All Rights Reserved.