このWebサイト ひつじ帳 は、管理者がWEB関連の技術をまとめた備忘録サイトです。 Linux,CentOS,PHP,MySQL,Blogger,JavaScript,CSS について記録しています。

CentOS-7.1/Bind/インストール・設定

[ CentOS-7.1 ] [ Bind ]

Bind インストール・設定

Bind 用のダウンロードディレクトリを作成


##■ ダウンロードするディレクトリを作成
[root@localhost ~]# mkdir -p /root/setup/rpm/bind/
[root@localhost ~]#

Bind インストール


##■ bind-libs をダウンロードする
[root@localhost ~]# wget -P /root/setup/rpm/bind/ ftp://ftp.riken.jp/pub/Linux/centos/7/os/x86_64/Packages/bind-libs-9.9.4-18.el7.x86_64.rpm
[root@localhost ~]#

##■ bind-libs をインストールする
[root@localhost ~]# rpm -ihv /root/setup/rpm/bind/bind-libs-9.9.4-18.el7.x86_64.rpm
[root@localhost ~]#

##■ bind をダウンロードする
[root@localhost ~]# wget -P /root/setup/rpm/bind/ ftp://ftp.riken.jp/pub/Linux/centos/7/os/x86_64/Packages/bind-9.9.4-18.el7.x86_64.rpm
[root@localhost ~]#

##■ bind をインストールする
[root@localhost ~]# rpm -ihv /root/setup/rpm/bind/bind-9.9.4-18.el7.x86_64.rpm
[root@localhost ~]#

##■ bind-chroot をダウンロードする
[root@localhost ~]# wget -P /root/setup/rpm/bind/ ftp://ftp.riken.jp/pub/Linux/centos/7/os/x86_64/Packages/bind-chroot-9.9.4-18.el7.x86_64.rpm
[root@localhost ~]#

##■ bind-chroot をインストールする
[root@localhost ~]# rpm -ihv /root/setup/rpm/bind/bind-chroot-9.9.4-18.el7.x86_64.rpm
[root@localhost ~]#

##■ bind-utils をダウンロードする
[root@localhost ~]# wget -P /root/setup/rpm/bind/ ftp://ftp.riken.jp/pub/Linux/centos/7/os/x86_64/Packages/bind-utils-9.9.4-18.el7.x86_64.rpm
[root@localhost ~]#

##■ bind-utils をインストールする
[root@localhost ~]# rpm -ihv /root/setup/rpm/bind/bind-utils-9.9.4-18.el7.x86_64.rpm
[root@localhost ~]#

##■ bind-devel をダウンロードする
[root@localhost ~]# wget -P /root/setup/rpm/bind/ ftp://ftp.riken.jp/pub/Linux/centos/7/os/x86_64/Packages/bind-devel-9.9.4-18.el7.x86_64.rpm
[root@localhost ~]#

##■ bind-devel をインストールする
[root@localhost ~]# rpm -ihv /root/setup/rpm/bind/bind-devel-9.9.4-18.el7.x86_64.rpm
[root@localhost ~]#

Bind chroot 化


[root@localhost ~]# /usr/libexec/setup-named-chroot.sh /var/named/chroot on
[root@localhost ~]#

Bind 起動・自動起動設定


##■ Bind を起動する
[root@localhost ~]# systemctl start named-chroot.service
[root@localhost ~]#

##■ Bind 自動起動を設定する
[root@localhost ~]# systemctl enable named-chroot.service
ln -s '/usr/lib/systemd/system/named-chroot.service' '/etc/systemd/system/multi-user.target.wants/named-chroot.service'
[root@localhost ~]#

##■ Bind 状態を確認する
[root@localhost ~]# systemctl list-unit-files -t service | grep named-chroot
named-chroot-setup.service                  static
named-chroot.service                        enabled      <--★ enabled であることを確認
[root@localhost ~]#

Bind 設定

/var/named/chroot/etc/named.conf 編集


##■ 設定ファイルをバックアップ
[root@localhost ~]# cp -a /var/named/chroot/etc/named.conf /var/named/chroot/etc/named.conf.org
[root@localhost ~]#

