情報 - みる会図書館


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

1. UNIX MAGAZINE 1999年1月号

連載 / IJN Ⅸの玉手箱ー① 図 3 FreeBSD インストール直後の /etc/host. conf # $ld: host. conf,v 1.2 1993 / 11 / 07 01 : 02 : 57 011ma れ Exp $ # Defau1t is to use the nameserver first bind # If that doesn't work, then try the /etc/hosts file hosts # If you have YP/NIS configured, uncomment the next line # niS 3. NIS サーバーに間い合わせても情報がみつからなけれ はエラーとなる。 この順番が気に入らなけ川ま、希望する順にキーワード を並べ替えます。 NIS か利用できるなら、 NIS を優先的 に使うほうが効率がいいと思うかもしれません。しかし、 DNS か利用できる工竟では、ローカルドメインのホスト 情報も DNS サーバーがもっています。利用しているネッ トワーク環境にもよりますが、ふだんはます最初に DNS ーに間い合わせ、 DNS サーバーがなんらかの理山 で一印判勺に利用できないときに NIS や /etc/hosts のホス ト情報を検索するような設定のほうが妥当でしよう。 なお、 FreeBSD では OS のインストール時に DNS の設定ができます力ま設定をする / しないにかかわらす、 /etc/host. conf の中身は同しです。これだと、「 DNS ク ライアントを設疋していないのに、毎回 DNS サーバーを 参照しようとして効率か懇いんじゃないか」と不安になる かもしれません。しかし、 /etc/resolv. conf ファイルがな ければ、即座に DNS サーバーへの間合をあきらめて次 の慮原 ( この例では /etc/hosts) を参照するため、実際 の処眄曲隻はほとんど変わりません。 BSD/OS の /etc/irs. conf 一方、 BSD/OS か利用する /etc/irs. conf はホスト情 報だけでなく、パスワード情報やグループ情報の検索順な ども指定します。 /etc/irs. conf のフォーマットは以下の とおりで、 3 つのフィールドからなるエントリを 1 行すっ 書きます。、、 # " 以降はコメントとみなされます。 情報の種類情報源動作オプション 最初のフィールドには、検索の対象となる情報の不鶤頁を 指定します。パスワード情報は、、 passwd" 、グループ情 報は、、 group - で、ホスト情報は、、 hosts" を指定します。 2 番目のフィールドには利用する情報源を指定します。 ホスト情報の検索に利用できる情報源としては、、、 local" 116 、 nis"(NIS) 、 3 番目のフィールドには、指定した情報原に対して検索 、、 dns"(DNS) カ甘旨定できます。 ( ローカルな /etc/hosts) 、 irs. conf のホスト情報に関する部分は以下のように設疋さ BSD/OS をインストールした直後の状態では、 /etc/ こで検索処理を中止します。 continue" を指定しなけれは、検索結果にかかわらすそ った場合、次のエントリに書かれた情報源を検索します。 たときだけ意味をもち、その情報源から情報か得られなか このフィールドは、、 continue " というキーワードを指定し をおこなったあとの重川乍を指定します。ホスト情報なら、 れています。 hosts #hosts hosts dns nxs 10Ca1 continue 最初に DNS を参照するものの、 dns の行には con- tinue オプションカ甘旨定されていないため、あとに続く /etc/hosts は参照されすに終ってしまいそうです。これ には例外があり、 DNS に関しては、 /etc/resolv. conf フ ァイルがなけれは dns キーワードか書かれている行は処理 がスキップさ次の行に移ります。このため、上記のよ うな設定では、 /etc/resolv. conf の有無によって動作が 以下のように変わります。 ・ /etc/resolv. conf がなけれは、次の行以降の情報源を 検索する。 nis の行はコメントアウトされているため、 その次の行、つまり口一カルな /etc/hosts か検索され る。 ・ /etc/resolv. conf があれは、指定された DNS サーバ ーに間合ををおこなう。間合迂の結果にかかわらす、次 の行以降は処理されない。 したがって、この状態で nis の行頭にある、、 # " を削除 して NIS を情報源に加えたとしても、 DNS クライアント UNIX MAGAZINE 1999.1

