goo blog サービス終了のお知らせ 

Syslog of Sysmin

なんちゃってシステム管理人の仕事をすることになったSysminのmessagesです。
情報セキュアドを受験すっかな。

BIND入門 CHAPTER_9

2004-11-01 00:28:01 | BIND入門
通常DNSの場合は、不特定多数のアクセス要求を受け付けるが、
アクセス制限を行いゾーン転送、問い合わせユーザ、動的登録の制限などが
可能となります。

■IPアドレスの指定
○通常、named.confの設定で
 マスタサーバやフォワーダなどをIPアドレスで指定します。

==example==================
options {
  forwarders{
       192.168.1.2;
       192.168.1.3;
       };
};

zone "second.com" in {
  type slave;
  master 192.168.1.2;
};


○ネットワークアドレスでアクセス制限を指定する場合

==example==================
zone "first.com" in {
  type master;
  file "first.db";
  allow-query {
      192.168.2.128/25:
      10.1.1/24:
  }
};

■アクセスコントロールリストに名前を付ける
アクセスコンとロースリストへ作成し名前をつけ
アクセス制御設定の部分に、その名前を適用する方法

以下のアクセスコントロール名は、namedプログラムに予約されている名前です。

・None:全てのIPアドレスと一致しないという指定

・Any:任意のアドレスとマッチすることを指定

・Localhost:ネームサーバ自身を指定

・Localnet:ネームサーバのネットワークアドレスを指定

==example==================
acl "acl-list-1"{
      192.168.2.128/25:
      10.1.1/24:
};

zone "first.com" in {
  type master;
  file "first.db";
  allow-query {
      "acl-list-1"
  }
};

■ソーン転送の制限

==example:指定のIPアドレスへのみ許可==
zone "first.com" in {
  type master;
  file "first.db";
  allow-transfer {
      192.168.1.3;
  }
};


==example:ソーン転送を行わない設定==
zone "first.com" in {
  type slave;
  masters 192.168.1.2;
  allow-transfer {
      None;
  }
};

■問い合わせの制限
閉域ネットワーク内でのみの使用など
特定のネットワークからの名前解決に応答するように設定する場合

==example==================
zone "first.com" in {
  type master;
  file "first.db";
  allow-query {
      192.168.1/24;
  }
};

■動的登録の制限

==example==================
zone "first.com" in {
  type master;
  file "first.db";
  allow-update{
     192.168.1/24;
  };
};

いやー何とか9章まできました!
10章は、設定事例なので特にまとめません。
Sysminのまとめがほとんど設定事例になっちゃってるか?

BIND入門 CHAPTER_8

2004-10-31 00:00:25 | BIND入門
■ダイナミックDNS
DHCPなどの動的にアドレスが割り振られる端末にたしての名前解決の方法として
ダイナミックDNSがあります。
これは、ゾーンデータベースを動的に登録、削除を行う機能でBIND8.xから実装されています。

デフォルトでは、動的更新が禁止されれているの使用する際の有効にします。
allow-updateを指定します。
また、動的登録データへのアクセスが頻繁に発生する場合は、
TTLを短くしキャッシュへ保持されている時間を短くする等が必要となる場合があります。

==example==================
zone "first.com" in {
  type master;
  file "first.db";
  allow-update{
     10.1.1.11;
     10.1.1.12;
     10.1.1.13;
     10.1.1.14;
     10.1.1.15;
  };
};

■nsupdate
ネームサーバへ動的登録の確認や、この機能をつかった手動登録を行うための
コマンドがnsupdateになります。

○条件の指定
以下のようなサブコマンドで条件を指定します。
・prereq
 yxrrset
 nxrrset
 yxdomain
 nxdomain

先頭文字 y:yes n:no
2番目の文字 x:存在すると言う意味らしい
3番目の文字 rrset:リソースレコードセット domain:ドメイン名

・prereq yxrrset ドメイン名 [クラス] タイプ [パラメータ]
 指定したドメイン名、タイプ、パラメータレコードが存在する場合に
 以降の更新コマンドが実行されます。

