1 views

実現する機能

自宅のWindowsノートPC(192.168.24.xx)から自宅のWebサーバー&メールサーバー(192.168.24.241)のWordPressやRainLoopにアクセスすると同時に、自宅のSambaサーバー(192.168.24.240)の外付けUSBハードディスクでファイル共有を実現させるために、自宅の内部DNSサーバー(192.168.24.241)を構築しなおして、ホスト名でもアクセスできるようにしました。192.168.24.241のホスト名はufuso.dip.jp、192.168.24.240のホスト名はtopi.0t0.jpです。
以下はその備忘録です。

事前準備

ieServer.Net(無料)Dynamic DO!.jp(無料)お名前.com(有料)などからドメインを取得済であること

BIND導入手順

1 BINDインストール

[root@ufuso ~]# yum -y install bind ← bindインストール
インストール:
  bind.x86_64 32:9.9.4-14.el7                                                   

完了しました!

2 BIND設定

[root@ufuso ~]# echo OPTIONS="-4" >> /etc/sysconfig/named
  ← IPv4のみ有効にする(error (network unreachable) resolvingというエラーログの
出力抑止)

[root@ufuso ~]# vi /etc/named.conf ← BIND設定ファイル編集
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
        #listen-on port 53 { 127.0.0.1; }; ← 行頭に#を追加して無効化
        #listen-on-v6 port 53 { ::1; }; ← 行頭に#を追加して無効化
        version         "unknown"; ← bindのバージョン情報の非表示化 
        listen-on-v6 { none; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { localhost; localnets; }; ← サーバーと同じネット
ワーク内からの問合せも許可
        /*
         - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
         - If you are building a RECURSIVE (caching) DNS server, you need to enable
           recursion.
         - If your recursive DNS server has a public IP address, you MUST enable access
           control to limit queries to your legitimate users. Failing to do so will
           cause your server to become part of large scale DNS amplification
           attacks. Implementing BCP38 within your network would greatly
           reduce such attack surface
        */
        recursion yes;

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

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";
         forwarders{
                192.168.24.1; ← ルーター経由接続環境の場合なのでルーターのIP
アドレスを指定。
                106.187.2.33; ← プロバイダから通知されたDNSサーバー(プライマリ)
のIPアドレスを指定
                106.187.2.41; ← プロバイダから通知されたDNSサーバー(セカンダリ)
のIPアドレスを指定
                };
        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;
        };
};

view localhost_resolver {
        match-clients      { localhost; };
        match-destinations { localhost; };
        recursion yes;
        include "/etc/named.rfc1912.zones";
        include "/etc/named.localnets.zones";
};

view "internal" {
        match-clients { localnets; }; ← サーバーと同じネットワークを追加
        match-destinations { localnets; };
        recursion yes;
        include "/etc/named.rfc1912.zones";
        include "/etc/named.localnets.zones";
};


[root@ufuso ~]# vi /etc/named.localnets.zones ← ZONE設定ファイルの作成

zone "24.168.192.in-addr.arpa" {
        type master;
        file "24.168.192.in-addr.arpa.db";
};

zone "ufuso.dip.jp" {
        type master;
        file "ufuso.dip.jp.db";
};

zone "topi.0t0.jp" {
        type master;
        file "topi.0t0.jp.db";
};


3 内部向け正引きゾーンデータベース(ドメイン名⇒IPアドレス)作成

[root@ufuso ~]# vi /var/named/ufuso.dip.jp.db ← 正引きゾーンデータベース作成

$TTL 86400
@   IN  SOA     ufuso.dip.jp. root.ufuso.dip.jp. (
        2011071001  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)

        IN  NS      ufuso.dip.jp. ← ネームサーバー定義
        IN  A       192.168.24.241 ← サーバーのプライベートIPを指定(ufuso.dip.jp用)

[root@ufuso ~]# vi /var/named/topi.0t0.jp.db ← 正引きゾーンデータベース作成

$TTL 86400
@   IN  SOA     topi.0t0.jp. root.topi.0t0.jp. (
        2011071001  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)

        IN  NS      topi.0t0.jp. ← ネームサーバー定義
        IN  A       192.168.24.240 ← サーバーのプライベートIPを指定(ufuso.dip.jp用)

