SSH を利用して、外部から内部に FTP する方法 (socks を使う場合)

Last modified: Wed Jan 26 13:38:13 2011 +0900 (JST)


概要

 龍谷大学ではファイアウォールを構築している関係上、 学外のホストから直接 FTP で学内のホストに接続することはできません。

 この問題を回避するにはいくつかの方法があるのですが、ここでは、 ssh と socks を組みあわせる方法について解説します。 なお、ここで解説する方法を利用するには、ゲートウェイホスト rins.st.ryukoku.ac.jp のアカウント (利用者登録) が必要になります。 学生用ゲートウェイ RIGS のアカウントを取得している場合は、rins.st.ryukoku.ac.jp を rigs.st.ryukoku.ac.jp に置きかえて読んでください (rigs.st の SSH ホスト鍵のフィンガープリントは rins.st のものとは異なりますが)。

 以下では主に、Windows 用の ssh クライアント PuTTY と、Windows 用の FTP クライアント FFFTP を利用する場合について解説します。

PuTTY の設定と操作

 PuTTY のインストールや基本的な操作については、secure shell (ssh) についてを参照してください。

  1. 「PuTTY 設定」において、次の設定を行います。

    1. 接続 → SSH → トンネル において、源ポート: 10080 と入力し、「ダイナミック」をチェックし、[追加(D)] をクリックします。

       

      すると、「フォーワードされたポート」に、次のように表示されます。

       

      この例では 10080 としていますが、源ポートは 1024〜65535 の範囲内の数字なら何でもいいです。 ただし、以下で 10080 と書かれている部分は全て、選択した数字に合わせてください。

    2. 接続 → SSH において、優先する SSH プロトコルバージョン: に「2」を選択します。

       
    3. 接続 → データ において、自動ログインのユーザ名: に自分のログイン名 (例では kjm) を入力します。

       
    4. セッション において、ホスト名: rins.st.ryukoku.ac.jp、 ポート:22、プロトコル: SSH と入力します。

      さらに、保存されたセッション に適切な文字列 (例では rins.st (socks)) を入力し、[保存(V)] をクリックします。

       

      すると、次のように表示されます。

       
  2. 上記の保存されたセッション名をダブルクリックするか、 セッション名をクリックして [読込(L)] をクリックし、さらに [開く(O)] をクリックするかすると、以下のように接続が開始されます。

     

    なお、初回接続時には、仮想端末として使う (PuTTY) にあるように、「ホスト公開鍵」の確認ダイアログが表示されますので注意してください。また、プロトコルバージョン 1 と プロトコルバージョン 2 ではホスト公開鍵が異なりますので注意してください。

    プロトコル
    バージョン 1
    hex 形式
    1024 a4:29:8f:1f:12:40:87:58:af:b3:ce:ee:60:fe:79:a3
    bubblebabble 形式
    1024 xesed-dutur-tuzuk-syzyd-gaget-komoh-tomon-tezug-ninol-vysod-gixox
    プロトコル
    バージョン 2
    RSA 鍵
    (通常はこちら)
    hex 形式
    1024 52:32:d9:b3:5e:06:ab:5a:63:46:d4:3d:19:75:68:5b
    bubblebabble 形式
    1024 xocar-cyzuz-dazof-suvez-bitid-komof-vekym-hepan-syrav-gotep-lyxex
    DSA 鍵 hex 形式
    1024 d8:61:26:07:34:91:01:a1:8c:21:68:7c:36:1d:86:90
    bubblebabble 形式
    1024 xuhod-mumov-sifys-rugip-vazec-zinyt-betys-gegyc-tenat-vamem-buxax
  3. パスワードを入力し [リターン] キーを押すと、次のように接続が完了します。

     
  4. このとき Windows で netstat -na コマンドを実行すると、次のように、 127.0.0.1:10080 が LISTENING になっているのがわかります。

     