・prereq nxrrset ドメイン名 [クラス] タイプ
 指定したドメイン名、タイプのレコードが存在しない場合に
 以降の更新コマンドを実行します。

・prereq yxdomain ドメイン名
 指定したドメイン名が存在する場合に、以降の更新コマンドを実行します。

・prereq nxdomain ドメイン名
 指定したドメイン名が存在しない場合に、以降の更新コマンドを実行します。

○データの更新
以下のようなサブコマンドを使用します。

・update add ドメイン名 TTL [クラス] タイプ パラメータ
 add以降の記述がソーンデータベースへ追加されます。
 TTLは、明示的に指定しなければなりません。

・update delete ドメイン名 [クラス] [タイプ] [パラメータ]
 delete以降の記述に一致したレコードを削除します。

BIND入門 CHAPTER_7

2004-10-29 01:23:08 | BIND入門
ゾーンデータベースで使用するレコードについて

■CNAMEレコード
既存のレコードを別名で参照できるようにするレコードです。
記述の仕方は以下です。

(名前) IN CNAME (FQDN名)

==example==================
www    IN CNAME srv.first.com
srv      A   192.168.1.5

■MXレコード
メールサーバがメールの送信先ドメインのメールサーバを検索した際に
返答されるサーバホストを記述します。
返答されたホストのIPアドレスに対してメールを送信します。

==example==================
     IN MX mail.first.com

■SRVレコード
使用するサービスの指定により、DNSが適切なサーバ情報を
返すようにするためのレコードで3つのパラメータと1つの名前を指定できます。

①優先順位
 数値が小さいほど、優先的に使用され、優先度順に接続が行われます。

②ウエイト
 優先度が同じ場合にウエイトで指定する比率に従って処理が配分されます。

③ポート
 サーバが使用するポート番号を指定します。

④ターゲット名
 サービスを提供するホストのドメイン名をFQDNで指定します。

==example==================
ftp.tcp  IN SRV 1 10 21 ftp1.first.com
ftp.tcp  IN SRV 3 10 21 ftp2.first.com
ftp.tcp  IN SRV 5 10 21 ftp3.first.com

BIND入門 CHAPTER_6

2004-10-28 01:20:17 | BIND入門
逆引きの設定について書かれている章です。

■逆引きデータベース
「arpa.」というトップレベルドメイン名を使用します。

○上位(ISPなど)のネームサーバの設定(192.168.x.xのアドレス)は以下のような感じになります。
(アドレスを逆に記述したような感じですね。)

named.conf
==example==================
zone "168.192.in-addr.arpa" {
type master;
file "168.192.db";
};

ゾーンデータベース
==example==================
@  IN  SOA  ns.isp.ne.jp. postmaseter.isp.ne.jp. (
         200501011 ; シリアル番号
         10800   ; リフレッシュ間隔
         3600   ; 再試行時間
         604800  ; 最大有効期間
         86400 ) ; 生存時間

;ネームサーバレコード
         IN NS  ns.isp.ne.jp.
;トップレベルドメインの委任
1   86400   IN NS ns.first.com. ;192.168.1.xxのアドレスについて


○委任先のネームサーバでのnamed.confの設定
==example==================
zone "1.168.192.in-addr.arpa" {
type master;
file "1.168.192.db";
};


○ゾーンデータベース
 レコード種別がPTRになります。
==example==================
@  IN  SOA  ns.first.com. postmaseter.first.com. (
         200501011 ; シリアル番号
         10800   ; リフレッシュ間隔
         3600   ; 再試行時間
         604800  ; 最大有効期間
         86400 ) ; 生存時間

;ネームサーバレコード
        IN NS  ns.first.com.

;逆引きレコード
1   IN PTR router.first.com.
2   IN PTR ns.first.com.

○ループバックアドレスに対しても設定をします。
==example==================
zone "0.0.127.in-addr.arpa" {
type master;
file "0.0.127";
};

○ループバックアドレスに対してのゾーンデータベース
==example==================
@  IN  SOA  localhost. postmaseter.localhost. (
         200501011 ; シリアル番号
         10800   ; リフレッシュ間隔
         3600   ; 再試行時間
         604800  ; 最大有効期間
         86400 ) ; 生存時間