##■ 設定ファイルを編集する
[root@localhost ~]# vi /var/named/chroot/etc/named.conf
--------------------------------------------------
options {
 ##★ listen-on port
 listen-on port 53 { 127.0.0.1; };
   ## ↓ コメントアウトする
 #listen-on port 53 { 127.0.0.1; };

 ##★ listen-on-v6
 listen-on-v6 port 53 { ::1; };
   ## ↓ コメントアウトする
 #listen-on-v6 port 53 { ::1; };

 ##★ version 追記する (bind バージョン情報非表示)
 version         "unknown";

 directory       "/var/named";
 dump-file       "/var/named/data/cache_dump.db";
 statistics-file "/var/named/data/named_stats.txt";
 emstatistics-file "/var/named/data/named_mem_stats.txt";

 ##★ allow-query (ローカルホスト、ローカルネットからの問合せのみ許可)
 allow-query     { localhost; };
   ## ↓ 変更する
 allow-query     { localhost; localnets; };

 recursion yes;

 ##★ empty-zones-enable 追記する (起動時の空ゾーンエラーログの出力無効化)
 empty-zones-enable no;

 dnssec-enable yes;
 dnssec-validation yes;
 dnssec-lookaside auto;

 /* Path to ISC DLV key */
 bindkeys-file "/etc/named.iscdlv.key";

 ##★ forwarders 追加する <ここから> ▼
 forwarders {
  ##★ ルーター経由接続環境の場合は、ルーターのIPアドレスを指定
  192.168.11.1;
  ##★ プロバイダから通知されたDNSサーバー(プライマリ)のIPアドレスを指定
  ***.***.***.***;
  ##★ プロバイダから通知されたDNSサーバー(セカンダリ)のIPアドレスを指定
  ***.***.***.***;
 };
 ##★ forwarders 追加する <ここまで> ▲


 managed-keys-directory "/var/named/dynamic";

 pid-file "/run/named/named.pid";
 session-keyfile "/run/named/session.key";
};

logging {
        #channel default_debug {
        #        file "data/named.run";
        #        severity dynamic;
        #};

  ## ↓ 上記のブロックをコメントアウトして、下記に変更する

        ##★ ログ 追記する <ここから> ▼
        channel "log_queries" {
                file "/var/log/query.log" versions 7 size 10M;
                severity info;
                print-time yes;
                print-severity yes;
                print-category yes;
        };
        category queries { "log_queries"; };
        ##★ ログ 追記する <ここまで> ▲
};