2. 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

3. 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

4. UNIX MAGAZINE 1999年1月号

図 4 パスワードの計算方法 チャレンジ生のパスワード 図 5 暗・・ヒしたパスワードでの計算方法 生のパスワード UNIX MAGAZINE 1999 ユ ンを試みると、チャレンジの文字列カ甘是示されます。その ドか分かってしまえは、ログインできるからです。ログイ ワード・ファイルに保存されている暗号化されたパスワー ドを送ってログインする方式と同し間題カ吽します。パス しかし、このガ去も万全ではなく、暗号化したパスワー ク上を流れるデータもそのつど変更できます。 暗号化したパスワードだけで検査できますし、ネットワー うすれは、そのとき送り出したチャレンジと保存してある れにチャレンジを付け加えて再度暗号化します ( 図 5 ) 。 得ます。このとき、生のパスワードを暗号化し、さらにそ ただし、ログイン時にもチャレンジを送出し、その回答を 化し、これをシステムで保存するところまでは同じです。 すこし工夫してみましよう。パスワードをいったん暗号 パスワードには限りがあります。 化し、それらをすべて保存しておくとしても、保存できる きません。さまざまな提示用の文字列と組み合わせて暗号 てから暙号化すると、保存しておいたパスワードと上交で されています。生のパスワードとほかのものを組み合わせ はログインできないように暗号化されたパスワードか保存 ように、システム上では、万ヨ辭長か漏れてもそれだけで ていてもパスワードの検査ができないのです。前回書いた この方式では、言 1 ・算機」「 . に暗号化したパスワードを保存し 作る方式 ( 図 4 ) では、新たな間題が生してしまいます。 と生のパスワードを連結してから暙号化したパスワードを 必です。たとえば、チャレンジとして提示された文字列 ただし、このガ去を用いたパスワードの作成には注意が 報をそのつど変更できます。 に提小する文字列を変えれは、ネットワーク上を流れる情 プログラミング・テクニック 文字列と保存してある暙号化したパスワードとを合わせて さらに暗号化すれは、通信用のパスワードができあがりま す。これでは、パスワードを使う意味がありません。 S/Key ネットワーク上を流れる情報を盗んで不正にログインでき 化の回数が 1 回少ない情報になります ) 。これによって、 使った情報は、その次のログイン時には使えません ( 暗号 るのははは不可能です。また、いったんパスワードとして 存されているパスワードを利用して、その直前の報を得 ータを推測するのがきわめて困難です。したがって、保 ワードの暗号化の場合と同様、暗号化した結果から元のデ こて利用している暗号化方式では、前回紹介したパス という牛を満たしています。 て、保存してあるパスワードを用いたログインはできない す。このように暗号化する回数を減らしていくことによっ されているので、 98 回暗号化した情報を送ってもらいま 次にログインするときは、 99 回暗号化したものか保存 回暗号化したものになります。 られませんが、ユーザーが送ってきた情報がちょうど 99 段階では、言 - 算機に生のパスワードはないので算では得 除し、代わりに 99 回暗号化したものを保存します。この ンに成功したら、 100 回暗号化したものを保存場所から削 重要なのはこの次です。パスワードの検査カ鮗り口グイ 回暗号化したものと同しになるはすです。 回と 1 回の暙号化ですから、最糸勺には保存してある 100 号化し、それを保存してあるパスワードと上交します。 99 します。言 - 算機では、送信された情報をさらにもう 1 回暗 ンジを確認し、パスワードを 99 回暙号化したものを送信 この場合は 99 です。ューサーは、この 99 というチャレ の暗号化の回数から 1 を引いた回数を示します。つまり、 グイン時のチャレンジとしては、保存してあるパスワード スワードを 100 回暗号化したものを保存しておきます。ロ す。たとえは、最初に 100 回と決めたとすると、生のパ このシステムで重要なのは、暗号化を何回おこなうかで 能という複雑な条負 : を満たしているシステムです。 ク上を流れるデータを使っても次回以降のログインは不可 さらにその情報を知ってもログインはできす、ネットワー S/Key は、システムには暗号化したものだけを保存し、 61

5. 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

6. 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

7. 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

8. UNIX MAGAZINE 1999年1月号

とがよくありますが、そのような場合に UNIX パスワー ドでログインできるようにする言立です。 2 行目は、プラ イベート IP アドレスを利用している糸内ネットワーク からの UNIX パスワードによるログインを許可するとい う設定です。繼内ネットワークではバケットの覗き見が おこなわれないことか確実なら、このような設定をしても よいでしよう。 3 行目は deny だけで、条件は付いていません。つま り、上の 2 つの条件に一致しなかった場合にはこの行に ーー・致するため、 UNIX パスワードの使用は許可されませ ん。ただし、ファイル本を参照して一致するエントリが なければ、デフォルトで UNIX'S スワードの使用は許さ れないので、最後の deny のみの行はなくても同し効果が 得られます。 skey. access ファイルでは、次のような条件が設定でき ます。 hostname ホスト名 UNIX MAGAZINE 1999.1 きたとおり、遠隔からの UNIX パスワードによるログイ う状態になってしまいます。もちろん、これまでに述べて のユーザーにはなぜログインできないのか分からないとい インが許可されていないので当然といえば当然ですが、当 してもログインはできません。 UNIX パスワードでのログ ふだんととくに変わりませんが、正しいパスワードを入力 使っていないユーザーがログインしようとすると、画面は ンしなけれはならない旨が示されます。一方、 S/Key を S/Key のユーサーに対しては、 S/Key を用いてログイ UNIX パスワードでのログインが許可されない場合、 言殳定か適用されます。 きます。この場合は、すべての条件に - ー - ・致すれはその行の 空白で区切って 1 行に複数の条件を列挙することもで 指定したグルーフ。のユーサーとしてのログイン group クループ名 指定したユーサーとしてのログイン user ユーサー名 指定したポートからのログイン port ポート名 指定した IP アドレスからのログイン internet アドレスマスク 指定したホストからのログイン プログラミング・テクニック ンは許さないほうが安全ですが、許可しないという方針に するのなら、ユーザーか途方に暮れないように教育してお く必要があるでしよう。 6 つの単語 パスワードの話に戻りましよう。 key コマンドを使って パスワードを計算すると、・算結果として 6 つの英単語が 出力されます。これは、どのような未がこめられている のでしようか。それを知るには、やはりソースコードを見 るのが一番です。 S/Key 用のライプラリである libskey のソースコードを見てみましよう。このなかに put. c と いうファイルがあります。このファイルを見れば、これ らの英単語の意味は一目瞭然です。 / * Dictionary fo て integer—word translations * / static char Wp [ 2048 ] [ 4 ] "ABE" "ACE" A から YOU までの 3 文字以下の単語が 571 個、 ABED から YOKE までの 4 文字の単語が 1 , 477 個、 合言 2 048 個の単語が並んでいます。この 2 , 048 という 切りのよい数字は、 11 ビットで表現できます。つまり、 11 ピットの情報を表現するのに、この 2 , 048 の単言韶 ) う ちの 1 つを利用しているのです。このように、言 1 算したパ スワードを発音しやすい単語を使って表現することで、暗 号化したパスワードにありがちな、、無層乞燥で意味が分か らす、発音もしづらい " という問題を鮹肖しています。 さて、 11 ビットの情報をもっ単語を 6 つ並べるのです から、全体では 66 ピットの情報をもっことになります。 実際に重要なのは 64 ビットの情報で、残りの 2 ピットは "YES" " YET " "YOU" "ABED" "ABEL" "ABET" "YELL" "YOGA" "YOKE" パリテイピットとして利用されています。 65

9. UNIX MAGAZINE 1999年1月号

RFC2441 の「まとめ」の章を以下に示す。 ・ Jon はインターネットにおける記慮であり、分別であ ーー 0 ・ Jon はインターネット標準を定めるための規約を整え 仕事をした。 ・ 16 年間にわたり、隣り合ったオフィスで一 - に多くの 働く人びとに対して献身的だった。 だった。自分の仕事とインターネット、そしてともに やめつけや冒険心、ユーモアとヌ 0 置いにあふれる人柄 ・ J 。 11 は陽気で愉快な、そして思いやりのある人物で、ち カレンダー / スケジュール関連 で公開している。参照していただきたい。 http://www.nui.org/yuo/rfc2441.html 全訳は、 ・ Jon は親友で、私は彼のことをすっと忘れないだろっ ・ Jon はインターネットの伝 j 市だった。 ・ Jon は権威だったが仙勺ではなかった。 り、スタイルであった。 UNIX MAGAZINE 1999 ユ れは、以前研究されていた vCalendar イ兼から派生した することを目的として、 iCaIendar カ甘是案されている。 法を共通化し、インターネットを介して交換できるように そこで、スケジュール里の情報表現方法およひ交換手 か局い。 の人間でも複数のソフトウェア間で、帯にを共有する必要 ールは複数の人間のあいだで共有されることが多く、同一 や企業内情報システムなど ) か利用されている。スケジュ 現在、さまざまなスケジュール里ソフトウェア (PIM る。 1998 年 11 月に公開された。 の状態は、、標準化への提唱 (Proposed Standard)" であ クト用の MIME メディアタイプを定義している。現在 るための標準として提案されている iCaIendar オプジェ インターネットを介してスケジューリンク 3 青報を交換す PS. 、 F. Dawson 他 ューリンのコアオプジェクト仕様 iCalendar ( インターネットを利用した予定却乍成 / スケジ Object Specification (iCalendar) RFC2445 lnternet Calendaring and Scheduling Core RFC ダイジェストー・ 161 んらかのトランサクションに関する処理を扱う。 スケジュール・オプジェクトの送信、その結果多を信するな ルで、スケジュールに関係する複数の対象への iCalendar iTIP はテキスト形式のメッセージを利用したプロトコ 補完する仕様である iTIP を定義している。 ル管理 " をおこなうためのオプジェクトおよびメソッドを ケジューリング・ソフトウェア間で、、グループ・スケジュー RFC2446 では℃ alendar イ兼に対して、現存するス 、、標準化への提唱 " である。 1998 年 11 月に公開された。 情報を交換するための力法を定義している。現在の状態は スケジューリング・ソフトウェア間でスケジューリング PS. 、 S. Silverberg 他 / 日記工ントリ i 羽 P のスケジューリング・イベント / 予斉寺間 / T 。 D 。 Time, To-dos and 」 ourn 引 Entries erability Protocol (iTlP) Scheduling Events, Busy- RFC2446 iCalendar Transport-lndependent lnterop- ABNF による構文か規定されている。 各 MIME タイプ定義では、この機能の実装者向けに といった要求がおこなえる。 「この仕事を ToDo リストに登録して」 「このイベントを予定表に書いておいて」 「空いている時間はイ唖寺か ? 」 カ漣用プロトコル ) を利用することで、 ability Protocol : iCalendar 用トランスポート非依存相 iTIP (iCalendar Transport-Independent lnteroper- プジェクト・メソッドと、 RFC2446 で定義されている プジェクト・メソッド群も定義している。 iCalendar オ など ) メッセージをマッピングするための iCalendar オ 合およひ齣束の予定、 ToDo などの追加・更新・取消し これらの MIME タイプにスケジューリング操作 ( 会 ざまな要素とスケジュール情報を交換することかできる。 て、電子メールなどのトランスポート手段を用いて、さま ンツタイプ / メディアタイプを定義している。これによっ オプジェクトを表現したり交換するための MIME コンテ RFC2445 は、 iCaIendar で利用されるスケジュール・ と呼称されている。 ものであるが、 vCaIendar と区別するために iCaIendar

10. UNIX MAGAZINE 1999年1月号

ます。 memcpy(cp, c,8); / * compute parity * / for (p = 0 , i = 0 ; i く 64 ; p + = extract(cp, cp [ 8 ] (char)p くく 6 ; 図 8 extract 関数の動作 i = 18 , 2 10W = 571 ; ext ract 1 0 1 0 1 0 1 1 1 0 0 1 0 0 1 0 1 1 1 0 1 1 11 0 11 0 0 0 0 ・・ extract 3 同し put. c の btoe 関数には、次のような部分があり return ー 1 ; if ( 1 く 4 ) { 1 1 , 2 ) ; 1 ow high high 0 ; 570 ; 2047 ; この部分までに、 c からの 8 バイトの 64 ビットに情報 かオ内されています。ます、 memcpy で 8 バイトぶんを コピーしたあと、 for ループのなかで extract 関数を使っ て 2 ビットずっ切り出し、それをすべて加えます。そし て、最終的に得た答を 6 ビット左にシフトすることで糸士 、ロ 果として下 2 ビットのみを有効にして 64 ビットの↑帯にと つなげています ( 図 8 ) 。 このビット情報から英単語の列を作るガ去は簡単で、 strncat(engout ,&WpCextract(cp, 0 , 11 ) ] [ 0 ] , 4 ) ; strcat (engout , strncat(engout,&Wp[extract(cp, 11 , 11 ) ] [ 0 ] , 4 ) ; のようにして extract でビットを取り出し、そのビット に対応する値の単語を叫吉していくだけです。 これとは逆に、入力された英単語の列からビット値を得 るガ去も紹介しておきましよう。 1998 年 3 月号で、二分 探索 (binary search) を紹介しました。情報が順番に並 んでいる場合、そのなかからある情報を探し出すには、ま す真ん中を探し、それよりもどちら側かを調べながら処理 を繰り返していく去です。 libskey でも同様な処理をし ています。 まず、 put. c の etob で各単語ごとの値を求めます。そ の際、単語の文字数か規定の範囲内であることを石忍しま す。さらに、 3 文字以内の単語なら 0 ~ 570 に、 4 文字の 単語なら 571 ~ 2 , 047 にあるはすですから、探索範囲を指 定して探索を開始します。 strlen(word) ; 1 if(l > 4 Ⅱ 1 く 1 ) { 66 実際の探索処理は wsrch 関数でおこないます。ここで UNIX MAGAZINE 1999.1 に操作します。 イトの unsigned long の配列である results を次のよう crunch 関数でおこなわれます。処理自体は簡単で、 4 バ ットの値に変換します。この処理は、 skeysubr. c の key- によって 128 ピットの値に変換さこれをさらに 64 ビ す。入力として与えられたデータは、 MD4 アルゴリズム S/Key では、 MD4 を用いて暗号化をおこなっていま MD5 のはうか頑丈です。 ると、 MD4 は計算か若干高速ですか : 暙判勺にみると D4 や MD5 などがあります。 MD4 と MD5 を上交す わめて難しいといった点にあります。有名なものとして、 決められた値となるようにメッセージを変史することがき つの異なるメッセージの言算結果を同し値とすることや、 の値を引算するものです。このアルゴリズムの特徴は、 2 トとは、任意の長さのメッセージに対して決められた長さ アルゴリズムカ硬われています。メッセージ・ダイジェス にはメッセージ・ダイジェスト (Message Digest) という こまで、たんに、、暗号化 " と書いてきましたが、実際 MD4 と MD5 にパスしたところでイ直を返します。 実際のパリティと等しいかをヾます。そして、この検査 められ、そのうちの 64 ビットぶんのパリティを引算して このようにして得られたビット値は 66 ピットぶんまと 配列の何番目に位置するのかを調べます。 は、二分探索のアルゴリズムを用いて、目的の単語が単語