;ネームサーバレコード
        IN NS  localhost.

;逆引きレコード
1   IN PTR localhost.

■半端なネットマスクの場合の逆引き設定
上位ネームサーバでの委任の設定をアドレスごとに記述します。
アドレスごとにネームサーバを指定するので設定が面倒ですね。

==example==================
;トップレベルドメインの委任
1   86400   IN NS ns.second.com. ;192.168.2.1のアドレスについて
2   86400   IN NS ns.second.com.
3   86400   IN NS ns.second.com.
4   86400   IN NS ns.second.com.
5   86400   IN NS ns.second.com.
  ・
  ・
  ・

BIND入門 CHAPTER_5

2004-10-27 23:29:02 | BIND入門
Sysminにとっては、この章あたりからかなり役に立つ内容です。

■管理の委任

ある程度の規模のなると単一のドメインとして管理するよりもサブドメインを作成し
その単位でかんりする方が、管理や運用が都合よくなります。

で、first.comドメインにサブドメインとして「zaku」と言うサブドメインを
作成して、それぞれの管理を委任した場合の例です。

①ns.first.comのゾーンデータベースに「zaku」サブドメインのネームサーバを
 NSレコードで指定します。
②zaku.first.comのネームサーバをzaku-ns.zaku.first.comとした場合
 以下のように「zaku.first.com」については、192.168.2.1のネームサーバへ
 問い合わせを行うように設定します。

==example==================
zaku  86400 IN NS zaku-ns.zaku.first.com.

;ホストのレコード
zaku-ns    NI A 192.168.2.2

(名前)と(クラス)の間の数字は、TTLです。


■閉域ネットワークのDNS

閉域ネットワークで管理されているDNSへ、管理しているドメインより
上位のドメイン名についての名前解決を行った場合の問題について

○管理ドメインより上位のドメイン名の解決があった場合
1.ルートドメインへ問い合わせを行います。
(閉域ネットワークの場合、デフォルトのルートドメインへはアクセスできません。)
2.タイムアウトになるまで待ちます。
(時間をムダにしてしまいます。)

このような場合の対策としてルートネームサーバのヒント情報を削除しておきます。

BIND入門 CHAPTER_4

2004-10-26 15:34:52 | BIND入門
んー!やっぱりまとめるの面倒ですね。
この章の後半にあったダンプとかは、省略!

■nsmed.conf
以下のような項目を定義します。

○options
・ネームサーバの動作モード
・ファイルのパス

○zone
・namedの管理するゾーン
・「・」はルートドメインを示す
・type:動作モード
・master:マスターサーバ
・slave:スレーブサーバ

○その他
・セキュリティ

==example==================
options {        //namedに適用するオプションの指定
};

zone "." in {      //ルートネームサーバの情報
  type hint;
  file "named.root";
};

zone "first.com" in {  //マスタサーバの設定
  type master;    //動作モードの設定
  file "first.db";    //データベースファイル
};

zone "second.com" in { //スレーブサーバの設定
  type slave;     //動作モードの設定
  master 192.168.1.2; // 名前はアドレスから決める
};

==example:回送サーバ設定==
options {
  forwarders{
       192.168.1.2
       192.168.1.3
       };
};

■データベースファイル
以下のような定義で記述します。
(名前) (クラス) (レコード) (パラメータ)

・名前:検索対象のドメイン名

・クラス:IN:Internetの意味で省略した場合、これになります。

・レコード:タイプを表します。

・パラメータ:レコードタイプによって決まります。

○SOA
ゾーンを定義し(名前)の部分には、FQDNのドメイン名が記述されます。
「@」で略記できます。

○NS:ネームサーバを指定します。

○A:ホストを示すアドレスを記述します。

○CNAME
(名前)に対して別名を記述します。
Aレコードて定義されているものでなめればなりません。

==example==================
@  IN  SOA  ns.first.com. postmaseter.first.com. (
         200501011 ; シリアル番号
         10800   ; リフレッシュ間隔
         3600   ; 再試行時間
         604800  ; 最大有効期間
         86400 ) ; 生存時間

