カスタム検索
このエントリーをはてなブックマークに追加
tomo.gif (1144 ツバツイツト)line.gif (927 ツバツイツト)line.gif (927 ツバツイツト)line.gif (927 ツバツイツト)To previous pageTo home pageMailing to me

BINDの小技

Modified: 8 August 2006, 10 February 2006


セキュリティ設定の確認項目 - 安全に公開するために
サーバーの移設時に切り替わりを早くする工夫

スレーブサーバーを設定する方法
ゾーン転送の可否を確認する方法

"rndc"の認証を設定する方法

ルートサーバーの情報を見る方法
Aレコードを問い合わせる方法
設定ファイルをチェックする方法

キャッシュのリフレッシュ時間を確認する方法
キャッシュの時間を設定する方法


設定ファイルをチェックする方法 

以下のようにチェックコマンドを実行し、なにも出なければOKです。

# named-checkconf
#

セキュリティ設定の確認項目 

再起問い合わせの禁止

公開サーバでは、攻撃を受けないために、"zone"や"view"の中で、再起問い合わせを禁止します。
ローカルサーバーでは、有効にしておいたほうが便利です。

          :
    recursion no;
          :


ゾーン転送の禁止

公開サーバでは、情報流出を防止するために、"zone"や"view"の中で、無効にするか、あるいは、ゾーン転送可能なサーバーを明示します。

          :
    allow-transfer { none; };
          :


"rndc"の制限

ネームサーバーを起動したままコントロールする"rndc"は、認証キーを設定して実行を制限します。

controls {
        inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};

キーは、この"named.conf"と"rndc.conf"の両方で使うため、"include" で取り込んで使います。

include "/etc/rndc.key";

キーファイル("/etc/rndc.key")以下のように指定します。

key "rndckey" {
        algorithm       hmac-md5;
        secret "TCoY88eeWTX0gWWaSJcGWigPkMcMmrpMHEzNTHO7V2yGMmGakuLNZquDvRfG";
};

最後に、上記設定に対応した "rndc" の設定ファイル("/etc/rndc.conf")の設定が必要です。

options {
        default-server  localhost;
        default-key     "rndckey";
};

server localhost {
        key     "rndckey";
};

include "/etc/rndc.key";

 CentOS4.2では、なにもしなくてもインストール時に設定してありました。


NSとMXの確認

NSレコードと、MXレコードの右側には、CNAME で定義したものは使ってはいけないようです。

使われていないことを確認しましょう。


"rndc"の認証を設定する方法 

キーの生成と、"named.conf"と"rndc.conf" の設定情報の両方の設定ファイルを生成してくれるコマンドが用意されています。

前半を切り取って、"/etc/rndc.conf" で保存します。

後半を切り取って、コメントをはずして、"/etc/named.conf" に加えます。

# rndc-confgen -b 512
# Start of rndc.conf
key "rndckey" {
        algorithm hmac-md5;
        secret "mafijUPA/qW61nc3xl0Z8r5SylE+lcBenOD/pSv7RqmBtozu1FhyRNW+lBlO7h2qQ6SSAT6gFE9hfzq7v60YdA==";
};

options {
        default-key "rndckey";
        default-server 127.0.0.1;
        default-port 953;
};
# End of rndc.conf

# Use with the following in named.conf, adjusting the allow list as needed:
# key "rndckey" {
#       algorithm hmac-md5;
#       secret "mafijUPA/qW61nc3xl0Z8r5SylE+lcBenOD/pSv7RqmBtozu1FhyRNW+lBlO7h2qQ6SSAT6gFE9hfzq7v60YdA==";
# };
# 
# controls {
#       inet 127.0.0.1 port 953
#               allow { 127.0.0.1; } keys { "rndckey"; };
# };
# End of named.conf
# 

サーバーの移設時に切り替わりを早くする工夫 

一時的にTTLを短くする

サーバーを移設すると、IPアドレスが変わるので、切り替わるまでサービスをとめないために、しばらくの間、2つのサーバーを稼動させておく必要があります。

その時間は、対象のサーバーのドメインに対するキャッシュ時間(TTL)です。

そこで、移設前の十分前(設定しているTTLの日数以前)に、TTLの設定を徐々に短くしておきます。

すると、切り替わりが早くなります。切り替わったら、再び、通常の値に戻します。


キャッシュのリフレッシュ時間を確認する方法 

以下のように目的のネームサーバーとドメインを

# dig @192.168.0.85 tomo.ac A

      :

;; QUESTION SECTION:
;tomo.ac.                       IN      A

;; ANSWER SECTION:
tomo.ac.                259197  IN      A       203.140.77.20

