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 件のコメント:
コメントを投稿