トップ «前の日記(2004-05-15) 最新 次の日記(2004-05-19)» 編集

snapshot

2004|05|06|07|08|09|10|11|12|
2005|01|02|05|
2006|03|

2004-05-18

_ Zebedee 逆流鍵認証(port制限つき)接続メモ

まず基本。

serverclienthost HOSTNAME
clientlistenmode

を設定すると server から client へ接続される。以下補足。

  • serverport は両方に必要。(もしくは両方指定しないで自由に通信させるか、どっちか。でも自由に通信できるんだったら tunnel の意味ないよね :)これは Zebedee の接続ポートを明示的に制限する場合の基本。
  • listenmode の client は設定した serverport 及び tunnel のすべてのポートで listen する。ただし、tunnel の方に書いた port については、localsource true の場合は localhost 以外からの接続は受け付けない。
  • firewall の設定は serverport を開けておく。
  • client が listenmode でなおかつ serverhost * でない場合は、server の名前をどうにかして client が解決できないといけない。例えば DNS サーバのない LAN 内の場合は Windows ⇔ Un*x 間は普通名前解決できないので繋がらない。
  • serverhost * の listenmode は要するにサイバーノーガード状態なので identity checking を行う。この際、秘密鍵、公開鍵は以下のように
listenmode clientinclude private key
serverCHECKIDFILE public key

接続 ok

listenmode clientCHECKIDFILE public key
serverinclude private key

接続 ok

どっちに何を置いても繋がる。秘密鍵があれば公開鍵は生成できるので、より信用できるホストに秘密鍵を置いておいた方がいいかな。

接続手順

server は Zebedee の listen に connect だけはするが、実際の認証は client 側で接続要求が発生してから。

  1. client を起動(これはずっと接続待ち)
  2. server を起動(timeout するまで、default では 300秒待つ)
  3. client に接続するプログラムで通信を試みる
  4. server が timeout してなかったら tunnel が作成される

これを使えば ssh の remote forward を使わなくても「ちょっと風変わりな SSH 経由 VNC」と同じことができる。ただし、Zebedee server の timeout という制限は加わる。(ssh の場合は exit しない限り基本的には繋がりっぱなし。)

ssh と違って Zebedee は RemoteForward の設定ができないし、forward する port をサーバ側で制限できる。つまり、port forward が目的なら ssh を使うより Zebedee の方が(クライアントがどれだけ信用できるかという点で)安全なのでオススメ。「ちょっと風変わりな SSH 経由 VNC」の方法だと、クライアント側(VNC サーバが動いている側)で勝手に VNC 以外の port をどっち向きにも forward することができてしまうが、Zebedee を使った場合はそういうことはできない。

OpenSSH にも OpenSSL にも依存しないし、Win32 のインストーラがあるのも嬉しい。

ぐち

ssh は scponly などを使えば shell アクセスについては安全性は増すが、port forward だけはどうしようもないのが痛い。ユーザーとかグループ個別に port forward の設定ができれば嬉しいんだけど。。。結局、ファイル転送は ssl + WebDAV、port forward は Zebedee と分けるのが安全て感じなんだけど、どっちもまだいまいちマイナーってのと、WebDAV は クライアントが FTP に比べると貧弱な感じで、どうにもこうにも。