;; AUTHORITY SECTION:
tomo.ac.                259197  IN      NS      ns1.eonet.ne.jp.
tomo.ac.                259197  IN      NS      ns2.asahi-net.or.jp.

      :
# 

キャッシュの時間を設定する方法 

キャッシュのTTL(Time To Live)は、ゾーンファイルで個別に指定します。

ひとつのゾーンファイルのデフォルトの設定("$TTL 3D")が可能で、Aレコードで個別に設定("86400")もできます。

$TTL    3D
tomo.ac. IN SOA ns1.tomo.ac. info.ns1.tomo.ac. (
                        2006021000      ; serial
                        28800           ; refresh
                        14400           ; retry
                        3600000         ; expiry
                        38400 )         ; minimum

tomo.ac.                IN NS           ns1.tomo.ac.
tomo.ac.                IN NS           ns2.tomo.ac.

www.tomo.ac.            IN A            203.140.75.11
www2.tomo.ac.    86400  IN A            203.140.75.11

専門書によると、3日から1週間程度に設定が適当と書かれていますが、変更することがある場合、1日ぐらいがいいように思います。

サーバの移設の際には、もともとの設定時間より前の日以前に、短く設定しておけば、切り替わるのを早くすることができます。


スレーブサーバーを設定する方法 

スレーブサーバー("192.168.0.12")は、マスターサーバー("192.168.0.11")からゾーン情報を転送してもらいます。

そのために、マスターサーバーには、スレーブサーバーからの要求を受けたり、スレーブサーバーへ通知するための設定が必要です。スレーブサーバーには、マスターサーバーへの要求のための設定が必要です。


スレーブサーバー
("192.168.0.12")の設定

ゾーンファイルの定義を以下のようにします。

zone "tomo.ac" IN {
        type slave;
        masters { 192.168.0.11; };
        file "tomo.ac.zone";
};

設定のポイントは、マスターサーバーのIPアドレスの指定("masters { 192.168.0.11; };")です。ゾーン転送を要求するために必要です。


スレーブサーバー
("192.168.0.12")のリフレッシュ時間の確認

"SOA"の2番目の設定が、リフレッシュ時間の設定です。"28800"は、8時間を示します。

tomo.ac. IN SOA ns1.tomo.ac. info.ns1.tomo.ac. (
                        2006021000      ; serial
                        28800           ; refresh
                        14400           ; retry
                        3600000         ; expiry
                        38400 )         ; minimum


マスターサーバー("192.168.0.11")の設定

zone "tomo.ac" IN {
    type master;
    also-notify    { 192.168.0.12; };
    allow-transfer { 192.168.0.12; };
    file "tomo.ac";
};

設定のポイントは、スレーブサーバーからのゾーン情報転送要求を受け付ける設定("allow-transfer { 192.168.0.12; };")と、要求がなくても変更があった場合に通知するための設定("also-notify { 192.168.0.12; };")が必要です。


仮のゾーンファイルを作成

スレーブ側のゾーンファイルはマスターから転送されて更新されますが、転送されるまでの間利用できませんので、マスターからコピーしておいて置きます。

# chown named:named tomo.ac.zone

作成後、更新を許可するためにオーナーを、"named" に設定し、アクセス権を、"644" に設定します。


ゾーン転送の可否を確認する方法 

セカンダリを設定したらゾーン転送が可能かどうか確認しましょう。

セカンダリDNSを設定しているサーバ上で、以下のコマンドを実行して確認できます。

プライマリDNS("192.168.0.53")を指定して、対象のドメイン("tomo.ac")を指定して以下のように実行します。

# dig @192.168.0.53 tomo.ac axfr

; <<>> DiG 9.2.4 <<>> @192.168.0.53 tomo.ac axfr
;; global options:  printcmd
tomo.ac.                3600    IN      SOA     ns1.tomo.ac. info.ns1.tomo.ac. 2006080200 3600 14400 3600000 38400
tomo.ac.                3600    IN      NS      ns1.tomo.ac.
tomo.ac.                3600    IN      NS      ns2.tomo.ac.
tomo.ac.                3600    IN      MX      10 mail.tomo.ac.
tomo.ac.                3600    IN      A       103.140.77.26
cf.tomo.ac.             3600    IN      A       103.140.77.20
cgi.tomo.ac.            3600    IN      A       103.140.77.20
mail.tomo.ac.           3600    IN      A       103.140.77.20
nt4.tomo.ac.            3600    IN      A       103.140.77.26
www.tomo.ac.            3600    IN      A       103.140.77.26
tomo.ac.                3600    IN      SOA     ns1.tomo.ac. info.ns1.tomo.ac. 2006080200 3600 14400 3600000 38400
;; Query time: 9 msec
;; SERVER: 192.168.0.53#53(192.168.0.53)
;; WHEN: Tue Aug  8 15:26:52 2006
;; XFR size: 11 records
#

