#author("2018-08-26T15:16:45+09:00","","") #author("2018-08-26T15:21:19+09:00","","") [[CentOS7]] *''DNS''サーバー構築(BIND) [#yaf6c3ef] ''DNS''サーバー(''BIND'')はhoge.comというドメイン名からIPアドレスを返したり、IPアドレスからドメイン名を返すサーバー。 ここでは、内部でサーバーにアクセスするときにIPアドレスではなく、hoge.comでアクセスできるようにする。⇒内部向け''DNS''サーバー また、外部からサーバーにアクセスするときの自ドメイン名からIPアドレスへの変換(名前解決)を行なうようにする。⇒外部向け''DNS''サーバー 外部向け''DNS''サーバー設定により、自宅サーバーが稼動中にも係わらず、ダイナミックDNSサービス側が保守やトラブル等によりサービス停止したことによりドメイン名でサーバーにアクセスできなくなるということがなくなる。 *BINDインストール [#fae91366] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# yum -y install bind bind-chroot &color(lime){← bind,bind-chrootインストール};| |[root@localhost ~]# yum -y install bind bind-chroot &color(lime){← ''bind'',''bind-chroot''インストール};| *BIND設定 [#yf0ef0ed] **BIND設定 [#y628ffca] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# vi /etc/named.conf &color(lime){← BIND設定ファイル編集};| |options { &br; &color(lime){#};listen-on port 53 { 127.0.0.1; }; &color(lime){← 行頭に#を追加してコメントアウト}; &br; &color(lime){#};listen-on-v6 port 53 { ::1; }; &color(lime){← 行頭に#を追加してコメントアウト}; &br; version "unknown"; &color(lime){← bindのバージョン情報の非表示化}; &br; directory "/var/named"; &br; dump-file "/var/named/data/cache_dump.db"; &br; statistics-file "/var/named/data/named_stats.txt"; &br; memstatistics-file "/var/named/data/named_mem_stats.txt"; &br; allow-transfer { none; }; &color(lime){← 追加(ゾーン情報の転送を禁止)}; &br; ・ &br; ・ &br; ・ &br; recursion yes; &color(lime){← 再帰問合せ機能を有効化(内部''DNS''サーバーとして動作)}; &br; allow-query { localhost; localnets; }; &color(lime){← 内部からのみ問合せを許可}; &br; allow-recursion { localhost; localnets; }; &color(lime){← 内部からのみ再帰問合せを許可}; &br; allow-query-cache { localhost; localnets; }; &color(lime){← 内部からのみキャッシュ問合せを許可}; &br; forwarders{ 8.8.8.8; 8.8.4.4; }; &color(lime){← 本''DNS''サーバー管理外の問合せ先としてGoogleの公開''DNS''サーバーを指定}; &br; ・ &br; ・ &br; ・ &br; }; &br; &br; logging { &br; channel default_debug { &br; file "data/named.run"; &br; severity dynamic; &br; }; &br; category lame-servers { null; }; &color(lime){← 追加(error (connection refused) resolvingというエラーログの出力抑止)}; &br; }; &br; &br; &color(lime){追加(ここから)}; &br; &color(lime){// 内部向け設定開始}; &br; view "internal" { &br; match-clients { localnets; }; &br; match-destinations { localnets; }; &br; &color(lime){追加(ここまで)}; &br; &br; zone "." IN { &br; type hint; &br; file "named.ca"; &br; }; &br; &br; include "/etc/named.rfc1912.zones"; &br; include "/etc/named.root.key"; &br; &br; &color(lime){追加(ここから)}; &br; include "/etc/named/named.hoge.com.zone"; &br; }; &br; &color(lime){// 内部向け設定終了}; &br; &color(lime){追加(ここまで)}; &br; &br; &color(lime){最終行へ追加(ここから)※固定IPアドレス環境の場合のみ}; &br; &color(lime){// 外部向け設定開始}; &br; view "external" { &br; &color(lime){// 外部向け設定}; &br; match-clients { any; }; &br; match-destinations { any; }; &br; include "/etc/named/named.hoge.com.zone.wan"; &br; }; &br; &color(lime){// 外部向け設定終了}; &br; &color(lime){最終行へ追加(ここまで)};| |[root@localhost ~]# vi /etc/named.conf &color(lime){← ''BIND''設定ファイル編集};| |options { &br; &color(lime){#};listen-on port 53 { 127.0.0.1; }; &color(lime){← 行頭に#を追加してコメントアウト}; &br; &color(lime){#};listen-on-v6 port 53 { ::1; }; &color(lime){← 行頭に#を追加してコメントアウト}; &br; version "unknown"; &color(lime){← ''bind''のバージョン情報の非表示化}; &br; directory "/var/named"; &br; dump-file "/var/named/data/cache_dump.db"; &br; statistics-file "/var/named/data/named_stats.txt"; &br; memstatistics-file "/var/named/data/named_mem_stats.txt"; &br; allow-transfer { none; }; &color(lime){← 追加(ゾーン情報の転送を禁止)}; &br; ・ &br; ・ &br; ・ &br; recursion yes; &color(lime){← 再帰問合せ機能を有効化(内部''DNS''サーバーとして動作)}; &br; allow-query { localhost; localnets; }; &color(lime){← 内部からのみ問合せを許可}; &br; allow-recursion { localhost; localnets; }; &color(lime){← 内部からのみ再帰問合せを許可}; &br; allow-query-cache { localhost; localnets; }; &color(lime){← 内部からのみキャッシュ問合せを許可}; &br; forwarders{ 8.8.8.8; 8.8.4.4; }; &color(lime){← 本''DNS''サーバー管理外の問合せ先としてGoogleの公開''DNS''サーバーを指定}; &br; ・ &br; ・ &br; ・ &br; }; &br; &br; logging { &br; channel default_debug { &br; file "data/named.run"; &br; severity dynamic; &br; }; &br; category lame-servers { null; }; &color(lime){← 追加(error (connection refused) resolvingというエラーログの出力抑止)}; &br; }; &br; &br; &color(lime){追加(ここから)}; &br; &color(lime){// 内部向け設定開始}; &br; view "internal" { &br; match-clients { localnets; }; &br; match-destinations { localnets; }; &br; &color(lime){追加(ここまで)}; &br; &br; zone "." IN { &br; type hint; &br; file "named.ca"; &br; }; &br; &br; include "/etc/named.rfc1912.zones"; &br; include "/etc/named.root.key"; &br; &br; &color(lime){追加(ここから)}; &br; include "/etc/named/named.hoge.com.zone"; &br; }; &br; &color(lime){// 内部向け設定終了}; &br; &color(lime){追加(ここまで)}; &br; &br; &color(lime){最終行へ追加(ここから)※固定IPアドレス環境の場合のみ}; &br; &color(lime){// 外部向け設定開始}; &br; view "external" { &br; &color(lime){// 外部向け設定}; &br; match-clients { any; }; &br; match-destinations { any; }; &br; include "/etc/named/named.hoge.com.zone.wan"; &br; }; &br; &color(lime){// 外部向け設定終了}; &br; &color(lime){最終行へ追加(ここまで)};| |[root@localhost ~]# vi /etc/named/named.hoge.com.zone &color(lime){← hoge.comの内部向けゾーン定義ファイル作成};| |zone "hoge.com" { &br; type master; &br; file "hoge.com.db"; &br; }; &br; zone "1.168.192.in-addr.arpa" { &br; type master; &br; file "1.168.192.in-addr.arpa.db"; &br; };| |[root@localhost ~]# vi /etc/named/named.hoge.com.zone.wan &color(lime){← hoge.comの外部向けゾーン定義ファイル作成※固定IPアドレス環境の場合のみ};| |&color(lime){// 正引き設定}; &br; zone "hoge.com" { &br; type master; &br; file "hoge.com.db.wan"; &br; allow-query { any; }; &br; }; &br; &color(lime){// 逆引き設定※プロバイダ(当サイトではGMOとくとくBB)より逆引き権限を委譲されている場合のみ}; &br; zone "SUBxxx.xxx.xxx.xxx.in-addr.arpa" { &br; type master; &br; file "SUBxxx.xxx.xxx.xxx.in-addr.arpa.db.wan"; &br; allow-query { any; }; &br; };| |&color(lime){// 正引き設定}; &br; zone "hoge.com" { &br; type master; &br; file "hoge.com.db.wan"; &br; allow-query { any; }; &br; }; &br; &color(lime){// 逆引き設定※プロバイダより逆引き権限を委譲されている場合のみ}; &br; zone "SUBxxx.xxx.xxx.xxx.in-addr.arpa" { &br; type master; &br; file "SUBxxx.xxx.xxx.xxx.in-addr.arpa.db.wan"; &br; allow-query { any; }; &br; };| |[root@localhost ~]# echo OPTIONS="-4" >> /etc/sysconfig/named &color(lime){← IPv4のみ有効にする(error (network unreachable) resolvingというエラーログの出力抑止)};| **ルートゾーン最新化 [#z8a68cc8] ルートゾーンは世界に13台しかないトップレベルドメインを管理する''DNS''サーバーのIPアドレスを管理しているファイルで、めったに更新されることはないが、念のため最新化しておく。 |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# dig . ns @198.41.0.4 +bufsize=1024 > /var/named/chroot/var/named/named.ca &color(lime){← ルートゾーン(named.ca)最新化};| **ルートゾーン自動更新設定 [#l49e8c46] 1ヶ月に一度、ルートゾーンが最新かチェックし、更新されていればルートゾーンの最新化及び、BINDの再起動を自動的に行うようにする。 1ヶ月に一度、ルートゾーンが最新かチェックし、更新されていればルートゾーンの最新化及び、''BIND''の再起動を自動的に行うようにする。 ※ルートゾーンが更新されていた場合のみ、新旧ルートゾーン情報及び、新旧ルートゾーンの差分情報をroot宛にメールする |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# vi named.root_update &color(lime){← ルートゾーン最新化スクリプト作成};| |#!/bin/bash &br; &br; new=`mktemp` &br; errors=`mktemp` &br; &br; dig . ns @198.41.0.4 +bufsize=1024 > $new 2> $errors &br; &br; if [ $? -eq 0 ]; then &br; sort_new=`mktemp` &br; sort_old=`mktemp` &br; diff_out=`mktemp` &br; sort $new > $sort_new &br; sort /var/named/chroot/var/named/named.ca > $sort_old &br; diff --ignore-matching-lines=^\; $sort_new $sort_old > $diff_out &br; if [ $? -ne 0 ]; then &br; ( &br; echo '-------------------- old named.root --------------------' &br; cat /var/named/chroot/var/named/named.ca &br; echo &br; echo '-------------------- new named.root --------------------' &br; cat $new &br; echo '---------------------- difference ----------------------' &br; cat $diff_out &br; ) | mail -s 'named.root updated' root &br; cp -f $new /var/named/chroot/var/named/named.ca &br; chown named. /var/named/chroot/var/named/named.ca &br; chmod 644 /var/named/chroot/var/named/named.ca &br; which systemctl > /dev/null 2>&1 &br; if [ $? -eq 0 ]; then &br; systemctl restart named-chroot > /dev/null &br; else &br; /etc/rc.d/init.d/named restart > /dev/null &br; fi &br; fi &br; rm -f $sort_new $sort_old $diff_out &br; else &br; cat $errors | mail -s 'named.root update check error' root &br; fi &br; rm -f $new $errors| |[root@localhost ~]# chmod 700 named.root_update &color(lime){← ルートゾーン最新化スクリプトへ実行権限付加};| |[root@localhost ~]# mv named.root_update /etc/cron.monthly/ &color(lime){← ルートゾーン最新化スクリプトを毎月自動実行されるディレクトリへ移動};| **内部向け正引きゾーンデータベース(ドメイン名⇒IPアドレス)作成 [#tc37fb53] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# vi /var/named/hoge.com.db &color(lime){← 正引きゾーンデータベース作成};| |$TTL 86400 &br; @ IN SOA hoge.com. root.hoge.com.( &br; 2011062001 ; Serial &br; 28800 ; Refresh &br; 14400 ; Retry &br; 3600000 ; Expire &br; 86400 ) ; Minimum &br; IN NS hoge.com. &br; IN MX 10 hoge.com. &br; @ IN A 192.168.1.3 &color(lime){← サーバーのプライベートIPアドレスを指定(hoge.com用)}; &br; * IN A 192.168.1.3 &color(lime){← サーバーのプライベートIPアドレスを指定(*.hoge.com用)};| **内部向け逆引きゾーンデータベース(IPアドレス⇒ドメイン名)作成 [#r5a72c6b] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# vi /var/named/1.168.192.in-addr.arpa.db &color(lime){← 逆引きゾーンデータベース作成};| |$TTL 86400 &br; @ IN SOA hoge.com. root.hoge.com.( &br; 2011062001 ; Serial &br; 28800 ; Refresh &br; 14400 ; Retry &br; 3600000 ; Expire &br; 86400 ) ; Minimum &br; IN NS hoge.com. &br; 3 IN PTR hoge.com. &color(lime){← サーバーIPアドレス最下位部(192.168.1.3)とドメイン名を指定};| **外部向け正引きゾーンデータベース(ドメイン名⇒IPアドレス)作成※固定IPアドレス環境の場合のみ [#ge8ebe6c] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# vi /var/named/hoge.com.db.wan &color(lime){← 外部向け正引きゾーンデータベース作成};| |$TTL 86400 &br; @ IN SOA ns1.hoge.com. root.hoge.com.( &br; 2011062001 ; Serial &br; 7200 ; Refresh &br; 7200 ; Retry &br; 2419200 ; Expire &br; 86400 ) ; Minimum &br; IN NS ns1.hoge.com. &color(lime){← ネームサーバー名}; &br; IN MX 10 hoge.com. &color(lime){← MXホスト名(メールサーバーを構築する場合のみ)}; &br; ns1 IN A XXX.XXX.XXX.XXX &color(lime){← サーバーのグローバルIPアドレスを指定(ns1.hoge.com用)}; &br; @ IN A XXX.XXX.XXX.XXX &color(lime){← サーバーのグローバルIPアドレスを指定(hoge.com用)}; &br; www IN A XXX.XXX.XXX.XXX &color(lime){← サーバーのグローバルIPアドレスを指定(www.hoge.com用)}; &br; ftp IN A XXX.XXX.XXX.XXX &color(lime){← サーバーのグローバルIPアドレスを指定(ftp.hoge.com用)}; &br; mail IN A XXX.XXX.XXX.XXX &color(lime){← サーバーのグローバルIPアドレスを指定(mail.hoge.com用)}; &br; hoge.com. IN TXT "v=spf1 ip4:XXX.XXX.XXX.XXX ~all" &color(lime){← サーバーのグローバルIPアドレスを指定(メールサーバーを構築する場合のみ)};| **外部向け逆引きゾーンデータベース(IPアドレス⇒ドメイン名)作成※固定IPアドレス環境でプロバイダ(当サイトではGMOとくとくBB)より逆引き権限を委譲されている場合のみ [#lcd94e86] **外部向け逆引きゾーンデータベース(IPアドレス⇒ドメイン名)作成※固定IPアドレス環境でプロバイダより逆引き権限を委譲されている場合のみ [#lcd94e86] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# vi /var/named/SUBxxx.xxx.xxx.xxx.in-addr.arpa.db.wan &color(lime){← 外部向け逆引きゾーンデータベース作成};| |$TTL 86400 &br; @ IN SOA ns1.hoge.com. root.hoge.com.( &br; 2017012901 ; Serial &br; 7200 ; Refresh &br; 7200 ; Retry &br; 2419200 ; Expire &br; 86400 ) ; Minimum &br; IN NS ns1.hoge.com. &br; xxx IN PTR hoge.com. &color(lime){← サーバーIPアドレス最下位部(xxx.xxx.xxx.xxx)とドメイン名を指定};| &color(red){※ゾーン情報変更時は、''Serial''行を年月日通番2桁(''YYYYMMDDXX'')のようにして、必ず変更前よりも大きい数値に変更すること(例:変更前が''2005011001''なら、変更後は''2005011002''にする)。これにより、後述するセカンダリ側へのゾーン情報の変更が正しく行われるようになる}; *BIND起動 [#r142a075] **BIND起動 [#l814b250] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# systemctl start named-chroot &color(lime){← BIND起動};| |[root@localhost ~]# systemctl enable named-chroot &color(lime){← BIND自動起動設定};| |[root@localhost ~]# systemctl start named-chroot &color(lime){← ''BIND''起動};| |[root@localhost ~]# systemctl enable named-chroot &color(lime){← ''BIND''自動起動設定};| **TCP53番、UDP53番ポート開放 [#x321fe94] ''【ルーター】'' ルーター側の設定で、''TCP53''番、''UDP53''番ポートへのアクセスをサーバーに転送するようにする。 ''【ファイアウォール】'' サーバー側のファイアウォール設定で、''TCP53''番、''UDP53''番ポートへのアクセスを許可するようにする。 [[ポート開放確認ツール>http://tt0.link/tool/portcheck/]]で「''IP''」にサーバー名(例:hoge.com)、「ポート番号」に''53''と入力、「''TCP''」または「''UDP''」を選択して「確認」ボタンを押下し、&color(blue){''ポートは開放されています''};と表示されることを確認。 *問合せ先''DNS''サーバーをLinuxサーバーに変更 [#ob4986b3] **サーバー自身の問合せ先''DNS''サーバーを自分自身に変更 [#bc705d2f] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# sed -i 's/DNS1=.*/DNS1=127.0.0.1/g' /etc/sysconfig/network-scripts/ifcfg-eth0 &color(lime){← Linuxサーバー自身を問合せ先''DNS''サーバーとする};| |[root@localhost ~]# systemctl restart network &color(lime){← ''DNS''サーバー変更反映};| **クライアントの問合せ先''DNS''サーバーを本''DNS''サーバーに変更※ルーターのDHCP機能でクライアントの問合せ先''DNS''サーバーのIPアドレスを設定している場合 [#mf99e5c2] ルーターの''DHCP''設定で''DNS''サーバーのIPアドレスを本''DNS''サーバーのIPアドレスに変更する **クライアントの問合せ先''DNS''サーバー変更反映 [#ub9c92fd] クライアントを再起動し、問合せ先''DNS''サーバーの変更を反映させる *BIND確認 [#y49df161] **BIND確認(クライアントがWindowsの場合) [#l5c050f8] |BGCOLOR(black):COLOR(white):|c |C:>nslookup &color(lime){← nslookup起動};| |Default Server: hoge.com &br; Address: 192.168.1.3| |> hoge.com &color(lime){← Linuxサーバーの正引きテスト};| |Server: hoge.com &br; Address: 192.168.1.3| |Name: hoge.com &br; Address: 192.168.1.3 &color(lime){← IPアドレスが返ってきた};| |> 192.168.1.3 &color(lime){← Linuxサーバーの逆引きテスト};| |Server: hoge.com &br; Address: 192.168.1.3 &br; &br; Name: hoge.com &color(lime){← ドメイン名が返ってきた}; &br; Address: 192.168.1.3| |> www.isc.org &color(lime){← 外部ドメインの正引きテスト};| |Server: hoge.com &br; Address: 192.168.1.3 &br; &br; Non-authoritative answer: &br; Name: www.isc.org &br; Address: 149.20.64.42 &color(lime){← IPアドレスが返ってきた};| |> 149.20.64.42 &color(lime){← 外部ドメインの逆引きテスト};| |Server: hoge.com &br; Address: 192.168.1.3 &br; &br; Name: external.isc.org &color(lime){← ホスト名が返ってきた}; &br; Address: 149.20.64.42| |> exit &color(lime){← nslookup停止};| |C:>| **BIND確認(クライアントがLinuxの場合) [#lbedf676] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# dig hoge.com &color(lime){← Linuxサーバーの正引きテスト};| |; <<>> DiG 9.2.3 <<>> hoge.com &br; ;; global options: printcmd &br; ;; Got answer: &br; ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59712 &br; ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0 &br; &br; ;; QUESTION SECTION: &br; ;hoge.com. IN A &br; &br; ;; ANSWER SECTION: &br; hoge.com. 86400 IN A 192.168.1.3 &color(lime){← IPアドレスが返ってきた}; &br; &br; ;; AUTHORITY SECTION: &br; hoge.com. 86400 IN NS hoge.com. &br; &br; ;; Query time: 8 msec &br; ;; SERVER: 192.168.1.3#53(192.168.1.3) &br; ;; WHEN: Mon Oct 4 17:39:31 2004 &br; ;; MSG SIZE rcvd: 63| |[root@localhost ~]# dig -x 192.168.1.3 &color(lime){← Linuxサーバーの逆引きテスト};| |; <<>> DiG 9.2.3 <<>> -x 192.168.1.3 &br; ;; global options: printcmd &br; ;; Got answer: &br; ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14938 &br; ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 &br; &br; ;; QUESTION SECTION: &br; ;1.1.168.192.in-addr.arpa. IN PTR &br; &br; ;; ANSWER SECTION: &br; 1.1.168.192.in-addr.arpa. 86400 IN PTR hoge.com. &color(lime){← ドメイン名が返ってきた}; &br; &br; ;; AUTHORITY SECTION: &br; 1.168.192.in-addr.arpa. 86400 IN NS hoge.com. &br; &br; ;; ADDITIONAL SECTION: &br; hoge.com. 86400 IN A 192.168.1.3 &br; &br; ;; Query time: 8 msec &br; ;; SERVER: 192.168.1.3#53(192.168.1.3) &br; ;; WHEN: Mon Oct 4 17:39:39 2004 &br; ;; MSG SIZE rcvd: 101| |[root@localhost ~]# dig www.isc.org &color(lime){← 外部ドメインの正引きテスト};| |; <<>> DiG 9.7.2-P2-RedHat-9.7.2-2.P2.fc14 <<>> www.isc.org &br; ;; global options: +cmd &br; ;; Got answer: &br; ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32477 &br; ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 6 &br; &br; ;; QUESTION SECTION: &br; ;www.isc.org. IN A &br; &br; ;; ANSWER SECTION: &br; www.isc.org. 600 IN A 149.20.64.42 &color(lime){← IPアドレスが返ってきた}; &br; &br; ;; AUTHORITY SECTION: &br; isc.org. 42570 IN NS ns.isc.afilias-nst.info. &br; isc.org. 42570 IN NS sfba.sns-pb.isc.org. &br; isc.org. 42570 IN NS ams.sns-pb.isc.org. &br; isc.org. 42570 IN NS ord.sns-pb.isc.org. &br; &br; ;; ADDITIONAL SECTION: &br; ams.sns-pb.isc.org. 42570 IN A 199.6.1.30 &br; ams.sns-pb.isc.org. 42570 IN AAAA 2001:500:60::30 &br; ord.sns-pb.isc.org. 42570 IN A 199.6.0.30 &br; ord.sns-pb.isc.org. 42570 IN AAAA 2001:500:71::30 &br; sfba.sns-pb.isc.org. 42570 IN A 149.20.64.3 &br; sfba.sns-pb.isc.org. 42570 IN AAAA 2001:4f8:0:2::19 &br; &br; ;; Query time: 181 msec &br; ;; SERVER: 127.0.0.1#53(127.0.0.1) &br; ;; WHEN: Mon Nov 8 17:47:58 2010 &br; ;; MSG SIZE rcvd: 276| |[root@localhost ~]# dig -x 149.20.64.42 &color(lime){← 外部ドメインの逆引きテスト};| |; <<>> DiG 9.7.2-P2-RedHat-9.7.2-2.P2.fc14 <<>> -x 149.20.64.42 &br; ;; global options: +cmd &br; ;; Got answer: &br; ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20611 &br; ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 6 &br; &br; ;; QUESTION SECTION: &br; ;42.64.20.149.in-addr.arpa. IN PTR &br; &br; ;; ANSWER SECTION: &br; 42.64.20.149.in-addr.arpa. 3537 IN PTR external.isc.org. &color(lime){← ホスト名が返ってきた}; &br; &br; ;; AUTHORITY SECTION: &br; 64.20.149.in-addr.arpa. 3526 IN NS sfba.sns-pb.isc.org. &br; 64.20.149.in-addr.arpa. 3526 IN NS ord.sns-pb.isc.org. &br; 64.20.149.in-addr.arpa. 3526 IN NS ams.sns-pb.isc.org. &br; &br; ;; ADDITIONAL SECTION: &br; ams.sns-pb.isc.org. 42519 IN A 199.6.1.30 &br; ams.sns-pb.isc.org. 42519 IN AAAA 2001:500:60::30 &br; ord.sns-pb.isc.org. 42519 IN A 199.6.0.30 &br; ord.sns-pb.isc.org. 42519 IN AAAA 2001:500:71::30 &br; sfba.sns-pb.isc.org. 42519 IN A 149.20.64.3 &br; sfba.sns-pb.isc.org. 42519 IN AAAA 2001:4f8:0:2::19 &br; &br; ;; Query time: 3 msec &br; ;; SERVER: 127.0.0.1#53(127.0.0.1) &br; ;; WHEN: Mon Nov 8 17:48:49 2010 &br; ;; MSG SIZE rcvd: 267| **オープンリゾルバ確認 [#w9b072c6] ''DNS''サーバーが[[オープンリゾルバ(外部の不特定のIPアドレスからの再帰的な問い合わせを許可しているDNS サーバ)>https://www.jpcert.or.jp/pr/2013/pr130002.html]]となっていないことを確認する。 |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# wget -qO - http://www.openresolver.jp/cli/check.html &color(lime){← オープンリゾルバ確認};| |Configured DNS server: &color(lime){[NOT open]}; xxx.xxx.xxx.xxx(xxx.xxx.xxx.xxx) &color(lime){← [NOT open]確認}; &br; Source IP address: &color(lime){[NOT open]}; xxx.xxx.xxx.xxx(hoge.com) &color(lime){← [NOT open]確認};| *プライマリネームサーバー変更※固定IPアドレス環境の場合のみ [#na546aeb] hoge.comのプライマリネームサーバーをレジストラの''DNS''サーバーから自宅''DNS''サーバーに変更する。 [[VALUE DOMAIN>http://www.value-domain.com/]]で独自ドメインを取得した場合のプライマリネームサーバーの変更手順を以下に示す。 その他のレジストラで独自ドメインを取得した場合は各レジストラのWebサイトで確認すること +ユーザー登録時のユーザーIDとパスワードで[[ログイン>https://www.value-domain.com/login.php]]する。 +「ドメイン操作」⇒「ネームサーバーの変更」⇒「このドメインでネームサーバーを作成」で、「ネームサーバー名」はデフォルト(ns1.hoge.com)のまま、「ネームサーバーのIPアドレス」に現在のグローバルIPアドレス([[確認くん>http://www.ugtop.com/spill.shtml]]で「現在接続している場所(現IP)」からコピー)を入力して「追加」ボタンを押下し、ネームサーバーを追加する。 +「ドメイン操作」⇒「ネームサーバーの変更」でネームサーバー ''1~5''をクリアし、「ネームサーバー 1」に"ns1.hoge.com"と入力して「保存する」ボタンを押下する。 &color(red){※なお、プライマリネームサーバー変更が反映されるまで''24~48''時間程度掛かる}; *プライマリネームサーバー確認※固定IPアドレス環境の場合のみ [#s963d789] &color(red){※レジストラでのプライマリネームサーバー変更後''24~48''時間程度経過後に行うこと}; **正引き確認 [#n5f04c00] [[Free Monitoring Test Tools>http://www.websitepulse.com/help/tools.php?tab=dns]]の「''Select Test Type''」欄で「''NS records lookup''」を選択、「''Enter Test Target''」欄にドメイン名(例:hoge.com)を入力して「''Perform Test''」ボタンを押下する。 以下のような結果が表示されればOK ----- NS records lookup &br; &br; Domain name tested: hoge.com &br; Test performed from: New York, NY &br; Test performed at: 2017-01-23 12:28:05 (GMT +00:00) &br; Known NS records: &br; ns1.hoge.com XXX.XXX.XXX.XXX &br; &color(blue){← ネームサーバーが自宅''DNS''サーバーになっていること}; &br; &color(blue){← サーバーのグローバルIPアドレスになっていること}; &br; Hostname test results &br; ----- **逆引き確認※プロバイダより逆引き権限を委譲されている場合のみ [#fe7a8bcf] [[Free Monitoring Test Tools>http://www.websitepulse.com/help/tools.php?tab=dns]]の「''Select Test Type''」欄で「''Reverse DNS''」を選択、「''Enter Test Target''」欄にグローバルIPアドレスを入力して「''Perform Test''」ボタンを押下する。 以下のような結果が表示されればOK ----- Reverse DNS results &br; &br; IP address tested: xxx.xxx.xxx.xxx &br; Test performed from: New York, NY &br; Test performed at: 2017-01-29 14:45:19 (GMT +00:00) &br; Known DNS records: &br; hoge.com xxx.xxx.xxx.xxx &color(blue){← ドメイン名が表示されること}; &br; ----- *セカンダリネームサーバー登録 &color(red){※固定IPアドレス環境の場合のみ}; [#u6d748b7] セカンダリネームサーバーはプライマリネームサーバーのゾーン定義ファイルをコピーして、プライマリネームサーバーと同じようにhoge.comからグローバルIPアドレスへの変換を行なってくれるサーバーで、プライマリネームサーバーへの負荷分散が行なえる。 ここでは、無料でセカンダリネームサーバーを請け負ってくれる[[マイハマネット>http://www.maihama-net.com/]]のサービスを利用する。 **セカンダリネームサーバー申し込み [#i4de1410] [[マイハマネット>http://www.maihama-net.com/]]でユーザー登録し、登録時のメールアドレス宛にきたメールに従い、プライマリネームサーバー情報として自宅''DNS''サーバーの情報を登録する。 &color(red){''※なお、ユーザー登録時に指定するメールアドレスは、登録するドメイン名のメールアドレス(例:webmaster@hoge.com)でなければならないため、先にメールサーバーを構築しておく''}; **セカンダリネームサーバー設定 [#oea4d77e] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# vi /etc/named/named.hoge.com.zone.wan &color(lime){← 外部向けゾーン定義ファイル編集};| |zone "hoge.com" { &br; type master; &br; file "hoge.com.db.wan"; &br; allow-query { any; }; &br; allow-transfer { &br; xxx.xxx.xxx.xxx; &color(lime){← このゾーン情報の転送先IPアドレス)を追加}; &br; xxx.xxx.xxx.xxx; &color(lime){← このゾーン情報の転送先IPアドレス)を追加}; &br; }; &br; notify yes; &color(lime){← このゾーン情報変更時は即座に上記セカンダリへ反映させる}; &br; };| |[root@localhost ~]# vi /var/named/hoge.com.db.wan &color(lime){← 外部向け正引きゾーンデータベース編集};| |$TTL 86400 &br; @ IN SOA ns1.hoge.com. root.hoge.com.( &br; 2011062002 ; Serial &color(lime){← 下2桁の通番をカウントアップする}; &br; 7200 ; Refresh &br; 7200 ; Retry &br; 2419200 ; Expire &br; 86400 ) ; Minimum &br; IN NS ns1.hoge.com. &br; IN NS ns1.dns.com. &color(lime){← セカンダリネームサーバーを追加}; &br; IN NS ns3.dns.com. &color(lime){← セカンダリネームサーバーを追加}; &br; IN MX 10 hoge.com. &br; ns1 IN A XXX.XXX.XXX.XXX &br; @ IN A XXX.XXX.XXX.XXX &br; www IN A XXX.XXX.XXX.XXX &br; ftp IN A XXX.XXX.XXX.XXX &br; mail IN A XXX.XXX.XXX.XXX &br; hoge.com. IN TXT "v=spf1 a mx ~all"| |[root@localhost ~]# systemctl reload named-chroot &color(lime){← BIND設定反映};| |[root@localhost ~]# systemctl reload named-chroot &color(lime){← ''BIND''設定反映};| **レジストラへセカンダリネームサーバー登録 [#i444c75a] [[VALUE DOMAIN>http://www.value-domain.com/]]で独自ドメインを取得した場合、「■プライマリネームサーバーの変更」を参考にhoge.comのセカンダリネームサーバーをレジストラに登録する。 その他のレジストラで独自ドメインを取得した場合は各レジストラのWebサイトで確認すること *セカンダリネームサーバー確認 &color(red){※固定IPアドレス環境の場合のみ}; [#xf556da6] **セカンダリネームサーバーでの正引き確認 [#u4f4cad2] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# dig @xxx.xxx.xxx.xxx hoge.com &color(lime){← セカンダリネームサーバー(ns1.dns.com)で正引きできるか確認};| |; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> @xxx.xxx.xxx.xxx hoge.com &br; ; (1 server found) &br; ;; global options: +cmd &br; ;; Got answer: &br; ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27648 &br; ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 4 &br; ;; WARNING: recursion requested but not available &br; &br; ;; OPT PSEUDOSECTION: &br; ; EDNS: version: 0, flags:; udp: 4096 &br; ;; QUESTION SECTION: &br; ;hoge.com. IN A &br; &br; ;; ANSWER SECTION: &br; hoge.com. 86400 IN A XXX.XXX.XXX.XXX &color(lime){← サーバーのグローバルIPアドレスが返ってきた}; &br; &br; ;; AUTHORITY SECTION: &br; hoge.com. 86400 IN NS ns1.hoge.com. &br; hoge.com. 86400 IN NS ns3.dns.com. &br; hoge.com. 86400 IN NS ns1.dns.com. &br; &br; ;; ADDITIONAL SECTION: &br; ns1.hoge.com. 86400 IN A XXX.XXX.XXX.XXX &br; &br; ;; Query time: 31 msec &br; ;; SERVER: xxx.xxx.xxx.xxx#53(xxx.xxx.xxx.xxx) &br; ;; WHEN: 水 12月 10 12:23:40 JST 2014 &br; ;; MSG SIZE rcvd: 172| |[root@localhost ~]# dig @xxx.xxx.xxx.xxx hoge.com &color(lime){← セカンダリネームサーバーで正引きできるか確認};| |; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> @xxx.xxx.xxx.xxx hoge.com &br; ; (1 server found) &br; ;; global options: +cmd &br; ;; Got answer: &br; ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43913 &br; ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 4 &br; ;; WARNING: recursion requested but not available &br; &br; ;; OPT PSEUDOSECTION: &br; ; EDNS: version: 0, flags:; udp: 4096 &br; ;; QUESTION SECTION: &br; ;hoge.com. IN A &br; &br; ;; ANSWER SECTION: &br; hoge.com. 86400 IN A XXX.XXX.XXX.XXX &color(lime){← サーバーのグローバルIPアドレスが返ってきた}; &br; &br; ;; AUTHORITY SECTION: &br; hoge.com. 86400 IN NS ns3.dns.com. &br; hoge.com. 86400 IN NS ns1.hoge.com. &br; hoge.com. 86400 IN NS ns1.dns.com. &br; &br; ;; ADDITIONAL SECTION: &br; ns1.hoge.com. 86400 IN A XXX.XXX.XXX.XXX &br; ns1.dns.com. 7200 IN A xxx.xxx.xxx.xxx &br; ns3.dns.com. 7200 IN A xxx.xxx.xxx.xxx &br; &br; ;; Query time: 117 msec &br; ;; SERVER: xxx.xxx.xxx.xxx#53(xxx.xxx.xxx.xxx) &br; ;; WHEN: 水 12月 10 12:24:05 JST 2014 &br; ;; MSG SIZE rcvd: 172| **セカンダリネームサーバー情報確認 [#idd8fb7b] &color(red){※レジストラでのセカンダリネームサーバー登録後''24~48''時間程度経過後に行うこと}; [[Free Monitoring Test Tools>http://www.websitepulse.com/help/tools.php?tab=dns]]の「''Select Test Type''」欄で「''NS records lookup''」を選択、「''Enter Test Target''」欄にドメイン名(例:hoge.com)を入力して「''Perform Test''」ボタンを押下する。 以下のような結果が表示されればOK ----- NS records lookup &br; &br; Domain name tested: hoge.com &br; Test performed from: New York, NY &br; Test performed at: 2017-01-23 12:28:05 (GMT +00:00) &br; Known NS records: &br; ns1.dns.com [XXX.XXX.XXX.XXX] &br; ns3.dns.com [XXX.XXX.XXX.XXX] &br; &color(blue){← セカンダリネームサーバーが表示されていること}; &br; &color(blue){← セカンダリネームサーバーのIPアドレスがあっていること}; &br; ns1.hoge.com XXX.XXX.XXX.XXX &br; Hostname test results -----