ホスト名 - みる会図書館


検索対象: UNIX MAGAZINE 1999年1月号
227件見つかりました。

1. UNIX MAGAZINE 1999年1月号

連載 / UN Ⅸの玉手箱ー① としてセットアップすれば NIS や /etc/hosts は無視さ れることに注意してください。 これを変更し、たとえは、、 DNS → /etc/hosts → NIS" という順番でホスト情報を検索させるには、以下のように /etc/irs. conf のホスト情報に関する部分を変更します。 hosts hosts hosts dns continue 10Ca1 C ont inue IIIS /etc/irs. conf のホスト情報以外に関する部分について は、オンライン・マニュアル irs. conf(5) などを参照して ください。 S01aris の /etc/nsswitch. conf Solaris かイ吏う /etc/nsswitch. conf についての岩田は、 man nsswitch. conf" を参照してください。記述方法 は BSD/OS に似ています。また、サンプルとして /etc/ nsswitch. nis や /etc/nsswitch. files などが用意されてい るので、これらも参照してください。 ホストやサービスに対するアクセス制御 前回紹介したホスト自身がもつホスト名や IP アドレス などの設定に加え、 ここて紹介したホスト情報に関する設 定をおこなえは、ユーサーがネットワーク・コマンドの引 数に指定したホスト名を正しく IP アドレスに変換し、相 手ホストと通信することができます。 しかし、ネットワークエ韆竟、とくにインターネットに ホストを接続して運用する場合、セキュリティにはつねに 気を配る必喫があります。ホストやネットワークに対する 攻撃には、ネットワークを流れる IP バケットを盜聴し てデータの内容を調べたり、パスワードのクラッキングに よってあるユーザーになりすまし、サービスを不正利用し たりマシンにダメージをえるなど、しつにさまざまなも のがあります。 これらをより完全に防ぐには、通信データを暗号化した り、暙号を用いて通イ計目手の身許を石忍する ( 認証 ) など、 特別な機構が必要です。しかし、それ以前に、ホストのセ キュリティを保っための基本的な姿勢は、、不要なサーピス は提供しない " ことにあるのではないでしようか。 OS によって多少の違いはありますが、 UNIX をインス トールすると、 ftp や finger など、いくつかのネットワー UNIX MAGAZINE 1999 ユ ク・サービスに対しては、他のホストからのリクエストに 応してサーバーか起ける設定になっているはすです。自 分の使っているマシンカ甘是供するサーピスを把握していな いと、万かン - 一そのサーピスのサーバー・プログラムにバグ や設定ミスなどがあった場合、そこを突かれて攻撃されな いともかぎりません。したがって、マシンをネットワーク に接続している場合、そのマシンで動くサーバーを調べて 不要なものは起動しないように設定しておけば、攻撃され る可能性を多少なりとも減らせます。 そこでここからは、 /etc に置かれているファイルのう ち、他のホストからのアクセス制御に嬲里したものをいく つかとりあげます。 信頼するホストの設定 UNIX のコマンドには、ローカルなホスト上で実行す るコマンドをネットワークに対応させたものがいくつかあ ります。たとえは、ファイルをコピーする cp コマンド をネットワークに対応させ、リモートホストとのあいだで ファイルのコピーをおこなう rcp コマンドや、リモートマ シンにログインするための rlog ⅲ、リモートマシンでシェ ルを実行するための rsh などがあります。各コマンドの 詳細は、オンライン・マニュアル rcp(l) や rlogin(l) 、 rsh(l) などをご覧ください。それぞオリジナルのコマ ンド名の寬こ r という文字カ咐けられているため、 れらを糸尓して、、 r コマンド " と呼ふ、こともあります。 通常、 r コマンドをリモートホストに対して実行する と、 rlogin の場合は確認のパスワードを求めらその 他 (rsh や rcp) の場合は「アクセス権限がない」と断わ られます 10 。これに対し、 r コマンドの対象となるリモー トホスト側で、、イ頁するホスト ( およびューサー ) " を設定 しておくと、 rl 。 g ⅲの場合はパスワード・チェックなし でリモートマシンにログインできますし、 rcp や rsh コマ ンドも実行できるようになります。 信頼できるホストとユーサーは、システム本で設定す ることも、ユーザーごとに設定することもできます。 システム本で信頼するホストとユーサーを指定するに は、 /etc/hosts. equiv ファイルを用います。フォーマッ トは OS によって彳少に異なりますが、基本的な書き方は 10 FreeBSD では "Permission denied" 、 BSD/OS では、、 Log ⅲ incorrect" というエラーメッセージが表示されるはすです。 117

2. UNIX MAGAZINE 1999年1月号

