Misc/内部用DNSサーバー構築
2017-06-14 (水) 06:49:17 (3069d)
内部用DNSサーバー作成だが、普通に作成すれば権限委譲されていないので問題なく内部用DNSサーバーとして仕様できる。 BINDの入手 †$ wget http://ftp.isc.org/isc/bind9/9.3.2/bind-9.3.2.tar.gz BINDのインストール †$ tar xzvf bind-9.3.2.tar.gz $ cd bind-9.3.2 $ ./configure $ make $ su # make install bind用ユーザー作成 †# /usr/sbin/groupadd named # /usr/sbin/useradd -g named -d /var/named -s /bin/false named 設定ファイル作成前準備 †いらないファイルが useradd で配置されるはずなので削除 # cd /var/named # rm -rf * # rm -rf .* 設定ファイルの作成 †named.ca †$ wget ftp://rs.internic.net/domain/named.root $ su # mv named.root /var/named /usr/local/etc/named.conf †options {
// zone ファイルの格納場所
directory "/var/named";
// BIND の利用を許す範囲を指定
allow-query {
// 自分自身( localhost )
127.0.0.1;
// 192.168.1.* ( Subnet 255.255.255.0 )
192.168.1.0/24;
};
// スレーブ DNS のアドレスを記述。内向き DNS の場合は必要ないが一応記載。
allow-transfer {
// 自分自身( localhost )
127.0.0.1;
// 192.168.1.* ( Subnet 255.255.255.0 )
192.168.1.0/24;
};
// 自前で名前解決できないとき、まずはプロバイダの DNS へ聞きに行く様にする。
forwarders {
XXX.XXX.XX.XX; // プロバイダのプライマリ DNS の IP アドレス
XXX.XXX.XX.XX; // プロバイダのセカンダリ DNS の IP アドレス
};
};
// ルート DNS の情報
zone "." {
// ルート DNS の情報である事を明示
type hint;
// ファイル名
file "named.ca";
};
// localhost の正引きの設定
zone "localhost" {
// Master DNS Serverであることを示す
type master;
// ファイル名
file "localhost.zone";
};
// localhost の逆引きの設定
zone "0.0.127.in-addr.arpa" {
// Master DNS Serverであることを明示
type master;
// ファイル名
file "0.0.127.in-addr.arpa";
};
// xx.net の正引きの設定(内部用ドメイン)
zone "xx.net" {
// Master DNS Serverであることを明示
// 内部から *.xx.net を引いたときにきちんと見えるよう設定
type master;
// ファイル名
file "xx.net";
};
// 192.168.1.* の逆引きの設定
zone "1.168.192.in-addr.arpa" {
// Master DNS Serverであることを明示
type master;
// ファイル名
file "1.168.192.in-addr.arpa";
};
// yyy.yy の正引きの設定(DDNSドメイン)
zone "yyy.yy" {
// Master DNS Serverであることを明示
// 内部から yyyyyy.yyy.yy を引いたときにきちんと見えるよう設定
type master;
// ファイル名
file "yyy.yy";
};
localhost.zone †$TTL 1D
@ IN SOA xxxxx.xx.net. root.xxxxx.xx.net. (
2006090300 ; シリアル番号
3H
1H
1W
1D )
IN NS xxxxx.xx.net.
localhost. IN A 127.0.0.1
0.0.127.in-addr.arpa †$TTL 1D
@ IN SOA xxxxx.xx.net. root.xxxxx.xx.net. (
2006090300
3H
1H
1W
1D )
IN NS xxxxx.xx.net.
1 IN PTR localhost.
xx.net(内部用設定ファイル) †$TTL 1D
@ IN SOA xxxxx.xx.net. root.xxxxx.xx.net. (
2006090300
3H
1H
1W
1D )
IN NS xxxxx.xx.net.
IN MX 10 xxxxx.xx.net. ; メールサーバのホスト名を指定
; 10 は優先順位。
router IN A 192.168.1.1
xxxxx IN A 192.168.1.10
xx.net IN A 192.168.1.10
chrono IN A 192.168.1.3
dns IN CNAME sigel
www IN CNAME sigel
smtp IN CNAME sigel
pop IN CNAME sigel
1.168.192.in-addr.arpa †$TTL 1D
@ IN SOA xxxxx.xx.net. root.xxxxx.xx.net. (
2006090300
3H
1H
1W
1D )
IN NS xxxxx.xx.net.
IN PTR xx.net. ; 解決するドメイン
IN A 255.255.255.0 ; サブネットマスク
1 IN PTR router.xx.net.
10 IN PTR sigel.xx.net.
2 IN PTR chrono.xx.net.
yyy.yy(DDNSドメイン設定ファイル) †$TTL 1D
@ IN SOA yyyyy.yyy.yy. root.yyyyyy.yyy.yy. (
2006090300
3H
1H
1W
1D )
IN NS yyyyyy.yyy.yy.
yyyyyy IN A 192.168.1.10
named.pidを作成可能にする †$ su # chmod 777 /var/run 他のデーモン等が作成する pid ファイルは他ユーザーが書き込みできなくなっているようなのでこれで対応 自動起動設定 †もともと入っていたパッケージ版bindの起動スクリプトを流用
#!/bin/bash
#
# named This shell script takes care of starting and stopping
# named (BIND DNS server).
#
# chkconfig: - 55 45
# description: named (BIND) is a Domain Name Server (DNS) \
# that is used to resolve host names to IP addresses.
# probe: true
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
[ -r /etc/sysconfig/network ] && . /etc/sysconfig/network
# Check that networking is up.
[ "${NETWORKING}" = "no" ] && exit 0
# Source bind configuration
[ -r /etc/sysconfig/named ] && . /etc/sysconfig/named
[ -f /usr/local/sbin/named ] || exit 0
[ -r /etc/named.conf ] || exit 0
RETVAL=0
prog="named"
start() {
# Start daemons.
echo -n $"Starting $prog: "
daemon /usr/local/sbin/named -u named ${OPTIONS}
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/named
echo
return $RETVAL
}
stop() {
# Stop daemons.
echo -n $"Shutting down $prog: "
# /usr/sbin/rndc stop
killproc named
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/named
echo
return $RETVAL
}
restart() {
stop
sleep 2
start
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
condrestart)
[ -f /var/lock/subsys/named ] && restart || :
;;
*)
echo "Usage: named {start|stop|restart|condrestart}"
exit 1
esac
exit $?
その他のファイルの設定 †/etc/hosts †DNS サーバの情報と hosts の情報が不整合を起こさない為に localhost 以外はコメントアウト /etc/resolv.conf †search xx.net nameserver 127.0.0.1 nameserver プロバイダのDNSサーバー /etc/nsswitch.conf †hostsの行にdnsが含まれていること hosts: files nisplus nis dns /etc/host.conf †order hosts,bind DDNSセットアップ †参考サイト † |