図 19 ACL か言綻されたファイルのコピー (a) rcp でコピーしたファイルにも ACL が設定されている client$ rcp server: syusyu. に x に syusyu ・ txt ・← ACL を設定したファイルのコピー client$ getfacl Syusyu . txt # file: Syusyu . txt # owne r : kabu # group : sokoku u S e r : : ー ー us er : f tp : r ー #effective : #effective: group : mask : other: client$ (b) ℃ p の通信の様子 認証情報、 rcp -f Syusyu. txt ・・←ユーザー 'ftp" の権限がコピーされている Authentication OK client server C0600 840 Syusyu. txt user::rw-,user ・ ftp:r--.group::---.mask:---.other:--- ・← ACL の情報 Syusyu. txt の内容 きの様子をみてみましよう。 図 19 ー a は、さきほど用意したユーザー ftp の ACL が 追加された Syusyu. txt を、 rcp でコピーした結果です。 コピーしたファイルの ACL を表示させるとユーザー ftp の権限が設定されており、ファイルの内容やパー ミツンヨ ンとーーー・緒に ACL の情報もコピーされたことが分かります。 図 19 ー b は rcp の通信の様子を示しています。認証の処 理が終ったあと、ファイルの通常のパーミッション情報に 続いて、 ACL の情報が server から client に送信されて います。 client は、 server から送られてきたこれら 2 種類のフ ァイル属性を Syusyu ・ txt に設疋します。このような仕組 みにより、 rcp では ACL カ又疋されたファイルはその情 報も含めてコピーされます。 なお、当然ですが、コピー元のファイルに ACL カ羸疋 されていても、コピー先の OS やファイルシステムが対応 66 ついてお話ししました。 今回は、 rcp によるファイルコピーの仕組みと安全性に ☆ していなければ ACL の情報はコピーされません。 rcp のアクセス制御やセキュリティの仕組みは脆弱なの で、インターネットでの利用には向いていません。しかし、 セキュリティをあまり重視しなくてもよい環境では、手軽 なファイル転送の手段として使えます。セキュリティを重 視する場面では、操作性羽以ている scp を使用することも できます。 また、 rcp が通信する様子を解析し、ファイルやファイ ルの属性、 ACL の情報をコピーする仕組みについて調べて みました。 rcp には決まった仕様があるわけではなく、 OS や実装 ごとにすこしすっ振舞いが異なります。この記事で紹介し たように動作しない場合は、操作している OS や、サーバ ー側の OS のマニュアルで確認してください。 ( あらい・みちこ ASTEC) UNIX MAGAZ 工 NE 2005 . 6
図 16 しないファイルのコピー (a) 存在しないファイルに対して℃ p を実行 client$ rcp server: Fukusui . txt . / rcp: Fukusui . txt : NO such file or directory client$ (b) ℃ p の通信の様子 認証情報、 rcp -f Fukusui. txt Authentication OK 工ラー : NO such file 0 「 directory client userl rcp server:Fukusui. txt . / Remote She Ⅱ P rot æol Response E r ro r Message f 計引 error rcp: FUkUSUi . を x を : NO such f ile or di rætory その後 setuid ビットや setgid ビットが追加され、さら によりきめ細かな制御カ可能な ACL の機能が追加されま 0 ACL を使用すれば、ファイルの通常のパー ミッションと は無関係に、指定したユーザーやグループが特定のファイ ルに対して言囚み / 書込み / 実行の処理が実行できるか、で きないかを設定できます。 ほかにもさまざまな設定力河・能ですが、詳細はマニュア こでは実験に必要な操作方法だけを解 ルに譲るとして、 説します。 getfacl と setfacl ファイルの ACL の設疋を調べるときは、コ s ーにコマン ドを使用します。 ACL か疋されていれば、 NSrwx-" のよ ミッションの状態が表示される箇所の右端に、、 + " が付きます ( 図 17- a ) 。 ACL が設疋されていないファイ ル ( 図 17 ー b ) とくらべてみてください。 ファイルに ACL を設定したり削除したりするには、 setfacl コマンドを使います。 ・ ACL を誌定する setfacl —s acl file ・ ACL を変更または追加する setfacl -m acl file ・ ACL を削除する 指定したファイルがないとき rcp で指定したファイルが server 上にない場合、コピー はもちろん失敗しますが、 client にはそのことが通信のど のタイミングで伝わるのでしようか。 図 16 ー a は、存在しないファイル Fukusui. txt に対して rcp を実行したときの結果です。また、図 16 ー b はこのと きの通信の様子を表しています。 認証を実行したあと、 server から client へメッセージ とともにエラーが通知されます。 client は受け取ったエラ ーメッセージ、 rcp : Fukusui . txt : NO such file or directory をそのまま画面に表示し、ユーザーにエラーを知らせます。 ACL 付きファイルのコピー 最後に、アクセス制御リスト (ACL) カ咐いたファイル をコピーするときに、 ACL の情報もコピーされるかどうか を調べてみましよう。 UNIX のファイルシステムに旧くからあるアクセス制限 の仕組みでは、 所有者 (owner) ・グループ (group) その他のユーザー (other) ごとに読込み / 書込み / 実行のアクセスを指定できます。 64 UNIX MAGAZINE 2005.6
図 9 ファイルの属性を知らせる (rcp) 回区 ストリムく「 cp - enc > ロー当住 : 斗住に印 ス当アドレス 1 当マアドレス 2 マプロトコルプサマリ server から client へ r¯ 3 c Ⅱ ent Aut henti cat i on OK RSH 十 se rver ファイルの属性を通知 「 3 client RSH Open r¯ 3 c Ⅱ ent Open RSH Remote She Ⅱ Protocol C0644 840 Syusyu. txt [Command ロ put 要第 3 引 i ent RSH 回国一 ファイルの属性情報 ファイ丿レの / ヾーミツンヨン ファイルサイズ 数のファイルをコピーする機能があるため、これから転送 れることを rcp コマンドに知らせるオプションです。 するファイルの名前を知らせる必要があるのです。 サーバーは言正に成功すると、 command で指定された コマンド (rcp) を実行します。以後のサーバーとクライア ファイル属性の通知に続いて、 server から client へフ ント間の情報のやりとりは、 rcp コマンドによっておこな ァイルの内容力云送されます ( 図 10 ) 。 client はさきほど われます。 受け取った属性情報と車幻医された内容をもとに、 server 上 のファイルと同じ内容のファイルを作ります。これで、リ ファイルの転送 モートホストのファイルのコピーは完了です。 認証に成功すると、 rcp は通信内容を暗号イヒしない ・ファイルの属性情報 ふたたびセキュリティについてみてみましよう。 . ファイルの内容 図 9 や図 10 から分かるように、 rcp (RSH プロトコル ) がファイルの転送元から転送先へ伝えられます。さきほど は通信内容を暗号化しません。そのため、転送されたファ の図 5 の通信では、コピーするファイルの属性と内容が イルの名前の情報や中身などは、ネットワーク・アナライ server から client へ中幻医されます。 ザで解析すると丸見えです。 図 9 は、 server から client へ送られたファイルの属性 rcp コマンドは、ファイルの内容などを秘密にしたい用 情報です。ファイルの属性清報には、 途には向いていません。そのような場合は、暗号化して転 ・データの種類を表す識別子 ( 、、 C " はファイル ) 送できる scp などのコマンドを使ってください。 ミッション ( 0644 ) ファイルのノヾー ・ファイルサイズ ( 840 バイト ) scp (secure COPY) ・ファイル名 (Syusyu. txt) scp は先月号の特集でもすこし触れましたが、 SSH を利 が含まれています。 用したファイル転送プログラムです。認証に使うパスワー コピーするファイルの名前は最初に client から server ドやファイルの内容を暗号化して転送するので、ネットワ へ知らせているので、もう一度 server から client へ知ら ーク上で通信を傍受されたとしても内容を知られる心配は せるのは一見無駄のように思えます。しかし、 rcp には複 ファイル名 60 UN 工 X MAGAZINE 2005 . 6
連載 ネットワーク・ミニ実験室 ファイル転送の安全性 荒井美千子 ホスト間のファイル転送にはさまざまな方式があります 図 1 rcp のファイル中医 が、安全面からみた場合、セキュリティ的に強いものと弱 (a) いものがあります。 たとえば、先月号の特集「 FTP のトラブル・シューティ ング」で紹介した 3 つのファイル転送コマンド、 ftp 、 sftp 、 tftp を安全面から分類すると次のようになります。 ・ ftp : ユーザー名とパスワードで認証する。パスワード や転送したファイルの内容は号化されない ( セキュリ ティ・レベルは中 ) 。 ・ sftp : ユーザー名とパスワードで認証する。パスワード や転送したファイルの内容は暗号化される ( セキュリテ イ・レベルは強 ) 。 ・ tftp : 認証機構がない ( セキュリティ・レベルは弱 ) 。 今回は、これらと同様にファイル転送の機能を提供する rcp コマンドの安全性や振舞いを調べてみます。 rcp (remote copy) rcp はファイルをコピーするコマンド cp をホスト間の ファイル中幻医用に拡張したもので、 cp コマンドのような操 作で手軽に使える点が長所です。 rcp は次のようなファイル中幻去が可能です。 . リモートホストのファイルをローカルホストへコピー ( 図 l-a) ・ローカルホストのファイルをリモートホストへコピー ( 図 l-b) ・リモートホストのファイルを別のリモートホストへコピ ー ( 図 l-c) さらに、以下のような中幻医もおこなえます。 こ一こ一こ一こ ファイル転送 ローカルホスト ローカルホスト ファイル転送 (c) 制御 ローカルホスト リモートホスト ・指定したディレクトリに複数のファイルをコピー 指定したディレクトリの下のファイルをまるごとコピー rcp の認証 ファイル転送やリモートログイン、リモート実行などの 権限の認証に使われる情報は、コマンドやその仕組みによ って異なります。 54 UNIX MAGAZINE 2005 . 6
ネットワー ク・ミニ実験室 0 図 14 ティレクトリの下のファイルをコピーする ディレクトリ情報に続いて、 server の KOJI ディレク server$ IS KOJI (a) se Ⅳ er の KO 』ディレクトリの内容 Dasoku . txt Gekirin . む x に GaryouTensei . に x し GyofunoRi . し x し (b) c ⅱ ent に KO 』ディレクトリの内容をコピーする client$ rcp -r server:KOJ 工 . / client$ 1s KOJ 工 Dasoku . txt Gekirin . txt Mujun. し x し Suikou . txt Muj un . 亡 x し Suikou . に X に Syusyu . し x し Syusyu . し x し GaryouTensei . し x む GyofunoRi . txt client$ 図 15 ティレクトリのコピー KOJ レ userl client 認証情報、 rcp -r -f KO 』 Mujun. txt の内容 C0664 1568 Mujun. txt Syusyu. txt の内容 C0664 840 Syusyu. txt D0775 0 KO 』 Authentication OK Dasoku. txt GaryouTensei. txt Gekirin. txt GyofunoRi. txt Mujun. txt Suikou. txt Syusyu. txt rcp ー「 server:KOJl./ と仮定します ( 図 14 ー a ) 。 ホスト client で、 KOJI ティレクトリの下のすべてのファイルを転送 E ( 転送終了 ) client$ rcp —r server :KOJI . / を実行すると、 KOJI ディレクトリとその下のファイルが client にコピーされます ( 図 14 ー b ) 。 図 15 は rcp の通信の様子を表したものです。認証が終 ったあと、 server から client へ、 D0775 0 KOJI が送られています。 情報で、 これはコピーするディレクトリの属性 ・データの種類を表す識別子 ( 、、 D " はディレクトリ ) ・ディレクトリのパーミッション ( 0775 ) ・ディレクトリのサイズ ( 0 バイト ) UNIX MAGAZINE 2005 . 6 ・ディレクトリ名 ( KOJI ) を表しています。 トリの下にあるファイルの、 ・属性情報 ・内容 63 最後に TCP の接続を切断し、 rcp の通信カ院了します。 ないことを client に伝えます。 ( アルファベットの、、 E " ) が送信され、これ以上ファイルが すべてのファイルの輔医カ冬了すると、、、終り " のマーク だけコピーするときと変わりません。 数ぶんの情報カ云送されることを除けば、ファイルを 1 つ が、順番に client へ中幻去されます。この処理は、ファイル
ん。アクセス権限ファイルをどちらに置くか、誰のアクセ スを許可すればよいかは、分かっていても混乱しやすいの で注意しましよう。 r コマンドの認証 こまでは rcp の設疋について説明しましたが、アクセ ス権限ファイルを使うのはこのコマンドだけではありませ ん。 UNIX には名前が、、 r " で始まる、リモートアクセス関 ・ rlogin ・ rsh ・ rcp 係のコマンドがあります。 ですから、アクセス権限ファイルの内容は、ファイルの 参照して認証をおこないます。 これらのコマンドは、いずれもアクセス権限ファイルを きできないパーミッションにしましよう。 . rhosts ファイルを作るときは、他のユーザーカ毓み書 ツンヨノ . rhosts の / ヾー てください。 の権限を与えても問題がないかをよく考えた、 ・ログイン ・コマンドのリモート実行 コピーだけでなく、 つんで設疋し UNIX MAGAZINE 2005.6 ・コマンドを実行される ・重要なファイルを消される ・個人情報の入ったファイルを盗まれる ・秘密のメールを読まれる そして、 行できてしまいます。 からあなたの権限を使用して rcp 、 rsh 、 rlogin などを実 あなたのファイルを読み書きできなかったとしても、 h 。 st3 すると、そのホスト ( ローカルホスト ) 上では user3 は という行を追加したとします。 host3 user3 たの . rhosts を書き換えて、 たとえば、悪意をもっユーザーがなんらかの手段であな ネットワーク・ミニ実験室 0 などの被害を与えたあとに、こっそり . rhosts を修正して 、、わるさ " の痕跡を消してしまうことも可能です。 rcp の安全性について、アクセス権限ファイルの言当杢や 認証方式の面からみてきましたが、次に通信の安全性につ いて調べてみましよう。 通信の安全性を検討する際のキーポイントは次の 2 っ です。 ・認証に使われる秘密の情報 ( パスワードなど ) のセキュ リティ 通信内容のセキュリティ 認証情報については、ネットワーク上をそのまま利用で きる形式で流れるかどうかで安全性が決まります。たとえ ば、 FTP ではパスワードがネットワーク上をクリアテキス ト ( 平文 ) で流れるため、 solaris の snoop コマンドなど で通信を傍受されると、パスワードを知られてしまう危険 があります。 パスワードが盗まれなくても、転送したファイルや送受 信したメールの中身、実行したコマンドの内容などが、、見 えてしまう " 場合は安全な通信とはいえません。 たとえば、 HTTP (HyperText Transfer protocol) でアクセスした際の Web ページの内容は、そのままネッ トワーク上を流れるので他人に覗かれる可能性があります。 しかし、 SHTTP (Secure HTTP) でアクセスした場合 は暗号化されるため、通信を傍受されても内容を簡単に知 られるおそれはありません。 rcp の通信の仕組み rcp には専用のプロトコルがあるわけではなく、 RSH (Remote SHell) プロトコルを利用してファイルをコピー します。 図 5 は、 client ( クライアント・ホスト ) で、 kabu@client$ rcp usagi@server:Syusyu.txt - Syusyu. txt を実行し、 server ( サーバーホスト ) 上のファイルをコピー したときの通信の様子です ( 誌面の都合上、で折り返し ています ) 。 server 上では、ユーザー usagi としてファイ 通信のセキュリティ 57
ネットワーク・ミニ実験室 0 図 2 ~/. rhosts ファイルの言ホ例 (host2 の user2) rcp コマンドは、ホストとユーザー名の組合せで認証をお こないます。パスワードのような、、秘密の情報 " を使わな hostl userl ・← hostl の userl からのアクセスを許可 ー hos し 3 ・一 h0St3 からのアクセスを拒否 いので、認証機構としてはかなり弱い部類に入ります。当 +@9r0 叩 1 ← groupl に含まれるホストからのアクセスを許可 然ながら、インターネット経由のファイルコピーには向い 図 2 はホスト host2 のユーザー user2 の . rhosts ファ ていません。 はじめに、 rcp の認証の設疋についてみておきましよう。 イルの例です。 1 行目の、 rcp は、次の 2 つのファイルを参照してアクセスを制御し hostl userl ます。 は、 hostl の userl からのアクセスを、 host2 の user2 の /etc/hosts. equiv アクセスとして扱います。 2 行目の、 ・ . rhosts —host3 これらのファイルにはとくに決まった呼び方がなく、会 は、 host3 からのアクセスを拒否します。 3 行目の、 話のなかではもつばら、 +@groupl 「ホスツイクイプ・ファイルに xxx を追加して ~ 」 は、ネットグループ groupl に含まれるホストのアクセス 「誰々のアールホスツ・ファイルのパーミッションを確認 制御です。この例のようにユーザー名が省略されている場 してえ」 合は、名前が user2 のユーザーからのアクセスを許可し のように使います。 ます。 しかし、これでは説明しにくいので、イ上まとめて、、ア アクセス権限ファイルの書き方やパー ッションのルー クセス権限ファイル " と呼ぶことにします。 ルは、 OS や rcp コマンドの実装によってすこしずっ異な 2 種類あるアクセス権限ファイルのうち、 /etc/hosts. ります。言髫田については、実際に使用する OS のマニュア equiv はシステム管理者が用意するファイルで、そのホス ルで確認してください。 ト全体のアクセス権を規定します。一方、 . rhosts はユー ユーザー名が同じ場合 ザーが用意するファイルで、ユーザーごとの特別なアクセ rcp の設疋で間違いやすいのは、アクセス権限ファイル ス制御を設疋できます。 . rhosts ファイルはユーザーのホ をどのホストに置くか、アクセス権限ファイルに何を言当 ーム・ディレクトリの直下に置きます。 するかです。 これらのファイルでは、許可するアクセスや拒否するア 図 3 は、 rcp でリモートホスト上のファイルをローカル クセスを次のように言します。 ホストにコピーする例です。ここで、 + ホスト名 ・ host2 ( リモートホスト ) の用 e を hostl ( ローカルホス + ホスト名ユーザー名 ーホスト名 ト ) にコピーする ーホスト名ユーザー名 ・ hostl と host2 には同じ名前のユーザー・アカウント なお、、、十 " はアクセスの許可、、、一 " はアクセスの拒否を userl がある ユーザーは hostl に userl としてログインしている 未し、前者は省略してもかまいません。 ・ hostl 上で rcp コマンドを実行する ホスト名やユーザー名の代わりに、 /etc/netgroup に記 ・ file は host2 の userl カ第売み込めるファイル 述したネットグループを指定することもできます。ネット グループを使うときは、 と仮定します。 これをユーザーのアクセス権限ファイル . rh 。 sts で制御 +@ネットグループューザー名 + ホスト名ネットグループ するには、次のようにします。 ・ . rhosts は host2 ( リモートホスト ) 側に置く。 のようにネットグループ名の前に、、@" を付けます。 55 UNIX MAGAZINE 2005 . 6
ク・ミニ実験室 0 ネットワー 図 7 言 & 旧 & とコマンドの送信 (RSH) Remo±e Shell Protocol port f ロ「 stderr default ( as comrnand output> クライアントでのユーザー名→ Remote user kabu サーバーでのユーザー名→ Local Llser usagi サーバーで実行するコマンドー・ Comrnand rcp -f SYUSYU .tKt 0 圓圓圓 6 日 6 1 お 2 75 圓 7 5 ア 3 61 63 圓 7 2 6 3 間 2 0 : abu. 凵雪 & 引 . rcp 0 圓圓川 20 20 59 79 75 73 葯 2E 7 4 79 74 囲 -f Syusyu. {気 . 認証に使われるユーザー名や実行 するコマンドはネットワーク上をクリア テキストで流れる 図 8 アクセスの許可と拒否 (RSH) 認証に成功してアクセスが許可された通イ スマアドレス 1 ママアドレス 2 プロトコルマサマリ 「 3 cl i ent RSH 0pen and Remote lJse を kabu , Command- -f SYUSYU. xt server 3 client RSH Aut henti cati on OK I¯ 3 c Ⅱ ent RSH Open - 物・ server 一三ロ 回区 ストリム <rcp 上 nc 〉 日 ote She Ⅱ Protocol Response 0 aut henti cat i on OK 圓圓圓 0 認証に失敗してアクセスが拒否された通信 ロ睡ー白ー住斗も副 スマアドレス 1 ママアドレス 2 マプロトコルマサマリ 「 2 c Ⅱ ent RSH Open and Remot e Llse r: kabu , Comman& -f Syusyu. txt server 2 client RSH Error: permission denied. 十 server ストリムく「 cp ー信ル enc 〉 Remote Shell Protocol Response f 計引 e r ro r E 「 ro r Message permiSSion den i ed. 圓圓圓 0 70 65 72 6D 63 73 73 63 8F 8E 20 64 65 6E 圏 0 圓圓 10 65 64 2E OA ermission deni ed.. でコマンド command を実行できます。 RSH のコマンド情報 rcp はこの仕組みを利用し、 command に rsh コマンドは、 rcp —f Syusyu. txt rsh 7 ℃〃 ?. 0 ん OS カ C07 〃 . 〃 7. 佖れ d を指定することでサーバー側で rcp コマンドを実行し、フ のように言当することで、リモートホスト 7 ℃ m 尻訪。上 ァイル転送をおこないます。 、一 f " は、リモート側で実行さ 59 UNIX MAGAZ 工 NE 2005.6
図 3 ユーザー名か同じ場合のファイルのコビー user2 の読込みが 許可されたファイル 使っている場合は、ややネ礬隹な定が必要です。 ・ . rhosts で hostl からのアクセスを許可する。 たとえは図 4 のように、 hostl にログインしている user それでは、具体的な設定とコマンドを確認しておきまし 1 が、 host2 の user2 カ第売み込めるファイルに対して rcp よう。 host2 の userl のホーム・ディレクトリの下に、あ を実行すると仮定します。このとき、ユーザーが実行する らかじめ次の内容の . rh 。 sts ファイルを作っておきます。 コマンドは次のとおりです。 + host 1 ostl $ rcp user2@host2: /tmp/file . /file hostl 上で userl がファイルをコピーするときは、次の 1 番目の引数、、 user2@host2:/tmp/file" は、 host2 に コマンドを実行します。 user2 としてログインし、 /tmp/file をコピーすることを hostl$ rcp host2: /tmp/file . /file 未します。 このとき、 hostl の userl が host2 の user2 として口 上記のコマンドは、 host2 上の /tmp/file ファイルを グインすることを許可するかどうかは、 host2 側で決めら hostl ( ローカルホスト ) のカレント・ディレクトリに用 e れます。具体的には、 host2 の user2 のアクセス権限ファ という名前でコピーします。 イルを参照し、 hostl の userl のアクセスカ第午可されてい リモートホスト上のファイルの指定が絶対パスでなけれ るかどうかを確認します。 ば、ユーザーのホーム・ディレクトリからの相対パスとし そこで、 て解釈されます。 ・ . rhosts は host2 の user2 のホーム・ディレクトリに ユーザー名が異なる場合 置く LAN 内の複数のホスト間で rcp を実行するとき、どの ・ . rhosts で hostl の userl のアクセスを許可する ホストでも同じ人物 ( ューザー ) が同じユーザー名を使う とします。 host2 に置く . rhosts の内容は次のとおりです。 ように管理されているのなら、アクセス権限の設定は簡単 + hostl userl です。この場合、アクセス権限ファイルにはアクセスを許 可するホストの名前を列挙するだけですみます。 このように しかし、同じ人物がホストによって異なるユーザー名を アクセス権限ファイル (userl のフ . rhosts) + hostl userl ローカルホスト host 1 rcp host2:/tmp/file . /file ファイル転送 リモートホスト host2 /tmp/file userl の読込みが 許可されたファイル 図 4 ユーザー名か異なる場合のファイルのコピー userl ローカルホスト host 1 rcp user2@host2:/tmp/fiIe . /file アクセス権限ファイル (user2 の -/. rhosts) + hostl userl ファイル転送 リモートホスト host2 /tmp/file host2 の user2 へのアクセスを許可す る " という設疋は、 hostl 側でおこなうわけではありませ 56 UN 工 X MAGAZ 工 NE 2005.6
図 5 rcp の通信 を 0 ASTEC Eyes —以トリム <rcp - enc 〉 ] ストリム ID マアドレス 1 ママ 昌ファイル ( 日編集 ( 印表示 OØキャプチャ 0 モニタ ( M ) ツール (D 設定 0 ウインドウヘルプ凹 。ラ LAN ロー睡白住 3 3 3 3 3 3 3 む印 アドレス 2 マプロトコルマサマリ Command: rcp 回区 -f Syusyu. t xt c Ⅱ ent c Ⅱ ent 引 i ent c Ⅱ ent c Ⅱ ent c Ⅱ ent 引 i ent 十 十 - ト 十 server ærver server rve r rve r r serve r RSH RSH RSH RSH RSH RSH Open and Remote lJse r: kabu , Authenticat ion 田 open Command 0 最 put open Command 0 沚 put Open rcp コマンドは RSH プロトコルを使用 「 cp の認証と実行する コマンドの送信 ファイルのコピー処理 server ル (Syusyu. txt) にアクセスしています。図 5 の、、プロト コル " の欄からも、 RSH プロトコルカ駛われていることが ・リモートホストで実行するコマンドの送信 ロ心、ロ RSH プロトコルでは、最初に 分かります。 58 からの認証情報に対して、 server カ第忍証の成否を返してい 信と、拒否した場合の通信の様子を示しています。 client 図 8 は、 RSH サーバーがアクセスを許可した場合の通 セスを許可するかどうかを決めます。 ーザー名をもとに、アクセス権限ファイルを参照してアク RSH のサーバーは、通信相手のホストと受け取ったユ です。 ・ Local User (usagi) は server でのユーザー名 ・ Remote User (kabu) は client でのユーザー名 らみたリモート / ローカルの区別で、 図中の、、 Remote User" と、、 Local User" はサーバーか 認証情報とリモートで実行するコマンドが入っています。 図 7 は、 client から server へ最初に送られる通信で、 RSH の認譴 & 通信の中身をさらに詳しくみていきましよう。 後にファイルのコピー処理をおこないます ( 図 6 ) 。 仕組みになっています。 rcp はこの仕組みを利用し、認証 をおこなったあと、 2 台のホスト間で任意の通信ができる 図 6 rcp の通信シーケンスの詳細 client Remote User, Command 認証とコマンド 送信 ます。 情報要求 open 情報要求 open 情報要求 open Authentication OK 訒証結果 Command Output ファイルの属性 情報 Command Output ファイルの内容 接続 (TCP) を 切断 : TCP の切断 処理が続く RSH は認証情報を暗号イヒしない こで図 7 に戻り、 16 進数ダンプの表示を見てくださ い。通信の安翁生の観点からは、認証情報が解読できる形 式でネットワークに流れるのは望ましくありません。しか し、 RSH プロトコルではクリアテキストで註正情報カ毓れ ており、セキュリティ的に弱いことが分かります。 UNIX MAGAZINE 2005.6