![]() |
◆ | DNSサーバー概要 |
・ドメイン名 :papa-net.info | |
・サーバー名 :papa-net.server | |
・サーバーIPアドレス:192.168.1.*** | |
◆ | bind bind-utils のインストール |
[root@centos]# dnf -y install bind bind-utils |
|
◆ | 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. // options { listen-on port 53 { 127.0.0.1; }; <--- 追記(DNSサーバ(自分)のアドレス) ↓ listen-on port 53 { 127.0.0.1; 192.168.1.***; }; listen-on-v6 port 53 { ::1; }; <--- コメント化(ipv6 は使用しまい) ↓ //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"; secroots-file "/var/named/data/named.secroots"; recursing-file "/var/named/data/named.recursing"; 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; managed-keys-directory "/var/named/dynamic"; pid-file "/run/named/named.pid"; session-keyfile "/run/named/session.key"; /* https://fedoraproject.org/wiki/Changes/CryptoPolicy */ include "/etc/crypto-policies/back-ends/bind.config"; allow-transfer{ 192.168.1.****; <--- ルーターのIPアドレス }; forwarders{ 8.8.8.8; <--- Googleの無料パブリックDNSサービス(プライマリ) 8.8.4.4; <--- Googleの無料パブリックDNSサービス(セカンダリ) }; }; 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 "papa-net.info" { <--- 内部向け正引き定義の追記 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; }; }; zone "." IN { <--- コメント化 ↓ //zone "." IN { type hint; <--- コメント化 ↓ //type hint; file "named.ca"; <--- コメント化 ↓ //type hint; }; <--- コメント化 ↓ //}; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key"; }; <--- 追記(内部向けVIEWの定義の終了) |
|
◆ | bind ファイルの構文チェック |
[root@centos]# named-checkconf /etc/named.conf [root@centos]# <--- 何も表示されなければOK |
|
構文チェックで問題があれば下記のように問題個所を指摘される | |
[root@centos]# named-checkconf /etc/named.conf /var/named/named.conf:84: unknown option 'allow-uodate' |
|
ちなみに上記の場合は allow-update が allow-uodate に書き間違えている | |
◆ | 正引きゾーンファイル(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) @(2) IN SOA @ rname.invalid. ( <--- 書き換え ↓ (3) (4) papa-net.server. root.papa-net.info.( 0 ; serial <--- 書き換え ↓ (5) 2021050101 ; 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) 外部に対するキャッシュデータの有効期間(外部に公開しないので何でも良い 通常は1D(86400秒) = 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アドレス | |
◆ | 正引きゾーンファイル(papa-net.info.zone)の構文チェック |
[root@centos]# named-checkzone papa-net.info /var/named/papa-net.info.zone zone papa-net.info/IN: loaded serial ********** <--- ******* は設定したシリアル番号 OK |
|
上記のように『OK』が出ればOK | |
◆ | 逆引きゾーンファイル(1.168.192.in-addr.arpa.db)を作成 |
サンプルファイルのコピー | |
[root@centos]# cp /var/named/named.localhost /var/named/chroot/var/named/1.168.192.in-addr.arpa.db |
|
コピーして出来たファイルを編集 | |
[root@centos]# vi /var/named/chroot/var/named/1.168.192.in-addr.arpa.db $TTL 1D (1) @(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.info. A 127.0.0.1 <--- 削除 AAAA ::1 <--- 削除 ***(10) IN PTR papa-net.info.(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サーバーのホスト名(最後に“.”(ピリオド)があることに注意!) | |
◆ | 逆引きゾーンファイル(1.168.192.in-addr.arpa.db)の構文チェック |
[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 ********** <--- ******* は設定したシリアル番号 OK |
|
上記のように『OK』が出ればOK | |
◆ | bind の自動起動設定 |
[root@centos]# systemctl enable named |
|
◆ | 自動起動設定の確認 |
[root@centos]# systemctl is-enabled named enabled <--- enabled になっていればOK |
|
◆ | bind の起動 |
[root@centos]# systemctl start named |
|
◆ | 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. # # NAMEDCONF=/etc/named/alternate.conf # -- Don't use -c to change configuration file. # Extend systemd named.service instead or use this # variable. # # 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" <--- 以下追記 |
|
◆ | クライアント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\****> |
|