;    ネームサーバレコード
        IN NS  ns.first.com.
        IN NS  ns.second.com.
;    ホストレコード
router     A   192.168.1.1
ns       A   192.168.1.2
ns2      A   192.168.1.3
www      A   192.168.1.4
mail      A   192.168.1.5

;     別名
ftp      CNAME www.first.com.

BIND入門 CHAPTER_3

2004-10-24 23:49:32 | BIND入門
んー!なんだか、もうまとめるのが面倒になってきたなぁ。
もう、やめようかと思ったけど、もうちょっとがんばるか・・

■BINDのプロセス
・named:ネームサーバプログラム
・named-xfer:ゾーン転送を行う場合に、必要に応じて実行されるサブプログラム

■設定ファイル
・named.conf:デフォルトでは、named.confとなっているが名前は任意
         動作モード、各種動作オプション、データベースファイルのパスなどを記述
・データベースファイル:named.confで指定したファイルで、実際の名前解決データベースを構成するファイル

■コマンドラインオプション
named (オプション)(設定ファイル)

以下3つのオプションは、指定したファイルをnamed.confの代わりに読み込みます。
・-b(設定ファイル)
・-c(設定ファイル)
・(設定ファイル)

・-d(デバックレベル):デバックモードをONにして、メッセージを出力させます。

・-p(ポート番号):他のネームサーバへの問い合わせの際のディスティネーションポートを指定します。

・-f:ネームサーバプロセスがフォアグランドで動作します。
  (バックグラウンドにならない)

・-q:受診した問い合わせについて情報を記述します。
  (QRYLOGを定義してコンパイルした場合)

・-r:再帰的な問い合わせを行わないように指定

・-u(ユーザ名):指定したユーザのプロセスとして動作させます。

・-g(グループ名):指定したグループのプロセスとして動作させます。

・-t(ディレクトリ):プロセス起動後、指定したディレクトリにchrootします。??

・-w(ディレクトリ):namedのワーキングディレクトリを指定します。

■シグナル
バックグラウンドで動作するnamedと対話するためのシグナルです。

・SIGHUP:設定ファイル、データベースファイルを再ロードします。

・SIGINT:現在のデータベースの内容、キャッシュの内容をnamed_dump.dbファイルへ出力します。

・SIGILL:統計情報データをnamed.statsファイルに出力します。

・SIGSYS:プロファイリング情報を出力します。
(プロファイリングオプションを有効にしてコンパイルした場合)

・SIGTERM:データベースファイルを出力して、終了します。

・SIGUSR1:デバックモードに切り替えます。
(デバックモードだった場合レベルが1上がります。)

・SIGUSR2:デバックモードを終了します。

・SIGWINCH:受信した問い合わせロギングをON/OFFに切り替えます。
(QRYLOGを定義してコンパイルした場合)

■ダンプファイル
namedプロセスにSIGINTシグナルを送信すると出力されます。
このファイルに含まれる情報には、以下のようなものがあります。

・プリロードされたヒント情報
・データベースファイルからロードしたデータ(マスタサーバの場合)
・マスタサーバからゾーン転送したデータ(スレーブサーバの場合)
・キャッシュデータ
・ネームサーバ、ダンプファイルについての各種情報

■各種サーバの動作

・マスタサーバ
 あるソーンを管轄するネームサーバでソーンデータベースをローカルに持ちます。

・スレーブサーバ
 マスタサーバからネットワーク経由でゾーン情報をコピーし、
 その内容を他のネームサーバやクライアントへ提供します。

・キャッシュサーバ
 他のネームサーバから受信した応答をキャッシュし、
 以後同じリクエストに対しキャッシュデータを返します。

・回送サーバ
 フォワーダとして動作するサーバです。

■再帰的、非再帰的な名前解決
・再帰的な名前解決:問い合わせを受けたネームサーバが上位のネームサーバへ問い合わせを行い
 最終的な結果をクライアントへ返す動作です。

