今回は外部公開まで完了したDNSサーバーの動作確認や脆弱性の確認を行っていきたいと思います。
名前解決を確認する
設定が完了したので名前解決の確認を行ってみます。
まずローカルネットワークから確認しますので、各クライアントの参照するDNSサーバーのアドレスを192.168.0.20に変更します。
Windowsで確認する場合、コマンドプロンプトから確認します。
(C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\Administrator>nslookup
Default Server: sa-sa-ki.jp
Address: 192.168.0.20←参照しているDNSサーバーのアドレスが192.168.0.20になっていること
正引きの確認
>winxp.sa-sa-ki.jp
Default Server: sa-sa-ki.jp
Address: 192.168.0.20
Name: winxp.sa-sa-ki.jp
Address: 192.168.0.101←正しいアドレスが返ってきている
逆引きの確認
>192.168.0.103
Default Server: sa-sa-ki.jp
Address: 192.168.0.20
Name: leopard←正しいホスト名が返ってきている
Address: 192.168.0.103
MacやUbuntuなどLinuxまたはUnixで確認する場合、ターミナルや端末を起動します。
※ここではubuntuで確認した結果を記載します。
ubuntu@ubuntu:~$ dig winvista
; < <>> DiG 9.5.0-P2 < <>> winvista.sa-sa-ki.jp
;; global options: printcmd
;; Got answer:
;; ->>HEADER< <- opcode: QUERY, status: NOERROR, id: 1119
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;winvista.sa-sa-ki.jp. IN A
;; ANSWER SECTION:
winvista.sa-sa-ki.jp. 86400 IN A 192.168.0.102←正しいアドレスが返ってきている
;; AUTHORITY SECTION:
sa-sa-ki.jp. 86400 IN NS ns.sa-sa-ki.jp.
;; Query time: 4 msec
;; SERVER: 192.168.0.20#53(192.168.0.20)
;; WHEN: Tue Mar 24 23:05:36 2009
;; MSG SIZE rcvd: 69
逆引きの確認
ubuntu@ubuntu:~$ dig -x 192.168.0.104
; < <>> DiG 9.5.0-P2 < <>> -x 192.168.0.104
;; global options: printcmd
;; Got answer:
;; ->>HEADER< <- opcode: QUERY, status: NOERROR, id: 28966
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;104.0.168.192.in-addr.arpa. IN PTR
;; ANSWER SECTION:
104.0.168.192.in-addr.arpa. 86400 IN PTR ubuntu.←正しいホスト名が返ってきている
;; AUTHORITY SECTION:
0.168.192.in-addr.arpa. 86400 IN NS ns.sa-sa-ki.jp.
;; Query time: 12 msec
;; SERVER: 192.168.0.20#53(192.168.0.20)
;; WHEN: Tue Mar 24 23:10:47 2009
;; MSG SIZE rcvd: 91
続いて外部から確認します。
ローカルネットワーク以外のネットワークで試してください。(学校、職場、データ通信機など)
Windowsで確認する場合、コマンドプロンプトから確認します。
(C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\Administrator>nslookup
Default Server: xxxxxxxxxx
Address: xxx.xxx.xx.xx
参照DNSサーバー変更
>server ns.sa-sa-ki.jp
Default Server: ns.sa-sa-ki.jp
Address: 210.189.104.64
正引きの確認
>www.sa-sa-ki.jp
Default Server: ns.sa-sa-ki.jp
Address: 210.189.104.64
Name: www.sa-sa-ki.jp
Address: 210.189.104.64←正しいアドレスが返ってきている
逆引きの確認
>210.189.104.64
Default Server: ns.sa-sa-ki.jp
Address: 210.189.104.64
Name: sa-sa-ki.jp←正しいホスト名が返ってきている
Address: 210.189.104.64
MacやUbuntuなどLinuxまたはUnixで確認する場合、ターミナルや端末を起動します。
※ここではubuntuで確認した結果を記載します。
ubuntu@ubuntu:~$ dig @ns.sa-sa-ki.jp mail.sa-sa-ki.jp
; < <>> DiG 9.5.0-P2 < <>> @ns.sa-sa-ki.jp mail.sa-sa-ki.jp
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER< <- opcode: QUERY, status: NOERROR, id: 20680
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;mail.sa-sa-ki.jp. IN A
;; ANSWER SECTION:
mail.sa-sa-ki.jp. 86400 IN A 210.189.104.64←正しいアドレスが返ってきている
;; AUTHORITY SECTION:
sa-sa-ki.jp. 86400 IN NS ns.sa-sa-ki.jp.
;; ADDITIONAL SECTION:
ns.sa-sa-ki.jp. 86400 IN A 210.189.104.64
;; Query time: 168 msec
;; SERVER: 210.189.104.64#53(210.189.104.64)
;; WHEN: Wed Mar 25 11:05:39 2009
;; MSG SIZE rcvd: 106
逆引きの確認
ubuntu@ubuntu:~$ dig @ns.sa-sa-ki.jp -x 210.189.104.64
; < <>> DiG 9.5.0-P2 < <>> @ns.sa-sa-ki.jp -x 210.189.104.64
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER< <- opcode: QUERY, status: NOERROR, id: 4352
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;64.104.189.210.in-addr.arpa. IN PTR
;; ANSWER SECTION:
64.104.189.210.in-addr.arpa. 86400 IN PTR sa-sa-ki.jp.←正しいホスト名が返ってきている
;; AUTHORITY SECTION:
104.189.210.in-addr.arpa. 86400 IN NS ns.sa-sa-ki.jp.
;; ADDITIONAL SECTION:
ns.sa-sa-ki.jp. 86400 IN A 210.189.104.64
;; Query time: 417 msec
;; SERVER: 210.189.104.64#53(210.189.104.64)
;; WHEN: Wed Mar 25 11:10:03 2009
;; MSG SIZE rcvd: 103
bindのバージョン情報をチェックします。
bindのバージョン情報を隠蔽する設定をしたのでその確認をします。
※digコマンドを使った確認ですのでサーバーで操作します
; < <>> DiG 9.3.4-P1 < <>> @ns.sa-sa-ki.jp chaos txt version.bind
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER< <- opcode: QUERY, status: NOERROR, id: 37449
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;version.bind. CH TXT
;; ANSWER SECTION:
version.bind. 0 CH TXT “unknown”←バージョン情報が隠蔽されている
;; AUTHORITY SECTION:
version.bind. 0 CH NS version.bind.
;; Query time: 28 msec
;; SERVER: 192.168.0.20#53(192.168.0.20)
;; WHEN: Thu Mar 26 08:28:43 2009
;; MSG SIZE rcvd: 64
DNSキャッシュポイズニングの脆弱性をチェックします。
DNSキャッシュポイズニングと言うのは簡単に言うとドメイン情報を書き換えて不正なサイトへ遷移させるという攻撃なのですが、以下のサイトを参考に脆弱性のチェックを行います。
情報処理推進機構:情報セキュリティ:脆弱性対策:DNSキャッシュポイズニングの脆弱性に関する注意喚起
また情報処理推進機構のサイトにDNSキャッシュポイズニング対策について詳しい説明をまとめているPDFファイルがありました。
DNSキャッシュポイズニング対策(全50ページ、1.69MB)
[root@centos ~]# dig +short porttest.dns-oarc.net TXT
porttest.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.
“210.189.104.64 is GREAT: 43 queries in 9.0 seconds from 43 ports with std dev 19162″
結果、「GREAT」が表示されれば問題ありません
DNS問い合わせに使用するIDがランダム化されているか確認します
[root@centos ~]# dig +short txidtest.dns-oarc.net TXT
txidtest.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.
“210.189.104.64 is GREAT: 123 queries in 24.7 seconds from 123 txids with std dev 19340″
結果、「GREAT」が表示されれば問題ありません
外部からの再帰的なDNS問い合わせに対して回答していないか確認します
※この確認はサーバー以外のPCのブラウザから確認します。
IANA — Cross-Pollination Scanへ遷移してチェックするDNSサーバーを入力します。
ここでは「ns.sa-sa-ki.jp」を指定して[実行]ボタンをクリックします。
DNSサーバーは構築が大変ですが今後のWebサーバーやメールサーバー公開時に必要になりますので、ぜひ頑張ってみてください。
■ 参考サイト ■
DNSサーバー構築(BIND) – CentOSで自宅サーバー構築
はじめての自宅サーバ構築 Fedora/CentOS – DNSサーバの構築(bind)
「BIND」の設定
@IT:DNS Tips:BINDのバージョンを調べる方法とは
DNSキャッシュ・ポイズニングとは 【DNS cache poisoning】 – 意味・解説 : IT用語辞典
情報処理推進機構:情報セキュリティ:脆弱性対策:DNSキャッシュポイズニングの脆弱性に関する注意喚起
————————————————————————————————–
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その11 CentOS 5.2 にDNSサーバーを導入して名前解決(設定編)
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その10 CentOS 5.2 SSHサーバーを構築して外部からリモート接続&リモートファイル転送
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その9 CentOS 5.2 にバッファオーバーフロー攻撃対策を行う
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その8 CentOS 5.2 にrootkit検知ツールを導入する
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その7 CentOS 5.2 にファイル改竄検知システムを導入する
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その6 CentOS 5.2 にアンチウィルスソフトを導入する
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その5 CentOS 5.2 ファイル転送準備
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その4 CentOS 5.2 インストール後の初期設定
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その3 インストールしたCentOS 5.2 にリモート接続準備
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その2 CentOS 5.2 をインストールする
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その1 導入を検討する







