• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:proftpdとPuTTYとFFFTP)

パスワード盗聴のリスクを考慮し、FFFTPのパスワードを暗号化する方法と設定手順

このQ&Aのポイント
  • FFFTPとPuTTYを使用してWindowsとLinuxを接続する際、パスワードが盗聴されるリスクがあるため、SSHを使用してパスワードを暗号化することが必要です。
  • proftpdのServerTypeはstandaloneではなくxinetdを使用する必要があります。
  • FFFTPの設定では、接続先ポートを22ではなく21に設定する必要があります。しかし、パスワードは暗号化されて送信されるため、安全性は確保されます。

質問者が選んだベストアンサー

  • ベストアンサー
  • mynamy373
  • ベストアンサー率46% (23/50)
回答No.4

#3への返信です。 FTPでは、制御コネクションとデータコネクションがあるのは以前に述べました。先に紹介したサイトでは、制御コネクションをSSHトンネルを通しています。つまり、クライアントとサーバとのコネクションはSSH経由で行われるので、暗号化されています。 ここで、「パッシブモード」と書いてありますね。パッシブモードは、FWの関係で、データ用のポートをサーバ側からクライアント側へリンクさせられない時に使用されます。パッシブモードでは、データ用のポートはクライアント→サーバの向きでFWを通過します。この時には、従来使用される(アクティブモードで)ポート番号20ではなく、任意のポートが選ばれます。ですから、 >そしてFFFTPは制御コネクションをSSHを使わず、サーバ名:PassivePortsのどれか1つに接続するんですよね? 制御コネクションはSSHを通していると思います。むしろSSHを使っていないと思われるのはデータコネクションです。データコネクションが任意ですから、 >FFFTPは制御コネクションはlocalhost:22で、データコネクションはサーバ名:PassivePortsだと認識することになるんですよね? に関しては、その通りだと思います。私の勘違いかもしれませんが、FTPをSSHポートフォワーディングで行った場合には、制御コネクションは暗号化できる(認証のやりとりは暗号化される)・・・しかし、データコネクションは任意ポートであり、SSHトンネルは1本なのでデータ内容は暗号化されない、だと考えています。100%の自信はありませんが、FTPの性質を考慮すればこうした考えに辿りつきます。 こうした経緯から、実は#1の方の仰るソフトを私も使用しているのですが^^;使い勝手もFFFTPとほぼ同じです。サーバ管理側としては、FTPサービスを起動しなくても済みますし、ポートも2つ閉じる事ができます。暗号化処理でサーバは重くなりますが、小規模サーバでは問題ありません。

jsagty
質問者

お礼

ありがとうございます。 全部理解できました。あとは実際にやるだけです。 そしてFFFTPは制御コネクションをSSHを使わず、 と書いたのは間違いで、「制御」は「データ」と書いたつもりでした。

その他の回答 (3)

  • mynamy373
  • ベストアンサー率46% (23/50)
回答No.3

ここに詳しく書いてあります。図が非常に分かりやすいです。 http://www.club.kyutech.ac.jp/support/manual/ffftp+ssh.html ア : PuTTYでWindows ----> (22)LinuxのOpenSSH →これでSSHトンネルを確保します イ : FFFTPでWindows ----> (8021)LinuxのOpenSSH →厳密には、FFFTPでWindows ----> Puttyで作ったトンネルへ(8021番→22番)ですね。 ウ : LinuxのOpenSSH ----> (21)Linuxのproftpd →SSHトンネルを出たらポートが変わります。 エ : Linuxのproftpd ----> (21)WindowsのPuTTY これは帰りですね。往路で確保したトンネルを帰ってきます。 オ : WindowsのPuTTY ----> WindowsのFFFTP そうです。

jsagty
質問者

補足