上記のように、エラーが出ず、ゾーン情報が表示されればゾーン転送可能であることを示します。


Aレコードを問い合わせる方法 

# dig @ns1.eonet.ne.jp tomo.no-ip.com A

; <<>> DiG 9.2.4 <<>> @ns1.eonet.ne.jp tomo.no-ip.com A
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34884
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4

;; QUESTION SECTION:
;tomo.no-ip.com.                        IN      A

;; ANSWER SECTION:
tomo.no-ip.com.         60      IN      A       60.56.38.241

;; AUTHORITY SECTION:
no-ip.com.              12152   IN      NS      nf2.no-ip.com.
no-ip.com.              12152   IN      NS      nf3.no-ip.com.
no-ip.com.              12152   IN      NS      nf4.no-ip.com.
no-ip.com.              12152   IN      NS      nf1.no-ip.com.

;; ADDITIONAL SECTION:
nf2.no-ip.com.          84183   IN      A       216.66.37.12
nf3.no-ip.com.          84183   IN      A       70.86.196.66
nf4.no-ip.com.          67450   IN      A       63.208.74.227
nf1.no-ip.com.          7590    IN      A       204.16.252.8

;; Query time: 4312 msec
;; SERVER: 61.122.241.179#53(ns1.eonet.ne.jp)
;; WHEN: Wed Feb  8 13:20:38 2006
;; MSG SIZE  rcvd: 198

# 

ルートサーバーの情報を見る方法 

公開されているDNSサーバを指定した、"dig" コマンドで確認できます。
2006年2月10日時点で、13個のサーバーが稼動しているようです。

# dig @ns1.eonet.ne.jp

; <<>> DiG 9.2.4 <<>> @ns1.eonet.ne.jp
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37147
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13

;; QUESTION SECTION:
;.                              IN      NS

;; ANSWER SECTION:
.                       178903  IN      NS      G.ROOT-SERVERS.NET.
.                       178903  IN      NS      H.ROOT-SERVERS.NET.
.                       178903  IN      NS      I.ROOT-SERVERS.NET.
.                       178903  IN      NS      J.ROOT-SERVERS.NET.
.                       178903  IN      NS      K.ROOT-SERVERS.NET.
.                       178903  IN      NS      L.ROOT-SERVERS.NET.
.                       178903  IN      NS      M.ROOT-SERVERS.NET.
.                       178903  IN      NS      A.ROOT-SERVERS.NET.
.                       178903  IN      NS      B.ROOT-SERVERS.NET.
.                       178903  IN      NS      C.ROOT-SERVERS.NET.
.                       178903  IN      NS      D.ROOT-SERVERS.NET.
.                       178903  IN      NS      E.ROOT-SERVERS.NET.
.                       178903  IN      NS      F.ROOT-SERVERS.NET.

;; ADDITIONAL SECTION:
G.ROOT-SERVERS.NET.     265303  IN      A       192.112.36.4
H.ROOT-SERVERS.NET.     265303  IN      A       128.63.2.53
I.ROOT-SERVERS.NET.     265303  IN      A       192.36.148.17
J.ROOT-SERVERS.NET.     265303  IN      A       192.58.128.30
K.ROOT-SERVERS.NET.     265303  IN      A       193.0.14.129
L.ROOT-SERVERS.NET.     265303  IN      A       198.32.64.12
M.ROOT-SERVERS.NET.     265303  IN      A       202.12.27.33
A.ROOT-SERVERS.NET.     265303  IN      A       198.41.0.4
B.ROOT-SERVERS.NET.     265303  IN      A       192.228.79.201
C.ROOT-SERVERS.NET.     265303  IN      A       192.33.4.12
D.ROOT-SERVERS.NET.     265303  IN      A       128.8.10.90
E.ROOT-SERVERS.NET.     265303  IN      A       192.203.230.10
F.ROOT-SERVERS.NET.     265303  IN      A       192.5.5.241

;; Query time: 140 msec
;; SERVER: 61.122.241.179#53(ns1.eonet.ne.jp)
;; WHEN: Wed Feb  8 13:13:31 2006
;; MSG SIZE  rcvd: 436

# 

To previous pageTo home pageMailing to meJump to Top of pageline.gif (927 ツバツイツト)line.gif (927 ツバツイツト)tomo.gif (1144 ツバツイツト)
カスタム検索



このエントリーをはてなブックマークに追加