・非再帰的な名前解決:自身が持たない情報の問い合わせに対しては、
 別のネームサーバの照会などを回答し、最終結果を返さない動作です。


なんだか、見ずれーな!

BIND入門 CHAPTER_2

2004-10-23 23:52:19 | BIND入門
ネームサーバの動作をnslookupコマンドで確認します。
以前、日経NETWORKの記事にnslookupのsetコマンドオプションの使い方が
載っていたのでまとめと実際にやってみたことがありました。
そういえば・・!

nslookupコマンド

■nslookup
ネームサーバを運用する彩のテストや障害調査などに使用されるツールです。
指定したネームサーバへ直接リクエストを送ることができます。

■使い方
nslookup [(オプション)[(名前)|(サーバ名)]
(名前)には、解決する名前を記述

■サブコマンド
・help:使用可能なサブコマンドの簡単なヘルプを表示

・exit:nslookupの終了

・server (server名)とlserver (サーバ名)
 問い合わせを送るデフォルトネームサーバを指定

・[名前][サーバ名]
 [名前]:解決するリクエストを送ります。
 [サーバ名]:指定したサーバへリクエストを送ります。

・ls [オプション][名前]
 [名前]:指定したドメインに含まれるレコードの一覧を表示
 [オプション]:-t [クエリタイプ]
 [クエリタイプ]:指定したレコードを表示
 ゾーン転送機能を使用して結果を表示するため、ソーン転送に制限がかけられている場合は
 結果が得られない場合があります。 

・root:現在のデフォルトネームサーバをルートサーバにします。

・finger:fingerサーバへ問い合わせを行います。←わかりません!

・view:lsコマンドでリダイレクトしたファイルをソートします。

・set [キーワード]=[値]
 説明が難しいのでnslookupコマンドを振り返るか・・

■エラーメッセージ
・Time Out
 応答が得られないままタイムアウトになったときー!

・No response from server
 指定したサーバ上でネームサーバプロセスが動作していないときー! 

・No records
 指定した名前は有効であるが、その名前について指定したレコードがないときー!

・Non-existend domain
 指定したドメイン名が存在しないときー! 

・Connection refused
 ネームサーバとコネクションを確立できないときー!

・Network id unreachable
 目的のネットワークに到達できないときー!

・Server failure
 サーバのデータベースで内部エラーが発生し、有効な応答が返せないときー!

・Refused
 サーバが問い合わせを拒絶したときー!

・Format error
 問い合わせパケットのフォーマットにえらーがあったときー!

BIND入門 CHAPTER_1

2004-10-22 02:33:19 | BIND入門
以前、ASCIIから出版されているBINDの本を読んで
DNSを理解するのにいい本だったので復習をかねてブログにまとめることにしました。
O'REILLY出版の「DNS & BIND」に比べると厚さ的にとっつき易い感じがしますね。

■DNS(Domein Name System)
CHAPTER_1は、誰もが知っている?DNSの基本的な事が書かれています。
歴史とかが書かれていないところがいいですね。

ブラウザで入力するURLとIPアドレスの関連付けを行ってくれるシステムです。

・TLD:トップレベルドメイン
・gTLD:組織種別を示すドメイン名
 arpa、com、edu、govなど
・ccTLD:国を示すドメイン名
 jp、usなど

■ドメイン名で使用できる文字
通常、英字、数字とハイフン記号が使用されます。
ハイフンについては、ドメインの先頭と末尾には使用できません。
英字については、大文字、小文字の区別がされません。

ここまでは、通常なのですが、日本語文字を使用したドメイン名も可能です。
ネームサーバで使用する文字を、ASCIIから多言語文字対応のUnicodeに変更しなければなりません。

■FQDN
ドメイン名は、階層構造になっていて、トップレベルドメインから順位に左側へ階層的に名前が付けられています。
また、階層構造での名前の設定には、相対パスと絶対パスがあります。
この絶対パスを設定する際には、「xxx.co.jp.」のように最後にピリオドをつけなければなりません。
この形式のドメイン名をFQDNと言います。
(Full Qualified Domain Name:完全限定ドメイン)