ありがとうございます。 仕組みが分かってきました。 往路の方も理解したいので教えてください。 ポートフォワーディングの図で http://www.club.kyutech.ac.jp/support/manual/portforwarding.img/pf-ftp.jpg 今回はSSHを使うので、上の白いコネクションは無いものとします。 FFFTPから │  ↑ └─┘ このように21番で待っているproftpdに届き、レスポンスでproftpdのサーバ名とPassivePortsが ↑  │ └─┘ このようにFFFTPに返されるんですよね? サーバ名も返されるんですよね? そしてFFFTPは制御コネクションをSSHを使わず、 サーバ名:PassivePortsのどれか1つ に接続するんですよね? FFFTPは制御コネクションはlocalhost:22で、データコネクションはサーバ名:PassivePortsだと認識することになるんですよね?

  • mynamy373
  • ベストアンサー率46% (23/50)
回答No.2

こんにちわ。SSHポートフォワーディングですね。 これはメール等にもよく使われます。「ポートフォワーディング」などと検索すれば詳細はでてきます。 この参考サイトを見ましたが、サーバ側で使用しているポートは決まっているようですね。順を追ってみましょう。使用するのはPuttyとFFFTP限定のようですので、そのつもりでいきます。 原理的には以下のようになります。 1.SSHトンネルと呼ばれる暗号化経路をPutyyで作る。 2.その経路でFTPする。 ここで、SSHトンネルにデータを流してやる時に、自分のマシンをサーバのように使います。FTPを行う前にPuttyを起動しておくのがその準備です。SSHトンネルを通ってサーバについたデータは、サーバ側で指定したポートに届けられます。クライアントとサーバの間では、SSHの22番ポートが使われますが、SSHトンネルに流すまでと、サーバに届いてからは他のポートを使用するのです。この技術のすごい所は、通信路で使用しているのは22番だけなので、使用するポートが22である事です。大学などでは、22番くらいしか許可していないので、ポートフォワーディングすれば学外からも大学のサーバ経由でメールが送れたりします。 さて、原理的な事は以上で手順を見直しましょう。 まず、Puttyです。これは、1番のdを所で相手サーバとポート番号を指定します。IPまたはホスト名と22番ポートを指定してください。 次に、1番のaです。ここに、ポートフォワーディングの設定を入れます。送り先はxxxxxx.ac.jp:8021となっています。これは、SSHトンネルを出た後は相手サーバの8021番ポートに接続しますという事を表します。 源ポートとは、SSHトンネルに入れる直前のポートです。ここでは8021番とサーバと同じになっていますが、任意です。分かりやすいように同じにしてあるのでしょうが、余計に混乱を招くようですね。この源ポートとは、FFFTPで指定するポート番号です。ですから、FFFTPでは8021番を指定します。 これで上手くいきませんか?設定の書式等にはご注意下さい。:などが抜けても上手くいきません。

jsagty
質問者

補足

原理の説明をまたお願いします。 ア : PuTTYでWindows ----> (22)LinuxのOpenSSH イ : FFFTPでWindows ----> (8021)LinuxのOpenSSH ウ : LinuxのOpenSSH ----> (21)Linuxのproftpd エ : Linuxのproftpd ----> (21)WindowsのPuTTY オ : WindowsのPuTTY ----> WindowsのFFFTP イでパスワードを送るんですよね? パスワードを暗号化するのはPuTTYですよね? イを実行したときに、PuTTYがそれを検知して出て行くものを全てSSHタイプの暗号にして イ : FFFTPでWindows ----> PuTTYが暗号化 ----> (8021)LinuxのOpenSSH となるわけですか?

  • mac_res
  • ベストアンサー率36% (568/1571)
回答No.1

Windows, Linux間でSSHによる暗号化ファイル転送をしたいのなら、WinSCPを使うのがよいと思います。 http://winscp.net/eng/docs/lang:jp

参考URL:
http://winscp.net/eng/docs/lang:jp
jsagty
質問者

お礼

クライアントはFFFTP限定です。 ありがとうございました。

関連するQ&A