Archive for the ‘bind’ Category

3月
27

今回は外部公開まで完了したDNSサーバーの動作確認や脆弱性の確認を行っていきたいと思います。

名前解決を確認する
設定が完了したので名前解決の確認を行ってみます。

まずローカルネットワークから確認しますので、各クライアントの参照するDNSサーバーのアドレスを192.168.0.20に変更します。

Windowsで確認する場合、コマンドプロンプトから確認します。

Microsoft Windows XP [Version 5.1.2600]
(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で確認する場合、コマンドプロンプトから確認します。

Microsoft Windows XP [Version 5.1.2600]
(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コマンドを使った確認ですのでサーバーで操作します

[root@centos ~]# dig @ns.sa-sa-ki.jp chaos txt version.bind

; < <>> 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)

DNS問い合わせに使用するポート番号がランダム化されているか確認します
[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」を指定して[実行]ボタンをクリックします。

結果、「Safe」が表示されれば問題ありません

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 導入を検討する

3月
26

今回はDNSサーバーを構築して外部から自宅サーバーの名前解決ができるようにしていきたいと思います。

DNSサーバーを構築する上でのyasuの自宅の環境ですが契約しているプロバイダの有償オプションで固定IPアドレスを利用しています。
またお名前.comでドメインを取得しています。
※固定IPアドレスの契約やドメインは取得は完了している前提での手順ご紹介になることをご了承ください。

あとノートPCが複数台あるのでローカルネットワーク内だけで名前解決ができるようにします。

我が家のドメイン名や固定IPアドレス、PCのIPアドレスをご紹介しますと
ドメイン名:sa-sa-ki.jp
グローバルIPアドレス:210.189.104.64

自宅サーバー
 ホスト名:centos
 IPアドレス:192.168.0.20
ノートPC1
 ホスト名:winxp
 IPアドレス:192.168.0.101
ノートPC2
 ホスト名:winvista
 IPアドレス:192.168.0.102
ノートPC3
 ホスト名:leopard
 IPアドレス:192.168.0.103
ノートPC4
 ホスト名:ubuntu
 IPアドレス:192.168.0.104

のようになっておりまして(プライベートIPアドレスはダミーのIPアドレスを記載しています)、この環境にあわせて構築していきますのでみなさまは各自の環境に振り替えてください。

それではDNSサーバーを構築していく為にbindとcaching-nameserverをインストールしていきます。
bindは名前解決する為に都度上位のネームサーバーに問い合わせを行います。
caching-nameserverを一緒にインストールする事により一度上位のネームサーバーに問い合わせを行うと名前解決する為の情報を一定時間保持(キャッシュ)しておけるので、上位のネームサーバーに都度検索しなくて済みます。

bindとcaching-nameserverをインストールします

ログイン後、rootユーザにスイッチします
[centos@centos ~]$ su -
パスワード: rootユーザーのパスワード

bindとcaching-nameserverをインストールします
[root@centos ~]# yum -y install bind caching-nameserver
Loading “priorities” plugin
Loading “fastestmirror” plugin
Loading mirror speeds from cached hostfile
* base: rsync.atworks.co.jp
* updates: rsync.atworks.co.jp
* addons: rsync.atworks.co.jp
* extras: rsync.atworks.co.jp
0 packages excluded due to repository priority protections
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
–> Running transaction check
—> Package caching-nameserver.i386 xx:x.x.x-x.x.x.xx.xxx_x set to be updated
—> Package bind.i386 xx:x.x.x-x.x.x.xx.xxx_x set to be updated
–> Finished Dependency Resolution

Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
caching-nameserver i386 xx:x.x.x-x.x.x.xx.xxx_x updates 58 k
Installing for dependencies:
bind i386 xx:x.x.x-x.x.x.xx.xxx_x updates 959 k

Transaction Summary
=============================================================================
Install 2 Package(s)
Update 0 Package(s)
Remove 0 Package(s)

Total download size: 1.0 M
Downloading Packages:
(1/2): bind-x.x.x-x.x.x.x 100% |=========================| 959 kB 00:00
(2/2): caching-nameserver 100% |=========================| 58 kB 00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: bind ######################### [1/2]
Installing: caching-nameserver ######################### [2/2]

Installed: caching-nameserver.i386 xx:x.x.x-x.x.x.xx.xxx_x
Dependency Installed: bind.i386 xx:x.x.x-x.x.x.xx.xxx_x
Complete!

bind設定ファイルを設定します。

named.confファイルがないのでnamed.caching-nameserver.confからコピーします
[root@centos ~]# cp -p /etc/named.caching-nameserver.conf /etc/named.conf

named.confファイルを編集します
[root@centos ~]# vi /etc/named.conf
viエディタが起動するので設定ファイルを変更します
//
// named.caching-nameserver.conf
//
// Provided by Red Hat caching-nameserver 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.
//
// DO NOT EDIT THIS FILE – use system-config-bind or an editor
// to create named.conf – edits to this file will be lost on
// caching-nameserver package upgrade.
//
options {
  名前解決の問い合わせに応えるインターフェイスおよびポートを指定する事ができます。ここでは問い合わせ元のIPアドレスを特に制限せずランダムなポートで待ち受け可としたいので先頭に//をつけてコメント化します(IPv4)
  //listen-on port 53 { 127.0.0.1; };
  
  名前解決の問い合わせに応えるインターフェイスおよびポートを指定する事ができます。ここでは問い合わせ元のIPアドレスを特に制限せずランダムなポートで待ち受け可としたいので先頭に//をつけてコメント化します(IPv6)
  //listen-on-v6 port 53 { ::1; };

  ※listen-on/listen-on-v6をコメント化する事で全ての問い合わせ元IPアドレスの制限がなくなり、かつランダムなポートで待ち受け可になりDNSキャッシュポイズニング対策になります。

  bindのバージョンを非表示化する為に追加します
  version “unknown”;

  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”;

  // Those options should be used carefully because they disable port
  // randomization
  // query-source port 53;
  // query-source-v6 port 53;

  名前解決の問い合わせ可能なホストを指定できます。ここではローカルホストおよびローカルネットワークからの問い合わせを許可します
  allow-query { localhost; localnets;};

  ゾーン転送可能なホスト(セカンダリサーバ)を指定できます。ここではスレーブサーバはありませんので全ホスト転送不許可とします
  allow-transfer { none; };

  外部のDNSサーバに問い合わせを転送する場合に指定します。契約しているプロバイダのプライマリDNSとセカンダリDNSのIPアドレスを指定します(IPアドレスは各自DNSサーバのIPアドレスを入力の事)
  forwarders { xxx.xxx.xxx.xxx; xxx.xxx.xxx.xxx; };
};

DNSサーバへrndcと呼ばれるツールでアクセスを行うための設定を行います。rndcを使うとbindの機動・停止などを行うことが可能です
controls {
  inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};

include “/etc/rndc.key”;

ログに関するオプションを指定できます。ここではログファイルに日時、メッセージのカテゴリ、メッセージの重要度を出力するよう設定を追加します
logging {
  channel default_debug {
    file “data/named.run”;
    severity dynamic;
    print-severity yes;
    print-category yes;
    print-time yes;

  };
};

ローカルホストで有効なゾーンの設定を行います。
view localhost_resolver {
  match-clients { localhost; };
  match-destinations { localhost; };
  recursion yes;
  include “/etc/named.rfc1912.zones”;
  include “/var/named/sa-sa-ki.local.zones”;(※1)
};
ローカルネットワークで有効なゾーンの設定を行います。
view internal {
  match-clients { localnets; };
  match-destinations { localnets; };
  recursion yes;
(※2)
  include “/etc/named.rfc1912.zones”;
  include “/var/named/sa-sa-ki.local.zones”;
(※1)
};

外部から有効なゾーンの設定を行います。
view external {
  match-clients { any; };
  match-destinations { any; };
  recursion no;(※2)
  include “/var/named/sa-sa-ki.jp.zones”;(※1)
};

内容を保存しviエディタを終了します

(※1 )この後の手順で作成するファイルですのでひとまず指定してください
(※2)再帰問い合わせの許可、不許可の設定します。ローカルホストやローカルネットワークでは許可を外部は不許可とします
「再帰問い合わせ」の説明はScanNetSecurity – 現役ペンテスト技術者が選ぶ 使えるセキュリティツール(19) 「dig」 を参照の事

ゾーンファイル指定用のファイルを作成します。

ローカルホスト・ローカルネットワークのゾーンファイル指定用のファイルを作成します
[root@centos ~]# vi /var/named/sa-sa-ki.local.zones
viエディタが起動するのでゾーンファイル指定用のファイルを作成します
//内部正引き
zone “sa-sa-ki.jp” {
  type master;
  file “sa-sa-ki.local”;
};
//内部逆引き
zone “0.168.192.in-addr.arpa” {
  type master;
  file “0.168.192.in-addr.arpa.db”;
};

内容を保存しviエディタを終了します

外部のゾーンファイル指定用のファイルを作成します
[root@centos ~]# vi /var/named/sa-sa-ki.jp.zones
viエディタが起動するのでゾーンファイル指定用のファイルを作成します
//外部正引き
zone “sa-sa-ki.jp” {
  type master;
  file “sa-sa-ki.jp”;
  allow-query { any; };
};
//外部逆引き
zone “104.189.210.in-addr.arpa” {
  type master;
  file “104.189.210.in-addr.arpa.db”;
  allow-query { any; };
};

内容を保存しviエディタを終了します

ゾーンファイルを作成します。

ローカルホスト・ローカルネットワークの正引き(ドメイン名→IPアドレス)ゾーンファイルをします
[root@centos ~]# vi /var/named/sa-sa-ki.local
viエディタが起動するのでゾーンファイルを作成します
$TTL 86400(※1)
@   IN   SOA   sa-sa-ki.jp.(※2) centos.sa-sa-ki.jp.(※3) (
                   2009032301
(※4) ; Serial
                   3600
(※5) ; Refresh
                   900
(※6) ; Retry
                   604800
(※7) ; Expire
                   86400
(※8) ) ; Minimum
      IN   NS    ns.sa-sa-ki.jp.
(※9)
      IN   MX  10 mail.sa-sa-ki.jp.(※10)
@      IN   A    192.168.0.20(※11)
winxp    IN   A    192.168.0.101
winvista  IN   A    192.168.0.102
leopard   IN   A    192.168.0.103
ubuntu   IN   A    192.168.0.104
centos   IN   CNAME  sa-sa-ki.jp.
(※12)
ns     IN   CNAME  sa-sa-ki.jp.
mail    IN   CNAME  sa-sa-ki.jp.
www    IN    CNAME  sa-sa-ki.jp.

内容を保存しviエディタを終了します
(※1)外部のネームサーバーが自分のドメイン情報を参照してキャッシュ可能な時間(単位は秒)
(※2)ネームサーバーの名前
(※3)ドメインの管理者のメールアドレス(@は.に置き換えて記載する)
(※4)バージョン番号で年月日+シーケンス番号(YYYYMMDDnn)を指定します。ゾーンファイルを変更する場合は変更した年月日+シーケンス番号を一つ繰り上げます
・(※5)〜(※7)の設定はセカンダリネームサーバーがプライマリネームサーバーから取得したゾーン情報の扱いについて指定します
(※5)ゾーン情報をリフレッシュするまでの時間(単位は秒)
(※6)Refreshでゾーン情報が更新できなかった場合のリトライする時間(単位は秒)
(※7)ゾーン情報がリフレッシュできない状態が続いた場合、セカンダリネームサーバーが持っているデータを利用する時間(単位は秒)
(※8)存在しないドメイン名をキャッシュする時間(単位は秒)
(※9)NSレコードといってDNSサーバーを指定します。名前の後ろには.を付けます
(※10)MXレコードといってメールの転送先を指定します
(※11)Aレコードといってホスト名からIPアドレスへ変換する為の指定をします。@の場合ネームサーバー(※2)とイコールになります。
(※12)CNAMEレコードといってホスト名からIPアドレスへ変換する為のエイリアスを指定します。

ローカルホスト・ローカルネットワークの逆引き(IPアドレス→ドメイン名)ゾーンファイルをします
[root@centos ~]# vi /var/named/0.168.192.in-addr.arpa.db
viエディタが起動するのでゾーンファイルを作成します
$TTL 86400
@   IN   SOA   sa-sa-ki.jp. centos.sa-sa-ki.jp. (
                   2009032301 ; Serial
                   3600 ; Refresh
                   900 ; Retry
                   604800 ; Expire
                   86400 ) ; Minimum
    IN   NS     ns.sa-sa-ki.jp.
20   IN   PTR     sa-sa-ki.jp.
(※1)
101   IN   PTR     winxp.
102   IN   PTR     winvista.
103   IN   PTR     leopard.
104   IN   PTR     ubuntu.

内容を保存しviエディタを終了します
(※11)PTRレコードといってIPアドレスからホスト名へ変換する為の指定をします。

外部の正引き(ドメイン名→IPアドレス)ゾーンファイルをします
[root@centos ~]# vi /var/named/sa-sa-ki.jp
viエディタが起動するのでゾーンファイルを作成します
$TTL 86400
@   IN   SOA   sa-sa-ki.jp. centos.sa-sa-ki.jp. (
                   2009032301 ; Serial
                   3600 ; Refresh
                   900 ; Retry
                   604800 ; Expire
                   86400 ) ; Minimum
    IN   NS    ns.sa-sa-ki.jp.
    IN   MX 10  sa-sa-ki.jp.
@    IN   A    210.189.104.64
ns    IN   A    210.189.104.64
www   IN    A    210.189.104.64
mail   IN   A    210.189.104.64

内容を保存しviエディタを終了します

外部の逆引き(IPアドレス→ドメイン名)ゾーンファイルをします
[root@centos ~]# vi /var/named/104.189.210.in-addr.arpa.db
viエディタが起動するのでゾーンファイルを作成します
$TTL 86400
@   IN   SOA   sa-sa-ki.jp. centos.sa-sa-ki.jp. (
                   2009032301 ; Serial
                   3600 ; Refresh
                   900 ; Retry
                   604800 ; Expire
                   86400 ) ; Minimum
    IN   NS     ns.sa-sa-ki.jp.
64   IN   PTR     sa-sa-ki.jp.

内容を保存しviエディタを終了します

設定ファイルの所有者を変更する
[root@centos ~]# chown named.named /var/named/*
[root@centos ~]# ls -l /var/named
合計 136
-rw-r—– 1 named named 611 3月 24 19:29 0.168.192.in-addr.arpa.db
-rw-r—– 1 named named 441 3月 24 19:29 104.189.210.in-addr.arpa.db
drwxr-x— 4 named named 4096 1月 30 12:11 chroot
drwxrwx— 2 named named 4096 2月 24 18:53 data
-rw-rw-r– 1 named named 198 1月 9 11:40 localdomain.zone
-rw-rw-r– 1 named named 195 1月 9 11:40 localhost.zone
-rw-rw-r– 1 named named 427 1月 9 11:40 named.broadcast
-rw-r—– 1 named named 1593 3月 24 18:57 named.ca
-rw-rw-r– 1 named named 424 1月 9 11:40 named.ip6.local
-rw-rw-r– 1 named named 426 1月 9 11:40 named.local
-rw-r–r– 1 named named 2878 3月 24 11:21 named.root
-rw-rw-r– 1 named named 427 1月 9 11:40 named.zero
-rw-r—– 1 named named 619 3月 24 19:29 sa-sa-ki.jp
-rw-r–r– 1 named named 320 3月 24 17:22 sa-sa-ki.jp.zones
-rw-r—– 1 named named 843 3月 24 19:29 sa-sa-ki.local
-rw-r–r– 1 named named 175 3月 24 09:49 sa-sa-ki.local.zones
drwxrwx— 2 named named 4096 1月 9 11:40 slaves

設定ファイルの所有者が[named]に変更されている事を確認する

ルートゾーンファイル(世界に13台しかないトップレベルドメインを管理するDNSサーバーのIPアドレスを管理している)を最新にする

[root@centos ~]# dig . ns @198.41.0.4 > /var/named/named.ca

参照DNSサーバーをサーバー自身に変更する

参照DNSサーバーを変更します
[root@centos ~]# vi /etc/resolv.conf
viエディタが起動するので設定を以下の様に変更します
search sa-sa-ki.jp
nameserver 192.168.0.20

内容を保存しviエディタを終了します

DNSサーバーを外部公開する為に、CentOSのファイアウォールの設定を行います。

[root@centos ~]# vi /etc/sysconfig/iptables
viエディタが起動するのでファイアウォールの設定をします
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT – [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp –icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp –dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp –dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp –dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
下記2行を追加してTCPとUDPの53番ポートを開放します
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m udp -p udp –dport 53 -j ACCEPT

-A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited
COMMIT
内容を保存しviエディタを終了します

設定内容を反映します
[root@centos ~]# /etc/rc.d/init.d/iptables restart
ファイアウォールルールを適用中: [ OK ]
チェインポリシーを ACCEPT に設定中filter [ OK ]
iptables モジュールを取り外し中 [ OK ]
iptables ファイアウォールルールを適用中: [ OK ]
iptables モジュールを読み込み中ip_conntrack_netbios_ns [ OK ]

DNSサーバーを外部公開する為に、ルータの設定を変更してTCPとUDPの53番ポートを開放します。
開放方法はルータの設定手順に従って実施してください。

サービスの起動と自動起動の設定をします。

bindを起動します
[root@centos ~]# /etc/rc.d/init.d/named start
named を起動中: [ OK ]

OS再起動時にbindを自動起動するようにします
[root@centos ~]# chkconfig named on
[root@centos ~]# chkconfig –list named
named 0:off 1:off 2:on 3:on 4:on 5:on 6:off

ひとまずDNSサーバーの外部公開まで完了しました。
次回は動作検証とDNSキャッシュポイズニングの脆弱性の検証を行いたいと思います。

■ 参考サイト ■
Manpage of NAMED.CONF
DNSサーバー構築(BIND) – CentOSで自宅サーバー構築
はじめての自宅サーバ構築 Fedora/CentOS – DNSサーバの構築(bind)
「BIND」の設定
CentOS 5.2でBIND – K blog
BINDサーバー(ネームサーバー)をインストールして、名前解決を行おう。
DNSサーバ -BIND-
@IT:DNS Tips:SOAレコードには何が記述されている?

————————————————————————————————–
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 導入を検討する

  • Search:
  • flashcastとは?

    東京を中心に、現在フリーランスとして活動しているITエンジニア、および、かつてフリーランスとして活動していた起業家達が立ち上げたコミュニティーです。

    みんなで集まって面白いことをやろう!形に残そう!ということで、ブログをはじめました。

    技術情報や、フリーエンジニアに役立つ情報などを、ご紹介できたらと思っています。

    お問い合わせ:
    info@flashcast.jp
  • カレンダー

    2010年7月
    日曜日 月曜日 火曜日 水曜日 木曜日 金曜日 土曜日
    « 6月    
     123
    45678910
    11121314151617
    18192021222324
    25262728293031
  • メンバー紹介

    もじゃもじゃ
    flashcastのリーダー

    3年ほどフリーのITエンジニアとして活動。現在は、社員2名の株式会社を経営しています。

    一攫千金を夢見る野心家です。

    ライブキャスト

    yasu
    ダイバー

    自宅サーバーでホームページを作り始めました。

    少しずつ記事を増やしていきますので足を運んでください。

    よろしくお願いします。

    sa-sa-ki.jp

    のら
    たびびと

    ねこ好きに悪人はいなーいっ!!

    バイクや車も好きです。

    めぐ
    デザイナーのたまご

    音楽とデザインとお酒をこよなく愛する永遠のダイエッター。

    現在ペンタブレットでイラストを勉強中。

    Hiro
    コンサル

    PMやSEの案件を業務委託で請けることが多いですが、小規模案件も受託でやっています。

    得意な分野はマイクロソフト製品や関連技術によるシステム構築です。

    KEI
    取締役の風格

    最年少なのに、メンバーで1番の貫禄の持ち主!?

    C#や.netなどサーバ側の開発が得意。

    ろっきー
    美食家★パパ

    自分にとっての息抜きは、ドライブして温泉に入って、美味しいご飯を食べる事。

    ココロとカラダのリフレッシュを大切にし、日々の仕事に励む一児の父親です。

    郵便番号検索

    my-hobby

    とのさま
    げーむのおうさま

    大人なのに好きなことしかやらない駄目人間。

    Web系が得意、アクセスは苦手><

    tonosamart.com

    セクレタリアト
    ギャンブラー

    フリーランス時代は仲間の現場を探すことが多く、それをきっかけに会社を設立。

    現在はSI業に特化せず、他の業種にも興味を持ち始めています。

    メドレー株式会社

  • 広告