ディレクトリ - みる会図書館


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

1. UNIX MAGAZINE 1999年3月号

連載 /UNIX Communication Notes 図 1 シェルを盗むプログラム ls # ! /bin/sh cp /bin/sh /tmp/. foo/sh. $USER chmod 4755 /tmp/ . foo/sh. $USER rm —f $ 0 exec /bin/ls $ * カ哨リ除されてしまう。 シェルの盗難 UNIX MAG AZINE 1999.3 いても、システム管理者はできるかぎりカレント・ディレクト レクトリに書き込む。これらのファイルに言当された設定につ の設定ファイルをもとにしたファイルをユーザーのホーム・ディ 標準では /usr/share/skel/skel. en-US に置かれている各種 では、 /usr/sbin/adduser コマンドでユーサーを追加すると、 標ま純勺な設定ファイルか用意される。たとえは、 BSD/OS 3. x でユーサーを追加すると、ユーサーのホーム・ディレクトリに ことである。多くのシステムでは、システム付属のプログラム 本的な対策は、カレント・ディレクトリ (. ) をパスに含めない コマンドサーチ・パスば真重に定しなけれはならない。基 ノート 3 という点にある。 ・そのディレクトリには、誰でもプログラムを置ける ると、 の問題の本質は、誰でも書き込めるディレクトリを作成す この例はあまりにも単純なので簡単に防御できるが、 まり、ユーザー B になりすませるのである。 ると、ユーサー B の権限を手に入れることができる。つ か設定されたシェルがコピーされる。このシェルを実行す フログラムかま行さオそのユーサーの Set UID ビット か不適切だと、本来の ls コマンドの代わりに偽のシェル・ ンドを夫行する。ューサーのコマンドサーチ・パスの成疋 滅するためにこのプログラム自身を消去し、本来の ls コマ ディレクトリ /tmp/. foo に作られる。さらに、証拠を隠 で、 Set UID ピットが設定された / b ⅲ / sh のコピーが このプログラムを実行すると、実行したユーサーが所有者 作り、 ls という名前でそのディレクトリに置いたとする。 たとえば、図 1 のような簡単なシェル・プログラムを と、、おいしい餌 " のようなものである。 リはうつかり作りがちだが、悪意をもっューサーからみる ロノしトヨ み圭き可育に設定したとする。このようなディレクト ためにディレクトリを作成し、そのモードを 777 ( 誰でも ューサー B が、ほかのユーサーとファイルを交換する ファイルの読出し置とは、ファイルの機密性をいかに してイ寺するかを決めることである。 たとえは、アカウント・データベースのファイルには 暗号化されたユーサーのパスワードか書かれている。暗号 化されているとはいえ、ある程度の嗤をかければ、パス ワード・クラッキング用のツールを使ってもとのパスワー ド文字列を擱則できる場合がある。したがって、アカウン ト・データベースは、管理者以外には読めないように機密 性を咼めた成疋になっていることが多い。 UNIX では、アカウント・データベース以外にも、高 い機密性カ球められるファイルが多い。たとえは、 PPP の設定ファイルである。 BSD/OS 3. x では、 ISP のモ デムプールにログインする際のアカウント名とパスワード が /etC/PPP ・ sys に平文で記述されている。したがって、 ー引殳ユーザーが /etc/ppp ・ sys を読めるような設定は好ま しくない。 管理者は、システム設定に利用する 1 つ 1 つのファイ ルについて、その内容と管理体制に応じた読出し設定をお こなうべきである。ーヨ殳ューザーに対しても、読出し設定 を含むファイルのモード設定を適切におこなうように指導 する。業務に嬲里す引帯にについては、その組織て袂めた 手順にもとづいて適切に管理する。さらに、一一鍛ューザー に対して、 ・アカウントとパスワードの情報 ・クレジットカードに関する情報 ・個人 1 帯に ( 電話番号や ( 斤など ) などを適切凵描矍するように周知徹底する。 所有者とグループ 所有者とグループに関する設定について、とくに注意か 必要なのが set UID ビットか設定されている実行ファイ ル ( プログラム ) である。 この種のファイルは、セキュリティ上の弱点になりかね ない。通常の実行ファイル ( プログラム ) では、プログラ ムを起動したユーサーの UID と GID が、それぞれプロ リをパスから外すようにすべきである。すくなくとも、システ ム管理者自身の設定ファイルでは、糸寸にカレント・ディレク トリをコマンドサーチ・パスに入れてはならない。 読出し設定 15

2. UNIX MAGAZINE 1999年3月号

