Zebedee
その他のめも
Zebedeeめも
Zebedee とは
Zebedee はいわゆるトンネリングプログラムです。
ファイアウォール内に外部からアクセスするといった用途に使用します。
Zebedee の特徴としては以下の点が挙げられます。
・単なるトンネリングでなく通信は暗号化して行われるので、盗聴される心配がない
・とても簡単で直感的な設定で使用できる
・データは圧縮して送信されるので、単なるトンネリングよりも通信量が少なくて済む
・無料(^_^;
・UNIX だけでなく Windows 系もサポート
ちなみに、暗号化だけを考慮するのであれば ssh のポートフォワードでもOKですが、設定が少々面倒です。
別アカウント使わないと毎回ポートフォワード設定するためにパスフレーズを聞かれちゃうし、そもそも全てコマンドラインで設定しないといけないところがつらい。
しかも、1つ1つのポートに対して設定しなくてはいけないんで、複数のポートに対してトンネリングを設定しようと思ったらかなり大変です。
ところが、Zebedee であれば設定ファイルを1つ書けばいいだけなんでとっても楽チン♪
まあ、ssh と比べると機能的に劣るとは重いますので、その辺りは使い分けが必要かと思います。
インストール
zebedee-2.4.1 の例です。
まず、Zebedee の公式サイトからアーカイブを取得します。
取ってきたアーカイブを展開し、make, make install すればOKです。
ただし、make 時のパラメータに OS の種類を指定しなければなりません。
% gzip -dc zebedee-2.4.1.tar.gz |tar xvf - % cd zebedee-2.4.1 % make OS=linux % su # make OS=linux install
注)
このままだとおそらくエラーが出ます。
とりあえず、blowfish が必要になると思いますので、これも Zebedee の公式サイトから取得して先にインストールしておきましょう。
あと、何故だかわかりませんが、blowfish, zlib, bzip2 のソースが zebedee の親ディレクトリの下にある(ようは同じディレクトリ上でアーカイブを展開した)ことが仮定されているようです。
仮定の通りにしておけばすんなりインストールもできますが、私はわざわざ zlib, bzip2 をもう一度持ってくるのも面倒(?)だったので、Makefile を書き換えてしまいました。
起動方法
zebedee には非常にたくさんのオプションがあります。
が、基本的には設定ファイルを読み込んで起動する方法を覚えておけばよいでしょう。
% zebedee -f server.zbd
ちなみに、zebedee のサーバ側ではデフォルトでは 11965 番のポートで通信を待ち受けるので root 権限は必要ありません。
通常のユーザ(zebedee 専用ユーザ)で起動しましょう。
秘密鍵、公開鍵の作成
別に作らなくても zebedee を使用することはできるんですが、来るもの拒まず状態になってしまうのでセキュリティ的に問題となります。
作成方法は以下の通り。
両方ともクライアント側で作成し、作成後に公開鍵をサーバ側に置きます。
秘密鍵の作成
% zebedee -p > server.key
公開鍵の作成
% zebedee -P -f server.key > server.id
設定
まず、必ず設定すべき項目です。
項目名 | 概要 |
---|---|
server | zebedee をサーバ/クライアントのどちらのモードで動かすかを指定します。true を設定するとサーバ、false を設定するとクライアントとなります。 |
redirect | リダイレクト可能なポートを指定します。これはサーバモードのみ指定可能です。ここに設定した以外のポートをクライアントの方で指定してきてもそのポートへのアクセスは行えません。ちなみに、これを設定しないと全てのポートに対してアクセス可能となりますので注意してください。ポートの指定はカンマ区切りでの複数指定が可能で、またサービス名(popやtelnet等)もOKです。さらに、1000-2000 といったような範囲指定も可能です。 |
checkidfile | アクセスを許可するクライアントの公開鍵を登録してあるファイル名を指定します。checkidfile は省略可能ですが、そうすると全てのマシンからアクセス可能というとんでもないことになります。公開鍵の登録してあるファイルには複数の公開鍵を記述することが可能です。 |
clientport | クライアント側で待ち受けるポート番号で、クライアントモードでのみ指定可能です。カンマ区切りで複数指定可能ですが、targetport と同数である必要があります。 |
targetport | 実際にアクセスしたいサーバ側のポート番号で、クライアントモードでのみ指定可能です。カンマ区切りで複数指定可能ですが、clientport と同数である必要があります。 |
privatekey | このマシン上での秘密鍵を指定します。たいてい秘密鍵は秘密鍵のファイルとして保存していると思うので、include で読み込んでしまうのがいいでしょう。 |
minkeylength | キーの最小の長さを指定します。デフォルトが 0 なので、これを指定しないと、クライアント側でキーの長さを 0 と指定されてしまうと、誰でも接続OK状態になってしまいます。 |
その他、日本語の man ページがあるのでこれを見れば特に問題ないはず。