|
|
自宅内DNSサーバーの構築
|
DNSサーバーの構築hostsファイルの設定BINDについて(〜9.3.x)BINDについて(9.7.x〜)named.confの設定(〜9.3.x)named.confの設定(9.7.x〜)ゾーンファイルの書式ゾーンファイルの省略方法既存のゾーンファイル(〜9.3.x)既存のゾーンファイル(9.7.x〜)正引きゾーンファイルの作成逆引きゾーンファイルの作成設定ファイルの書式チェックnamedの起動とコントロールnamedの動作確認ルーターとホストの設定DNSSECについて |
DNSサーバー"BIND(〜9.3.x)"についてWBEL や CentOS では、 DNSサーバー の アプリケーション として BIND を用います。 とはいっても、BINDは UNIX 系の OS にとって、 DNS に関しては唯一ともいえるアプリケーションですから他に選択の余地はないといえます。 BINDはDNSサービスを提供するアプリケーション名ですが、その実体プログラムは" named "と呼ばれるものです。 従って、以後の説明では"BIND"よりも"named"という表現がほとんどになってきますが、意味としては同じものを指しますので悩まないようにしてください。
関連セクション・
固定IPでDNSサーバー構築
関連ページ・
名前解決とネームサーバー
OSの種類によるBINDの違いについてWBEL 3、WBEL4、 CentOS 3、CentOS4、CentOS5には、標準でほぼ同じバージョンの BIND が インストール されていますので、基本的な設定内容に違いはありません。 ただこの中で、WBEL4、CentOS4、CentOS5では セキュリティ 対策としてBINDに chroot の仕組みが組み込まれていますので、設定ファイルの配置がWBEL3やCentOS3とは異なります。 chrootの意味と具体的な設定ファイルの配置についてはこのページで後ほど説明しますが、このコンテンツで解説するのは、 LAN 内部での利用に限定した DNSサーバー の構築ですから、そこまでセキュリティにこだわる必要はないかもしれません。 |
||||||||
|
|
ただこのページをご覧の方であれば、将来的に
WAN
空間に対して
権威あるDNSサーバー
また、この コンテンツ の内容に従ってインストールされた CentOS5 では、BINDの基本動作に必要な設定ファイル類がインストールされていないはずですので、 yum を使って "caching-nameserver" パッケージを追加インストールしておきます。
まず、
サブネット
内の適当な
クライアント機
から
SSHクライアント
で
構築中のLinuxサーバー
に
ログイン
します
それから su コマンド で ユーザーアカウント を "root" に変更し、以下のようにコマンドを実行してインストールを行います。
またCentOS5では、従来型のBIND( バージョン9.3.x )だけではなく、 DNSSEC に対応したBIND( バージョン9.7.x )を利用することもできます。 CentOS5でバージョン9.7.xのBINDを使用するには、すでにインストールされているバージョン9.3.xのBINDを アンインストール して、改めてバージョン9.7.xをインストールする必要があります。 また、CentOS6では従来型のBIND(バージョン9.3.x)は標準で提供されておらず、バージョン9.7.xが標準となっています。 BIND9.3.x以前とBIND9.7.x以降では、必要なファイル類の構成と、ブートファイル "named.conf" の記述内容が大幅に異なりますので、以後、これらのバージョンは分けて解説します。 WBEL3、WBEL4、CentOS3、CentOS4、CentOS5(標準)の場合WBEL及びCentOS5以前で従来のBIND(〜バージョン9.3.x)でDNSサーバーを構築される方は、このページ BINDについて(〜9.3.x) で引き続き概要説明をご覧いただいた後、左上のメニューから (〜9.3.x) と記載のある項目を選択してご覧ください。 その他の項目は共通です。 CentOS5(BIND97)、CentOS6の場合
CentOS5でバージョン9.7.xのBINDでDNSサーバーを構築される方、CentOS6のBINDでDNSサーバーを構築される方は、
BINDについて(9.7.x〜) その他の項目は共通です。 なお、BIND9.7.xには標準で DNSSEC の機能が実装されています。 DNSSECの実装についての具体的な説明はについては割愛しますが、概要についてはこちらに簡単にまとめていますので、興味のある方はご一読ください。
関連セクション・
固定IPでDNSサーバー構築
関連ページ・
名前解決とネームサーバー
|
||||||||
BINDの構築に必要なファイル(WBEL3,CentOS3)
WBEL3
や
CentOS3
の
インストール
で
DNSネームサーバー
インストール済みのBINDで、操作や設定が必要なファイルを以下に示します。
BINDの必要ファイル一覧(WBEL3,CentOS3) BINDの本体プログラムは"/usr/sbin/named"ですが、これを直接呼び出すことはまずありません。 実際にはこの"/usr/sbin/named"を用いて、起動や終了を容易にコントロールできるように記述された スクリプト である "/etc/rc.d/init.d/named" を用います。 また"/etc/rc.d/init.d/"の シンボリックリンク が"/etc/init.d/"になっていますので、スクリプトは "/etc/init.d/named" でも呼び出すことができます。 例えば、 |
|||||||||
"/etc/rc.d/init.d/"
には
パス
が通っていません
から、パスを省略して実行することはできません。
|
"/etc/init.d/named start" →namedの起動 "/etc/init.d/named stop" →namedの停止 という使い方になります。 BINDの基点となる設定ファイルは ブートファイル"/etc/named.conf" |
||||||||
|
DNSサーバーの構築に、
とても役に立った一冊です ↓ |
です。
"/etc/named.conf"には、 named の基本的な動作設定の他、以下に説明するゾーンファイルを呼び出すための記述を行います。 ゾーンファイル は、ドメイン毎の FQDN と IPアドレス との対照表と、その扱いに関する設定を記述したものです。 デフォルト のゾーンファイルは "/var/named/" 以下に配置されていて、ゾーンファイルを独自に追加する場合もこの位置に行います。
関連セクション・
固定IPでDNSサーバー構築
関連ページ・
名前解決とネームサーバー
|
||||||||
BINDの構築に必要なファイル(WBEL4,CentOS4)
WBEL4
や
CentOS4
の
インストール
で
DNSネームサーバー
|
|||||||||
|
|
インストール済みのBINDで、操作や設定が必要なファイルを以下に示します。 デフォルト では "chroot" の仕組みが有効になっているため、WBEL3やCentOS3に比べると少し複雑になります。
BINDの必要ファイル一覧(WBEL4,CentOS4)
BINDは通常、その実行プログラムnamedを
"named"
という
アカウント
で実行して稼動させます
アカウントnamedは特別な権限を持っていませんが、named デーモン の起動時に参照すべき設定ファイルがディレクトリの上位にあるため、通常はファイルシステムの全域に渡って参照権限を持たせる必要があります。 つまり、もしもBINDに不具合があってアカウントnamedでの不正 ログイン を許してしまうと、見知らぬ第三者にOSのファイルシステムのほぼすべての領域をその目にさらしてしまうことになるわけです。 ところがその参照ファイルをすべて "/var/named/chroot/" 以下に集めておき、アカウントnamedには 「"/var/named/chroot/"以下だけしか参照させない。」 という設定を施せば、万が一不正ログインを許してもそれ以外の場所を参照されることはありません。 これが "chroot" による セキュリティ 維持の仕組みというわけです。 さて、BINDの本体プログラムは"/usr/sbin/named"ですが、これを直接呼び出すことはまずありません。 実際にはこの"/usr/sbin/named"を用いて、起動や終了を容易にコントロールできるように記述された スクリプト である "/etc/rc.d/init.d/named" を用います。 また"/etc/rc.d/init.d/"の シンボリックリンク が"/etc/init.d/"になっていますので、スクリプトは "/etc/init.d/named" でも呼び出すことができます。 例えば、 |
||||||||
"/etc/rc.d/init.d/"
には
パス
が通っていません
から、パスを省略して実行することはできません。
|
"/etc/init.d/named start" →namedの起動 "/etc/init.d/named stop" →namedの停止 という使い方になります。 BINDの基点となる設定ファイルは ブートファイル"/var/named/chroot/etc/named.conf" です。 "/var/named/chroot/etc/named.conf"には、 named の基本的な動作設定の他、以下に説明するゾーンファイルを呼び出すための記述を行います。 ただし、 "/etc/named.conf" が"/var/named/chroot/etc/named.conf"へのシンボリックリンクになっていますので、編集作業でこのファイルを開くときは"/etc/named.conf"を指定することができます。 ゾーンファイル は、ドメイン毎の FQDN と IPアドレス との対照表と、その扱いに関する設定を記述したものです。 デフォルトのゾーンファイルは "/var/named/chroot/var/named/" 以下に配置されていて、ゾーンファイルを独自に追加する場合もこの位置に行います。 既存のゾーンファイルはブートファイルと同様に本来の(chrootを使用しない場合の)配置場所である "/var/named/" 以下にシンボリックリンクが作成してありますので、編集作業でこれらのファイルを開くときは"/etc/named/ゾーンファイル名"で指定することができます。
関連セクション・
固定IPでDNSサーバー構築
関連ページ・
名前解決とネームサーバー
|
||||||||
BINDの構築に必要なファイル(CentOS5 BIND9.3.x)
CentOS5
インストール
で
DNSネームサーバー
|
|||||||||
|
|
インストール済みのBINDで、操作や設定が必要なファイルを以下に示します。 デフォルト では "chroot" の仕組みが有効になっているため、WBEL3やCentOS3に比べると少し複雑になります。 CentOS5の場合、各設定ファイルのレイアウトはWBEL4やCentOS4と同じですが、後述する ブートファイル "/var/named/chroot/etc/named.conf" は準備されていないため、新規に作成しなければならない点に注意してください。
BINDの必要ファイル一覧(CentOS5 BIND9.3.x)
BINDは通常、その実行プログラムnamedを
"named"
という
アカウント
で実行して稼動させます
アカウントnamedは特別な権限を持っていませんが、named デーモン の起動時に参照すべき設定ファイルがディレクトリの上位にあるため、通常はファイルシステムの全域に渡って参照権限を持たせる必要があります。 つまり、もしもBINDに不具合があってアカウントnamedでの不正 ログイン を許してしまうと、見知らぬ第三者にOSのファイルシステムのほぼすべての領域をその目にさらしてしまうことになるわけです。 ところがその参照ファイルをすべて "/var/named/chroot/" 以下に集めておき、アカウントnamedには 「"/var/named/chroot/"以下だけしか参照させない。」 という設定を施せば、万が一不正ログインを許してもそれ以外の場所を参照されることはありません。 これが "chroot" による セキュリティ 維持の仕組みというわけです。 さて、BINDの本体プログラムは"/usr/sbin/named"ですが、これを直接呼び出すことはまずありません。 実際にはこの"/usr/sbin/named"を用いて、起動や終了を容易にコントロールできるように記述された スクリプト である "/etc/rc.d/init.d/named" を用います。 また"/etc/rc.d/init.d/"の シンボリックリンク が"/etc/init.d/"になっていますので、スクリプトは "/etc/init.d/named" でも呼び出すことができます。 例えば、 |
||||||||
"/etc/rc.d/init.d/"
には
パス
が通っていません
から、パスを省略して実行することはできません。
|
"/etc/init.d/named start" →namedの起動 "/etc/init.d/named stop" →namedの停止 という使い方になります。 |
||||||||
| DNSキャッシュとしてのみ動作するDNSサーバーは、 キャッシュオンリーDNSサーバー と呼ばれることがあります。 |
さて、 "caching-nameserver" がインストールされたCentOS5のBINDシステムには、 構築中のLinuxサーバー 自身がのみが参照可能で、 DNSキャッシュ としてのみ動作するように設定されている ブートファイル "named.caching-nameserver.conf" と、これが参照する設定記述ファイル "named.rfc1912.zones" が準備されています。 もちろんこれらの設定ファイルを適当に書き換えることで外部ホストから参照可能なDNSサーバーを構築することも可能です。 しかしそれではただでさえ扱うファイル数の多いBINDシステムがもっと複雑になってしまいますので、この コンテンツ では以前のバージョンのCentOSと同じくBINDの基点となる設定ファイルとして ブートファイル"/var/named/chroot/etc/named.conf" を使用することにします。 先ほど述べたとおり、CentOS5には ブートファイル "/var/named/chroot/etc/named.conf" は準備されていませんが、実は CentOS4 の "/var/named/chroot/etc/named.conf" をそのまま利用することができます。 CentOS4の"/var/named/chroot/etc/named.conf"は http://www.obenri.com/_dnsserver/image/named.conf に置いていますから、以下のように操作してお使いのCentOS5のファイルシステム上に設置することができます。
まず、
サブネット
内の適当な
クライアント機
から
SSHクライアント
で
構築中のLinuxサーバー
に
ログイン
します
それから su コマンド で ユーザーアカウント を "root" に変更し、以下のようにコマンドを実行して設置を行います。 |
||||||||
|
もともと存在する
"named.caching-nameserver.conf"
は、同じディレクトリに
"named.conf"
が存在すると無効になりますので特に削除する必要はありません。
"named.rfc1912.zones"
も同様です。
また、 "named.conf" になぜ右のような パーミッション を設定しなければならないかは
をご覧ください。ちゃんと理由があります。
|
"/var/named/chroot/etc/named.conf"には、 named の基本的な動作設定の他、以下に説明するゾーンファイルを呼び出すための記述を行います。 上の作業で "/etc/named.conf" で"/var/named/chroot/etc/named.conf"へのシンボリックリンクを作成しましたので、編集作業でこのファイルを開くときは"/etc/named.conf"を指定することができます。 ゾーンファイル は、ドメイン毎の FQDN と IPアドレス との対照表と、その扱いに関する設定を記述したものです。 デフォルトのゾーンファイルは "/var/named/chroot/var/named/" 以下に配置されていて、ゾーンファイルを独自に追加する場合もこの位置に行います。 既存のゾーンファイルはブートファイルと同様に本来の(chrootを使用しない場合の)配置場所である "/var/named/" 以下にシンボリックリンクが作成してありますので、編集作業でこれらのファイルを開くときは"/etc/named/ゾーンファイル名"で指定することができます。
関連セクション・
固定IPでDNSサーバー構築
関連ページ・
名前解決とネームサーバー
|
||||||||
いきなりBINDを起動してみるとりあえず DNSサーバー の動作を確認するために、 BIND を稼動させてみましょう。 動作確認は 構築中のLinuxサーバー と同じ サブネット 内の クライアント機 から行います。 ただしそのクライアント機は既に自動設定で外部のDNSサーバーを参照する設定になっているはずですので、その参照先を 構築中のLinuxサーバー に、すなわち IPアドレス "192.168.100.11" に変更する必要があります。 クライアント OS の参照DNSサーバーの設定方法はOSの種類によって様々ですので、個々に説明します。
クライアント機が
LinuxOS
の場合は
"/etc/resolv.cof"
を編集して設定します
WindowsOSの場合のDNS設定の方法 |
|||||||||
| Windows7やWindowsVista、WindowsXPの場合、操作環境を変更すると全然別の場所になります。が、操作環境を変更するような「慣れた」方にはこの説明は不要だと思いますので割愛します。 |
Windows7 、 WindowsVista の場合 "スタート"→"コントロールパネル(C)"→"ネットワークとインターネット"→"ネットワークと共有センター"→"ネットワーク接続の管理"→使用中のネットワークのアイコンを右クリックして"プロパティ"を開く WindowsXP の場合 "スタート"→"コントロールパネル(C)"→"ネットワークとインターネット接続"→"ネットワーク接続"→使用中のネットワークのアイコンを右クリックして"プロパティ"を開く Windows2000 、 Me の場合 "スタート"→"設定(S)"→"ネットワークとダイヤルアップ接続"→使用中のネットワークのアイコンを右クリックして"プロパティ"を開く "スタート"→"設定(S)"→"コントロールパネル(C)"→"ネットワーク"→使用中のネットワークのアイコンを右クリックして"プロパティ"を開く WindowsOS の場合、これらの方法で開いた "接続のプロパティ" の中から、 ”インターネットプロトコル(TCP/IP)” (Windows7、WindowsVistaの場合は”インターネットプロトコルバージョン4(TCP/IPv4))”を選択して プロパティ(R) をクリックします。 |
||||||||
|
お使いの環境によっては(特にWindows98、95の場合)、"TCP/IP"に関する接続
プロトコル
が複数表示される場合があります。こういう場合は
Ethernet
や
UTP
、
あるいは"100/10"のようにイーサネットのアダプタと思われる記述があるものを選択してください。
苦しい説明ですみません。 |
接続のプロパティの例(Windows2000) すると、次のような ダイアログ が開きます。 |
||||||||
ルーター
の
DHCPサーバー
を利用して、ネットワーク設定を
クライアント機
に割り当てている場合には
、このように
「自動的に取得する」
の設定になっているはずです。
|
TCP/IPのプロパティの例(Windows2000) ここで、 "次のDNSサーバーのアドレスを使う(E)" にチェックを入れ、 構築中のLinuxサーバー のIPアドレスを入力してください。 |
||||||||
| Windows98、95は違う形式のダイアログが表示されますが、この場合は "DNS設定" のタブを選んで同様に設定してください。 |
DNSサーバーを指定する例(Windows2000) 入力が終わったら、 OK をクリックます。ダイアログが閉じたら、 "接続のプロパティ" も同様に OK ボタンをクリックして閉じます。 お使いの環境によっては、ここで再起動を求められることがありますが、その場合は再起動してください。 MacintoshOSの場合のDNS設定の方法MacOSX の場合は、 "システム環境設定"→"ネットワーク" を開き、通常は "表示:" で 内蔵Ethetnet を選択します。 表示されたダイアログの "DNSサーバ:" に 構築中のLinuxサーバー のIPアドレスを入力し、 今すぐ適用 ボタンをクリックします。 MacOS9 及びそれ以前の場合は、 "コントロールパネル"→"TCP/IP" を開き、表示されたダイアログの "ネームサーバアドレス:" に 構築中のLinuxサーバー のIPアドレスを入力します。
OldMacのDNSサーバー設定の例 入力が終わったら、ダイアログのクローズボックスをクリックして内容を保存します。 BINDの起動と動作確認まずは、 DNSサーバー の設定を変更した クライアント機 から、色々ネットワークに接続してみてください。 WindowsOS や MacOS のファイル共有は問題なく使えるはずですが、インターネットを利用するweb コンテンツ の閲覧やメールの送受信はうまくいかないはずです。 理由はいうまでもなく、クライアント機が参照するDNSサーバーがまだ稼動していないため、 名前解決 を行うことができないためです。 |
||||||||
|
あたりまえのことですが、ここではまだ
IPアドレス
"192.168.100.11"
で接続します。
もちろんSSHクライアントからではなく、実機を直接操作してもかまいません。 |
では、クライアント機から SSHクライアント で 構築中のLinuxサーバー に接続して、 BIND を起動してみましょう。 BINDの起動は、 root アカウント で ログイン して、次のように コマンド を実行します。
そしてもう一度、クライアント機からインターネットに接続してみてください。 |
||||||||
|
|
今度は何の問題もなくwebコンテンツの閲覧やメールの送受信ができるはずです。
WBEL
や
CentOS
に
インストール
されているBINDは、
デフォルト
で
DNS
の
キャッシュ
サーバー
として働きます
さて、現在の状態を図で示すと、以下のようになります。
LAN内のDNSキャッシュサーバーの動作 もちろん、まだこの状態では 構築中のLinuxサーバー 自身の名前解決、正確にいうと サブネット 内の ホスト の名前解決は全く行われていません。それはこれから構築してゆくことになります。
関連セクション・
固定IPでDNSサーバー構築
関連ページ・
名前解決とネームサーバー
|
|
|
hostsファイルの設定
<<Previous
|
Next>>
named.confの設定(〜9.3.x)
|
| このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。 |
| ”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。 |