##★ zone設定 変更前の内容 <ここから> ▼
zone "." IN {
 type hint;
 file "named.ca";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
##★ zone設定 変更前の内容 <ここまで> ▲


  ## ↓ 上記のブロックを下記に変更する

##★ zone設定 変更後の内容 <ここから> ▼
view "internal" {
        match-clients { localnets; };
        match-destinations { localnets; };

        zone "." IN {
         type hint;
         file "named.ca";
        };

        include "/etc/named.rfc1912.zones";
        include "/etc/named.root.key";

        # 追加する 
        include "/etc/named.vm.lan.zones";
};
##★ zone設定 変更後の内容 <ここまで> ▲
--------------------------------------------------

##■ 保存して編集終了
:wq
[root@localhost ~]#

内部向けゾーン定義ファイル作成


##■ vm.lan の内部向けゾーン定義ファイルを作成する
[root@localhost ~]# vi /var/named/chroot/etc/named.vm.lan.zones

--------------------------------------------------
zone "vm.lan" {
    type master;
    file "vm.lan.db";
};
zone "11.168.192.in-addr.arpa" {
    type master;
    file "11.168.192.in-addr.arpa.db";
};
--------------------------------------------------

##■ 保存して編集終了
:wq
[root@localhost ~]#

内部向け正引きゾーンデータベース


##■ vm.lan (ドメイン名 → IPアドレス) を作成する
[root@localhost ~]# vi /var/named/chroot/var/named/vm.lan.db

--------------------------------------------------
$TTL 86400    <--★ イントラネット用ならば、10800 程度が適当かも
@       IN SOA vm.lan. root.vm.lan. (
        2015090101 ; Serial
        28800      ; Refresh  <--★ イントラネット用ならば、3600 程度が適当かも
        14400      ; Retry  <--★ イントラネット用ならば、1800 程度が適当かも
        3600000    ; Expire
        86400 )    ; Minimum  <--★ イントラネット用ならば、10800 程度が適当かも

        IN NS    vm.lan.
        IN MX 10 vm.lan.
@       IN A 192.168.11.100  <--★ サーバーのプライベートIPアドレスを指定(vm.lan用)
*       IN A 192.168.11.100  <--★ サーバーのプライベートIPアドレスを指定(vm.lan用)
--------------------------------------------------

##■ 保存して編集終了
:wq
[root@localhost ~]#

##■ パーミッションを変更する
[root@localhost ~]# chmod 0644 /var/named/chroot/var/named/vm.lan.db
[root@localhost ~]#

内部向け逆引きゾーンデータベース


##■ vm.lan (IPアドレス → ドメイン名) を作成する
[root@localhost ~]# vi /var/named/chroot/var/named/11.168.192.in-addr.arpa.db

--------------------------------------------------
$TTL    86400    <--★ イントラネット用ならば、10800 程度が適当かも
@       IN SOA vm.lan. root.vm.lan. (
        2015090101 ; Serial
        28800      ; Refresh  <--★ イントラネット用ならば、3600 程度が適当かも
        14400      ; Retry  <--★ イントラネット用ならば、1800 程度が適当かも
        3600000    ; Expire
        86400 )    ; Minimum  <--★ イントラネット用ならば、10800 程度が適当かも

        IN NS  vm.lan.
100     IN PTR vm.lan.   <--★ サーバーIPアドレス最下位部(192.168.11.100)とドメイン名を指定
--------------------------------------------------

##■ 保存して編集終了
:wq
[root@localhost ~]#

##■ パーミッションを変更する
[root@localhost ~]# chmod 0644 /var/named/chroot/var/named/11.168.192.in-addr.arpa.db
[root@localhost ~]#

IPv6 無効化

  • IPv4 のみ有効にする


##■ 設定ファイルをバックアップ
[root@localhost ~]# cp -a /etc/sysconfig/named /etc/sysconfig/named.org
[root@localhost ~]#

##■ 設定ファイルを編集する
[root@localhost ~]# vi /etc/sysconfig/named

--------------------------------------------------
##★ 最終行へ追加する
OPTIONS="-4"
--------------------------------------------------

##■ 保存して編集終了
:wq
[root@localhost ~]#

ネットワーク 編集


##■ 設定ファイルを編集する
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

--------------------------------------------------
##■ 最下行に追記する
DNS1=127.0.0.1
DHCP_CLIENT_ID=192.168.11.1      <--★ ルーターのIPアドレス
--------------------------------------------------

##■ 保存して編集終了
:wq
[root@localhost ~]#

##■ ネットワーク 再起動
[root@localhost ~]# systemctl restart network.service
[root@localhost ~]#

ルートゾーン 最新化

  • ルートサーバーから取得した情報をローカルサーバーに反映させる。


[root@localhost ~]# dig . ns @198.41.0.4 +bufsize=1024 > /var/named/chroot/var/named/named.ca
[root@localhost ~]#

  • /var/named/chroot/var/named/named.ca に新しくファイルが作成される。

Bind 再起動


##■ 文法の誤りがないか確認する
[root@localhost ~]# /usr/sbin/named-checkconf -t /var/named/chroot
[root@localhost ~]#      <--★ 結果に何も表示されなければOK

##■ Bind を再起動する
[root@localhost ~]# systemctl restart named-chroot.service
[root@localhost ~]#

Bind用 Firewall 設定


##■ 恒久的にサービスを追加する
[root@localhost ~]# firewall-cmd --zone=public --add-service=dns --permanent
success
[root@localhost ~]#

##■ 設定の再読み込み
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]#

##■ 設定の確認
[root@localhost ~]# firewall-cmd --list-services
dhcpv6-client dns http https proftp ssh webmin
[root@localhost ~]#

ルートゾーン最新化スクリプト作成


##■ 新規ファイルを作成する
[root@localhost ~]# vi /etc/cron.monthly/named.root_update

--------------------------------------------------
#!/bin/bash

new=`mktemp`
errors=`mktemp`

dig . ns @198.41.0.4 +bufsize=1024 > $new 2> $errors