4 内部向け逆引きゾーンデータベース(IPアドレス⇒ドメイン名)作成

[root@ufuso ~]#  vi /var/named/24.168.192.in-addr.arpa.db ← 逆引きゾーンデータベース作成

$TTL 86400
@   IN  SOA     ufuso.dip.jp. root.ufuso.dip.jp. (
        2011071001  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)

        IN  NS      ufuso.dip.jp. ← ネームサーバー定義
241     IN  PTR     ufuso.dip.jp. ← IPアドレスに関連付けるホスト名を定義
240     IN  PTR     topi.0t0.jp. ← IPアドレスに関連付けるホスト名を定義

5 BIND起動

[root@ufuso ~]# systemctl start named ← BIND起動

[root@ufuso ~]# systemctl enable named ← BIND自動起動設定
ln -s '/usr/lib/systemd/system/named.service' '/etc/systemd/system/multi-user.target.wants/named.service'

6 本サーバーをDNSサーバーとして登録
赤枠1のネットワークアイコンをクリックして、接続しているifcfgの名称を確認します。下図では赤枠2になります。
bind01

[root@ufuso ~]# cd /etc/sysconfig/network-scripts
 ← network-scriptsフォルダへ移動

[root@ufuso network-scripts]# vi ifcfg-enp2s0 ← enp2s0ファイルの編集
DEVICE=eth0
HWADDR=90:E6:BA:C9:DE:B3
TYPE=Ethernet
UUID=1a318fab-faa0-4487-832e-3000d65b7b81
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.24.241
PREFIX=24
GATEWAY=192.168.24.1
DNS1=192.168.24.241 ← 本機を第1DNSサーバーとして追記
DOMAIN=ufuso.dip.jp
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
DNS2=192.168.24.1 ← ルーターを第2DNSサーバーにする

[root@ufuso network-scripts]# cd ← network-scriptsフォルダから移動

[root@ufuso ~]# systemctl restart network ← networkの再起動

7 UDPの53番ポートとTCPの53番ポートをオープンする
ルーターの設定で、UDPの53番ポートとTCPの53番ポートへのアクセスをサーバーに転送するようにする。下図はauひかりのルーターでの設定例。

8 BIND確認(クライアントがWindowsの場合。nslookupではうまくいかないので割愛。Webサイトにもアクセスできない場合にはこちら)

9 BIND確認(クライアントがLinuxの場合)


[root@ufuso ~]# dig ufuso.dip.jp ← サーバーの正引きテスト

; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7_0.1 <<>> ufuso.dip.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24727
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ufuso.dip.jp.			IN	A

;; ANSWER SECTION:
ufuso.dip.jp.		86400	IN	A	192.168.24.241 ← IPアドレスが
返ってきた

;; AUTHORITY SECTION:
ufuso.dip.jp.		86400	IN	NS	ufuso.dip.jp.

;; Query time: 1 msec
;; SERVER: 192.168.24.241#53(192.168.24.241)
;; WHEN: 金  2月 06 12:17:04 JST 2015
;; MSG SIZE  rcvd: 71:

[root@ufuso ~]# dig topi.0t0.jp ← サーバーの正引きテスト

; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7_0.1 <<>> topi.0t0.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38716
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;topi.0t0.jp.			IN	A

;; ANSWER SECTION:
topi.0t0.jp.		86400	IN	A	192.168.24.240 ← IPアドレスが
返ってきた

;; AUTHORITY SECTION:
topi.0t0.jp.		86400	IN	NS	topi.0t0.jp.

;; Query time: 5 msec
;; SERVER: 192.168.24.241#53(192.168.24.241)
;; WHEN: 金  2月 06 14:26:03 JST 2015
;; MSG SIZE  rcvd: 70

[root@ufuso ~]# dig -x 192.168.24.241 ← サーバーの逆引きテスト

; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7_0.1 <<>> -x 192.168.24.241
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50468
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;241.24.168.192.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
241.24.168.192.in-addr.arpa. 86400 IN	PTR	ufuso.dip.jp. ← ドメイン名が
返ってきた