null ホスト情報の管理とアクセス制御 前回は、ネットワーク上でホストを識別するための仕組 みと、あるホストから送られるデータ ()P バケット ) が どのようにして相手ホストまて届くかについて説明しまし た。さらに、 FreeBSD や BSD/OS での具イ勺な設定方 法を紹介しましたが、これらの設定はローカルホスト自身 に関するものです。人間の世界になぞらえると、自分の名 前 ( ホスト名 ) と電話番号 ()P アドレス ) が明らかになっ たようなものです。 しかし、電話をかけるには、相手の電話番号を正しく把 握していなけれはなりません。番号を知らなけれは電話を かけられませんし、番号を間違うと「おかけになった電 話番号は現在使われておりません」と冷たくあしらわれた り、「どこにかけとんしや、ポケ ! 」と怒鳴られたりします。 現実の世界では、イ万録に名前や電話番号などを言当求し ておき、必要なときにそれを見て名前から電話番号を確か めます。同しことが、コンピュータ・ネットワークの世界 についてもいえます。前回お話ししたように、 IP バケッ トを送るためには相手ホストの IP アドレスが必要です。 しかしはとんどの場合、ユーザーが telnet や rlogin など のネットワーク・コマンドを実行する際、コマンドの引数 として指定するのは相手のホスト名です。したがって、相 手のホスト名と IP アドレスを対応つ、ける、、住所録 " のよ うな仕組みか必要となります。 そこで今回は、ホスト情報 ( ホスト名と IP アドレス ) を管理するための仕組みを紹介します。ホスト情報の管理 ガ去はいくつかありますが、これらについて簡単に触れた あと、実際の設定去を説明します。 また、ホストをネットワークに接続して利用する場合、 あるホストカ甘是供するサービスや、サービスを利用できる ホストを限定したいことがあります。厳密なアクセス制 110 御では、暗号を用いた認証のような特別な機構が必要で すが、 こでは相手ホストのホスト名や IP アドレスを べースとした、単純なアクセス制御の去と設定も紹介し ます。 ホスト情報の管理 前回説明したように、ホスト名はドメイン名と組み合わ せる (FQDN) ことにより、ネットワークに接続されたホ ストを一意に特定できます。一方、 IP アドレスは ( サプ ネットも含む ) ネットワーク番号とホスト番号から構成さ 両者を用いてネットワーク上のホストを一意に特定し ます。 IP アドレスとホスト名 (FQDN) は独立した概念なの で、そのままではホスト名から IP アドレス ( あるいはそ の逆 ) を知ることはできません。これらを対応づけるには、 、、イ形のような対応表が必要になります。 、、ホスト情報の管理 " とは、対応表であるデータベースを 正しく管理することを意味します。ネットワークに対して 新たなホストを接続する場合は、データベースに新しいェ ントリ ( ホスト名と IP アドレスの繝を追加しなけれは なりませんし、ホスト名あるいは IP アドレスを変更した り、ホストをネットワークから外す場合 1 にも、エントリ の変更や削除などの作業が必要です。 前回は IP バケットを相手に送り届けるための仕組み ( 糸響翻のを紹介しましたが、いくら糸響各制御の設定が 正しくても、このデータベースカ墹違っていれは正しい相 手と通信できません。したがって、ホスト名と IP アドレ 1 嵂章やメンテナンスなどで一印判勺にネットワークに孑Æできない場合を除 きます。 UNIX MAGAZINE 1999.1

3. UNIX MAGAZINE 1999年1月号

連載 / UN Ⅸの玉手箱ー① 以下のとおりです。 118 あわせて紹介する予定です。 14 ネットグルーフ。の設定力 1 去については、次可に NIS サーバーの言置と し、何も指定しなかった場合と同しように扱われます。 13 ホスト名やユーサー名の前に、十 " を指定した場合は信頼することを意未 は /root) の下に銜主する、 . rhosts" ファイルを作成します。 は、 root のホーム・ディレクトリ (FreeBSD や BSD/OS の場合 設疋は適用されません。 root の権限で r コマンドを実行したい場合 12 ただし、スーパーユーサー (root) については /etc/hosts. equiv の 合、こクのようにホスト名だけを指定することかできます。 を指定します。ただし、ホスト名だけでそのホストにアクセス可能な場 11 通常、、イ頁するホスト名 " の部分には FQDN あるいは IP アドレス . rhosts というファイルを作成しておくと、ユーザーごと よは、しますが、各ューザーのホーム・ディレクトリに /etc/hosts. equiv の設定はシステム全体に影響をお 、、@ネットグループ名 " を指定します 14 ループを指定する場合は、ホスト名やユーサー名の部分に やユーサー名の前に ーを付けます 13 。一方、ネットグ 信頼しないホストやユーザーを指定するには、ホスト名 のグループをまとめて扱えます。 ネットグループを指定することにより、ホストやユーザー いユーサーを指定できるはか、ホストやユーサーの部分に ーマットカ去張されており、信頼しないホストと信頼しな さらに、 FreeBSD の場合は /etc/hosts. equiv のフォ 限で ) r コマンドを実行することができます。 うューサーだけが、 nullpc に対して ( ューザー null の権 と己すると、 (FreeBSD の場合は ) mypc の null とい mypc Ⅱ u11 ば nullpc の /etc/hosts. equiv に、さきほどの例の代わ たホストの指定したユーサーだけを信頼します。たとえ で区切って ) 信頼するユーザー名を指定すると、指定し 一方、信頼するホスト名のあとに ( 空白あるいはタブ 行できるようになります 12 ューサー名が一致する場合のみ、 r コマンドが無条件で実 されます 11 。すると、ローカルホストとリモートホストの という行を書いておくと、 mypc は信頼するホストとみな mYPC であったとしましよう。 nullpc の /etc/hosts. equiv に pc" 、 r コマンドの対象であるリモートホストが、、 nullpc" こで、 r コマンドを実行するローカルホストが、、 my- 信頼するホスト名 [ 信頼するユーサー名 ] に信頼するホストとユーザーを設定することができます。 ~/. rhosts のフォーマットは /etc/hosts. equiv と同しで す。たとえは、 nullpc というホストの null というユー ザーのホーム・ディレクトリに . rhosts ファイルを作成 し、以下のように言当したとしましよう。 mypc somepc nil すると、 mypc のユーサ、一 null と、 somepc のユー サーⅲ 1 は、 nullpc に対してユーサー null の権限で r コ マンドを実行することができます。 2 番目の書き方は、自 うゞもっているアカウントのユーサー名がホストごとに異 なる場合のてす 15 hosts. equiv と . rhosts についてのラも hosts. equiv と . rhosts を使う場合には注意が必要で す。あるユーザーのアカウントカ坏正に使われている場 合、 hosts. equiv や . rhosts で信頼するホストやユーザー として設定していると、そのホストやはかのユーサーか不 正に利用される危険があるからです。したがって、理想 的にはこれらのファイルを使わないはうがいいでしよう。 しかし、現実にはそうもいきません。たとえは、部門内 の LAN などで複数のホストか緊密に関係している場合で す。信頼するホストやユーサーは、 LAN の内部 ( 糸内 ) のホストやユーザーにとどめるべきです。他サイトのホス トを記するのは、まるで、、どうぞ侵入してください " と いわんはかりの行為です。 hosts. equiv ファイルは、ある部門内の LAN に接続 されたホストがあり、これらを統一的に管理するシステム 管理者がいる場合には有効でしよう。 逆に、 1 人に 1 台以 E の UNIX マシンカリり当てられ ており、それらのマシンが LAN に接続され、各ューサー の管理に任されている状況では、 hosts. equiv ファイルで はなく、各ューサーの ~/. rhosts ファイルを使うほうがま だましです。 hosts. equiv や . rhosts には便利な一面もありますが、 設定や管理の形態によってはセキュリティのレベルを一 - ドげ ることにつながります。これらのファイルを使う場合は、 十分に注意してください。 15 ただし、 somepc のユーサー nil が r コマンドを夫行する場合、たと えば "rlogin -l null nullpc" のようにユーサー null の限で実行 することを明示しなけれはなりません。 UNIX MAGAZINE 1999.1

4. UNIX MAGAZINE 1999年1月号

連載 UN Ⅸの玉手箱ー① ることができます。 このように書くと、リモート管理はいいことすくめの 112 にホスト名を指定すれば大丈夫です。正式なホスト名のあ ワークでドメイン名を付けすに運用している場合は、たん ト名とは FQDN を意味しますが、プライベートなネット フ ) で区切って正式なホスト名を記します。正式なホス 最初にホストの IP アドレスを書き、空白 ( あるいはタ IP アドレス正式なホスト名 [ 別名 ] [ 別名 ] 指定します ( 、、 # " 以降はコメントとみなされます ) 。 レスの組を以下のようなフォーマットで 1 行に 1 組すっ べースです。中身はテキスト形式で、ホスト名と IP アド スト名と IP アドレスの対応つ、けをおこなうためのデータ /etc/hosts はすべての UNIX マシンがもっており、ホ /etc/hosts ための設定を紹介します。 して利用する際の設定と、これらを組み合わせて利用する NIS および DNS のそれぞれについて、クライアントと 以降では、ローカルなデータベース (/etc/hosts) と ネットワークの運用をとりあえすは続けられます。 おけは、これらのサーバーか利用できなくなったときも、 各クライアントのデータベース (/etc/hosts) に登録して トワーク内のファイルサーバーやメールサーバーなど ) を ることができます。さらに、必要最小限の情報 ( 組織ネッ は DNS サーバーに間い合わせるといったように使い分け NIS サーバーを利用し、そこで情幸ゞみつからないときに したがって、細織ネットワーク内の清報を参照するには 理することを目指したシステムです。 ノヾ 一群がインターネット本のホスト情報をうまく分散管 バーが他のサーバーと協調することにより、これらのサー テムです。一方の DNS は、各管理範囲に設けられたサー 囲でさまざまな情報を集中管理するために考案されたシス NIS はもともと、系内ネットワークなど限られた範 ー引勺です。 それぞオしの特徴を活かすように組み合わせて利用するのが したがって、これらのガ去は排他的に使うのではなく、 でダウンしてしまうと情報か得られなくなります。 め、 ( イサーバーも含めて ) サーバーがなんらかの理由 クライアントは情報を管理するサーバーに依存しているた ようにみえますが、問題もあります。リモート管理では、 とには、複数の別名 (alias) を指定できます。正式なホス ト名として FQDN を指定した場合は、 1 番目の別名とし てホスト名を与えるのが一搬的です。 /etc/hosts の例を以下に示します。 127 . 0 . 0 . 1 localhost 192 .168.1.10 mypc. f00. co ・ JP mypc 192.168.1.11 nullpc . f00. co ・ jp nullpc fs 192.168.1.15 somepc . f00. co. jp somepc 最初の行にある、、 127.0.0.1 " という IP アドレスには、 、、 localhost" というホスト名か割り当てられています。 れは自分自身を示す IP アドレスで、マシン内のプロセス どうしがネットワーク通信をおこなう際に利用されます。 FreeBSD や BSD/OS も含め、ほとんどの UNIX マシ ンでは最初からこのエントリか定義されています。 こでは 2 行目以降カ噺たに追加したエントリで、たと えは 3 行目は、、 192.168.1.10 " という IP アドレスに対し て、、 mypc. foo ・ co. jp' という FQDN を割り当て、さらに mypc " という別名を割り当てています。 ューザーが telnet などのコマンドの引数に、、 mypc" を えた場合、マシンは /etc/hosts を最初の行から順に検 索し、マッチした行の IP アドレス ( ここでは 192.168.1. 10 ) を使ってアクセスをおこないます。正式なホスト名と して FQDN (mypc. foo ・ co. (p) を指定した場合、ホスト 名を別名として登録しておかないと、ホスト名のみ (my- (c) をコマンドの引数として与・えても検索は失敗すること に注意してください。 さらに、 4 行目の nullpc には、、 fs " という別名か設定し てあります。 nu Ⅱ pc がファイルサーバーであるとすると、 このような別名を各ホストの /etc/hosts に設疋しておけ ば、 fs (file server) というホスト名でファイルサーバー にアクセスでき、提供しているサービスをホスト名から連 想しやすくなる利点があります。 大規模な糸では、 NIS や DNS を使えることが多いの で、 /etc/hosts は OS をインストールしたときのままで 運用できるケースも多いようです。しかし、 NIS や DNS が一一日判勺に使えなくなるような事態に備え、メールサー ーやファイルサーバーといった重要なホストをはしめ、頻 繁に通信をおこなうホストは /etc/hosts に登録しておく といいでしよう。ただし、情報に変更があった場合は速 やかに /etc/hosts に反映させるのをお忘れなく。 UNIX MAGAZINE 1999.1

5. UNIX MAGAZINE 1999年1月号

スのデータベースを正しく管理することは、ネットワーク 環竟でホストを利用するためのもっとも基本的な設定であ るといえます。 ローカル管理とリモート管理 ホスト名と IP アドレスのデータベースを管理するには いくっかのガ去がありますが、いずれの去であ最終 的にはホストやネットワークの管理者が手作業で糸財寺する ことになります。データベースを誰 ( どのホスト ) がもつ かによって、管理ガ去は以下の 2 つに大きく分かれます。 連載 / IJN Ⅸの玉手箱ー① 前者を、、ローカル管理 " 、後者を ・特定のホスト ( サー。ー ) がデータベースをもち、残り すべてのホストがローカルにデータベースをもつガ去 、、リモート管理 " と呼ぶことにします。 こでは便宜的に のホストはサーバーに間い合わせる・去 UNIX MAGAZINE 1999 ユ hosts) というファイルか 1 司凵齬リをもっています。 トールされているディレクトリ *hosts" ( たとえ tiC:*Windows* 2 Windows 95 / 98 や Windows NT では、、、 Windows カゞインス NIS のサーバーにはマスターとスレープの 2 不頁があり NIS は、 1 つのサーバーでデータベースを管理します。 情報を得るため、データベースをもつ必がありません。 トは、必要なときにサーバーに間い合わせることによって データベースを特定のサーバーカ理します。クライアン テムでは、図 l-b のように、ホスト名と IP アドレスの (Domain Name System) が代表的です。これらのシス で、 NIS (Network lnformation Service) や DNS そこで考案されたのがリモート管理に分類される方法 NIS と DNS スか起こる可能生も高くなります。 新の手間も増え、更新を忘れたり登録を間違うといったミ はそれでもよかったのですが、ホストの台数に比例して更 した。ネットワークに接続されるホストの数が少ないうち ホストがもつデータベースを更新しなければなりませんで はこのガ去しかなく、ホスト情報に変更があった場合は全 UNIX マシンでネットワーク竟を構築し始めた当初 します 2 。 では、 /etc/hosts というファイルがデータベースに相当 れたホストすべてがデータベースをもつ去です。 UNIX ローカル管理は図 1 ー a のように、ネットワークに接続さ 図 1 ホスト情報データベースの里 ( a ) ローカル管理 ホスト情報 データベース ロ ホスト情報 データベース ( b ) リモート管理 サーバー ロ アータベース 問合せ 応答 クライアント ロ ホスト情報 データベース データベース ロ ロ クライアント クライアント ますが、スレープはマスターがもつオリジナルデータのコ ピーをもっているサーバーであり、マスターか利用できな いときの代替サー ーとして機能します。 NIS を階層的 な管理が - 可能なように拡張した NIS 十というシステムも あり、 SoIaris などてイ吏用されています。 これに対し、 DNS は管理範囲ごとにサーバーを置き、 その管理範川内の情報をデータベースて管理します。クラ イアントはつねに管理範囲内のサーバーに対して問合をを おこないますが、管理乖観月外のホストに関す引帯にを知り たい場合は、そのサーバーが別のサーバーに対して問い合 わせて結果をクライアントに返します。 いすれの場合も、サーバーのもっデータベースは管理 者が手竹喋て財寺しなけれはなりません。しかし、データ べースはサーバーて集中的に管理されているため、ローカ ル管理にくらべてイ 1 喋の負担はかなり軽減されます。さら に、 NIS や DNS ではホスト名と IP アドレス以外の情報 を管理してクライアントに提供できます。たとえば、 NIS は前々回に紹介したパスワード情報やグループ情報をはし めとするさまざまな情報を扱うことができ、 DNS はそれ ぞれの管理範囲にあるメールサーバーなどの情報を提供す 111

6. UNIX MAGAZINE 1999年1月号

連載 / コミュニケーション用サーパーのインストールと運用ー① 用ホスト " として機能し、ハプホストが外部からのメー ルを受信するための MX ホスト " として機能します。 防火壁内部のホスト ( ノ、プホストを除く ) は外界から遮 断されますから、 sendmail 側でメールの不正リレー対策 をおこなわなくても十分に安全性か確保されます。これ は、 MTA として sendmail 以外のツールを使う場合に も有効な手法だと思われます。 また、複数台のハプホストを用意し、同一の優先度の MX レコードを各ハプホストに向けるようにしておけば、 メール処理の負荷分散ができます。同一の優先度の MX レコードがある場合は、送信側でどれか 1 つが選ばれま す。この際、ハプホストの 1 台がダウンしていても、送信 側か接続の失敗を検出して他の MX レコードを利用して くれますから、障害にも強くなります。 これは、 use@daigaku ・ ac. jp のメールがどのハプホ ストに届いたとしても、、ローカル宛 " として処理するよう な sendmail.cf を作り、それぞれのハプホストに同一の aliases データベースをもたせることで矩見できます。 端末型ダイヤルアッフ境 個人で複数の PC を所有し、家庭内に LAN を構築して いる方も多いでしよう。その場合、外部との接続は個人用 の端末型ダイヤルアップの契約で、 NAT や IP masquer- ade などを利用することが多いのではないでしようか。 この場合、外部との電子メールのやりとりに関しては、 ISP (lnternet Service Provider) の SMTP サーバー や POP サーバーに MUA から直接接続して利用するの が簡単です。しかし、外部と接続していない状態でメール をゆっくり書きたいこともあるでしよう。これは、 MUA が「送信トレイ」のような機能をサポートしていれば簡単 ですが、 UNIX 系の OS で動く MUA では、 sendmail の キュー処理イ冓に頼っている ( つまり、メールを書き終っ た時点で、すぐに MUA から MTA への送信をおこな う ) ものが多いようです。こういった MUA を使う場合、 SMTP サーバーとして ISP 上のホストを用いる設定で は、メールを書き終って送信する際には ISP と接続され /usr/lib/sendmail を起重丿庁る MUA に対応する。 送するように設定 (nuII-v8. def を利用 ) し、送イ訓叔こ ・スプールホスト以汐 ) ホストでは、スフールホストに転 Fr 。 m : などを書き換える。 部に発信する際に、正規のメールアドレスに合わせて 名が付いてしまっても大丈夫なように、 LAN から外 場合、 LAN 内から発信されたメールにそのドメイン ・ LAN のホストに仮のドメイン名を付けて運用している るように設定する。 MUA はメール送イにはそのホストに対して送信す こでは、 LAN 内のホストの IP アドレ にしておく。 はないので、 LAN 内からの接続のみを受け付けるよう ・これらのホストは外部からの SMTP 接続を受ける必要 スは 192.168.0. x の範囲で付けているとする。 ・念のため、 Message-ID は ISP のメールサー けさせることにする。 ーに付 ている必要があります。 そこで、次のような設定例を紹介します。 ・ LAN 内にスプールホストを 1 台準備し、 38 LAN 内の この場合の def ファイルの設定例を、図 6 ~ 7 に示し ファイルを作ります。 コマンドを用いて hash 形式で /etc/ut. 10Ca1. db という 用する設疋をおこなっているので、次のように makern 叩 USERTABLE-MAPS に hash 形式のデータベースを利 式のデータベース・ファイルに変換します。この例では、 というファイルに記述したのち ( 図 8 参照 ) 、通切な形 能を用いて実現しています。この対応表は / etc / ut. 1 。 cal でのメールアドレスへの書奐えを、 CF の usertable の機 す。そして、 LAN 内で用いているユーサー名から ISP サーバー名に従って、 DEFAULT-RELAY を指定しま スプールホストの設定では、契約した ISP の SMTP を SPOOL-HOST として指定します。 spoolhost. private-network. jp のようになります。これ メイン名を付けていたとすると、スプールホストの名前は ます。 LAN 内では private-network. jp といった仮のド makemap コマンドは、 sendmail の配布ノ、ツケージに chmod og—w ut .10Ca1. db chown root ut .10Ca1. db # makemap hash ut .10Ca1. db く ut .10Ca1 cd /etc % /bin/su UNIX MAGAZINE 1999.1 添付されていなければこれを利用してください。 含まれる makemap ディレクトリ以下にあるので、 OS に

7. UNIX MAGAZINE 1999年1月号

コミュニケーション用 サーバーの インストールと運用 0 小山洋一 sendma ⅱを用いたメール配送系の構築 大学の友人やクラブの後輩たちと話していると、電子 メールの設疋についての相談を受けることがときどきあり ます。当然ながら口頭で説明するのですが、そのときに 、 CF" を「シーエフ」と翫んでしまうと、、 sendmail.cf と区別がつかないので、どう読むべきか毎回・悩みます。「大 文字のはうのシーエフ」とか「ツールのほうのシーエフ」 のように表現することが多かったのですが、どうも冗長な ので、いい言い方はないものか思案中です。 sendmail.cf のほうは略さすに「センドメール・シーエフ」と言えばい いので、こっちは簡単なのですが・ 今回は、 sendmail を用いたメールシステムの構築につ いて、実際の運用形態に即した設定例を紹介します。 ホストの構成を考える メールシステムの構築は、 Web サーバーの立ち上げな どにくらべて難しい場合が多いようです。その理由とし ーはホスト単体で運用できるのに対し、 て、 Web サー メールシステムの構築はサイト内のホストをすべて有機的 に結びつける作業で、各ホストを単体で考えるだけでは適 切な解か導けないということがあります。 UNIX 系の OS を運用する場合、各ホストは、直接メー ルの受信はできなくても、発信だけはできるようにしてお く必があります。ですから、サイト内に新規のホストを 導入するたびに設定が必要になりますが、その際に手間が 多くかかるような運用形態は避けたいところです。 そこで、基本的には次のような形態にします。 1. サイト内のメールスプールのホストを 1 台に絞る。その ホストで POP サーバーを動かしておけは、他のホスト 上の MUA でメールを受け取ることもできる。 34 2. 他のホストは、ほとんど何もせすにスプールホスト一云 送するだけの設定にする。これにより、サイトの運用形 態が多少変化しても、設定の変更はイ腰となる。 これについては 11 月号て紹介しました。今回はそのノヾ リエーションを考えてみます。 こでは、 sendmail のバージョンは 8.9 以降を用いる こととし、 CF-TYPE には R8V8 または R8V8-nuII を 指定します。ただし、バージョン 8.8 以降ならばここて解 説する機能はすべて備えているので、 sendmail-8.8. x を 利用してもかまいません。その場合は、 CF-TYPE の指 定をそれぞれ R8V7 、 R8V7-null に読み替えてください。 掲載したリストは Standards/sendmail-v8. def (CF- TYPE=R8V8 の場合 ) または Standards/nuII-v8. def (CF-TYPE=R8V8-nuII の場合 ) をベースにして、変更 の必要な行のみを抜き出したものです。変数名の出現頂序 は、これらのファイルに合わせています。 実際にサイトを構築するときは、リストに掲載した部分 だけを使って def ファイルを作成してもかまいません。 しかし、その他の設定変更をおこなう場合にも便利なよう に、上記のファイルをコピーしてそれをベースに編集する ことをお勧めします。 また、 OS-TYPE としては bsd4.4 (FreeBSD などが 該当 ) を指定していますが、これは使用している OS に合 わせて設正してください。 ハプホストの利用 サイト内のユーザー数やホスト数などが増加してくる と、サイトの内部をさらに複数のサブドメインに分けて運 用したくなります。たとえば、ある大学において、最初は UNIX MAGAZINE 1999.1

8. UNIX MAGAZINE 1999年1月号

連載 / UN Ⅸの玉手箱ー① 以下に挙げる 3 不頁のキーワードがあります。 ・ nameserver UNIX MAGAZINE 1999.1 できます。 8 最大 6 つ ( 全体で 256 文字以のドメインをスペースて区切って指定 DNS サーバーに間い合わせます。 とができます。この場合、 /etc/resolv. conf に書かれた順番に従って 7 FreeBSD と Solaris では、最大 3 つの DNS サーバーを孑旨定するこ がいいでしよう。 場合は検索にがかかるため、通常は指定しないほう 索されます。当然、ドメインがローカルドメインでない リストを指定すると 8 、指定されたドメインか順番に検 これに対し、 search キーワードの値としてドメインの 対しておこなわれます。 キーワードで得られるドメイン ( ローカルドメイン ) に ホスト名のみで与・えた場合、ホストの検索は domain 通常、間合せの対象となるホストを FQDN ではなく 意が必要です。 メインの DNS サーバーに間合がおこなわれるので主 トはルートドメインに属するものとみなされ、ルートド メイン名が含まれない場合は、間合の対象となるホス ローカルドメインとして扱われます。このホスト名にド ドでケえたホスト名 (FQDN) に含まれるドメイン名が domain キーワードを省略すると、 hostname コマン ドメインのホストか検索の対象となります。 おくと、間合迂にホスト名のみを用いた場合、ローカル ドメイン ) を与・えます。 domain キーワードを言殳定して 値として、クライアントカ嘱するドメイン名 ( ローカル ・ d01na111 DNS サーバーとみなされます。 いうキーワードか書かれていないと、ローカルホストが します 7 。なお、 /etc/resolv. conf に nameserver と れぞれの DNS サーバーの IP アドレスを 1 っすっ指定 利用したい場合は、 nameserver キーワードを用いてそ 置いていることがあります。複数の DNS サーバーを きるよう、同しドメイン内に複数の DNS サーバーを バーがダウンしたときにも他のサーバーが処理を代行で DNS サーバーにかかる負荷を分散させたり、あるサー ドレスをドット表記で指定します。細織によっては、 値として、間・作をおこなう DNS サーバーの IP ア たとえは、 f00. co. jp の DNS サーバーの IP アドレス が 192.168.1.2 である場合、このドメインに属するクライ アントの /etc/resolv. conf は以下のようになります。 domain f00. co . 」 p nameserver 192.168.1.2 # ns . f00 . co ・」 p FreeBSD の場合、 OS のインストール時に DNS クラ イアントの設疋をしていなけれは、 /etc/resolv. conf ファ イルは作成されません。このような場合はエデイタなどを 使って新たに作成する必があります。 BSD/OS と So- laris の場合も同様に、 /etc/resolv. conf ファイルを新た に作成します。 /etc/hosts と NIS 、 DNS の併用 ホスト名と IP アドレスを管理する仕組みとして、ロー カルな /etc/hosts と NIS および DNS の 3 つを紹介し ましたが、これらを組み合わせれは、相互補完的に利用す ることができます。 去もの UNIX は、どの情報源をどの順番で検索するか を指定でき、 FreeBSD は /etc/host. conf. 、 BSD/OS は /etc/irs. conf 、 Solaris は /etc/nsswitch. conf と いうファイルを使って設正します。 FreeBSD の /etc/host. conf FreeBSD か利用する /etc/host. conf ファイルは単純 で、 /etc/hosts は、、 hosts" 、 NIS は、ⅲ s " 、 DNS は 、 bind " というキーワードに対応しています。これらのキ ーワードを使い、利用したい情報原を検索する順番に列挙 します 9 。 FreeBSD をインストールした直後の /etc/host. conf を図 3 に示します。 bind (DNS) と hosts (/etc/hosts) を使い、 nis (NIS) はコメントアウトされて使わない設定 になっています。 NIS を利用するときは、キーワード nis の地頁にある、、 # " を削除します。この場合、ホスト情報 を検索する手順は以下のようになります。 1. 最初に DNS サーバーに問合せをおこない、十館きに失敗 したらローカルな /etc/hosts ファイルを参照する。 2. /etc/hosts を検索して該当するエントリがみつからな けれは、 NIS サーバーに間い合わせる。 9 キーワードは 1 行に 1 っすつ定し、、 # " 以降はコメントとみなされま す。 115

9. UNIX MAGAZINE 1999年1月号

連載 / UN Ⅸの玉手箱ー① 図 2 DNS によるホスト情報の CO. jp ドメイン DNS サーバー 応答・、 ホスト情報 の問合せ 応答 DNS サーバー ascii. CO. jp ドメイン DNS サーバー ・ . の問合せ ' ロ DNS サーバー 応答 クライアント f00. co.jp ドメイン ホスト情報 の問合せ 、、 c 。 " ドメイン、大学などを表す、、 ac" ドメインなどがあり ます 4 。これらのドメインの下は、個々の系辟を表すドメ インて構成されます 5 。たとえは、アスキーという会社 ( 組 織 ) には、、 ascii ・ co ・ jp というドメインか割り当てられて おり、「日本の企業であるアスキーという糸目系であるこ とを表します。 大雑把にいうと、 DNS では、これらのドメインごとに DNS サーバーを置き、あるドメインの DNS サーバーは そのドメインに属するホストのホスト名と IP アドレスを 管理します。さらに、 DNS サーバーは自分のドメインと 茁妾関係する下位ドメインの DNS サーバーに関する情報 ももっています。 DNS による検索の仕組み たとえは、図 2 のようなドメイン橢及を考えてみましょ う。 co. jp ドメインの下に、 ascii. co. jP および f00. co ・ jP という 2 つのサブドメインがあります。 こで、 foo. co. jp に属するホスト ( クライアント ) が ホスト、、 swallows. ascii. co. jp" の IP アドレスを検索す る場合、大まかな手順は以下のようになります。 1. クライアントは自分のドメイン、、 foo. co. jp" の DNS サ ーに対し、、、 swallows. ascii. co. jp というホスト の IP アドレスを間い合わせる。 4 jp ドメインの下にどのようなサブドメインがあるかについては、日本の ドメインの割当てをおこなっている JPNIC のホームページ (http:// www.nic ・ ad ・ jp/) などをこ貰ください。 5 規模の大きな糸目織であれば、さらにその下にサブドメインを作ることかで 114 きます。 2. f00. co. jp の DNS サーバーは、間・作の対象となるホ スト名から ascii. co ・ jp というドメイン名を得る。この ドメインは自分のドメインとは異なり、しかも自分の下 位ドメインでもないので、ルートドメインの DNS サー ーに対して「 ascii. co ・ jp ドメインの DNS サー ノヾ は誰か」という問合迂をおこなう。ルートドメインは卞 位に jp ドメインをもつので、 jp ドメインの DNS サー ーに同様の間合をおこなう。 3.2 の間合をルートから下位ドメインの方向へ再帰的に 繰り返し、やがて co. jp ドメインの DNS サーバーに たどり着く。 co. jp ドメインは ascii. co. jp を下位ドメ インにもっため、 ascii. co. jp の DNS サーバーか半」明 する。 4. foo. co. jp の DNS サーノヾーは、 ascii. co. jP の DNS サーノヾーに対し、、、 swallows. ascii. co. jp というホス トの IP アドレスを間い合わせる。 5. ascii. co. jp の DNS サーノヾーは、自「分のデータベース を検索し、結果を foo. co. jp の DNS サーバーに返す。 6. foo. co. jp の DNS サーバーは、間・伶迂をおこなったク ライアントに対して結果を返す。 このように、クライアントは自分と同じドメインの DNS サーバーさえ知っていればよく、間合せに応じて DNS サーバーどうしが通信をおこなうことにより、イン ターネット上のホスト情報を入手できます。したがって、 クライアントからは同しドメインの DNS サーバーが、イ ンターネットに接続されたすべてのホスト情報を管理する 巨大なデータベースをもっているようにみえます。なお、 間合迂の結果は DNS サーバーにキャッシュされるため、 キャッシュの有効期間内に同しホストに対する問合ぜが発 生すると、キャッシュにある情幸肋ゞ利用されます。 クライアントからの DNS の利用 DNS サーバーの設疋方法については参考文献をご覧い ただくとして、クライアントとして DNS を利用したい場 合は /etc/resolv. conf ファイルで設定をおこないます。 /etc/resolv. conf はテキスト形式ファイルで、空白ま たはタブで区切られたキーワードと値の組を 1 行に 1 っす っ書きます 6 。 FreeBSD と BSD/OS 、 Solaris の場合、 6 キーワードは行のな頁から書かなくてはなりません。また、、 # 年は コメントとみなされます。 UNIX MAGAZINE 1999.1

10. UNIX MAGAZINE 1999年1月号

連載 / UN Ⅸの玉手箱ー① NIS UNIX MAGAZINE 1999 ユ 覧ください。 味のある方はオンライン・マニュアル gethostbyname(3) などをご 3 具ー勺には、 gethostbyname() などのライプラリ関数を指します。興 して /etc/hosts 、 NIS 、 DNS のどれを利用するかといっ これに対し、 FreeBSD や BSD/OS では、情報源と ありました 3 。 のライプラリ関数を NIS 対応のものに入れ替える必要が ドレスの変換に NIS を使うには、変換をおこなう c 言語 てやらなければなりません。旧い OS でホスト名と IP ア て NIS を利用するには、 NIS を使うことをマシンに教え IP アドレス ( あるいはその逆 ) を得るための情報源とし 実際に他のホストにアクセスする際に、ホスト名から はおこなわれません。 マンドを実行する際、ホスト名から IP アドレスへの変換 はできますが、 telnet や rlogin などのネットワーク・コ けの状態では、 NIS サーバーからの hosts マップの参照 ただし、 NIS クライアントとしてセットアップしただ bash$ ロ 192.168.1.11 Ⅱ ullpc. f00 ・ co. jp nullpc fs bash$ ypmatch 192.160.1.11 hosts. byaddr 192 .168.1.15 somepc. f00 . co. jp somepc bash$ ypmatch somepc hosts 192.168.1.15 somepc . f00. co ・ jp somepc 192.168.1.11 nullpc. f00. co ・ jp nullpc fs 192 .168 . 1 . 10 mypc. f00. co. jp mypc bash$ ypcat hosts て特定のホス日辭長を検索することができます。 hosts マッフの一覧を表示したり、 ypmatch コマンド ypbind が正常に動いていれは、 ypcat コマンドで う名前で指定できるようになっています。 のマッフです。 hosts. byname マッフは、、、 hosts" とい で、後者は IP アドレスをキーとしてホスト名を得るため スト名をキーとして IP アドレスを検索するためのマッフ hosts. byaddr というマッフ。で管理されます。前者はホ NIS サーバーでは、ホスト情報は hosts ・ byname と ば、 NIS サーバーからホスト情報を得ることができます。 NIS ドメイン名を設疋して ypbind デーモンを起動すれ た。あるホストを NIS クライアントとして利用する場合、 いては、連載の第 5 回 ( 1998 年 11 月号 ) で紹介しまし NIS の概要と NIS クライアントのセットアップにつ たことや、複数の情報源を併用する場合の優回立を設定 ファイルて指定できるようになっています。具ー勺な設定 ガ去については DNS のあとに紹介するので、 NIS のホス ト情報を利用する場合はそちらを参照し、適切に設定して ください。 なお、 FreeBSD マシンを NIS サーバーとして設定 する方法については、次回で詳しく紹介する予定です。 BSD/OS には、残念ながら NIS サーバーに必要なデー モン・プログラム (ypserv) などが付属していません。 DNS DNS は連載の第 3 回 ( 1998 年 8 月号 ) でも触れたよ うに、ホスト情報をインターネット全体で分散管理するこ とを目指し、米国のインターネットの前身である ARPA- NET で開発されたシステムです。 DNS 自体はサー ーの構成や間伶をなどのプロトコルを定めた、、仕様 " であ り、 RFC1034 や RFC1035 などで規定されています。 DNS の仕様にもとづき、カリフォルニア大学バーク レイ校が実装したサーバーなどのプログラム群が BIND (Berkeley lnternet Name Domain) と呼はれるノヾッ ケージで、 BSD 系の UNIX のみならす、多くの UNIX で使われています。 DNS の仕組みやプロトコルの詳細については本誌の 「 UNIX Communication Notes - ー BIND による名則 管理 ( 1 ) ~ ( 5 ) 」 [ 1 ] 、サーバーのセットアッブガ去につい ては「 UNIX 知恵袋ーネームサーバ などを参照していただくとして、ある DNS サーバーが 管理するネットワークの範囲はゾーン (zone) と呼はれ ます。ゾーンは DNS サーバーカ嘱するドメインに対応 する場合もありますし、そのドメインに加えて ( 複数の ) 下位ドメインも含む場合もあります。 こでいうドメイ ンとは、 FQDN のドメイン名が示すドメインと同しで、 UNIX のファイルシステムのようにツリー状の階層構造 をもちます。 ツリーの項点は、、ルートドメイン " と呼ばれ、ルートド メインの直ードは国などを表すドメインて構成されます。た とえば、日本であれば、、 jp " 、英国であれば、、 uk" などと なっています。 国を表すドメインの下は系の不鶤頁や地域を表すドメイ ンて構成され、 jp ドメイン ( 日本 ) の場合、企業を表す 113