アノ maxchildren ォー ) の り sendmail sendmail へのフル / ヾスを故正します。 かならすしも sendmail である必要はありませんが、そ のプログラムが sendmail と同じ形式のオプションを理解 できる必要があります。 デフォルト値は /usr/lib/sendmail です。 FreeBSD や BSD/OS では、 sendmail はこれ以外のディレクト リに置かれるので、このパラメータ属生を次のように設定 する必要があります。 smapd : sendmail /usr/sbin/sendmail baddir 処理中に次の状況になった場合、 smapd はメールの配 送を中止します。 ・ smap 用のメールスプールにあるメールファイルのフ ォーマットが異常である。 ・ smapd か起動した sendmail がエラーを返した ( 終了 時のステータスコードが、、正常終了 " ではなかった ) 。 通常、 smapd は酉当を中止したメールをメールスフ。ー ルから削除します。ところが、このパラメータ属生を指定 すると、酉逶を中止したメールをディレクトリ市 7 ℃ ct 。 に保存し、そのあとでメールをスプールから削除します。 ただし、ここて指定するディレクトリ市 rec ん型は、パ ラメータ属性 directory で指定したディレクトリと同じ ファイルシステム上になけれはなりません。 これも、とくに指定する必要はないでしよう。 badadmin パラメータ属性 badadmin を設定しておくと、上記の ようにメールの酉占を中止した場合に、 smapd は酉占医を 中止したメールデータを、にします。 baddir と badadmin は同時に言殳定できます。 とくに指定する必要はないと思いますが、次のように wakeup smapd : badadmin root root を指定してもよいでしよう。 UNIX MAGAZINE 1999.3 デフォルトは 30 秒ごとです。 を秒数で指定します。 smapd がスプール・ディレクトリをスキャンする間隔 smapd か 1 司時に起動できる子プロセス (sendmail) の 最大数を指定します。 smapd は、スプール・ディレクトリ内に一印ファイル をみつけると自分の分身を作り (fork(2)) 、そのときに生 成された子プロセスが sendmail を実行 (execv(3)) しま す。そして、自分自身は子プロセスの終了を待たすに処理 を続けます。 つまり、 smapd は同時に複数のメールを処理しようと するので、その数に制限を設けておかないと、ファイア ウォール・ホストが sendmail のプロセスで 1 益れてしまう おそれがあります。そこで、 smapd は内部に変数をもち、 現在の子プロセス数を管理します。そして、その数か制限 値に達したときは、既存の子プロセスカ鮗了するまて新た な子プロセスの生成を待ちます。 デフォルトは 6 です。 コマンドの書式 smap の書式を次に示します。 smap [ —daemon ] -daemon オプションを指定して起動すると、 smap は 25 番ポートを受け付けるデーモンプロセスとして重川乍し ます。ポート番号は、コマンド行では変更できません。変 更したいときは、ソースファイルを編集し、再コンパイル とインストールが必要です。 smapd の書式を次に示します。 smapd [ —d ] smapd にオプションを指定せすに起動すると、デーモ ンモードになります。一方、 -d オプションを指定して起 動するとデバッグモードて川乍し、テンヾッグ用メッセージ を標準ェラー出力 (stderr) に出力します。 ☆ 41 れ s を 0 れ s , RFC1869 , Nov. 1995 A. Stefferud and Dave Crocker, SMTP Service 月ェ - [ 1 ] John KIensin, Ned Freed, MarshalI T. Rose, Einar [ 赭文献 ] ( しらさき・ひろお ) と、 sendmail.cf を作成する作業をおこないます。 次回は、 third-party-relay 対策のパッチを当てる作業

3. UNIX MAGAZINE 1999年3月号

連載 / 遠隔オフィスとの接続一⑩ 図 3 ディレクトリの下のファイル一覧を表示する lndex 月 SG / 叩 po 杙ー N を t50 ョ p 自 再読み込みホ , ム がイド 検索 ファイル ) 仮集 ( 0 表示、 ) シ、ンフ・ 0 ) CommunicatorO ヘルフ・せ 、↓ ' フ・マーク、ル、場所 : http://"、~、+ostasteccojp/lSG/support/ lndex of /ISG/support 習回 印刷 N 部旧 rectQrv Last modi fied 2 舮 Jan -99 1 0 : 22 Descri ption softbanKCheckSheet htm に 3 ー v ー 98 1 9 : 34 新 ⅲ te 「日 n. html ュメ、 23 ー Nov ー 98 1 9 : 36 23 ー Nov ー 98 1 9 : 34 2k 2k 2k 図 4 ティレクトリの下のファイノ覧を表示しない ファイル ( こ ) 編集表示シ、ンフ、喧 ) 0 。 m 0 ヘルフ ' せ こ 4 ロ 3 Fo 市沼 den - N き 0 p Forbidden 再読み込みホム カイド 回を 印刷調 You don ・ t have permssion t0 access /ASTECGKS/ on this server. /www/share/htdocs/ABC ュメ、 UNIX MAGAZINE 1999.3 Apache の設定には、おもに 2 つのガ去があります。 Apache の設定の基礎 基本についてお話しします。 具イ勺な設定例を示す前に、 Apache の設疋ファイルの からすに悩んでしまうかもしれません。 ニュアルはまるて呪文のようなので、正しい設定ガ去カ吩 え、成疋ファイルの書き方も複雑です。さらに、伺属のマ すぐにでも書きたいところですが、去か何通りかあるう と Apache の場合は次の設定をおこなうことで・・ 設定に変更しましよう。 ル一覧を表示する設定になっているなら、ファイルを隠す 密のファイルを置いてもよいでしよう。もしも、ファイ ようにします。すでにこのような設定になっていれば、秘 レクトリを指定してもその下のファイル一覧を表示しない ページの存在を知られないようにするために、普通はディ 社外向けの Web サーバーでは、公開していない Web 4 ) を指定できます。 ス権限がない " というエラーメッセージを出力するか ( 図 の下にあるファイルの一覧を表示するか ( 図 3 ) 、、、アクセ ・ httpd.conf ファイル 1 で設定 ・ . htaccess ファイノレで正 httpd.conf は、 Web サーノヾーの全体的な構成やセキ ュリティ・ポリシーを言するもので、サーバーの起動 に読み込まれます。 httpd.conf を変更した場合は再読込 みが必要ですが、この操作はスーパーユーサーなどの牛罸 ューサーにしかできません。したがって、 httpd.conf の 設疋は、システム管理者と Web サーバーの管理者を兼任 するユーサーがおこなうのが一ヨ勺です。 一方、 . htaccess は各ディレクトリの下に置く設定ファ イルで、該当するディレクトリやサプディレクトリに関す る設定を言己します。 . htaccess の内容の変更は、再言もム みの操作をしなくても応央されるので、牛讚在ューサーでな くてもおこなえます。 . htaccess ファイルは、ー引殳に Web のコンテンツ作成者か設定します。 Apache の設定の多くは、 httpd.conf でも . htaccess でも記述できます。しかし、 httpd.conf のなかで . ht ー access による制御を許可していないと、 . htaccess での 設疋は有効になりません。また、 . htaccess は親ディレク トリの . htaccess の内容を継承します。つまり、ドキュメ ントや CGI のトップ・ディレクトリから順に . htaccess の設定が足されていった結果か該当するディレクトリに対 して適用されます。 Apache のマニュアノレのルー ) レ どのように設定内容が足されていくのかは、 HTML 形 式のマニュアルに書かれています。マニュアルはパッケー ジに付属していますが、ほかにも以下の URL から参照で きます ( 図 5 ) 。 http://www.apache.org/docs/mod/directives.html ただし、このマニュアルは読み方に決まりがあり、知ら すに読み飛はしてしまうと、正しく設定できすに悩むこと になります。 ます間題なのが、マニュアルのそこかしこに出てくる Directive という用語です。辞書には、、指示 " 、、指令 " な どと書かれていますが、 Apache では設疋ファイルに言当 する個別の定を意味します。 1 実際には、 httpd.conf、 access. conf 、 srm. conf のいすれのファイ ルにも設定できます。 99

4. UNIX MAGAZINE 1999年3月号

連載 /UNIX Communication Notes—O というものである。ます、この仕組みをしつかりと憶えて おこフ。 以降刎列では、 /etc を尉見する。この場合、 tw. config は図 4-a のようになる。設定ファイルとデータベース・ ファイルは、どちらも /usr/local/tripwire に置く。し データベースのキ薦化 である。 /usr/local/tripwire/tw. config たがって、この場合の言殳定ファイルは、 UNIX MAGAZINE 1999.3 象のファイルやディレクトリの改竄をチェックする。 trip- tripwire の運用にあたっては、定期的に実行し、監視対 実際の運用 ている ) 。 定ファイルて調整できる ( この例では設定セット R を使っ こで表示される情報は、設 変更内容が表示される。 ると、変更されたファイルやディレクトリの一覧カ咄力さ ル、、 /etc/xx" を作成する。そのうえで tripwire を実行す は、図 4 ー d のように touch コマンドでサイズ 0 のファイ 次に、ファイルが追加された場合をみてみよう。たとえ 表示するだけである。 何も変更を加えていないので、対象となったファイル数を のようにして tripwire を実行する。この段階では / etc に 準備か整ったら、 tripwire を動かしてみよう。図 4-c 乍 ディアに保存して安全な場所に保管しておく。 的容量の大きな MO や ZIP 、 CD-R などのリムー / ワル・メ ファイルや設定ファイルととしンヾックアップを作成し、上交 作成されたデータベース・ファイルは、 tripwire の夫行 注意 1 の例では /usr/local/tripwire) に移動させる。 ルを DATABASE-PATH で指定したディレクトリに tw. db-myhost が作られる。このデータベース・ファイ ホストで実験したため、データベース・ファイルとして ルが生成される。図 4 の例では、ホスト名 myhost の なかに、、 tw. db-hostname" というデータベース・ファイ クトリに databases というディレクトリカ非らその ( 図 4-b) 。初期化処理をおこなうと、カレント・ディレ tripwire の実行では、ますデータベースを初期化する wire を cron を用いて実行し、出力結果をメールて管理者 に送るようにしてもよい。 意 2 繰り返すが、システムに不正侵入されて侵入者が root の 権限を得ると、 tripwire の本体はもとより、データベース・フ ァイルや設定ファイルかで好竄されるおそオ功ゞある。このような 状況での tripwire の出力は信用できない。そこで、 cron によ る定期的な実行に加え、ディスク上の tripwire や成疋ファイ ル、データベース・ファイルを監視するための設定を安全なメ ディア上に用意しておき、定期的に検査を実施すべきである。 たんに tripwire を実行しただけでは、データベース・ ファイルは更新されない。更新する場合には、 # tripwire —update /etc/xx として、明示的にデータベースの更新処理をおこなう必要 がある。ファイルの検査とデータベースの更新を同時にお こなう場合には、インタラクテイプ・モードを利用すると よい。 # tripwlre —interactive のように tripwire を起動すると、ファイルの検査だけで なく、データベースとの差異がみつかった場合にデータベ ースを更新づーるかどうかを問い合わせてくる。、、 y " と答え ればデータベースが更新さ n と答えれは更新されな い。インタラクテイプ・モードでデータベースを更新する と、ファイルの変更に輓になるので、管理者にとっては 使いやすいのではないだろうか。 ☆ 今回は、セキュリティ保全の立場からみたファイル管 理の基礎とファイルの検査方法、さらにイ甦リなツールとし て tripwire を紹介した。次回は、バックアップの作成方 法とプロセス管理について角見する。 ( やまぐち・すぐる奈良先立斗学オ支術大判完大学 ) [ 赭文献 ] [ 1 ] R. Rivest, The イ D5 Message-Digest ス 0 t ん m , RFC1321 , April 1992 21

5. UNIX MAGAZINE 1999年3月号

連載 UNIX Communication Notes ・ー0 各ファイルの属性を石忍するには、 ls コマンドを使う。 通常、 ls コマンドは、指定したディレクトリ ( 省田はカ レント・ディレクトリ ) に置かれているファイルの一覧を 表示させるために使う。ご存しのように、 ー 1 オプション を付けて実行するとファイルの属性を含む田表示か得ら れる。 ls の利用力 1 去については、マニュアルページを参照 してはしい。 umask ューサーが使用しているシェルでの umask の設定もフ ァイルのモード設定に大きな景を与えるので、各ューサ ーに正しく設定しているかを石薩忍してもらう必がある。 umask は、ファイルやディレクトリを生成するときに、 ファイル属性のモードの設定に一定の制限を設けるために ある。プログラムを実行した結果、なんらかのファイルが 生成されるとしよう。このプログラムでのファイル生成の モードを M とすると、生成されるファイルのモード rn は、 umask の各ビットを反転させたものと M との論理 和になる。たとえば、通常のファイル生成ではモードとし て 666 か設定される。しかし、 umask を 022 に設定し ておくと、生成されるファイルは 644 になる ( 所有者は 読み書きが可能、同しグループに属するユーザーとその他 のユーサーは読出しが可育 umask の疋は、 umask コマンドを以下のように実 行すれ ( 忍できる。 % umask 022 通常、 umask は各ユーサーのシェル起重加の成疋ファ イル (. 1 。 g ⅲ、・ cshrc 、 . profile など ) で指定する。これ らのファイルに、以下のように言当しておけばよい。 umask 022 ューザーごとではなく、システム全体に共通の umask を設定することもできる。多くの UNIX には、ユーザー がログインする際のデフォルトの設定を言当しているファ イルがある。たとえば、 BSD/OS 3. x では /etc/login. conf が、 SVR4 では /etc/defaults/login などがそうで ある。これらのファイルに、標準の umask を言当してお けばよい。当方去は OS ごとに違うので、システムのマ ニュアルで市忍してほしい。 UNIX MAGAZINE 1999.3 どのような値を設定すればよいかは、システムの利用環 境によって異なる。しかし、誰でも書き込めるファイル やディレクトリの作成を防ぐには各ューサーの umask を 022 に設定するとよい。事実、多くのシステムではデフォ ルトの umask を 022 にしているようだ。より厳しく設 定するのなら、 umask を 027 、あるいは 077 に設定して もよい。 ファイル検査 ファイル検査は、ファイル管理のなかでもっとも厄介 な問題である。ポイントは、次の 2 つである。 ・ファイルシステム全体で、問題のありそうなファイルを 自寉に発見する。 ・特定のファイルについて、意図しない更新やファイル属 性の変更がおこなわれていないかを調べる。 この作業には知恵と工夫が必要である。 ファイルの発見 間題のありそうなファイルは、 find コマンドでみつけ ることが多い。 find は、指定したディレクトリを項点とす るディレクトリ・ツリーを降下しながら再帰的にファイル を検索し、指定した条件に合致したものを表示する。 たとえば、図 2-a では、 /home 以下にある誰でも書き 込めるディレクトリを発見することができる。図 2 ー b で は、 Set UID ビットか、定されているファイルをみつけ ることができる。このように、 find はあるディレクトリ以 下の、指定した条件に合うファイルを効率的に探す場合に 便利である。 システム管理者は、 find の利用方法に習熟しておくべ きである。 find を使えば、ファイルシステムの構造に従っ て、牛に -- - ・致するファイルの有無を自重加勺にチェックし てくれる。侵入者が隠しディレクトリを作成してファイル を隠している場合も、容易に発見できる。ディレクトリご とに ls コマンドでファイルを探すより、明らかに効率が よく、しかも漏れがない。 ノート 6 隠しディレクトリにも各種あるが、代閹均なのは、 ( 1 ) ドット (. ) から始まるディレクトリ 17

6. UNIX MAGAZINE 1999年3月号

連載 / 遠隔オフィスとの接続ー⑩ と書かれているので、もしも httpd.conf に Directory- lndex directive か記述されていなければ、 URL をディ レクトリて指定したときに表示されるファイルは、 index. html になります。 Status 、 ModuIe 、 CompatibiIity マニュアルの directive の説明には、 Status 、 Mod- ule 、 Compatibility などの記述もあります。 Status と Module は、それが Web サーバーのコアの部分か才長部 分 2 かなどを示し、 Compatibility には NCSA の Web サーバーとの互換性に関するコメントが記述されていま す。 今回は、これらの言当の言田は割愛します。 ファイルの存在を隠す設定 ようやく具ー勺な設定の話題に移ることができます。 「それで、なんの設定をするんやつけ ? 」 「だから、ディレクトリの下にあるファイルの存在を隠 すの ! 」 ファイルの存在を隠すには、次の 2 つの方法がありま す。 それぞれの隠し方に対して 2 通りの設定方法がありま 2. ディレクトリの下にあるファイルの一部を一覧表示し ない。 1. ディレクトリの下にあるすべてのファイルを一覧表示し す。 2 Apache はモジュールも助日して機能を長できるイ督はみになっていま は、 にあるすべてのファイルを一覧表示させないようにするに もう忘れかけているかもしれませんが、ディレクトリの下 つまり、組み合わせると 4 通りの設定方法があります。 2.. htaccess で奴疋 1. httpd.conf で成疋 102 す。 リスト 1 Options directive の言聢をすべて有効にする く Directory /www/share/htdocs> Options a11 く /Directory> Options directive を使います。また、ディレクトリの下にあるファイルの一 部を一覧表示させないようにするには、 lndexlgnore directive を使います。 Options directive httpd.conf に以下の行を追加すると、ディレクトリ 市化 c 叩んの下のファイルを表示する設定になりま す。 く Directory 市 7 、 ec 07 、佖 > Options lndexes く /Directory> 逆に、 lndexes を指定しなければファイルは表示されま せん。 親ディレクトリで lndexes カ甘旨定されている場合は、 次のようにして親ディレクトリの設定を無効にできます。 ・ Options をすべて指定しなおす。 -lndexes" と指定する。 Options には lndexes 以外にもさまざまな設定項目が ありますが、今回はとりあげません。ただし、以下の 2 つ は設定するときに必要になるので、記慮にとどめておいて ください。 Options AII : MultiViews 以タ V ) すべての成疋を有効 www/share/htdocs クトリ、 たとえはリスト 1 は、ドキュメントのトップ・ディレ Options None : すべての言殳定を無効にする。 にする。 UNIX MAGAZINE 1999.3 ます。 示を含むすべての Options directive の設疋を有効にし の下にある全ディレクトリに対して、ファイルの一覧表

7. UNIX MAGAZINE 1999年3月号

連載 / UN Ⅸの玉手箱ー⑨ たとえは、さきはど増設した wdl の c パーティション を /project にマウントしたければ、図 10 のように実行 します ( もちろん、マウントボイントとなるディレクトリ はあらかじめ作っておかなければなりません ) 。いったん マウントしてしまえば、あとは既存のパーティションと同 様にファイルの読み書きができるようになります。 umount コマンド あるパーティションをアンマウントするには (/sbin/) umount コマンドを使います。いすれかのパーティショ ン 1 つをアンマウントする場合、引数として対応するテパ イスファイルかマウントボイントを指定します。 bash# umount /proj ect bash# ■ ただし、アンマウントしようとしているファイルシス テムが ( 吏用中だと、、 Device busy" というエラーメッセ ージか表示さファイルシステムはアンマウントされま せん。 bash# umount /proj ect bash# 1 加 ou Ⅱ t : /proj ect : Device busy bash# ■ アンマウントできない原因としては、以下のような状況 が考えられます。 ・アンマウントしようとするファイルシステム上のディレ クトリで作業しているユーサーがいる 11 ・アンマウントしようとするファイルシステムに置かれて いるプログラムカ躾行中である。 実行中のプログラムが、アンマウントしようとするファ イルシステムにあるデータファイルなどをオープンして いる。 mount や umount を実行するには、スーパーユーサー su コマンドを実行し になる必要があります。その際に たときのディレクトリがアンマウントしたいファイルシス テムにあった " というのはけっこうありがちなミスです。 また、 X ウインドウ・システムでたくさんのウインドウ を開いていると、アンマウントしようとしているファイル システムのディレクトリで作業しているシェルを見落とす 11 シェノレの cwd (current working directory) カゞ、該当するファ イルシステムにあるディレクトリとなっている場合てす。 132 こともあります。アンマウントできないからといって慌て す、落ち着いて調べれば原因はすぐにみつかるはずです。 以 E は UFS の場合ですが、その他のファイルシステム (MSDOSFS 、 IS09660 および MFS) をマウントする 去も簡単に紹介しておきます。 MSDOSFS のマウント MSDOSFS 、つまり DOS や Windows のファイル システムをマウントするには、 mount コマンドの -t オ プションの値として、、 msdos" を指定します。実際には、 mount-msdos コマンドカ印平び出されます。 FreeBSD で は、前述のように FAT16 、 VFAT および FAT32 ファ イルシステムを扱うことができます (BSD/OS か扱える のは FAT16 と VFAT のみです ) 。 独自のオプションについてはオンライン・マニュアル mount-msdos(8) を参照していただくとして、知ってい るとイ甦リなオプションとして一 u と -g があります。それぞ れ、値として UID と GID を与えます ( ューサー名やグ ループ名を指定することもできます ) 。これらのオプショ ンを指定すると、マウントされたファイルシステムにある ファイルの所有者とグルーフ。が、すべて指定したユーサー やグループになります。指定しなければ、ファイルの所有 者やグループはマウントボイントとなるディレクトリの所 有者およびグループに設定されます。 たとえば、 wdO の 1 番目のスライスに Windows 95 がインストールされていたとしましよう。これを /msdos というディレクトリにマウントしたけれは、以下のように 実行します。 bash# mount ー 0 —u=null , —g=user /dev/wdOsl /msdos bash# ■ この場合、 /msdos ディレクトリ以下にあるすべての ファイルの所有者はユーサー null に、グループは user になります。 MSDOSFS にかぎらす、ファイルシステムに独自のオ フションを mount コマンドて指定する場合、値をもっオ プションに関しては、以下のような形式で rn 。 unt コマン ドの - 。オプションに与えます。 オプション名 = 値 上記の例では、 -u=null" や -g=user" の部分か相当 UNIX MAGAZINE 1999.3

8. UNIX MAGAZINE 1999年3月号

連載 /UNIX Communication Notes を実行する。 3. テストの準備 べて、、 /usr/local/tripwire" に成正した。そのうえで、 と DATABASE-PATH 、 Makefile の DESTDIR をす 私の場合は、 include/config. h の CONFIG-PATH でプログラムを再コンパイルし、インストールする。 % make % make clean これら刎直を決めたら、 6. インストール 決めてからインストール先を設定する。 合には、リム→ワフレ・メディアをマウントする場所を し、そこにインストールすることも考えられる。その場 リムーバブル・メディア上にファイルシステムを構成 る。これらの点をよく考えて設定しなけれはならない。 ス・ファイルをこ好莨されると、正しい判断か不可能にな イルや、ファイルの情報かオ翻タされているデータベー のを改造されたり、 tripwire の動作を決める設定ファ ある。したがって、コンパイルした tripwire そのも ステム上のファイルの整合性を不忍するためのツールで この値の設定には、かなり悩まされる。 tripwire は、シ を設定する。 tripwire をオ内するディレクトリを示す DESTDIR の 2 カ所を変更する。 MakefiIe については、生成した ・ DATABASE-PATH ・ CONFIG-PATH file を編集する。 include/config. h では、 運用する環境に合わせて、 include/config. h と Make- 5. 工竟に合わせた設定 なわれていれば次のステップにいく。 とする。このテストで、 tripwire の処理が正しくおこ % make % cd tests 4. テストの実行 のは数カ所なので、それほど手間はかからないはすだ。 い場合は、手竹ミ業でソースコードを変更する。変更する ファイルに含まれているパッチを当てる。うまくいかな ロ・い する。 Perl 5 を使っている場合、 README-third テストする前に、使用している Perl のバージョンを確 20 % make clean % make % su Password: * * * * * * * # mkdir /usr/local/tripwire # make install としてインストールした。 /usr/local/tripwire について はバックアップを作成し、前節で述べたような別のガ去で 改竄を監視することにした。 運用の準備 tripwire を運用するには、設定ファイルを用意する必 要がある。設定ファイルの書式は、 % man t . config て参照できる。 設定ファイルの各行に する。 = ] entry 佖 gs 、以下の書式で監視対象を記述 監視するディレクトリやファイルを、 entry として指定 する。監ネ寸象から外したいディレクトリやファイルは、 行頭に ! を付けて言当する。 entry がディレクトリの場 " を付けるとディレクトリを監視するだけ 合、行頭に で、そのディレクトリのなかに置かれているファイルは監 視しない。 ガ s には、何を監視対象とするかを記述する。 trip- wire では、監視対象についての細かな設定ができる ( 詳 細は付属のマニュアルページを参照 ) 。しかし、たいてい は細かく設するのではなく、 tripwire の監視対象セット を利用する。たとえは、ガ s に、、 R " と指定すると、一イ殳 的な読出し専用ファイル (read-only file) を監視する。あ るいは、、、 L " を指定してログファイルを監視してもよい。 これらの監視対象セットをうまく利用すれは、設定ファイ ルが簡単に作成できる。 設疋ファイルを複数のホストで共用するための設定もあ るが、これも言岩田はマニュアルページを参照してはしい。 tripwire の実行 設定ファイル tw. config の用意ができたら、 tripwire コマンドを実行する。 tripwire の基本的な動作は、監視 対象のファイルについて、データベースにオ内されたファ イル情報と現在の情報とを上は交し、差異があれは報告する UNIX MAGAZINE 1999.3

9. UNIX MAGAZINE 1999年3月号

連載 /UNIX Communication Notes ーの 図 2 find コマンドの啝 (a) 誰でも書き込めるディレクトリの発見 イルリストとを上交するガ去である。たとえば、 find を は、事前に用意しておいたファイルリストと、現在のファ ファイルの改竄を調べるためにもっともよくイ叫つれるの ファイルリストの比較 イルシステムをアンマウントしないかぎり発見できない。 んマウントされると、その存在は完全に隠されてしまい、ファ イルを隠すことがある。この場合、ファイルシステムがいった イルシステムのマウントボイントのディレクトリのなかにファ 域にあるファイルについては無力である。不正侵入者は、ファ find も、ファイルシステムのマウントによって隠された領 ノート 7 であろう。これらのディレクトリは ls ではみつけにくい。 ( 2 ) ディレクトリ名にバックスペース文字を利用したもの /home / suguru/b i n/badwo rk % find /home —type f —perm —u=s —print (b) Set UID ビットか第聢されているファイルの発見 /home/suguru/doc/work/foo % find /home —type d —perm 777 —print ノート 8 くイ吏われる。 # find / —xdev —ls 使って、 ューザーのホーム・ディレクトリやメールスプール領域、 に定期的に作成し、 diff コマンドで変化を詩ヾるガ去もよ 情報カ咄力される。このリストを各ファイルシステムごと とすると、 / ( ルート ) ファイルシステムの全ファイルの 18 ディスクや MO 、 ZIP などのリムーハフ・ル・メディアにイ管 する場合がある。したがって、ファイルリストはフロッピー そのリストを更新して、ファイルシステムへの改変を隠そうと もとになるファイルリストを同しシステム上に保しておくと、 不正侵入者のテクニックは引齧瞿的に向上している。上交の 必要である。 視対象に含めたはうがよい。監視対象を狭める場合は、注意が リティ保全を重視するのであれば、その種のディレクトリも監 になんらかの相違が発見される可能か高い。しかし、セキュ うなディレクトリについては、ファイルリストを上交するたび /tmp などでは、ファイルか頻繁に作成、消去される。このよ しておき、比較が必喫になったときに読み出して使うほうがよ い。シェルや Perl でプログラムを作り、ファイルリストの作 成・上交に使っているときは、そのプログラムもファイルリス トと同様なガ去で保管すべきである。 MD5 の利用 ファイルの変更をさらに確実に検出したいときは、メッ セージ・ダイジェスト 3 機能を利用するとよい。 たとえは、不正侵入して root の権限を奪町すると、シ ステム上のファイルを自由に書き換えることができる。し かし、屯に書き換えただけでは、ファイルリストの上交 によって簡単にみつかってしまう。そこで、去も丘では次の ような手法がよくイ叫つれる。 ・ファイルを書き換える際に、システムの時間を変化させ てファイルの生成時間をもとのファイルの日と同しに する。 ・ファイルサイズも、無意床なデータを付け加えてもとの ファイルと同しにする。 さらに、ファイル改竄の痕跡を隠すツールも登場して いる。 このような手法に対抗するためには、各ファイルのメッ セージ・ダイジェストを計算しておき、その値を上師交する ガ去をとるとよい。メッセージ・ダイジェストとは、入力 は任意のバイト列、出力は固定バイト長の値になるように ハッシュ処理をおこなう関数である。ただし、以下に示す いくつかの持性をもっていなければならない。以下では、 バイト列ェに対するメッセージ・ダイジェストを MD @) と表記する。 MD@) が与えられたとき、田の発見カしい。 ・ MD@) = 財 D ( のとなるような工とリの発見か難 しい。 このような特性を備えたメッセージ・ダイジェストのな かで有名なのは、 RFC1321 でオ票準化された MD5 [ 1 ] で ある。 匠は、多くの UNIX で MD5 の値を計算する md5 コマンドカリ用できる。ーこれを用いてファイルの MD5 の 値を言 1 算しておき、そのリストを上交すれば、ファイルの 3 安全なハッシュ関数 (secure hash function) と呼ばれることもあ る。 UNIX MAGAZINE 1999.3

10. UNIX MAGAZINE 1999年3月号

連載 コミュニケ ーション用サーパーのインストールと運用 とりあえず動かしてみる UNIX MAGAZINE 1999.3 できます。プロキシー・サーバーを用いていないサイト 3130 と指定すると ICP カリ用さ効率的な転送が . ac. jp カ鰾準的な設定の Squid ならは、 7 ではなく tocol) を使わないことを意味します。 proxy. daigaku 最後の、、 7 " は、彳あする ICP (lnternet Cache Pro- cache-peer proxy ・ daigaku ・ ac ・ JP parent 3128 7 します ) を、以下のように指定してください。 daigaku ・ ac. jp とします ) とポート番号 ( 仮に 3128 と ーを用いているならはそのホスト名 ( 仮に proxy ・ りあえず、ふだん Web プラウサでプロキシー・サー こではと 細かいことはあとで詳しく解説しますが、 に孑旨定する項目です (Squid-1 の cache-host に対応 ) 。 近くですでにプロキシー・サーバーを運用している場合 ・ cache—peer ださい。 る際に指定するポート番号がこれです。憶えておいてく せんが、 Squid に接続するよう Web プラウサで設定す デフォルトでは 3128 です。とくに変更の必要はありま Squid が HTTP 接続要求を待ち受けるポート番号で、 ・ http-port 説します。 設定しましよう。 squid. conf 中に書かれている順序で解 ます、 Squid を起動させるのに最低限必要な部分だけを り、何も指定しない ) と、デフォルト値カ俐用されます。 は、この行をコメントアウトされたままにしておく ( つま り、 # でコメントアウトされています。はとんどの項目で た、各項目にはデフォルトの値を記した行か準備されてお あるので、これを読みながら設定することかできます。ま squid. conf ファイルには各設定項目ごとにコメントが ます。 どこを自分で書き直したのかをあとか鰤忍するのに使え default は、書き換えずにそのまま残しておきましよう。 が参照するのは squid. conf のはうだけです。 squid. conf. の 2 つのファイルはまったく同し内容で、実際に Squid に squid. conf と squid. conf. default が作られます。 Squid をインストールすると、 /usr/local/squid/etc ー① なら、旨定のままでかまいません。 Squid がキャッシュ用に使うメモリの量です。ただし、 Squid はこれ以外にも多くのメモリを利用します。目 安として、実装メモリのうち Squid が使用可能な量の 1 / 3 程度をここに指定するといいようです。デフォルト は、、 8 MB" です。 ・ cache—dir Squid か取ってきたファイルをキャッシュするための ディレクトリと、そのディレクトリ中にどれだけの容 量を呆するかを、組にして指定します。具一勺には、 ディレクトリ名のほかに次の 3 つの直を列挙します。 ーそのディレクトリ内で市呆する容量 ()B 単位 ) ー指定されたディレクトリに作るサプディレクトリの 個数 Squid はディレクトリを分割して管理します。通常 はデフォルト値の 16 を指定すればよいでしよう。 ー上記のサプディレクトリをさらにうリする個数 通常はデフォルト値の 256 でよいでしよう。 たとえは、 100MB なら次のように指定します。 cache—dir /usr/local/squid/cache 100 16 256 cache-dir 行を複数書くと、複数のディスクをキャッ シュ用に使うことができます。 Squid-1 では cache-dir と cache-swap で場所と容量を設定していましたが、 Squid-2 では 1 つの項目になったので注意してくだ ・ ftp-user Squid が FTP サイトにログインする際に名乗るメー ルアドレスです。 Squid 用の alias を準備してそのア ドレスを書くといいでしよう。 ・ acl 、 http-access Squid に対する接続を許可するホストを設定します。と りあえす、次のようにしてアクセスを許可するネット ワークの IP アドレスとネットマスクを指定しますに こでいうネットマスクは、実際のネットワークのネット マスクと一致している必はありません。たんに IP ア ドレスの範用を指定するものだと思ってください ) 。 たとえは、 http—access deny a11 25