;; AUTHORITY SECTION:
24.168.192.in-addr.arpa. 86400	IN	NS	ufuso.dip.jp.

;; ADDITIONAL SECTION:
ufuso.dip.jp.		86400	IN	A	192.168.24.241

;; Query time: 2 msec
;; SERVER: 192.168.24.241#53(192.168.24.241)
;; WHEN: 金  2月 06 12:19:02 JST 2015
;; MSG SIZE  rcvd: 112

[root@ufuso ~]# dig -x 192.168.24.240 ← サーバーの逆引きテスト

; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7_0.1 <<>> -x 192.168.24.240
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4517
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;240.24.168.192.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
240.24.168.192.in-addr.arpa. 86400 IN	PTR	topi.0t0.jp. ← ドメイン名が
返ってきた

;; AUTHORITY SECTION:
24.168.192.in-addr.arpa. 86400	IN	NS	ufuso.dip.jp.

;; ADDITIONAL SECTION:
ufuso.dip.jp.		86400	IN	A	192.168.24.241

;; Query time: 2 msec
;; SERVER: 192.168.24.241#53(192.168.24.241)
;; WHEN: 金  2月 06 14:28:48 JST 2015
;; MSG SIZE  rcvd: 121


10 chroot環境への移行

[root@ufuso ~]# yum -y install bind-chroot ← chrootのインストール 
Installed:
  bind-chroot.x86_64 32:9.8.2-0.17.rc1.el6_4.6                                  

Complete!

[root@ufuso ~]# /usr/libexec/setup-named-chroot.sh /var/named/chroot on ← chrootの起動

[root@ufuso ~]# systemctl stop named ← namedの停止

[root@ufuso ~]# systemctl disable named ← namedの自動起動停止
rm '/etc/systemd/system/multi-user.target.wants/named.service'

[root@ufuso ~]# systemctl start named-chroot ← chrootの起動

[root@ufuso ~]# systemctl enable named-chroot ← chrootの自動起動設定
ln -s '/usr/lib/systemd/system/named-chroot.service' '/etc/systemd/system/multi-user.target.wants/named-chroot.service'

[root@ufuso ~]# ll /var/named/chroot/etc ← chroot環境への移行確認 
合計 28
-rw-r--r--. 1 root root   333  1月 29 21:25 localtime
drwxr-x---. 2 root named    6 12月 12 19:53 named
-rw-r-----. 1 root named 2095  2月  2 18:25 named.conf
-rw-r--r--. 1 root named 2389 12月 12 19:53 named.iscdlv.key
-rw-r--r--. 1 root root   256  2月  2 18:28 named.localnets.zones
-rw-r-----. 1 root named  931  6月 21  2007 named.rfc1912.zones
-rw-r--r--. 1 root named  487  7月 19  2010 named.root.key
drwxr-x---. 3 root named   24  1月 29 21:25 pki
-rw-r-----. 1 root named   77  1月 29 21:20 rndc.key

[root@ufuso ~]# ll /var/named/chroot/var/named ← chroot環境への移行確認  
合計 40
-rw-r--r--. 1 root  root   311  2月  2 00:35 24.168.192.db
-rw-r--r--. 1 root  root   470  2月  2 18:35 24.168.192.in-addr.arpa.db
drwxr-x---. 7 root  named   56  1月 29 21:25 chroot
drwxrwx---. 2 named named   47  2月  1 03:44 data
drwxrwx---. 2 named named 4096  2月  6 14:27 dynamic
-rw-r-----. 1 root  named 2076  1月 28  2013 named.ca
-rw-r-----. 1 root  named  152 12月 15  2009 named.empty
-rw-r-----. 1 root  named  152  6月 21  2007 named.localhost
-rw-r-----. 1 root  named  168 12月 15  2009 named.loopback
drwxrwx---. 2 named named    6 12月 12 19:53 slaves
-rw-r--r--. 1 root  root   438  2月  6 14:20 topi.0t0.jp.db
-rw-r--r--. 1 root  root   454  2月  6 14:13 ufuso.dip.jp.db

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください