zebedee
最も簡単な設定
zebedeeには様々な動作モードがあるため、マニュアルを読んでもわかりにくいことおびただしい。 ここでは、外部にあるサーバを手元で操作するための最も簡単な設定を見ていく。前提条件としては以下の通り。
- 外部サーバを操作したい。外部サーバのIPは固定(あるいは固定のドメインがある)。
- 操作対象とするサーバプログラムは固定のポートを使うもののみ(FTPやVNC等は面倒な設定が必要なのでパス)。主にはデータベースサーバなど。
zebedee上の接続認証が必要であるものとする。zebedeeは本来通信路を暗号化するものであるが、指定しないと誰でも「接続は」できてしまう。
この場合、例えばデータベースサーバであるならデータベースサーバの認証機能のみを使用することになってしまう。そうではなく、zebedeeに備え付けられた認証機能を利用し、認証できない場合はzebedee自体への接続を不可能にする。- zebedeeの機能ではないが、クライアント側も固定IPであるなら、iptablesを使用して、接続可能なIPを制限する。
認証キーの作成
認証キーを作成していなくとも、zebedeeでは二点間の暗号化はもちろんできる。 zebedeeはblowfish暗号を使用しており、二点の「共有鍵」が必要になるが、Diffie-Hellmanと呼ばれる鍵交換方式によって、 事前に、二点が何の秘密を共有していなくても、第三者に知られることの無い「共有鍵」が生成できる。
※この仕組みについてはhttp://www.youtube.com/watch?v=M45Z2a50VDo等を参照のこと。
認証キーDは、おそらくこれとは無関係で、単に「接続してきた相手が「接続を許可してよい相手かどうか」を確認するためのものである。 この方式としては、(詳細はわからないが)おそらく公開鍵暗号と同様のものと思われる。
具体的な作成方法としてはhttp://technique.sonots.com/?UNIX%2F%E5%AD%A6%E7%94%9F%E3%83%84%E3%83%BC%E3%83%AB%2F%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%2Fzebedeeにあるが、まとめると以下になる。
- クライアント側でキーと公開鍵を作成する。
- 公開鍵をサーバ側に転送し、設定ファイルでそのクライアントからしか接続できないようにする。
ちなみに、クライアントが複数ある場合は、クライアントごとに作成しなくとも、一つのキーと公開鍵ペアを流用することができる。
zebedeeのわかりにくいエラー
クライアント側1
zebedee(1984/1748): Starting Zebedee Client zebedee(1984/1748): Listening on local port 15432 zebedee(1984/1748): ERROR: listener bind failed zebedee(1984/1748): ERROR: can't create listener socket: (Unknown error)
このエラーを見ると、15432ポートのバインドに失敗しているかのように見えるのだが、実はそうではなく、別の指定ポートのバインドに失敗している。 クライアントの設定ファイルは以下であり、この場合には80番ポートが既に使用されていた。
detached false # Don't Detach from terminal verbosity 2 server false detached false udpmode false message "Starting Zebedee Client" serverhost www.----.jp privatekey "----------------------" tunnel 15432:www.----.jp:5432 tunnel 80:www.----.jp:80