Provided by: manpages-ja_0.5.0.0.20060115-1_all bug

NAME

       Zebedee --- シンプルでフリーでセゥ絅△淵肇鵐優襯廛蹈哀薀

式
       Server:
           zebedee -s [-dDtu] [-f file] [-k keybits] [-n name] [-o logfile]
           [-r ports] [-v level] [-x config] [-z level] [targethost]

       Client:
           zebedee [-dDmtu] [-e command] [-f file] [-k keybits] [-n name] [-o
           log] [-v level] [-x config] [-z level]
           [[clientports:]serverhost[:targetport]]

       Key generation:
           zebedee -p [-f file]

           zebedee -P [-p] [-f file]

       Hash generation:
           zebedee -h [file ...]

           zebedee -H string ...

       Windows Service:
           zebedee [-n name] -S [install[=file] | remove | run]

DESCRIPTION

       Zebedeeは2つのシステム間で、
       暗号化され、圧縮されたTCP/IPまたはUDPの"トンネル"を確立する単純なプログラムである。
       これは、低帯域のネットワーク上でのパフォーマンスを圧縮により向上するだけでなく、
       telnet, ftpX などの TCP ベースの
       トラフィックを盗聴から防御することも可能にする。 また、暗号化の-
       無にかかわらずデータ圧縮を使用することで、
       遅いネットワークで良好なパフォーマンスを得ることも可能である。

       Zebedee の主な目的は:

       o   UNIX と Windows 95/98/NT
           の双方にてクライアントとサーバーの機能を提供する。

       o   ほんの少しの設定か全くの設定無しで簡単にインストール、使用、保守がで-
           る。

       o   少しの付加データと、少ないプロトコルのオーバヘッドにて、
           圧縮により多大なトラフィックの低減を行う。

       o   特許化されていないか、または特許の-
           効期限が切れているアルゴリズムのみを用いる。

       o   GNU 一般公融藩儺諾書(GPL)のもとで商用、非商用を問わず
           完全にフリーに使用・配布がでい ("CREDITS AND LEGALITIES" を見よ)。

       もちろん、Zebedee は初めてのあるいは唯一の利用可能な セ-
       ュアなトンネルプログラムではない。 高機能という面では sshSSL
       などとは比べ物にもならないが、
       もし、素早く、単純で爾覆發里魑瓩
       ているなら、これはピッタリのツールだろう。

       この文書は Zebedee リリース 2.0.0 の機能について気靴討い.

      ?(What's in a name?)

       あなたが疑問を持とうが持つまいが、Zebedee は次の 3つの主要なコンポー
       ネントから命名された。

       o   Zlib による圧縮

       o   Blowfish による暗号化

       o   Diffie-Hellman による認証

       これでわかったよね?

      (Basic Usage)

       ローカルマシンとリモートホストを安全に接続するには、
       まずリモートホストの方で、Zebedee
       をサーバーモードで起動する必要がある。 一番簡単な方法は、-s
       オプションを使うことだ。

        zebedee -s

       うまくいけば(いくはず!)Zebedeeは
       端末(windowsではコンソールウインドウ)から切り離されてバックグラウンドで走る。
       そして、クライアントからの接続を待つ。

       次にクライアントマシンでZebedeeをクライアントモードで起動する。
       この場合は、リモートホストのホスト名とトンネルすべ-
       サービス名かポート番号
       (ここではこれをターゲットポートと呼ぶことにする)を指定する。
       例えば、リモートホストの名前が"remhost"で
       安全なtelnetセッションを張りたいとしたら、こうなる。

        zebedee remhost:telnet

       実際には、ポートのデフォルトがtelnetなので
       このケースでは次のように省略してもよい。

        zebedee remhost

       このコマンドを実行すると、
       トンネルの入口になる(ローカル側の)ポートの番号が表示される。
       Zebedeeは端末から切り離されてバックグラウンドで走り、
       このローカル側のポートに接続されるのを待つ。
       例えば、1234と表示されたら、

        telnet localhost 1234

       とすれば、"remhost"に安全なトンネル経由で接続される。

       デフォルトでは、Zebedeeはプロセスを終了させるまで接続を待ち続けて、
       必要があれば同時発生する複数のコネクションを処理する。

       時には、Zebedeeを起動し、
       その後すぐにそのポートに接続するコマンドを起動したいこともあるだろう。
       これを一発でやるには次のようにする。

        zebedee -e "telnet localhost %d" remhost

       文字列中の"%d"がローカルポート番号と置ご垢┐蕕譴襦従って、
       Zebedeeはポート番号を表示しない(する必要がない)。
       このようにコマンドを指定した場合には、そのコマンドが接続を終了すると同時に、
       ローカル側のZebedeeクライアントも終了する。

       クライアントが使用するローカルポート番号を指定したい(する必要がある)こともあるだろう。
       (保護したい通信を行なう)コマンドが、特定のポートに接続しようとする場合だ。
       この場合は、Zebedeeを次のように起動することで、
       ローカルポートを指定することもでい襦

        zebedee clientport:hostname:targetport

       例えば、次のコマンド:

        zebedee 8000:webhost:80

       は、クライアントの8000番ポート経由で接続する、
       webhostへの全てのHTTP接続を保護する。 詳細はEXAMPLES参照のこと。

       また、Zebedee クライアントは
       同一ホスト内の複数のターゲットポートに対して、
       複数のトンネルを(同時並行的に)扱うこともでい襦
       この場合は、ローカルとリモートのポートの指定はポート番号のリストになる。
       例えば

        zebedee 9001,9002,9003:somehost:daytime,telnet,ftp

       これは、9001番のクライアントポートへの通信を、
       リモートのターゲットシステムのdaytimeポートへとトンネルする。
       同様に、9002番はtelnetポートへ、9003番はftpポートへトンネルする。

       詳細は clientporttargetportを参照のこと。

       UDP(UDP Tunnelling)

       Zebedeeはもともとは TCP/IP のトラフィックだけを扱うように設計されたが、
       バージョン2.0.0からはコネクションレスのUDPのデータも扱えるようになった。
       この機能を邑にするにはZebedee-u オプション付い乃動する
       (または、udpmode ァ璽錙璽匹鮖藩僂垢)。 例えばサーバ側で

        zebedee -s -u

       クライアント側で

        zebedee -u 10000:somehost:echo

       を実行する。なお、ひとつのクライアントとサーバは、TCPかUDPのどちらかを扱い、
       両方同時に扱うことはでい覆ぁN省のタイプをトンネルするには、
       2つの独立したインスタンスを起動する。
       TCPモードとUDPモードのサーバは違うポートを使うので、
       両者を同じシステムで起動することは安全である。

       UDPモードでもZebedeeのクライアントとサーバ間のトンネルはTCP/IPで接続する。
       この接続は無通信が一定時間続くとタイムアウトする。
       タイムアウトしてからさらにデータが来るとトンネルの再接続を行う必要があるので、
       アプリケーションの特世砲茲辰討
       UDPモードのパフォーマンスがよくないように見えることもある。
       また、扱えるUDPダイアグラムのサイズにも制限があることにも注意すること。

       詳細は、maxbufsizeudpmodeudptimeout を参照のこと。

      (Some Terminology)

       通常は、Zebedeeを使用する場合、関係するシステムは2つである。
       片方でクライアントを起動して、ローカルポートでそれと通信する。
       反対側ではサーバを起動して、そのシステムで動作しているサービスと会話する。
       しかしながら、次のように最大4つのシステム(マシン)が関係するケースもありえる。

        [ソース] <===> [クライアント] <=====> [サーバ] <===> [ターゲット]
                   |                     |               |
                   +- 安全でない         |               + 安全でない
                      接続               |                 接続
                                         +- 安全なトンネル

       Zebedeeのクライアントは「クライアント」システムで、
       サーバは「サーバ」システムでそれぞれ動作している。
       トンネル設定の契機となる最初の接続は「ソース」マシンから発生する。
       「ソース」と「クライアント」は違うシステムであってもかまわないが、
       通常は同一のシステムである。
       サーバは最後に「ターゲット」システムと通信する。
       ターゲットも普通はソースと同じマシンになるが、違うマシンであっても全く問題はない。

       ほとんどの場合、「ソース」と「クライアント」、
       「サーバ」と「ターゲット」の違いを気にする必要はない。
       しかし、この用語の区別が以下に述べるァ璽錙璽匹紡燭反映している。 -
       ーワードの説明を読む時には、このことを頭に入れておいたほうがいいだろう。

       Zebedeeのトンネルに関係するこの4つシステムの問題と別に、
       安全に接続するために、いくつかの全く違うタイプの「-
       ー(key)」が使われる。 クライアントとサーバはprivate
       key(秘密鍵)という値を必要とする (自分で生成する場合もある)。 この-
       ーからは、public values が計算され交換され、 それによりshared secret
       key が導そ个気譴 (この時にDiffie-Hellman key agreement mechanism
       が使用される)。 このァ爾らは、接続のたびにユニークなsession keyが導-
       出され、 最終的にこのァ爾念店羃修行なわれる。

      (Configuration File)

       Zebedee の動作をコントロールするには、
       設定ファイルを使うのがおそらく一番よい。設定ファイルを指定するには
       コマンドラインオプションで -fを使う。ファイルは(-f)オプションの位
       置で処理される。従って、それ以降のコマンドラインオプションでファイルの内
       容を上書い垢襪海箸でい襦

       行の形式は以下のとおり。

        key value # optional comment

       keyはひとつの単語であり大文字小文字は無視される。valueは単語か文字
       列かどちらかである。
       文字列はダブルクォート("こんな風に")かシングルクォート
       ('こんな風に')でくくられる。ダブルクォート " の中に シングルクォート '
       があってもよいし("here's an example")、その逆も言える。 value
       では大文字小文字の違いは区別される。

       空白行と""#""ではじまる行(その前に空白があっても同じ)は無視される。
       長い文字列は ""\""で次の行に継続することもでい襦
       この文字は除去され、次の行がこの行に接続される。
       1行の長さは継続行も含め 1024 文字に制限されていることに注意。
       行の接続はコメントの認識を含めすべての処理に先だって行われる。
       そのため以下の例

        server false
        # This comment continues on the next line \
        server true

       では、serverの値は falseになる。

       ァ璽錙璽匹箸修琉嫐は以下に述べる。 ほとんどの-
       ーワードは対応するコマンドラインオプションがあるが、
       なかには対応するオプションがないものもある。
       対応するコマンドラインオプションがあるものについてはそれも併気靴討△襦
       逆に、コマンドラインオプションの中には 設定ファイル内の-
       ーワードに対応するものがないものもある。
       それらはこのセクションの最後に述べる。

       ァ璽錙璽匹真偽値(boolean)と書かれていたら、 その値は"true" または
       "false"でなければならない。

       ァ璽錙璽匹涼罎砲魯檗璽箸離螢好箸鮖慊蠅垢襪發里ある。
       この場合は、ポート名(サービス名)、ポート番号、番号の範囲を
       コンマか空白で区切ったものを指定する。 例えば、""telnet, ftp
       5900-5903""は ""23,21,5900,5901,5902,5903""と等しい。

       また、クライアントだけに指定するァ璽錙璽匹發△襪掘
       サーバだけに指定するァ璽錙璽匹發△襦 ひとつの Zebedee
       プログラムはサーバかクライアントかどちらかひとつの機能を実行し、
       その時の用途と違う用途向けのオプションは無視する。
       エラーメッセージも表示しない。 サーバになるかクライアントになるかは、
       server ァ璽錙璽匹之茲泙襦

       server (コマンドラインでは -s)
           これは、クライアントになるかサーバになるかを決める真偽値の-
           ーワードである。
           これが指定されなかった場合は、クライアントとして動作する。
           コマンドラインオプションの -s
           オプションはこの値をtrueにするのと等しい。

       _Client-Only Keywords)

       以下のァ璽錙璽匹魯ライアントだけに適用される。

       command (コマンドラインでは -e)
           クライアントとして動作している時に意味を持つ。
           これは、トンネルへ接続した後に起動されるコマンドを示す。 この値が
           "%d" という文字列を含んでいたら、実行時にローカルポート番号と置-
           変えられる (clientport 参照)。
           この処理はsprintf関数を使用して行なうので、
           ""%""によるエスケープ処理が適用される (すなわち、""%"" を 1
           文字生成するためには ""%%"" を使う)。 さらに、"%d"
           を二つ以上指定したり "%d" 以外のフォーマット指定子
           を指定すると、おそらくプログラムはクラッシュするだろう。

           コマンドが接続を閉じたら、Zebedeeも終了する。 この-
           ーワードおよびオプションを使用すると、暗黙のうちにマルチユースモードがOFFになる
           (multiuse参照)。 Zebedee クライアントが複数の接続を扱う場合
           (multiuse)やポートのリストが
           clientportで指定された場合は、コマンドの自動起動は
           使用することがでい覆ぁ

       clientport
           これはZebedee クライアントがローカル接続のためにlistenすべぁ
           ひとつのポート番号かポート番号のリストである。

           もしクライアントがトンネルするのが単独のリモートポートならば、
           これは省略でい襦 その場合はポートは自動的に割り当てられて、
           端末にポート番号を示すメッセージが表示される。

           ポート番号のリストを指定する時は、リモートポートがコマンドラインで指定されたのであれ、
           targetport ァ璽錙璽匹濃慊蠅気譴燭里任△譟
           ポートの数は正確にリモートポートの数と一致しなければならない。

           2.0.0より前のバージョンでは、同じ意味でlocalportという-
           ーワードが使用されていた。 後方互換世里燭瓩法△海離-
           ーワードは現バージョンでも認識される。

       localsource
           この値がtrueだと、クライアントはローカルマシンで発生した接続だけを受けつける。
           別の言葉で言うと、「ソース」と「クライアント」が同一のシステムである必要がある。

           この値はデフォルトはfalseであり、どのマシンがソースとなっても接続を受けつける。

       multiuse (コマンドラインでは -m)
           この値がtrueだと(デフォルトではそうなっているが)、
           Zebedeeのクライアントは複数の接続要求(同時並行的に発生してもよい)を扱い、
           要求ひとつひとつに対して、新しいトンネルを設置する。
           値がfalseだと、クライアントはシングルユースモードで動作し、
           最初の接続が閉じられた直後に終了する。

           コマンドラインの-mオプションはこれをtrueに設定するのと等しい。
           現在のバージョンのZebedeeはこれがデフォルトだが
           (だから、このオプションを設定する必要はないが)、 後方互換-
           のために残されている。

           クライアントが複数のポートを待ち受ける場合は、
           たとえこれがfalseに設定されていても、 自動的に
           マルチユースモードになる。 (clientport 参照)

       serverhost
           これはトンネルを接続すべぅ螢癲璽肇曠好箸量樵阿任△襦
           ホストの名称にはデフォルトはないので、
           設定ファイルかコマンドラインのどちらかで、
           必ずこれを指定しなければならない。

           2.0.0より前のバージョンでは、同じ意味でremotehostという-
           ーワードが使用されていた。 後方互換世里燭瓩法△海離-
           ーワードは現バージョンでも認識される。

       targetport
           ここに指定したポート番号(リストも可)でターゲットホストに接続するように、
           ZebedeeクライアントがZebedeeサーバに要求する。
           これが指定されない時のデフォルトは"telnet" (ポート番号 23)である。

           ポート番号のリストを指定する時は、
           ローカルポートがコマンドラインで指定されたのであれ、 clientport -
           ーワードで指定されたのであれ、
           ポートの数は正確にローカルポートの数と一致しなければならない。

           2.0.0より前のバージョンでは、同じ意味でremoteportという-
           ーワードが使用されていた。 後方互換世里燭瓩法△海離-
           ーワードは現バージョンでも認識される。

       _Server-Only Keywords)

       以下のァ璽錙璽匹魯機璽个箸靴篤虻遒垢觧に適用する。

       redirect (コマンドラインでは -r)
           このァ璽錙璽匹魯機璽个リダイレクトするポートのリストである。 (例
           ""telnet,ftp, 5900-5910"") もし redirect -
           ーワードが指定されない場合は、
           どのポートへのトンネル接続要求も受け付けられる。
           この方法(redirectを指定しないこと)はテスト中には便利だが、 セ-
           ュリティー面でのリスクがあるので、 もし可能ならば(この-
           ーワードで)明示的に許可するポートを指定すべい任△襦

           この-
           ーワード(または-rオプション)は複数指定されてもよい。この場合は、
           そのうちどれかのポートに指定されていればリダイレクトが許可される。

       targethost
           デフォルトではZebedee サーバは
           全てのトンネルをローカルマシンのポートにリダイレクトする。
           もし、このァ璽錙璽匹指定されると、
           全ての接続はその名称のホストへとリダイレクトされる。
           トンネルを安全なネットワークの中にまで延長するのは無駄であるが、
           この機能を使用すると、そのオーバーヘッドを省くことがで-
           て便利である。 また ftp のトラフィックをトンネルする時にも使える。
           (詳細はEXAMPLES参照)

           Zebedeeがサーバモードで動作する時は、 通信をリダイレクトすべ-
           ホストの名称は、
           コマンドラインの最後の付加的なパラメータとして指定することもでい襦

           2.0.0より前のバージョンでは、同じ意味でredirecthostという-
           ーワードが使用されていた。 後方互換世里燭瓩法△海離-
           ーワードは現バージョンでも認識される。

       _Compression and Encryption Keywords)

       以下のァ璽錙璽匹蓮▲肇鵐優詁發鯲れるデータの圧縮と暗号化を制御する。
       これらは、クライアントとサーバどちらでも使用される。

       compression (コマンドラインでは -z)
           Zebedee は圧縮方式として zlib をサポートする。
           そして、もしコンパイル時に邑になっていればbzip2もサポートする。
           このァ璽錙璽匹念欺未諒式と圧縮レベルを指定する。 この値の形式は
           type:level である。type は ""zlib"" と ""bzip2""のどちらか、level
           は0から9の整数である。
           プレフィックスなしで整数だけの場合は、zlibが選択される。

           level は使用可能な最大の圧縮レベルを設定する
           (9が最大で0が圧縮なし)。
           実際に使用される圧縮レベルは、クライアントの値とサーバの値の最小値である。
           この目的では、(0以外の)bzip2レベルはいかなるzlibレベルの値より上であるとみなされる。
           従って、サーバとクライアントのいずれかがbzip2レベルをサポートしていなければ、
           プロトコルはzlibを選択する。
           デフォルトの圧縮レベルは""zlib:6""である。

           bzip2圧縮の動作方式とバッファーサイズのために、
           bzip2は連続的なデータのストリームが流れる場合にだけ使う意味がある。
           通常のtelnetセッションのような、小さな転送ではzlibの方が税修よい。
           どちらがあなたにとってよく働くかは、実験してみないとわからないだろう。
           加えて、バッファーサイズが小さいので、bzip2の1より上からは得るものがない。
           Zebedeeはこれより上の値はこの値に変更する。

           verbosity levelを2以上にすれば、
           接続が終了した時に基本的な統計値がプリントアウトされるので、
           どれだけ圧縮が邑だったか正確に知ることがでい襦 例えば、

            zebedee(232/210):   read 166 bytes (265 expanded) in 3 messages
            zebedee(232/210):   wrote 20969 bytes (30499 expanded) in 247 messages

       generator
           これは、Diffie-Hellman-
           ー交換の"generator"で、16進数の文字列で指定する。
           デフォルトは"2"である。 なんのことかわからなければ、
           下手にいじらない方がいいだろう。

       keygencommand
           このァ璽錙璽匹指定されると、
           この値(コマンド文字列)が秘密鍵を生成するために使用される。
           そのコマンドは標準出力に1行の16進数を出力しなくてはならない。
           この行は少くとも10桁の16進数であること。

       keygenlevel
           これは0と2の間の整数で、Zebedeeで使用する秘密鍵生成の強度を決定する。
           デフォルトは2(最強)である。接続時のパフォーマンスが耐えがたい場合以外には、
           一般的にはこれを変更しないほうがよい。

           簡単に言って、UNXI系のシステムではレベル2のァ疾言のメカニズムは、
           可能であれば "/dev/random" を使用する。
           しかしながら、あまりにも多くの要求を連続的にこのデバイスに対して行うと、
           カーネルが必要な"エントロピー"をかそ犬瓩覺屐
           プロセスがブロックされる可能世ある(それが数秒になることもある)。
           "/dev/random"が使用でい覆ぞ豺腓 レベルが1にセットされた場合は、
           "/proc"ファイルシステムの現在の内容が(もしあれば)使用される。
           レベル0では現在のプロセスにある情報だけが使用される。

           Windows上のシステムでは、現在のところ、 -
           ー生成強度のレベルごとの違いはなく、 この-
           ーワードは実際には無視される。

       keylength (コマンドラインでは -k)
           これは、Blowfish暗号化のァ爾離咼奪板垢虜蚤臙佑寮或瑤任△襦
           この値は4から576の間の4の倍数でなければならない。 使用される-
           ー長はクライアントの値とサーバの値の最小値になる。
           (minkeylength参照)

           デフォルトは128である。
           特別なケースとして、この値が0に設定されると、 -
           ーのネゴシエーションと暗号化は無効にされる。

       keylifetime
           このパラメータの値が0以外に設定されると、これ以降の接続において、
           クライアントはセッションァ爾瞭浬个里燭瓩法以前設定されたshared
           secret keyを 再利用するように要求する。
           つまりZebedeeのクライアントとサーバは、 最初の接続においてのみ-
           ー交換の対話を全て行なう。 それ以降の接続では、ァ爾陵-
           効期限が切れるまでは、同じsecret keyが再利用され、 この-
           ーからsession keyが導出される。 ァ爾陵-
           効期限が切れると、自動的に新しいァ爾慮魎垢行なわれる。

           そして、このァ璽錙璽匹、shared secret keyが邑な期間を指定する。
           これは、既に接続された接続には影響しないで、新しい接続だけに影響する。

           この-
           ーワードの値の単位は秒であり、65535(約18時間)以下でなければならない。
           デフォルトは3600秒(1時間)である。 この-
           ーワードの値を0に設定すると、ァ爾虜突用は行なわれなくなり、
           接続の度に、完全なshared keyの交換手続い行なわれる。
           つまり、クライアントもサーバも毎回秘密鍵を新しく生成するとみなす。
           ただし、この方法はパフォーマンスに多大な影響があるので、
           偏執狂的に高度な安全世鯢要とする場合以外には勧められない。

       minkeylength
           これは、クライアントまたはサーバで許容される最小のァ篠垢鮖慊蠅垢襦
           クライアントがサーバのレベルより小さい値を要求すると、
           サーバはここで指定した最小値を返答する。
           サーバがクライアントの最小値より下のレベルを返答すると、
           クライアントは接続を終了する。

           デフォルトは0である。

       modulus
           このァ璽錙璽匹涼佑蓮Diffie-Hellman-
           ー交換の剰余値を表す16進数の文字列である。
           これが何かわかる人で数学オタクの人以外はいじっちゃだめ。

           デフォルトの値は下気1024ビットの素数である。

            f488fd584e49dbcd 20b49de49107366b 336c380d451d0f7c 88b31c7c5b2d8ef6
            f3c923c043f0a55b 188d8ebb558cb85d 38d334fd7c175743 a31d186cde33212c
            b52aff3ce1b12940 18118d7c84a70a72 d686c40319c80729 7aca950cd9969fab
            d00a509b0246d308 3d66a45d419f9c7c bd894b221926baab a25ec355e92f78c7

           これは Peter Gutman の CryptLib の中の testdh.h というファイルから
           とられた。 そこには、この値が "generated by Colin Plumb for
           SKIP"だとコメントがある。 それから "these values were chosen as
           representative well-known public values to allay fears of possible
           trapdoors in self-generated values.  The generation method and
           actual values can be checked against the SKIP standards document."
           だとさ。

       privatekey
           デフォルトでは、Zebedeeはセッションごとに新しい秘密鍵を生成する。
           しかし、もしあなたが毎回同じァ爾鮖箸い燭ぞ豺腓蓮
           16進数の文字列としてこれを指定すればいい。
           もし公開鍵暗号による認証(identitychecking)を使用したい場合は、
           必ずこれを設定しなくてはいけない。 -
           ーが少くとも10桁は必要なことに注意すること。

       _Miscellaneous Keywords)

       以下のァ璽錙璽匹魯ライアントにもサーバにも等しく適用される。

       checkidfile
           これは、接続を許可する前にチェックするアイデンティティを複数-
           述したファイルの名称である。 これについてはidentity
           checkingで詳しく述べる。 このファイルはひとつしか指定で-
           ない。もし複数出現したら、 最後の値が使用される。

           もし、keylengthが0であることに
           (クライアントとサーバが)同意した場合は、アイデンティティのチェックは行なわれない。

       debug (コマンドラインでは -D)
           これはZebedeeが "debug" モードで動作するかを指定する真偽値である。
           "debug" モードではサーバは (multiuseモードのクライアント)は
           一度に一つの接続しか受け付けない。
           そして、別プロセスや別スレッドを生成することなく "inline"
           で動作する。 これはデバッガ上でプログラムを動かす時に便利である。
           デフォルトはfalseである。コマンドラインオプションの -D は これを
           true に設定するのと同じである。

           注:この設定は、UDPモードでは正しく動作しないので、試さないほうがいい。

       detached (コマンドラインでは -d)
           これはプロセスが制御端末から自分自身を切離してバックグラウントで
           (UNIX用語ではデーモンとして)動作するかどうか指定する真偽値である。
           これはクライアントでもサーバでも邑であり、 デフォルトは true
           である。コマンドラインオプションの-dは これを false
           に設定するのと同じである。

           注:Windowsのコマンドプロンプトではこれがうまく動作しないこともあるようだ。
           その徴候は、コンソールウインドウへの出力が止まり割込みのsignalが無視されるが、
           コンソールのプロンプトがZebedeeが終了するまで表示されないことだ。
           これを回避するには、以下のように "start" コマンドを使用すればよい。

            DOS> start zebedee -f server.zbd

           これはZebedeeを新しいコンソールセッションで起動し、そこから切り離す。
           切り離す前に一瞬だけチラリとそのコンソールが見えるが、それが消えても
           Zebedeeはバックグラウンドで動作している。

       include
           これは別の設定ファイルの名前を指定する。
           そのファイルはこのファイルの残りを処理する前、
           この時点で処理される。 例えば、秘密鍵をもっと-
           っちりガードしたファイルに分離して保存した場合に、
           そのファイルを取り込むために使用される。
           includeは5レベルの深さまでに限定される(最初のファイルをレベル1として)。
           これはうっかり無限ループを作らないためである。

       maxbufsize
           これは、 Zebedee
           がアプリケーションからデータを読むために使用するバッファの長さ(バイト単位)を指定する。
           実際に使用されるバッファの長さはサーバの値とクライアントの値の最小値になる。

           デフォルトでは、Zebedeeはトンネルの両端で
           サーバプログラム、クライアントプログラムから8192バイト単位で読み出す。
           例えば、すごく対話的なアプリケーションがあって、 大-
           なデータ転送を待つためにひどいレスポンスだったりした時など、
           これを小さくしたいこともあるだろう。
           バッファサイズは1バイトまで縮めることがでい襪、 おかしな動-
           をデバッグしようとしているのか時間を無駄にしたいのでなければ、
           これはお勧めでい覆ぁ 逆に、大量のデータの転送があって、
           圧縮をめいっぱい効かせたい場合は、16383バイトまで大いしてもよい。
           注:maxbufsizeZebedee が使用するメモリ量には関係ない。
           一度に読みこむデータのかたまりのサイズだけに影響する。

           UDPモードでは、バッファサイズは扱えるデータグラムの最大長にも影響する。
           現在のバッファサイズより大い淵如璽織哀薀爐亙断され、
           それを受信するアプリケーションが落ちることになりがちだ。
           16383バイト以上のデータグラムは扱うことがでい覆ぁ

       message
           verbosity level が1ならば、設定ファイルのこの部分を処理した時に、
           このメッセージがログに杵燭気譴襦

       name (コマンドラインでは -n)
           これは、実行ファイルのファイル名の代わりに、
           メッセージの中で使われるプログラム名称になる。 Windows環-
           では、インストールあるいは削除されるサービスの名前としても用いられる。

       logfile (command-line -o)
           これはメッセージが出力されるファイルの名前である。
           もし省略されるとメッセージは標準エラーに出力される。

           2つの特殊なファイル名も正しい名前として認識される。
           もし、名称がNULLだと、全てのメッセージ出力は止められる。
           SYSLOGだと、メッセージはホストのシステムログに出力される。
           Windowsシステムでは、アプリケーションイベントログを意味する。
           他のシステムでは、メッセージはsyslog サービスに出力される。

       serverport
           これは、Zebedee サーバが接続を待ち受けるポートである。
           デフォルトはTCPモードでは11965
           (0x2EBD)、UDPモードでは11230(0x2BDE)である。
           サーバでこれを指定すると、サーバはこのポートでlistenする。
           クライアントでこれを指定すると、クライアントは
           サーバのこの番号のポートに接続することになる。

       timestamplog (コマンドラインでは -t)
           これは、ログメッセージにタイムスタンプを含めるかどうかを示す真偽値である。
           コマンドラインオプションの -t
           はこれをtrueに設定するのと同じである。

       udpmode (コマンドラインでは -u)
           デフォルトではZebedeeは、コネクションベースのTCP/IPの通信を扱う。
           もし、この-
           ーワードが指定されると、かわりにコネクションレスのUDP/IPの通信を扱う。

           この場合でも、Zebedeeのクライアントとサーバ間のトンネルはTCP/IP接続を使用する。
           UDPの宛先ごとに別々の接続が使用される。
           UDPはコネクションレスなので、通信が完了したことを簡単に知ることはで-
           ない。
           この理由で、Zebedeeの接続は一定の時間通信が無い場合にタイムアウトする必要がある。
           この時間はudptimeoutの値で制御される。

           すでにタイムアウトしてしまったトンネルに向けたデータが到着した場合、
           接続を再確立する必要がある。 このために、アプリケーションの特-
           によっては、
           UDPモードのパフォーマンスがよくないように見えることもある。
           keylifetimeの値を変更して、
           接続のセットアップの時間を最小にすれば、パフォーマンスを向上させることがで-
           る。 udptimeout の値を変更することも同様に役に立つ。

           コマンドラインオプションの-uは、この値をtrueに設定するのと同じである。

       udptimeout
           デフォルトでは、UDPモードのトンネルは、300秒通信が無いと閉じられる。
           このァ璽錙璽匹任修了間を変更でい(単位は秒)。
           この値は65535より大いなってはいけない。
           これを0にすると一切通信が行なわれない(そういう設定もでい襪韻鼻)。

       verbosity (コマンドラインでは -v)
           これは、ログするメッセージのレベルを示す整数値である。
           0だとエラーメッセージだけ、
           5にするとメッセージトラフィックの非常に細かいディテールまで含める。
           デフォルトは1であり、通常はそれが最も使いやすい。

           メッセージは stderr に出力される(コマンドラインオプションの-ologfile ァ璽錙璽匹妊螢瀬ぅ譽トされない限り)
           一般的なメッセージはこんな感じである:

            zebedee(54/119):  Listening on local port 1172

           カッコの中の数字はメッセージを出力したプロセスとスレッドのIDを表している。
           全てのエラーメッセージはレベル0でもログが取られ、
           以下の様に、先頭が "ERROR" という単語から始まる。

            zebedee(54/119): ERROR: failed to connect to localhost:11965

           メッセージはログが取られたレベルに従ってインデントされる。

       _Other Options)

       設定ファイルに対応するものを持たないコマンドオプション
       がいくつかあるので、それについてここで説明する。

       -p  このオプションで Zebedee は秘密鍵の値を標準出力に出力する。
           この出力は設定ファイルでそのまま使用でい觀措阿任△襦 例えば、

            privatekey "c480bd48f707c69dec54c9e7b6e22dd04cac659e"

           の様な形である。

       -P  このオプションで Zebedee はidentity checking で 使用で-
           るパブリックアイデンティティを生成する。結果は標準出力に書かれる。
           例えば、

            ef8153a0e392df005f67321ca2f0ace5bb8c5a1f myhostname

           の様な形である。

           このオプションは秘密鍵を含む設定と共に指定するか、 -p
           と共に用いて秘密鍵と公開鍵を両方同時に生成しなくてはいけない。

       -h  このオプションは以降の引数をファイル名とみなす。
           そして、それぞれのファイルは8192バイトのかたまりとして読みこまれ、
           SHAハッシュが計算される。
           引数がない場合や引数が""-""であった場合は標準入力のハッシュが計算される。
           例えば、

            $ zebedee -h /etc/passwd
            bb1e734aeffd2111417761f5938dea3b53759598 /etc/passwd
            $ zebedee -h < /etc/passwd
            bb1e734aeffd2111417761f5938dea3b53759598 -

           の様な形である。

       -H  こちらは-hと似ているが、引数が文字列として扱われ、
           その文字列のSHAハッシュが計算され表示される。

            $ zebedee -H hello world
            ac62a630ca850b4ea07eda664eaecf9480843152 hello
            86bf25ecb8a40b40b885c097c683b6e236fc8085 world

       -S (Windows only)
           Windowsシステムでは Zebedee を
           サービス(ブート時に自動的に起動され独立して動くプロセス)として
           インストールすることもでい襦

           Zebedeeinstallパラメータと設定ファイルの名前を指定することで
           サービスとしてインストールされる。例えば、

            zebedee -Sinstall=c:\zebedee\service.zbd

           の様な形である。

           常に、設定ファイルのフルパスを指定しなければならない。
           このファイルはスタートアップ時に読みこまれ、
           サービスが動作するために必要なパラメータを全て含んでいなければならない。

           デフォルトでは、
           インストールされるサービスの名前はプログラムファイルの名前から取られる。
           従って通常はZebedeeになる。
           しかし、-nオプションを使用して変更することもでい襦

            zebedee -n "Zebedee Client Service" -Sinstall=c:\zebedee\clientsvc.zbd

           一旦、サービスがインストールされると、次のシステム再起動から自動的に起動される。
           もしくは(Windows
           NTの場合)サービスコントロールパネルで手動起動することもでい襦

           サービスを削除するにはまずサービスを終了してから、-Sオプションと
           remove パラメータを使う。
           そして、もし必要ならば-nオプションでサービスの名称を指定する。
           例えば、

            zebedee -n "Zebedee Client Service" -Sremove

           の様な形である。

           -Sのパラメータは他に run がある。これは内部で Zebedee の
           サービススタートアップコードを起動するために使うもので、
           ユーザが直接使用してはならない。

       -x  コマンドラインで指定でい覆だ瀋螢侫.ぅ襪離僖薀瓠璽燭
           指定するために、このオプションを使用することもでい襦
           これに文字列の引数をつけると、
           それがあたかも設定ファイルの1行であるかのように処理される。
           コメントは認識されるが、"\"の継続行は使用でい覆ぁ 例えば、

            zebedee -x " server true # It's a server!"

           というまわりくどいやりかたでも次のコマンド

            zebedee -s

           と同じ効果を得ることがでい襦

       Identity Checking

       Zebedee はデフォルトでは、2点間に暗号化チャネルを生成するに過ぎない。
       ご承知の通り、データは "on the wire (通信線上)"
       での盗聴からは守られるが、
       あなたが想定している相手に接続されているか否かは保証されない。
       これは、"man-in-the-middle (第三者による横取り)"
       アタックに対しては無防備である。
       もし、あなたがデータの圧縮と、盗聴から守ることを第一に心配しているなら、
       あなたはこの条件に満造垢襪世蹐Α
       しかし、あなたの通信が第三者に横取りされていないことに対する保証を求めるなら、
       Zebedee はそれを行うための便宜を提供する。

       もし、同一の素数と原始根と秘密鍵が用いられるなら、それらは Diffie-
       Hellman の鍵交換プロトコルのために、常に同じ公開鍵を生成するだろう。
       もし、あなたが(設定ファイルのprivatekeyァ璽錙璽匹砲得瀋蠅気譴)
       固定された秘密鍵を用いるなら、 Zebedee
       は素数と原始根と秘密鍵の値の全てをハッシュして "fingerprint (指紋)"
       を生成することがでい襦 これは、-P オプションにより行われる。
       例えば、server.key ファイルが次の値

        privatekey "1e34d6769502bae1087c18d2e8c8776e4a17ddaf"

       であるとぁ

       次のコマンド

        $ zebedee -P -f server.key > server.id

       を実行すると、

       このような出力

        135f04050961d37553731250d5c6f7495f088b32 myhostname

       が得られる。

       この最初の16進数が "fingerprint (指紋)" である。
       行中の他の文字列は、このアイデンティティの所夕圓鯢修好灰瓮鵐箸任△襦
       デフォルトでは、これはアイデンティティが生成されたマシンのホスト名である。

       設定ファイルにおいて checkidfile ァ璽錙璽匹設定された場合、その値は
       "fingerprint (指紋)" 行を欺劼靴織侫.ぅ襪離侫.ぅ詭召任△襦 もし、接続
       先のアイデンティティがファイル中のいかなる値とも一致しない場合、
       接続は切断される。

      (Notes on Other Security Issues)

       Message Integrity
           プロトコルのオーバーヘッドを可能な限り小さくするために、 Zebedee
           は伝送されたデータの正しさに対する確認は何も行っていない。
           そのため、アタッカーは途中でデータパケットを改変することがでい襦
           しかし、暗号の使用はデータを任意に変換することを極めて困難にしているのではないか
           (例えば、""ls -l""を""rm -f""に書ご垢┐蕕譴襪い?) 。
           しかし、Zebedee はランダムなデータが送られたことによる影響から
           アプリケーションを守ることは行わない。

       Replay and Insertion Attacks
           多くのネットワークシステムにおいて佑蠧世觜況發琉譴弔 データの-
           ャプチャリングであり、良く知られた効果を及ぼす (例えば、管理者の
           telnet セッションにはある種の"危険な"操作が伴い、
           その操作を後に繰り返されたらどうなるか)。
           これを行うには、暗号化されたデータストリームを改変する必要は無いが、
           サーバに送られた同じネットワークパケットは、同じレスポンスを引-
           出すだろう。

           Zebedee が "anonymous" モードで動作しているとぁ
           セッション毎に異なる鍵が生成されるため、
           このようなアタックが成功する危険は非常に小さい。 しかし、identity
           checkingの機能が使われているとい砲
           鍵は固定されているので、再生は実際に可能世ある。
           Zebedeeは、一つ一つの接続毎にユニークなセッション-
           ーを生成することで、 この問題に対処している。
           この方法では、接続のセットアップの最後に、チャレンジ-レスポンスの交換が行なわれ、
           相手側のシステムがshared secret keyを保持しており、 以前に-
           録されたデータをオウム返ししているわけではないことが、 確認される。

           加えて、Zebedee は Blowfish 暗号法を "cipher feedback"
           モードで用いており、 データのあらゆる部分の複号は、
           それ以前の全てのデータパケットの複号が成功しているかどうかに依存する。
           チャレンジ・レスポンスはデータストリームの "salts" を交換するので、
           トンネル化されたプロトコルに "known plain-text" アタック(-
           書攻撃)を加えるのは より困難になる。

       Key Generation
           良くない鍵の使用は、最強の暗号化メカニズムをも汚すことがでい襦
           鍵を生成するとぁZebedee は可能な限り推測が困難なデータをか-
           集めて、 それを SHA ハッシュアルゴリズムにより "ステア (かずぜる)"
           する。

           Windowsの場合、アタッカーが既にシステムにアクセスしていれば、
           取得可能なあらゆるデータは予測することがでい襦
           しかし既に言及したように、 ほとんどの用途においてこれは許容で-
           るだろう。
           興味があるならば、プログラム中のコメントに詳細が説明されているので、
           参照されたい。

           もし、鍵の生成メカニズムに不満があるなら、
           設定ファイル中のkeygencommand オプションを用いて、
           外部の鍵生成プログラムを呼べば良い。 組み込まれている-
           能を改善する提案は大歓迎だ!