FFFTP の設定と操作

 FFFTP のインストールや基本的な操作については、FFFTP ホームページを参照してください。

  1. [オプション(O)] メニューから [環境設定(S)..] を選択します。

     
  2. オプション ウィンドウが表示されます。 [FireWall] タブを選択し、次のように設定します。

    FireWall のタイプ(T) SOCKS5 (認証なし)
    FireWall ホスト(H) localhost
    ポート(X) 10080
    ホストの検索は SOCKS サーバに任せる(S) チェックする
     

    [OK] をクリックして オプション ウィンドウを閉じます。

  3. [接続(F)] メニューから [接続(C)..] を選択します。

     
  4. ホスト一覧 ウィンドウが表示されますので、[新規ホスト(N)...] をクリックします。

     
  5. ホストの設定 ウィンドウが表示されますので、[基本] タブにおいて、龍大内部にある接続先ホストの設定を行います。ホストの設定名、ホスト名、ユーザ名を適切に設定してください。

     
  6. 続いて [拡張] タブをクリックし、「FireWall を使う」と「PASV モードを使う」にチェックします。

     

    [OK] をクリックしてホストの設定 ウィンドウを閉じます。

  7. 上記を実行すると、ホスト一覧 ウィンドウに、「ホストの設定名」で設定した名前が追加されます。

     

    「ホストの設定名」で設定した名前を選択し、[接続(S)] をクリックします。

  8. このように接続できます。

     

注意点

 必ず、まず PuTTY を実行してから、FFFTP を実行してください。

SOCKS に対応していない FTP クライアントの場合

 SOCKS に対応していない FTP クライアントを利用したい場合は、SocksCap32 を利用します。以下の例では、SOCKS に対応していない FTP クライアントとして NextFTP を使用しています。

SocksCap32 の設定

 まず、SocksCap32 を次のように設定します。

  1. ダウンロードページから SocksCap32 をダウンロードします。Version 2.xx のものをダウンロードしてください。

    ダウンロードするにはユーザ情報を入力する必要があります。正しく入力してください。 Purpose には educational などと入力すればよいでしょう。License Terms / Copyright に同意し、ダウンロードします。

  2. ダウンロードした SocksCap32 (sc32r238.exe などというファイル名です) を実行し、インストールします。ふつうにインストールすればよいです。

  3. インストールしたら、SocksCap32 (帽子のアイコン) をダブルクリックするか、スタートメニューの [プログラム] → [SocksCap V2] → [SocksCap V2] を選択して実行します。

     

    License Terms and Conditions が表示されるので [Accept] をクリックします。

     

    利用可能期間が表示されるので [OK] をクリックします。 利用可能期間が過ぎてしまったら、SocksCap32 Version 2.xx の最新版を再度ダウンロードしてインストールすればよいです。

     

    今すぐ設定するか? と聞いてくるので [はい] をクリックします。

     

    次のように設定します。

    • SOCKS Server: localhost Port: 10080
    • SOCKS Version 5
      • Resolve all names remotely
     

    設定後、[OK] をクリックします。

  4. [OK] をクリックすると、SocksCap Control というウィンドウが開きます。

     

    New をクリックするか、File メニューの New... を選択します。New Application Profile というウィンドウが開きます。

     

    Browse... をクリックし、SOCKS を適用したいアプリケーションを選択し、[開く] をクリックします。 この例では NextFTP を選択しています。

     

    [開く] をクリックすると、New Application Profile が次のように設定されます。これで問題なければ [OK] をクリックします。必要に応じて、Working Directory を変更するなどしてください。

     

    すると、SocksCap Control に次のように登録されます。

     

SOCKS 化された FTP クライアントの利用

 SOCKS 化された FTP クライアントを利用するには、次のようにします。

  1. まず PuTTY を、socks 設定したセッションで (上記例では rins.st (socks) で) 起動し、接続します。

  2. 続けて SocksCap32 を起動します。SocksCap Control ウィンドウが表示されます。

  3. SocksCap Control から NextFTP を起動します。 あとはふつうに利用してください。

SocksCap32 に関する注意

 アプリケーションによっては、SocksCap32 ではうまく扱えない場合があります。 うまくいかない場合は、RINS 担当教員 (内線 7414) までご相談ください。


RINS WWW Administrator <[email protected]>