Dell Optiplex GXa |
SolarisTM 9 x86 12/02 |
BIND-9.2.3
※ 事前に、
libtool-1.5
openssl-0.9.7c
ANDIrand-0.7
の3つをインストールしておく必要がある。
必要なソフトウェア:
bind-9.2.3.tar.gz (23-Oct-2003 Rerease)
ftp://ftp.isc.org/isc/bind9/9.2.3/
Domain 例:
Domain1 = domain1.com
FQDN = ns1.domain1.com
IP Address = 203.141.134.78
プライマリDNS = 自サーバ 203.141.134.78
セカンダリDNS = tegtan1.interlink.or.jp 203.141.128.33
バーチャルドメインとして、
Domain2 = domain2.tv
FQDN = domain2.tv
IP Address = 203.141.134.78
プライマリDNS = ns1.domain1.com 203.141.134.78
セカンダリDNS = tegtan2.interlink.or.jp 203.141.128.34
構 成:
外部・内部それぞれの問い合わせに対する応えを変えるため、split DNSを使用する。
準 備:
SuperUserになる。
$ su
password:
新規グループnamedを作成する。
# groupadd named
新規ユーザーnamedを作成する。
# useradd -g named -s /bin/false named
一般ユーザーに戻る。
$ exit
インストール:
作業ディレクトリを作成する。
$ mkdir /opt/src/bind-9.2.3
作成したディレクトリに移動する。
$ cd /opt/src/bind-9.2.3
アーカイブをダウンロードする。
$ wgetwget ftp://ftp.isc.org/isc/bind9/9.2.3/bind-9.2.3.tar.gz
解凍展開する。
$ tar xozf bind-9.2.3.tar.gz
展開されたディレクトリに移る。
$ cd bind-9.2.3
cshやtcshではうまくいかないので、shになる。
$ sh
環境変数を指定しつつ最適化させる。
$ CC=gcc ./configure --with-libtool \
--with-openssl=/usr/local/ssl
コンパイルする。
$ make(結構時間がかかる)
SuperUserになる。
$ su
password:
インストールする。
# make install
キーの作成:
/etc/rndc.keyを作成させる
# /usr/local/sbin/rndc-confgen -a
共通鍵を作成する。
# dnssec-keygen -a hmac-md5 -b 512 -n HOST domain1
現在自分がいるディレクトリの直下にKdomain1.+123+45678.keyとKdomain1.+123x+45678.private
が作成されたので、moreなりcatなりlessなりでKdomain1.+123+45678.privateを開く。
#cat Kdomain1.+123+45678.private
例えば以下のような鍵が表示されるので、keyをメモ(メモリにコピー)しておく。
Private-key-format: v1.2
Algorithm: 157 (HMAC_MD5)
Key: AheAheAheAheAheAheAheAheAheAheAhe=
忘れないうちに共通鍵ファイルを削除する。
# rm Kdomain1.*
設 定:
/etc/rndc.confをviで作成する。
# vi /etc/rndc.conf
以下の内容を記述して保存する。(secretには上記のKeyを貼り付ける)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
options {
default-server 127.0.0.1;
default-key "domain1";
};
server 127.0.0.1{
key "domain1";
};
key "domain1" {
algorithm hmac-md5;
secret "AheAheAheAheAheAheAheAheAheAheAhe=";
};
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
作成したrndc.confと、rndc.keyのパーミッションを厳しくしておく。
# chmod 600 /etc/rndc.conf /etc/rndc.key
また、所有ユーザーと所属グループもnamedに変更しておく。
# chown named:named /etc/rndc.conf /etc/rndc.key
/etc/named.confをviで作成する。
# vi /etc/named.conf
以下の内容を記述して保存する。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
options {
directory "/var/named";
auth-nxdomain yes;
pid-file "/var/named/named.pid";
version "10.3.2";
};
controls {
inet 127.0.0.1 allow { 127.0.0.1; } keys { domain1; };
};
key "domain1" {
algorithm hmac-md5;
secret "AheAheAheAheAheAheAheAheAheAheAhe=";
};
view "internal" {
match-clients { 192.168.0.0/24; 127.0.0.0/8; };
recursion yes;
zone "." {
type hint;
file "root.cache";
};
zone "localhost" {
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "localhost.rev";
};
zone "domain1.com" {
type master;
file "domain1.com.internal.zone";
allow-transfer {
127.0.0.1;
192.168.0.0/24;
};
};
zone "domain2.tv" {
type master;
file "domain2.tv.internal.zone";
allow-transfer {
127.0.0.1;
192.168.0.0/24;
};
};
zone "0.168.192.in-addr.arpa" {
type master;
file "255.168.192.in-addr.arpa";
allow-transfer {
127.0.0.1;
192.168.255.0/24;
};
};
zone "134.141.203.in-addr.arpa" {
type slave;
file "134.141.203.in-addr.arpa";
allow-transfer {
127.0.0.1;
192.168.0.0/24;
};
masters {
203.141.128.34;
};
};
view "external" {
match-clients { any; };
recursion no;
zone "domain1.com" {
type master;
file "domain1.com.external.zone";
allow-transfer {
203.141.128.33;
};
};
zone "domain2.tv" {
type master;
file "domain2.tv.external.zone";
allow-transfer {
203.141.128.34;
};
};
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
※上記のoptionsのversionは、自分が使っているDNSの
バージョンを秘匿するための記述。" "の中は空欄でも可。
因みに、相手のDNS(例:dns1.domain.net)のバージョンを調べる場合
dig では、
dig @dns1.domain.net CHAOS version.bind TXT
nslookupでは、
$ nslookup
> server dns1.domain.net
Default server: dns1.domain.net
Address: 192.168.1.10#53
> set type=txt
> set class=chaos
> version.bind
Server: dns1.domain.net
Address: 192.168.1.10#53
VERSION.BIND text = "10.3.2"
を実行するとこんな感じで表示される。
作成した/etc/named.confのパーミッションを厳しくしておく。
# chmod 600 /etc/named.conf
また、所有ユーザーと所属グループもnamedに変更しておく。
# chown named:named /etc/named.conf
ゾーンファイルを格納しておくディレクトリを作成する。
# mkdir /var/named
作成したディレクトリに移動する。
# cd /var/named/
外向(External)用の正引ゾーンファイルdomain1.com.external.zoneをviで作成する。
# vi /var/named/domain1.com.external.zone
以下の内容を記述して保存する。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; domain1.com For External
; GROUPE Domain1(domain1.com) host to IP address Infomation
;
$TTL 86400
@ IN SOA ns1.domain1.com. you.domain1.com. (
2002050401 ;Serial
10800 ;Refresh
1800 ;Retry
4320000 ;Expire
86400 ;Minimum
)
IN NS ns1.domain1.com.
IN NS tegtan1.interlink.or.jp.
IN NS tegtan2.interlink.or.jp.
IN MX 10 mail.domain1.com.
; Host Infomation --------------------------------------------------------
ns1INA 203.141.134.78
nsINCNAMEns1.domain1.com.
mailINCNAMEns1.domain1.com.
popINCNAMEns1.domain1.com.
smtpINCNAMEns1.domain1.com.
wwwINCNAMEns1.domain1.com.
www2INCNAMEns1.domain1.com.
ftpINCNAMEns1.domain1.com.
;-------------------------------------------------------------------------
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
内向(Internal)用の正引ゾーンファイルdomain1.com.internal.zoneをviで作成する。
# vi /var/named/domain1.com.internal.zone
以下の内容を記述して保存する。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; domain1.com For Internal
; GROUPE Domain1(domain1.com) host to IP address Infomation
;
$TTL 86400
@ IN SOA ns1.domain1.com. you.domain1.com. (
2002050401 ;Serial
10800 ;Refresh
1800 ;Retry
4320000 ;Expire
86400 ;Minimum
)
IN NS ns1.domain1.com.
IN MX 10 mail.domain1.com.
; Host Infomation --------------------------------------------------------
ns1INA 192.168.0.150
nsINCNAMEns1.domain1.com.
mailINCNAMEns1.domain1.com.
popINCNAMEns1.domain1.com.
smtpINCNAMEns1.domain1.com.
wwwINCNAMEns1.domain1.com.
www2INCNAMEns1.domain1.com.
ftpINCNAMEns1.domain1.com.
;-------------------------------------------------------------------------
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
バーチャルドメインの外向(External)用正引ゾーンファイルdomain2.tv.external.zoneをviで作成する。
# vi /var/named/domain2.tv.external.zone
以下の内容を記述して保存する。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; domain2.tv For External
; GROUPE Domain(domain2.tv) host to IP address Infomation
;
$TTL 86400
@ IN SOA ns1.domain1.com. you.domain1.com. (
2002050401 ;Serial
10800 ;Refresh
1800 ;Retry
4320000 ;Expire
86400 ;Minimum
)
IN NS ns1.domain1.com.
IN NS tegtan2.interlink.or.jp.
IN MX 10 mail.domain2.tv.
; Host Infomation --------------------------------------------------------
domain2.tv.INA 203.141.134.78
mailINCNAMEdomain2.tv.
wwwINCNAMEdomain2.tv.
ftpINCNAMEdomain2.tv.
;-------------------------------------------------------------------------
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
バーチャルドメインの内向(Internal)用正引ゾーンファイルdomain2.tv.internal.zoneをviで作成する。
# vi /var/named/domain2.tv.internal.zone
以下の内容を記述して保存する。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; domain2.tv For Internal
; GROUPE Domain(domain2.tv) host to IP address Infomation
;
$TTL 86400
@ IN SOA ns1.domain1.com. you.domain1.com. (
2002050401 ;Serial
10800 ;Refresh
1800 ;Retry
4320000 ;Expire
86400 ;Minimum
)
IN NS ns1.domain1.com.
IN MX 10 mail.domain2.tv.
; Host Infomation --------------------------------------------------------
domain2.tv.INA 192.168.0.150
mailINCNAMEdomain2.tv.
wwwINCNAMEdomain2.tv.
ftpINCNAMEdomain2.tv.
;-------------------------------------------------------------------------
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
localhostの正引ゾーンファイルをviで作成する。
# vi /var/named/localhost.zone
以下の内容を記述して保存する。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; localhost.zone
; Local loop back file of host to IP address
$TTL 3600
@ IN SOA domain1.com. you.domain1.com. (
2002050401
10800
1800
4320000
86400 )
IN NS domain1.com.
localhost. IN A 127.0.0.1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
localhostの逆引ゾーンファイルをviで作成する
# vi /var/named/localhost.rev
以下の内容を記述して保存する。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; localhost.rev
; Local loop back file of IP address to host
$TTL 86400
@ IN SOA domain1.com. you.domain1.com. (
20020504011
10800
1800
4320000
86400 )
IN NS domain1.com.
1 IN PTR localhost.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LANの逆引きゾーンファイルをviで作成する。
# vi /var/named/0.168.192.in-addr.arpa
以下の内容を記述して保存する。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 0.168.192.in-addr.arpa
; LAN DNS rev file
$TTL 86400
@ IN SOA domain1.com. you.domain1.com. (
20020504011
10800
1800
4320000
86400 )
INNSdomain1.com.
;----------------------------------------------------------
1INPTRMN128-SOHO.domain1.com.
2INPTRclient1.domain1.com.
3INPTRclinet2.domain1.com.
150INPTRns1.domain1.com.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
rootDNSの定義ファイルをダウンロードする。
# wget ftp://rs.internic.net/domain/named.root
ダウンロードした定義ファイルの名前を変更する。
# mv named.root /var/named/root.cache
上記で作成したディレクトリとその中の各ゾーンファイルのパーミッションを厳しくしておく。
# chmod 600 /var/named
# chmod 600 /var/named/*
また、所有ユーザーと所属グループもnamedに変更しておく。
# chown -R named:named /var/named
起動ファイルの編集。このままだと再起動時に OS付属の in.named が起動してしまうので、起動
ファイルをviで開いて編集しておく。
# vi /etc/rc2.d/S72inetsvc
以下のように変更記述して保存する。
===============================================================
.......省略
'stop')
#/usr/bin/pkill -x -u 0 'in.named|inetd'<---- コメントアウト
/usr/bin/pkill -x -u 0 -u named 'named|inetd'<---- 新規記述
exit 0
;;
.......省略
#if [ -f /usr/sbin/in.named -a -f /etc/named.conf ]; then<---- コメントアウト
# echo 'starting internet domain name server.'<---- コメントアウト
# /usr/sbin/in.named &<---- コメントアウト
#fi<---- コメントアウト
if [ -f /usr/local/sbin/named -a -f /etc/named.conf ]; then<---- 新規記述
/usr/local/sbin/named -u named ; echo "starting internet domain name server."<---- 新規記述
fi<---- 新規記述
.......省略
===============================================================
* スタティックリンクが張られているので /etc/init.d/inetsvc も変更される。
namedを一度終了させる
# /etc/rc2.d/S72inetsvc stop
改めて起動させる
# /etc/rc2.d/S72inetsvc start
/var/adm/messages にエラーが出ていないかを調べる。
# tail /var/adm/messages
May 04 00:00:10 ns1 named[1552]: [ID 866145 daemon.notice] stopping command channel on 127.0.0.1#953
May 04 00:00:10 ns1 named[1552]: [ID 866145 daemon.notice] exiting
May 04 00:00:20 ns1 named[1567]: [ID 866145 daemon.notice] starting BIND 9.2.3-u named
May 04 00:00:20 ns1 named[1567]: [ID 866145 daemon.notice] command channel listening on 127.0.0.1#953