samba over SSH
やり方をメモっとく。
http://datafarm.apgrid.org/software/html/ja/user/smboverssh.html
仮想ネットワークインターフェースのインストール
現在使用しているネットワークインターフェースとは別に,転送元となるためのネットワークインターフェースを用意します.物理的なインターフェースを増設する必要はなく,仮想的なインターフェースでも良いので,以下の方法を紹介します.
1. コントロールパネルを開きます.
2. ハードウエアの追加を開きます.
3. 「次へ」を押します.
4. 「はい、ハードウエアを接続しています」を選択して次へいきます.
5. 一番下の「新しいハードウエアの追加」を選択して次へいきます.
6. 「一覧から選択したハードウエアをインストールする(詳細)」を選択して次へいきます.
7. 「ネットワーク アダプタ」を選択して次へいきます.
8. 「Microsoft」と「Microsoft Loopback Adaptor」を選択して次へいきます.
9. インストールが完了するまで続行します.
10. インストールが終わったら,コントロールパネルからネットワーク接続を開きます.
11. デバイス名が「Microsoft Loopback Adaptor」であるアイコンを探します.
12. # このアイコンの名前を「for SMB over SSH」などわかりやすい名前にしておくとよいでしょう.
13. プロパティを開き,全般のタブで,「Microsoft ネットワーク用ファイルとプリンタ共有」のチェックを外します.
14. 「インターネットプロトコル(TCP/IP)」のチェックは入れたまま,選択し,プロパティを押します.
15. 他のマシンと重ならない IP アドレスとサブネットマスクを入力します.プライベートアドレスや LINKLOCAL アドレス (169.254.*.*) のアドレス範囲を使うことになると思います.今後は 169.254.0.1/255.255.0.0 と設定した場合の例として説明します. ゲートウェイ,DNS の項目を入力する必要はありません.
16. 「詳細設定」を開きます. 「WINS」のタブで「NetBIOS over TCP/IP を無効にする」を選択します.
17. それぞれ OK で決定して閉じます.
ポート転送の設定
SSH のローカルフォワード機能を使い,仮想ネットワークインターフェースのポート 139 番を,接続先の SSH サーバから見えるマシンのアドレスとそのポート 139 番に転送します.
* 多段に SSH 接続をしてポートを転送する場合は,途中のポートは 139 番以外でも大丈夫ですが,最終的な出口と入り口は,ともに 139 番である必要があります.
* ポートを転送するときにポート番号を変換することで,139 番以外で Samba を動かすこともできます.
以降では,以下の構成を仮定して説明します.
* 上記で設定したクライアント側の仮想ネットワークインターフェース: 「169.254.0.1」
* SSH サーバのホスト名: sshserver.example.com
* SSH サーバを経由してから見える Samba マシンの IP アドレス: 「192.168.1.234」
o SSH サーバと Samba マシンが同一の場合は「127.0.0.1」でも可能です.
o sambaserv.example.com のような名前で指定も可能です.
PuTTY (日本語版) の場合
1. sshserver.example.com への SSH の設定(セッション)をつくって保存し,接続できることを確認しておきます.
2. PuTTY を起動しなおして,そのセッションをもう一度読み込みます.
3. (「接続」→「SSH」→)「トンネル」を選択します.
4. 源ポートに「169.254.0.1:139」(狭いですが),送り先に「192.168.1.234:139」と入力し,「ローカル」にチェックが入っていることを確認して,追加を押します.
5. セッションを保存します.
接続
1. 上記で設定した SSH クライアントを用いて SSH サーバに接続します.
2. エクスプローラを開きます.
3. アドレスバーに「\169.254.0.1」と入力します.
4. # 繋がらない場合は,SSH クライアントを最新版にしてみてください.
5. パスワードを聞かれる場合は,転送先の Windows または Samba 用のユーザ名とパスワード入力します.
6. 共有フォルダをネットワークドライブに割り当てることもできます.
さらにHOSTSファイル(C:WindowsSystem32driversetchosts)に仮想NICのIPと名前の対応を書いておけば、名前で(\file-servershareのような)アクセス可能。
…でもこれインターネット経由だとめっちゃ遅いぞ(;´Д`)