wakatonoの戯れメモ

はてなダイアリーから引っ越してきました。

トンネル超えのFTPの難しさ

gtk's memoより。
SCPについてはまだいいとしても、トンネル超えのFTPは(一度やってみればわかりますが)面倒なことこの上ありません。
SSHでトンネル掘って、そこでFTPふがほげ…というのは

  • Passive FTPが前提である
  • トンネルのエンドポイントで、FTPコントロールコネクション上を流れる電文を解釈し、その電文中のIPアドレスと接続先のポート番号を、ポートフォワードで待ち受けているポートとホストの内容に書き換える必要がある(Zebedeeでは、そのためのTCLスクリプトが用意されている)。
  • なにより面倒(苦笑)

というのが嫌。
あと、SSHに付属する(だよなぁ)sftpは、結局SCPのフロントエンドみたいなもんなんで、そもそもFTPではないっす。
このあたりを忘れてFTPコントロールコネクションを(SSHなどで)ポートフォワードすると、当然ポートフォワード先のFTPサーバはダイレクトに自分のIPアドレスとポート番号を返してくる。
そして、クライアントとの間に特に何の処理も入らない場合には、電文に含まれるIPアドレスとポート番号をもとにデータコネクションを開設しにいく。
結果として、

  • コントロールコネクションは暗号化されている
  • データコネクションは暗号化されていない

という、アタマ隠して尻隠さず状態になるわけっす…。
これ、あんまりいい状態と思いませんが…少なくともオレは。
また、SCPについてはそのとおりなんですが、SSHのポートを開放してるネットワークは少ないと思います(というか少ない)。