ftpをsshでトンネルできるか
出来るけど、現実的じゃないってのが結論かな。FTPプロトコルは制御チャネルとデータチャネルの2つのTCPコネクションを使っているので、この2つのコネクションをトンネルしてあげる必要ある。制御チャネルはTCP:21を使っているので、これはすぐトンネルが掘れる。
% ssh -L2001:localhost:21 server
これで認証までは通る。でもってactiveモードにして、sendportコマンドを送る。
ftp> passive Passive mode off. ftp> sendport Use of PORT cmd off.
この時点でこのftpクライアントが使っているポートを調べる。
$ netstat -n | grep 2001 tcp 0 0 127.0.0.1:47760 127.0.0.1:2001 ESTABLISHED tcp 0 0 127.0.0.1:2001 127.0.0.1:47760 ESTABLISHED
データ制御チャネルの発信ポートは47760。それから、サーバ側のポートも調べる。
% netstat -n | grep ftp % netstat -n | grep 2001 tcp 0 0 server:32889 server:ftp ESTABLISHED tcp 0 0 server:ftp 127.0.0.1:32889 ESTABLISHED
クライアントの制御チャネルの発信ポートから、サーバの制御チャネル受信ポートに向けてデータチャネル用のトンネルを掘る。
$ ssh -f -n -L32889:localhost:47760 server
これで一度だけデータ転送できる。やってみたけど、本当に一度だけだ。う〜ん、まったく現実的じゃないな。この方法は
- 作者: Daniel J. Barrett,Richard E. Silverman,Robert G. Byrnes,小島肇,坂井順行,鹿田幸治,園田道夫,高橋基信,根津研介,宮本久仁男
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2006/11/22
- メディア: 大型本
- 購入: 2人 クリック: 79回
- この商品を含むブログ (48件) を見る