if [ $? -eq 0 ]; then
    sort_new=`mktemp`
    sort_old=`mktemp`
    diff_out=`mktemp`
    sort $new > $sort_new
    sort /var/named/chroot/var/named/named.ca > $sort_old
    diff --ignore-matching-lines=^\; $sort_new $sort_old > $diff_out
    if [ $? -ne 0 ]; then
        (
         echo '-------------------- old named.root --------------------'
         cat /var/named/chroot/var/named/named.ca
         echo
         echo '-------------------- new named.root --------------------'
         cat $new
         echo '---------------------- difference ----------------------'
         cat $diff_out
        ) | mail -s 'named.root updated' root
        cp -f $new /var/named/chroot/var/named/named.ca
        chown named. /var/named/chroot/var/named/named.ca
        chmod 644 /var/named/chroot/var/named/named.ca
        which systemctl > /dev/null 2>&1
        if [ $? -eq 0 ]; then
            systemctl restart named-chroot > /dev/null
        else
            /etc/rc.d/init.d/named restart > /dev/null
        fi
    fi
    rm -f $sort_new $sort_old $diff_out
else
    cat $errors | mail -s 'named.root update check error' root
fi
rm -f $new $errors
--------------------------------------------------

##■ 保存して編集終了
:wq
[root@localhost ~]#

##■ スクリプト実行権限を設定する
[root@localhost ~]# chmod 700 /etc/cron.monthly/named.root_update
[root@localhost ~]#

動作確認


##■ 正引きを確認する "example.vm.lan"
[root@localhost ~]# dig example.vm.lan

~ 中略 ~

;; ANSWER SECTION:
example.vm.lan.         86400   IN      A       192.168.11.100      <--★ IPアドレスが表示されればOK

;; AUTHORITY SECTION:
vm.lan.                 86400   IN      NS      vm.lan.

;; ADDITIONAL SECTION:
vm.lan.                 86400   IN      A       192.168.11.100

~ 中略 ~

[root@localhost ~]#

##■ 逆引きを確認する "192.168.11.100"
[root@localhost ~]# dig -x 192.168.11.100


~ 中略 ~

;; ANSWER SECTION:
192.168.11.100.in-addr.arpa. 86400 IN    PTR     vm.lan.      <--★ ホスト名が表示されればOK

;; AUTHORITY SECTION:
11.168.192.in-addr.arpa. 86400  IN      NS      vm.lan.

;; ADDITIONAL SECTION:
vm.lan.                 86400   IN      A       192.168.11.100


~ 中略 ~

[root@localhost ~]#

##■ 外部ドメインの正引きを確認する "www.google.co.jp"
[root@localhost ~]# dig www.google.co.jp

~ 中略 ~

;; ANSWER SECTION:
www.google.co.jp.       119     IN      A       216.58.221.163      <--★ IPアドレスが表示されればOK

;; AUTHORITY SECTION:
google.co.jp.           86219   IN      NS      ns2.google.com.
google.co.jp.           86219   IN      NS      ns4.google.com.
google.co.jp.           86219   IN      NS      ns3.google.com.
google.co.jp.           86219   IN      NS      ns1.google.com.

;; ADDITIONAL SECTION:
ns1.google.com.         172619  IN      A       216.239.32.10
ns4.google.com.         172619  IN      A       216.239.38.10
ns3.google.com.         172619  IN      A       216.239.36.10
ns2.google.com.         172619  IN      A       216.239.34.10

~ 中略 ~

[root@localhost ~]#

##■ 外部ドメインの逆引きを確認する "216.58.221.163"
[root@localhost ~]# dig -x 216.58.221.163

~ 中略 ~

;; ANSWER SECTION:
163.221.58.216.in-addr.arpa. 86156 IN   PTR     kix03s01-in-f3.1e100.net.      <--★ ホスト名が表示されればOK
163.221.58.216.in-addr.arpa. 86156 IN   PTR     kix03s01-in-f163.1e100.net.

;; AUTHORITY SECTION:
221.58.216.in-addr.arpa. 86155  IN      NS      ns4.google.com.
221.58.216.in-addr.arpa. 86155  IN      NS      ns1.google.com.
221.58.216.in-addr.arpa. 86155  IN      NS      ns2.google.com.
221.58.216.in-addr.arpa. 86155  IN      NS      ns3.google.com.

;; ADDITIONAL SECTION:
ns1.google.com.         172475  IN      A       216.239.32.10
ns2.google.com.         172475  IN      A       216.239.34.10
ns3.google.com.         172475  IN      A       216.239.36.10
ns4.google.com.         172475  IN      A       216.239.38.10

~ 中略 ~

[root@localhost ~]#




以上で、"Bind" のインストール・設定は、完了です。



[ BindのTOPに戻る ]

0 件のコメント:

人気記事

このブログを検索