(TROUBLESHOOTING)
       Zebedee は「箱から出してすぐそのまま」動くべい世、あなたはトラブル
       にあうかもしれない。ほとんどのトラブルは接続の確立時に起こる
       (接続さえうまくいけば、データ転送はスムーズにいくことが多い)。
       (接続の)セットアップの手順に何が起こっているか簡単に見るには-vオプションを
       使えばよい。-d -D もいっしょに使って、Zebedeeを端末から終了で
       るようにして、一度に一つの接続しか処理しないようにしたほうがい
       いかもしれない。だから、こんな感じになるだろう。

        zebedee -dD -v 3 -s

       ロギングレベルを3に設定することで、
       接続のセットアップの主なやりとりを見ることがでい襦 問題がその後に起-
       てると確信が持てるならば、 レベルを4か5にすれば、
       (接続時だけでなく)実際の通信で何がやりとりされているかも見ることがで-
       る。

EXAMPLES

       Zebedee
       のパッケージには、たくさんのサンプルの設定ファイルが含まれている。
       ここでは、それらの使用法と Zebedee を
       特定のいくつかのプロトコルで使用する具体的な方法を述べる。

      (Example Server Configuration)

       Zebedeeのパッケージに含まれる server.zbd という設定ファイルがある。
       これにはよく使われるほとんどのオプションの設定例がある。

        #
        # Sample Zebedee server configuration file
        #
        # This shows the use of many, but not all, of the configuration file
        # options available for use by a server.
        #

        verbosity 2            # Slightly more than basic messages

        server true            # Yes, it's a server!
        detached true          # Run detached from terminal
        udpmode false          # Are we operating in UDP mode?

        # Uncomment the following line to log messages to a file
        #
        #  logfile './server.log'
        #
        # Or to log to the system logging facility uncomment this:
        #
        #  logfile SYSLOG

        # Uncomment the following line if you want to use a fixed private
        # key stored in a static file. The file should contain a line of
        # the form "privatekey hexadecimal-key-string"
        #
        #  include './server.key'

        keygenlevel 2          # Generate maximum strength private keys

        # To validate the identity of clients uncomment the following
        # line:
        #
        #  checkidfile './clients.id'

        # Set up allowed redirection ports.
        # These should be pretty safe -- but it's not a good idea
        # to open up all ports.

        redirect "telnet ftp"          # Basic services
        redirect 5900-5999             # VNC traffic
        redirect 6000-6010             # X Window System
        redirect "daytime chargen"     # Ports useful for testing

        targethost localhost           # Redirection is to the local machine

        compression zlib:9             # Allow maximum zlib compression
        keylength 256                  # Allow keys up to 256 bits
        keylifetime 36000              # Shared keys last 10 hours
        maxbufsize 16383               # Allow maximum possible buffer size

       認証の機能をテストするためには、 checkidfileの行をコメントアウトし、
       パッケージに含まれるclient1.keyclient2.keyというファイルをクライアント側で使用すればよい。

       VNC(Use with VNC)

       Zebedeeを作った理由の一つとして、ダイアルアップでVNCを使うということがある。
       VNCは「リモートフレームバッファコンセプト」を使い、
       リモートディスプレイを提供するフリーのシステムである。
       Windowsのデスクトップを離れた所に表示することもでい襪掘
       "Xvnc"サーバを使って X のデスクトップを
       VNCクライアントマシンから操作することもでい襪掘
       Javaを使えるブラウザーの中から操作することもでい襦
       詳しくはhttp://www.uk.research.att.com/vnc/を参照のこと。

       提供されるサーバの設定例であるserver.zbd は 5900-5999 ポートを
       リダイレクトしてVNCセッションをトンネリングする。
       このファイルはUNIXでもWindowsでも使用でい襪、
       Windowsで使うためには、レジストリの"AllowLoopback"フラグを
       セットする必要があるので注意。
       以下の断片を(先頭のスペースを取り除いてから)ファイルに保存して regedit
       に読ませれば、そのトリックを実行する。

        REGEDIT4

        [HKEY_LOCAL_MACHINE\SOFTWARE\ORL\WinVNC3]
        "AllowLoopback"=dword:00000001

        [HKEY_LOCAL_MACHINE\SOFTWARE\ORL\WinVNC3\Default]

       この内容は Zebedee パッケージの中の vncloopback.reg にも含まれている。
       このレジストリを設定すれば、コマンドラインで与えられたホストにトンネリングされたVNC
       ビューワを vncviewer.zbd で起動することがでい襦
       デフォルトでは、サーバの(WinVNCのデフォルトである)5900ポートにトンネルするが、
       コマンドラインで指定して上書い垢襪海箸發任る。 以下に vncviewer.zbd
       の内容を示す。

        #
        # Zebedee configuration file to start up a tunnelled VNC session
        #
        # Usage: zebedee -f vncviewer.zbd remote-host[:vnc-port]
        #

        verbosity 1         # Basic messages only

        server false        # It's a client
        detached true       # Detach from terminal

        message "Starting VNC viewer on localhost:99"

        # On Windows systems you might use the following:

        command '"c:\Program Files\ORL\VNC\vncviewer.exe" localhost:99'

        # On UNIX systems you might use the following:

        # command 'vncviewer localhost:99'

        targetport 5900     # Remote VNC server on port 5900 unless overridden
                            # by a value specified on the command-line

        clientport 5999     # Local connection on 5999 -- i.e. localhost:99

        compression 6       # Request normal Zlib compression

       以下のようにこのファイルを使用すると、

        zebedee -f vncviewer.zbd somehost:5901

       somehostの5901番ポートのVNCサーバにトンネルしたVNCビューワを起動する。
       ビューワはローカルホストの5999番ポートに接続する。

       VNCはJavaのビューワもサポートしている。
       もしサーバがポート59xxで動作していたら、
       ビューワを58xxからダウンロードすることがでい襦 しかしながら、
       どうもJavaビューワはクライアントへのメインのVNCポート番号で通信しているようだ。
       そのため、Javaビューワでこれをトンネルするには、
       ローカルとリモートで同じポート番号を使う必要がある。
       そのため、例えば、5901番のポートを使っているVNCサーバへのトラフィックを
       トンネルするには、次のようにする。

        zebedee 5801,5901:remotehost:5801,5901

       もしローカルマシンでも5901番ポートを使ったVNCサーバが動いていると、
       これはうまくいかない。
       しかし、ポートが衝突しないように両者を調整することは可能である。

       もうひとつだけ言っておくことがある。
       VNCをデータ圧縮とともに使おうとしているなら、 VNCのprotocol
       encodingに関して実験したほうがよい。 私は、"raw" encoding
       が圧縮の効果が高く、
       遅い回線上ではよりよいパフォーマンスを示すことを発見した。
       しかし、あなたの場合は違う結果となるかもしれない。

       X Window System(Use with the X Window System)

       X Window Systemは6000番以上のポートを使う。

       xlocal というローカルマシンのポート6000でX サーバが動作しているとする。
       これは通常、xlocal:0 というディスプレイで使われているポートである。
       そして、xremoteという(リモート)マシンから、
       ローカルのディスプレイに安全な xterm
       のセッションを送り返したいものとする。
       これを行なうには、以下のコマンドを xlocal で実行する。

        zebedee -r 6000 -s

       そして、xremote では

        zebedee 6001:xlocal:6000

       を実行する。

       このことは、xremote上で、環-
       変数のDISPLAYが"localhost:1"に設定されていれば、
       Xのトラフィックはxlocalに到着することを意味する。
       そのため、例えばxtermを安全にxremoteから送ろうとするなら、
       xremote上で次のコマンドを実行する必要がある。

        xterm -display localhost:1

       これが正しく動作するためには、
       xremoteのXサーバのアクセスコントロールリストにlocalhostのエントリーを
       追加しなくてはならない。 これを行うには次のコマンドを実行する。

        xhost +localhost

       HTTP(Securing HTTP traffic)

       Zebedeeクライアントを"multi-use"モードで動作させることで、
       全てのWebサーバへの通信を安全にすることがでい襦 もし、Webサーバが
       webhost のポート80で動作しており、 そのサーバマシンで Zebedee
       サーバも動作しているとしたら、
       次のコマンドがローカルマシンの8000番ポート経由のトンネルを設定する。

        zebedee 8000:webhost:80

       will set up a tunnel via port 8000 on the client host. Now any URLs
       that previously were addressed via webhost, for example:

        http://webhost/private/index.html

       は、この状態では次のURLで安全にアクセスでい襦

        http://localhost:8000/private/index.html

       ""localhost:8000""をあなたのプロゥ掘爾箸靴得瀋蠅垢襪海箸如
       全てのHTTPのトラフィックを安全なトンネル経由にすることもでい襦
       しかし、注意すべい海箸蓮HTTPのプロ-
       シー設定以外にこの設定をしてはいけない。 Secure
       HTTPを含む他のプロトコルは他の方法でリダイレクトする必要がある。
       ほとんどのブラウザは違うドメインに違うプロ-
       シーを割りあてる設定も可能である。
       そのため、必要なものだけ選んでガードすることもでい襦
       これを行なう方法についてはブラウザのマニュアルを参照されたし。

       FTP(Securing FTP traffic)

       以下の手段で、
       Zebedeeを使い多くのFTPサーバへのFTPコントロールコネクション
       (ユーザ名とパスワードが送られるコネクション)を守ることがでい襦
       さらに、Zebedeeパッケージに含まれる ftpgw.tcl スクリプトによって、
       パッシブモードのデータコネクションさえも守ることがでい襦

       FTPサーバを扱う最も単純な方法は、以下のように Zebedee
       を起動することだ。

        zebedee -s -r ftp ftpserverhost

       FTPサーバと同じマシンで Zebedee を動作させていても、コマンドラインで
       明示的にホスト名を指定する必要がある(または redirecthost-
       ーワードを使用)。それを
       localhostとして参照してはいけない。クライアントシステムでは
       Zebedeeを次のように起動して、ポート10000番経由のマルチユーストンネル
       を構築する。

        zebedee 10000:ftpserverhost:ftp

       FTPサーバに接続するには、次のようなコマンドを使用する。

        ftp clienthost 10000

       くどいようだが、localhost
       でなくローカルクライアントのホスト名を使うこと。
       もし、windowsの標準FTPクライアントのように、
       あなたのFTPクライアントがコマンドラインでポートを指定でい覆せは、
       プログラムの中で(FTPセッションの中で) ""open clienthost 10000""
       というコマンドを使うことがでい襦
       もし、クライアントマシンでFTPサーバが立ち上がっていなければ、 Zebedee
       をこのように起動してもよい。

        zebedee ftp:ftpserverhost:ftp

       これだとFTPクライアントプログラムは次のように起動でい襦

        ftp clienthost

       FTPのコントロールコネクションとデータコネクションが同じ所から来ているか
       どうかチェックするFTPサーバがあるが、そういうサーバに対しては上-
       の手法は うまくいかない。wu-ftpd のようなメジャーなFTPサーバはこの点に
       ついて厳しくチェックを入れる(セゥ絅螢謄L未らは望ましいことだが…)。
       もし、サーバへの接続は明らかにうまくいくのに、
       ファイルのリストや読み出しで失敗したりハングアップするなら、
       そのサーバがここを厳しくチェックするタイプだった、ということだ。

       この問題を克服するのを助けるために、ftpgw.tcl というFTPゲートウェイの
       スクリプトが Zebedee パッケージには含まれている。
       このプログラムはフリーに入手可能であるTclスクリプティング言語
       (http://www.scriptics.com参照)で書かれていて、
       FTPのリクエストを中継して再送信し、サーバからZebedee の存在を隠す。
       これは Zebedee サーバと同じマシンで走らせる必要がある。
       FTPサーバも同じマシンで動いているなら、単にこう起動すればよい。

        tclsh ftpgw.tcl

       これでゲートウェイはポート2121で待ち受ける。明らかに、実際の使用ではこれ
       をバックグラウンドで起動したいだろう。それから、Zebedeeサーバを

        zebedee -s -r 2121

       として起動する。

       このケースではローカルホスト名を指定する必要はない
       (したければしてもかまわないが)。 クライアント側ではこうする。

        zebedee 2121:ftpserverhost:2121

       それからこうする。

        ftp clienthost 2121

       こちらでは、この場合でもクライアントホスト名を使う。

       この設定では、FTPのコントロールコネクションはトンネルされるが、
       データコネクションには一切影響を与えない。
       もし、あなたのFTPクライアントがパッシブモードをサポートしていれば、
       ftpgw.tcl でデータチャンネルも安全にすることがでい襦 Netscape
       Navigator や Windows用のWS_FTPなどはそれをサポートしている。

       パッシブモードのデータコネクションを安全にするためには、
       まずデータコネクションに使うポート番号の範囲を選ばなくてはいけない。
       この例では。30000から30100番を使うものとする。 まず、ftpgw.tcl を
       起動する時に、このポート範囲を指定するために、 -pオプションを使用する。

        tclsh ftpgw.tcl -p 30000-30100

       Zebedeeサーバはこのように起動する。

        zebedee -s -r 2121,30000-30100

       クライアントはこうだ。

        zebedee 2121,30000-30100:ftpserverhost:2121,30000-30100

       Netscapeを使ってコントロールコネクションとデータコネクションを
       両方安全にアクセスするには、このようなURLを入力する。

        ftp://username@clienthost:2121/

       ここでusernameはFTPサーバでのユーザ名である。

CREDITS AND LEGALITIES

       The following information can also be found in the file LICENCE.txt in
       the Zebedee distribution.

        Copyright (c) 1999, 2000 by Neil Winton. All Rights Reserved.

        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
        the Free Software Foundation; either version 2 of the License, or
        (at your option) any later version.

        This program is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        GNU General Public License for more details.

        You should have received a copy of the GNU General Public License
        along with this program; if not, write to the Free Software
        Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
        USA.

       A copy of the GNU General Public License can be found in the file
       GPL2.txt.

       You may obtain the latest copy of Zebedee, including full source code
       from http://www.winton.org.uk/zebedee/ and other enquiries about
       Zebedee can be e-mailed to the author at zebedee@winton.org.uk

       Zebedee would not have been possible without the use of a large amount
       of freely-available software to do all the really hard stuff. I
       gratefully acknowledge the contributions made by the authors of the
       following software packages.

       Zebedee uses the "Blowfish" encryption algorithm devised by Bruce
       Schneier.  For more information on Blowfish see
       http://www.counterpane.com/blowfish.html .  The implementation used is
       by Eric Young and is covered by the following copyright:

        Copyright (C) 1995-1997 Eric Young (eay@mincom.oz.au)
        All rights reserved.

        This package is an Blowfish implementation written
        by Eric Young (eay@mincom.oz.au).

        This library is free for commercial and non-commercial use as long as
        the following conditions are aheared to.  The following conditions
        apply to all code found in this distribution.

        Copyright remains Eric Young's, and as such any Copyright notices in
        the code are not to be removed.

        Redistribution and use in source and binary forms, with or without
        modification, are permitted provided that the following conditions
        are met:
        1. Redistributions of source code must retain the copyright
        notice, this list of conditions and the following disclaimer.
        2. Redistributions in binary form must reproduce the above copyright
        notice, this list of conditions and the following disclaimer in the
        documentation and/or other materials provided with the distribution.
        3. All advertising materials mentioning features or use of this software
        must display the following acknowledgement:
        This product includes software developed by Eric Young (eay@mincom.oz.au)

        THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
        ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
        IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
        ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
        FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
        DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
        OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
        HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
        LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
        OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
        SUCH DAMAGE.

        The license and distribution terms for any publically available version or
        derivative of this code cannot be changed.  i.e. this code cannot simply be
        copied and put under another distrubution license
        [including the GNU Public License.]

        The reason behind this being stated in this direct manner is past
        experience in code simply being copied and the attribution removed
        from it and then being distributed as part of other packages. This
        implementation was a non-trivial and unpaid effort.

       Zebedee uses the zlib compression library by Jean-loup Gailly and Mark
       Adler. It is covered by the following copyright notice:

        (C) 1995-1998 Jean-loup Gailly and Mark Adler

        This software is provided 'as-is', without any express or implied
        warranty.  In no event will the authors be held liable for any damages
        arising from the use of this software.

        Permission is granted to anyone to use this software for any purpose,
        including commercial applications, and to alter it and redistribute it
        freely, subject to the following restrictions:

        1. The origin of this software must not be misrepresented; you must not
        claim that you wrote the original software. If you use this software
        in a product, an acknowledgment in the product documentation would be
        appreciated but is not required.
        2. Altered source versions must be plainly marked as such, and must not be
        misrepresented as being the original software.
        3. This notice may not be removed or altered from any source distribution.

        Jean-loup Gailly        Mark Adler
        jloup@gzip.org          madler@alumni.caltech.edu

       Zebedee may use the bzip2 compression library by Julian Seward which is
       covered by the following licence:

        This program, "bzip2" and associated library "libbzip2", are
        copyright (C) 1996-1999 Julian R Seward.  All rights reserved.

        Redistribution and use in source and binary forms, with or without
        modification, are permitted provided that the following conditions
        are met:

        1. Redistributions of source code must retain the above copyright
           notice, this list of conditions and the following disclaimer.

        2. The origin of this software must not be misrepresented; you must
           not claim that you wrote the original software.  If you use this
           software in a product, an acknowledgment in the product
           documentation would be appreciated but is not required.

        3. Altered source versions must be plainly marked as such, and must
           not be misrepresented as being the original software.

        4. The name of the author may not be used to endorse or promote
           products derived from this software without specific prior written
           permission.

        THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
        OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
        WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
        ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
        DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
        DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
        GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
        INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
        WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
        NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
        SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

        Julian Seward, Cambridge, UK.
        jseward@acm.org
        bzip2/libbzip2 version 0.9.5 of 24 May 1999

       By default Zebedee is built using an aribtrary precision integer
       arithmetic library derived from the sources to "mirrordir-0.10.49"
       which in turn derived this from the Python sources. The copyright is as
       follows:

        huge-number.c: arbitrary precision integer library from Python sources
        This has nothing to do with cryptography.
        Copyright (C) 1998 Paul Sheer

        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
        the Free Software Foundation; either version 2 of the License, or
        (at your option) any later version.

        This program is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        GNU General Public License for more details.

        You should have received a copy of the GNU General Public License
        along with this program; if not, write to the Free Software
        Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

        This file was taken from the Python source for `long' type
        integers. I have changed it to compile independently of the
        Python source, and added the optimisation that GNU C can
        use 31 bit digits instead of Python's 15 bit. You can download
        the original from www.python.org. This file bears little
        resemblance to the original though - paul

        Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
        The Netherlands.

                                All Rights Reserved

        Permission to use, copy, modify, and distribute this software and its
        documentation for any purpose and without fee is hereby granted,
        provided that the above copyright notice appear in all copies and that
        both that copyright notice and this permission notice appear in
        supporting documentation, and that the names of Stichting Mathematisch
        Centrum or CWI or Corporation for National Research Initiatives or
        CNRI not be used in advertising or publicity pertaining to
        distribution of the software without specific, written prior
        permission.

        While CWI is the initial source for this software, a modified version
        is made available by the Corporation for National Research Initiatives
        (CNRI) at the Internet address ftp://ftp.python.org.

        STICHTING MATHEMATISCH CENTRUM AND CNRI DISCLAIM ALL WARRANTIES WITH
        REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
        MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH
        CENTRUM OR CNRI BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
        DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
        PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
        TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
        PERFORMANCE OF THIS SOFTWARE.

       Zebedee uses the Secure Hash Algorith (SHA) the code for which was
       derived from Uwe Hollerbach's SHA module for perl. The code contains
       the following statement:

        NIST Secure Hash Algorithm
        heavily modified by Uwe Hollerbach <uh@alumni.caltech edu>
        from Peter C. Gutmann's implementation as found in
        Applied Cryptography by Bruce Schneier

        This code is in the public domain

       Under Windows, Zebedee uses an implementation of the getopt function
       covered by the following copyright:

        Copyright (c) 1987, 1993, 1994
               The Regents of the University of California.  All rights reserved.

        Redistribution and use in source and binary forms, with or without
        modification, are permitted provided that the following conditions
        are met:
        1. Redistributions of source code must retain the above copyright
        notice, this list of conditions and the following disclaimer.
        2. Redistributions in binary form must reproduce the above copyright
        notice, this list of conditions and the following disclaimer in the
        documentation and/or other materials provided with the distribution.
        3. All advertising materials mentioning features or use of this software
        must display the following acknowledgement:
               This product includes software developed by the University of
               California, Berkeley and its contributors.
        4. Neither the name of the University nor the names of its contributors
        may be used to endorse or promote products derived from this software
        without specific prior written permission.

        THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
        ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
        IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
        ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
        FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
        DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
        OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
        HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
        LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
        OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
        SUCH DAMAGE.

       Thanks

       Special thanks go to those people who have taken the trouble to give me
       feedback and suggestions for improvement!

        $Id: zebedee.pod,v 1.1 2000/07/18 02:05:04 tnaka Exp $