![]() |
◆ | DNSサーバー概要 |
・ドメイン名 :papa-net.info | |
・サーバー名 :papa-net.server | |
・サーバーIPアドレス:192.168.*.*** | |
◆ | bind bind-chroot のインストール |
[root@centos]# yum -y install bind <--- 入力 [root@centos]# yum -y install bind-chroot <--- 入力 |
|
◆ | bind の自動起動設定 |
[root@centos]# systemctl disable named <--- 入力(自動起動させない) [root@centos]# systemctl enable named-chroot <--- 入力(自動起動させる) |
|
◆ | 自動起動設定の確認 |
[root@centos]# systemctl list-unit-files -t service | grep named | grep -v static <--- 入力 named-chroot.service enabled <--- enabled になっていればOK named.service disabled <--- disabled になっていればOK |
|
◆ | 起動状況の確認 |
[root@centos]# ps -ef | grep named <--- 入力 named 14334 1 0 11:59 ? 00:00:00 /usr/sbin/named -u named -c /etc/named.conf named 14334 1 0 11:59 ? 00:00:00 /usr/sbin/named -u named -c /etc/named.conf -t /var/named/chroot root 14639 12810 0 12:20 pts/0 00:00:00 grep --color=auto named |
|
※上記の場合だと bind 及び bind-chrooy の両方が起動しているので bind を停止させ bind-chroot のみを起動させる | |
[root@centos]# ps -ef | grep named <--- 入力 root 14639 12810 0 12:20 pts/0 00:00:00 grep --color=auto named |
|
※上記の場合だと bind 及び bind-chrooy の両方とも起動していないので bind-chroot のみを起動させる | |
bind の停止 | |
[root@centos]# systemctl stop named <--- 入力 |
|
bind-chroot の起動 | |
[root@centos]# systemctl start named-chroot <--- 入力 |
|
再確認 | |
[root@centos]# ps -ef | grep named <--- 入力 named 14334 1 0 11:59 ? 00:00:00 /usr/sbin/named -u named -c /etc/named.conf -t /var/named/chroot root 14639 12810 0 12:20 pts/0 00:00:00 grep --color=auto named |
|
上記のようになっていればOK | |
◆ | 設定ファイル作成の順番 |
bind のような複雑なシステムはちょっとしたファイルの構文間違いでエラーを起こし起動出来なくなったり、正常に動作しなくなったりするので一つ一つの設定ファイルを構文チェックしながら作成して行くため作成順序をまちがえると構文チェックが出来なくなるので下記の順番でファイルを作成す | |
1.正引きゾーンファイルの作成(papa-net.info.zone) | |
2.逆引きゾーンファイルの作成(1.168.192.in-addr.arpa.db) ※内部DNSサーバーでは不要? | |
3.bind 設定ファイルの編集(named.conf) | |
◆ | 正引きゾーンファイル(papa-net.info.zone)を作成 |
サンプルファイルのコピー | |
[root@centos]# cp /var/named/named.localhost /var/named/papa-net.info.zone <--- 入力 |
|
コピーして出来たファイルを編集 | |
[root@centos]# vi /var/named/papa-net.info.zone <--- 入力 $TTL 1D <--- 書き換え ↓ (1) $TTL 60 @(2) IN SOA @ rname.invalid. ( <--- 書き換え ↓ (3) (4) papa-net-server. root.papa-net.info.( 0 ; serial <--- 書き換え ↓ (5) 2018050101 ; serial 1D ; refresh <--- 書き換え ↓ (6) 3600 ; serial 1H ; retry <--- 書き換え ↓ (7) 900 ; retry 1W ; expire <--- 書き換え ↓ (8) 604800 ; expire 3H ) ; minimum <--- 書き換え ↓ (9) 86400 ) ; minimum NS @ <--- 書き換え ↓ (10) IN NS papa-net-server. IN MX 10 papa-net-server.(11)<--- 追記 (メールサーバーがある場合) A 127.0.0.1 <--- 書き換え ↓ @(12) IN A 192.168.*.***(13) AAAA ::1 <--- 削除 *(14) IN A 192.168.*.***(15)<--- 追記 |
|
(1) 外部に対するキャッシュデータの有効期間(外部に公開しないので何でも良い 通常は86400秒 = 1日だが今回は60秒=1分) | |
(2) このレコードで記述するゾーン指定=ホスト名(通常は省略して@のみ(@=ホスト名)) | |
(3) ホスト名(最後に“.”(ピリオド)があることに注意!) | |
(4) 管理者のメールアドレス(“@”の代わりに“.”になっている事と最後に“.”(ピリオド)があることに注意!) | |
(5) シリアル番号(一般的にはDNSサーバーを立ち上げた年月日+任意の二桁の数字) | |
※ゾーンファイルを書き換えた度に数字を増加させる | |
(6) スレーブDNSサーバーがマスターDNSサーバーに同期更新する間隔。 (3600秒 = 1時間) | |
(7) 同期更新に失敗した場合に再試行する間隔。 (900秒 = 15分) | |
(8) 同期更新に失敗した場合にスレーブのデータを破棄するまでの期間。 (604800秒 = 1週間) | |
(9) 同期更新に失敗した場合のログを記憶しておく期間。 (86400秒 = 1日) | |
(10) ドメインに関する権限を持っているホスト名(通常は(2)と同じになる。 最後に“.”(ピリオド)があることに注意!) | |
(11) メールサーバーのホスト名(最後に“.”(ピリオド)があることに注意!) | |
(12) DNSサーバーのホスト名((2)と同じく@=ホスト名) | |
(13) DNSサーバーのIPアドレスの最後部(192.168.1.***の***部) | |
(14) “*”=マルチドメインの指定(xxxx.papa-net.infoのxxxx部分) | |
(15) DNSサーバーのIPアドレス | |
構文チェック | |
[root@centos]# named-checkzone papa-net.info /var/named/papa-net.info.zone <--- 入力 zone papa-net.info/IN: loaded serial 0 OK |
|
上記のように『OK』が出ればOK | |
◆ | 逆引きゾーンファイル(1.168.192.in-addr.arpa.db)を作成 |
サンプルファイルのコピー | |
[root@centos]# cp /var/named/named.localhost /var/named/1.168.192.in-addr.arpa.db <--- 入力 |
|
コピーして出来たファイルを編集 | |
[root@centos]# vi /var/named/1.168.192.in-addr.arpa.db <--- 入力 $TTL 1D <--- 書き換え ↓ (1) $TTL 60 @(2) IN SOA @ rname.invalid. ( <--- 書き換え ↓ (3) (4) papa-net-server. root.papa-net.info.( 0 ; serial <--- 書き換え ↓ (5) 2018050101 ; serial 1D ; refresh <--- 書き換え ↓ (6) 3600 ; serial 1H ; retry <--- 書き換え ↓ (7) 900 ; retry 1W ; expire <--- 書き換え ↓ (8) 604800 ; expire 3H ) ; minimum <--- 書き換え ↓ (9) 86400 ) ; minimum NS @ <--- 書き換え ↓ (10) IN NS papa-net-server. A 127.0.0.1 <--- 削除 AAAA ::1 <--- 削除 ***(10) IN PTR papa-net-server.(11)<--- 追記 |
|
(1) 外部に対するキャッシュデータの有効期間(外部に公開しないので何でも良い 通常は86400秒 = 1日だが今回は60秒=1分) | |
(2) このレコードで記述するゾーン指定=ホスト名(通常は省略して@のみ(@=ホスト名)) | |
(3) ホスト名(最後に“.”(ピリオド)があることに注意!) | |
(4) 管理者のメールアドレス(“@”の代わりに“.”になっている事と最後に“.”(ピリオド)があることに注意!) | |
(5) シリアル番号(一般的にはDNSサーバーを立ち上げた年月日+任意の二桁の数字) | |
※ゾーンファイルを書き換えた度に数字を増加させる | |
(6) スレーブDNSサーバーがマスターDNSサーバーに同期更新する間隔。 (3600秒 = 1時間) | |
(7) 同期更新に失敗した場合に再試行する間隔。 (900秒 = 15分) | |
(8) 同期更新に失敗した場合にスレーブのデータを破棄するまでの期間。 (604800秒 = 1週間) | |
(9) 同期更新に失敗した場合のログを記憶しておく期間。 (86400秒 = 1日) | |
(10) DNSサーバーのIPアドレスの最後部(192.168.1.***の***部) | |
(11) DNSサーバーのホスト名(最後に“.”(ピリオド)があることに注意!) | |
構文チェック | |
[root@centos]# named-checkzone 1.168.192.in-addr.arpa /var/named/1.168.192.in-addr.arpa.db zone 1.168.192.in-addr.arpa/IN: loaded serial 0 OK |
|
上記のように『OK』が出ればOK | |
◆ | bind ファイルの設定 |
[root@centos]# vi /etc/named.conf <--- 入力 // // 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. // // See the BIND Administrator's Reference Manual (ARM) for details about the // configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html options { listen-on port 53 { 127.0.0.1; }; <--- コメント化 ↓ #listen-on port 53 { 127.0.0.1; }; listen-on-v6 port 53 { ::1; }; <--- コメント化 ↓ #listen-on-v6 port 53 { ::1; }; 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; }; <--- 書き換え(ローカルのみ許可) ↓ 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; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; forwarders{ 192.168.1.1; <--- ルーターのIPアドレス 123.456.7.89; <--- プロバイダのDNSサーバー(プライマリ) 123.456.7.90; <--- プロバイダのDNSサーバー(セカンダリ) }; 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; }; category lame-servers { null; }; <--- 追記(エラーログ対策) }; ※内部向けVIEWの定義の追記 view "internal" { match-clients { localnets; }; <--- DNSサーバ、DNSサーバと同じネットーワークに許可 match-destinations { localnets; }; zone "." IN { type hint; file "named.ca"; }; zone "papa-net-server" IN { <--- 内部向け正引き定義の追記 type master; file "/var/named/papa-net.info.zone"; allow-query { localhost; localnets; }; allow-update { none; }; }; zone "1.168.192.in-addr.arpa" { <--- 内部向け逆引き定義の追記 type master; file "/var/named/1.168.192.in-addr.arpa.db"; allow-query { localhost; localnets; }; allow-update { none; }; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key"; }; <--- 追記(内部向けVIEWの定義の終了) |
|
構文チェック | |
[root@centos]# named-checkconf /etc/named.conf [root@centos]# <--- 何も表示されなければOK |
|
構文チェックで問題があれば下記のように問題個所を指摘される | |
[root@centos]# named-checkconf /var/named/named.conf /var/named/named.conf:84: unknown option 'allow-uodate' |
|
ちなみに上記の場合は allow-update が allow-uodate に書き間違えている | |
◆ | DNSサーバー設定をIPv4のみ有効にする |
[root@centos]# vi /etc/sysconfig/named <--- 入力 BIND named process options # ~~~~~~~~~~~~~~~~~~~~~~~~~~ # # OPTIONS="whatever" -- These additional options will be passed to named # at startup. Don't add -t here, enable proper # -chroot.service unit file. # Use of parameter -c is not supported here. Extend # systemd named*.service instead. For more # information please read the following KB article: # https://access.redhat.com/articles/2986001 # # DISABLE_ZONE_CHECKING -- By default, service file calls named-checkzone # utility for every zone to ensure all zones are # valid before named starts. If you set this option # to 'yes' then service file doesn't perform those # checks. OPTIONS="-4" <--- 以下追記 |
|
◆ | resov.conf が再起動時等に書き換えられる事への対処及びDNSサーバーのアドレス・ドメインの指定 |
[root@centos]# vi /etc/sysconfig/network-scripts/ifcfg-enp3s0 <--- 入力 途中略 以下最終業に追記 DNS1=192.168.*.*** <--- サーバー機をプライマリ DNS2=192.168.*.* <--- ルーターをセカンダリ DOMAIN=papa-net.info NM_CONTROLLED=no PEERDNS=no |
|
※上記の設定を行うとサーバー機でのグラフィカルなGUIデスクトップでの設定や制御操作ができなくなる事に注意 | |
◆ | ネットワークの再起動 |
|
|
◆ | bind の再起動 |
[root@centos]# systemctl restart named-chroot <--- 入力 |
|
◆ | クライアントPC・ルーターのDNSサーバー指定の変更 |
Windows クライアントPCの場合はネットワーク設定で『インターネットプロトコルバージョン4(TCP/IPv4)』のプロティの中の『次のDNSサーバーのアドレスを使う』の『優先DNSサーバー』にDNSサーバーのアドレス 、を記述 | |
お使いの機種、WindowsのバージョンによってはPCの再起動が必要な場合がある | |
ルーターのTCP及びUDPポート53番を開放する | |
ルーターではDNS設定でLAN側DNSサーバーアドレスのプライマリ(優先)DNSにDNSサーバーのアドレスを記述 | |
◆ | 動作確認 |
サーバー自身が名前解決出来るか | |
[root@centos]# nslookup papa-net.info <--- 入力 Server: 127.0.0.1 <--- サーバー自身 Address: 127.0.0.1#53 <--- サーバー自身 Non-authoritative answer: Name: papa-net.info Address: 59.147.187.208 Name: papa-net.info Address: 182.170.81.191 |
|
クライアント機(Windows)が名前解決出来るか | |
Microsoft Windows [Version 10.0.16299.371] (c) 2017 Microsoft Corporation. All rights reeserved. C:\Users\****>nslookup <--- 入力 既定のサーバー:papa-net.server <--- DNSサーバー名表示 Address:192.168.1.*** <--- DNSサーバーのアドレス表示 >papa-net.info <--- ドメイン名入力 サーバー:papa-net.server <--- DNSサーバー名表示 Address:192.168.1.*** <--- DNSサーバーのアドレス表示 名前:papa-net.info <--- ドメイン名表示 Address:192.168.1.*** <--- ドメインに対応するWebサーバーのアドレス表示 >192.168.1.*** <--- Webサーバーのアドレス入力 サーバー:papa-net.server <--- DNSサーバー名表示 Address:192.168.1.*** <--- DNSサーバーのアドレス表示 名前:papa-net.info <--- IPアドレスに対応するドメイン名表示 Address:192.168.1.*** <--- ドメインに対応するWebサーバーのアドレス表示 C:\Users\****> |
|
◆ | DNSサーバ指定ファイルの確認 |
DNSサーバー(自分自身)のIPアドレスになっているかを確認 (なっていない場合は書き換え) | |
[root@centos]# vi /etc/resolv.conf <--- 入力 search papa-net.info nameserver 192.168.1.*** |
|
◆ | ネットワークの再起動 |
|
|
◆ | bind の起動 |
[root@centos]# systemctl start named-chroot <--- 入力 |
|
◆ | ポート:53の確認 |
サーバー機に libvirt をインストールしていると同時に dnsmas もインストールされてしまい BIND に影響を及ぼす事があるためポート:53の確認を行う | |
[root@centos]# netstat -an | grep 53 <--- 入力c tcp 0 0 192.168.1.111:53 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN tcp6 0 0 ::1:953 :::* LISTEN udp 0 0 192.168.1.111:53 0.0.0.0:* udp 0 0 127.0.0.1:53 0.0.0.0:* udp 0 0 192.168.122.1:53 0.0.0.0:* udp 0 0 0.0.0.0:5353 0.0.0.0:* 以下略 |
|
上記のように53番ポート dnsmas デーモンが可動しているので設定を解除する | |
≪ドメインの追加設定≫ | |
bind に papa.jp ドメインを追加する | |
◆ | named.conf ファイルの設定 |
[root@centos]# vi /etc/named.conf <--- 入力 下記を追加 zone "papa.jp" { <--- papa.jp 正引きゾーンの記述 type master; file "/var/named/papa.jp.lan"; <--- データベースファイルの名前と場所 allow-update { none; }; }; |
|
◆ | papa.jp の内向けの正引きゾーン設定ファイルの作成 |
[root@centos]# vi /var/named/papa.jp.lan <--- 入力 $TTL 86400 @ IN SOA papa.jp.(1) master.papa-net.info.( 2010101201 ; serial 3600 ; refresh (1 hour) 900 ; retry (15 minutes) 604800 ; expire (1 week) 86400 ; negative (1 day) ) IN NS papa-net.info. IN MX 10 papa-net.info. * IN A 192.168.1.200(2) |
|
(1) ドメイン名(最後に“.”(ピリオド)があることに注意!) | |
(2) papa.jp ドメインのあるサーバーIPアドレスを指定 | |
その他は通常の内向けの正引きゾーン設定ファイルと同じ | |
◆ | 内向けの逆引き設定 |
逆引きゾーンファイルは新たに作成は必要なく元のファイルに追加ドメインの記述を追加 | |
[root@centos]# vi /var/named/1.168.192.in-addr.arpa.db <--- 入力 下記を追加 200 IN PTR papa.jp. |
|
◆ | bind の再起動 |
[root@centos]# systemctl restart named-chroot <--- 入力 |
|
◆ | クライアント機のDNS問い合わせ先をサーバーのIPアドレスに変更 |
また、ルーターのDHCPでDNSサーバーを指定している場合もルーターの設定を変更 | |
◆ | クライアント機による確認 |
上記のようにドメイン名(正引き)・IPアドレス(逆引き)の両方とも正しく表示されればOK | |
≪サブドメインの設定≫ | |
※最初にマルチドメイン指定しているので通常は必要ないが、サブドメインを別サーバーで運用する場合に必要 | |
papa-net.info にサブドメイン abc を追加して abc.papa-net.info で別サーバーへアクセスできるようにする | |
◆ | 内向き正引きゾーンファイル papa-net.info.lan の設定 |
[root@centos]# vi /var/named/papa-net.info.lan <--- 入力 下記を追加 abc IN A 192.168.1.199 |
|
◆ | 内向き逆引きゾーンファイル 1.168.192.in-addr.arpa.db の設定 |
[root@centos]# vi /var/named/1.168.192.in-addr.arpa.db <--- 入力 下記を追加 200 IN PTR abc.papa-net.info. |
|
◆ | bind の再起動 |
[root@centos]# systemctl restart named-chroot <--- 入力 |
|