Misc/内部用DNSサーバー構築
2017-06-14 (水) 06:49:17 (2678d)
内部用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セットアップ †参考サイト † |