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