SSHのポート転送を用いてSambaにアクセスする

参考:http://datafarm.apgrid.org/software/html/ja/user/smboverssh.html


概要
Sambaで使用するポート139番をローカル側で確保して,ポートフォワードする方法


仮想ネットワークインターフェースのインストール
通常利用しているネットワークインターフェースのポート139番(TCP)は使用されているので,転送元となるためのネットワークインターフェースが必要
物理的なインターフェースを増設する必要はないので,以下の方法で仮想的なインターフェースを用意し,139番を確保する
以下,ほぼコピペ

  1. コントロールパネルを開きます.
  2. ハードウエアの追加を開きます.
  3. 「次へ」を押します.
  4. 「はい、ハードウエアを接続しています」を選択して次へいきます.
  5. 一番下の「新しいハードウエアの追加」を選択して次へいきます.
  6. 「一覧から選択したハードウエアをインストールする(詳細)」を選択して次へいきます.
  7. 「ネットワーク アダプタ」を選択して次へいきます.
  8. Microsoft」と「Microsoft Loopback Adaptor」を選択して次へいきます.
  9. インストールが完了するまで続行します.
  10. インストールが終わったら,コントロールパネルからネットワーク接続を開きます.
  11. バイス名がMicrosoft Loopback Adaptor」「ローカル エリア接続 2」であるアイコンを探します.
  12. # このアイコンの名前を「for SMB over SSH」などわかりやすい名前にしておくとよいでしょう.
  13. プロパティを開き,全般のタブで,「Microsoft ネットワーク用ファイルとプリンタ共有」のチェックを外します.
  14. インターネットプロトコル(TCP/IP)」のチェックは入れたまま,選択し,プロパティを押します.
  15. 他のマシンと重ならない IP アドレスとサブネットマスクを入力します.プライベートアドレスや LINKLOCALアドレス*1 (169.254.*.*)のアドレス範囲を使うことになると思います.今後は 169.254.0.1/255.255.0.0 と設定した場合の例として説明します. ゲートウェイDNS の項目を入力する必要はありません.
  16. 「詳細設定」を開きます. 「WINS」のタブで「NetBIOS over TCP/IP を無効にする」を選択します.
  17. それぞれ OK で決定して閉じます.

  • 「詳細設定」→「IP 設定」タブ→「IP アドレス」で,さらに IP アドレスを追加できるので,それらも転送元にすることにより,複数拠点の Samba を同時に使うこともできます.

コピペ終了


ポート転送の設定
SSHのローカルフォワード機能を使い,仮想ネットワークインターフェースのポート 139番を,接続先の SSHサーバから見えるマシンのアドレスとそのポート139番に転送
Cygwin OpenSSHで設定
~/.ssh/configに以下のように記述

Host 「ホスト名」
HostName 「SSHサーバアドレス」
User 「ユーザ名」
Port 22
LocalForward 169.254.0.1:139 「Sambaサーバアドレス」:139

「Sambaサーバアドレス」はホスト名だとうまくいかなかったので,プライベートアドレスを記述
Portfowarderを使う場合はconfig.txtに上を記述すればいい


接続
Cygwinを起動し,以下のコマンドを打ち込む

$ ssh 「ホスト名」

エクスプローラを開き,アドレスバーに「\\169.254.0.1」と入力
%windir%\system32\drivers\etc\hostsに,以下を追加してれば「\\「ホスト名」」と入力でもおk(再起動後)

169.254.0.1      「ホスト名」

必要があれば,ユーザ名とパスワードを入力してSambaフォルダにアクセスできる
ネットワークドライブの割り当ても出来る

リンクローカルアドレス
WindowsなどではIPアドレスが設定されておらず、DHCPサーバも見つからない場合には自動的に169.254で始まるクラスBのIPアドレスが振られる(APIPAという機能)。これはリンクローカルアドレスと呼ばれ単一のLAN内での通信に使うことができるが、ルーティングができないなどプライベートアドレスとは異なるものである。

IPアドレス - Wikipedia