SSHのポート転送を用いてSambaにアクセスする
参考:http://datafarm.apgrid.org/software/html/ja/user/smboverssh.html
概要
Sambaで使用するポート139番をローカル側で確保して,ポートフォワードする方法
仮想ネットワークインターフェースのインストール
通常利用しているネットワークインターフェースのポート139番(TCP)は使用されているので,転送元となるためのネットワークインターフェースが必要
物理的なインターフェースを増設する必要はないので,以下の方法で仮想的なインターフェースを用意し,139番を確保する
以下,ほぼコピペ
- コントロールパネルを開きます.
- ハードウエアの追加を開きます.
- 「次へ」を押します.
- 「はい、ハードウエアを接続しています」を選択して次へいきます.
- 一番下の「新しいハードウエアの追加」を選択して次へいきます.
- 「一覧から選択したハードウエアをインストールする(詳細)」を選択して次へいきます.
- 「ネットワーク アダプタ」を選択して次へいきます.
- 「Microsoft」と「Microsoft Loopback Adaptor」を選択して次へいきます.
- インストールが完了するまで続行します.
- インストールが終わったら,コントロールパネルからネットワーク接続を開きます.
- デバイス名が
「Microsoft Loopback Adaptor」「ローカル エリア接続 2」であるアイコンを探します. - # このアイコンの名前を「for SMB over SSH」などわかりやすい名前にしておくとよいでしょう.
- プロパティを開き,全般のタブで,「Microsoft ネットワーク用ファイルとプリンタ共有」のチェックを外します.
- 「インターネットプロトコル(TCP/IP)」のチェックは入れたまま,選択し,プロパティを押します.
- 他のマシンと重ならない IP アドレスとサブネットマスクを入力します.プライベートアドレスや LINKLOCALアドレス*1 (169.254.*.*)のアドレス範囲を使うことになると思います.今後は 169.254.0.1/255.255.0.0 と設定した場合の例として説明します. ゲートウェイ,DNS の項目を入力する必要はありません.
- 「詳細設定」を開きます. 「WINS」のタブで「NetBIOS over TCP/IP を無効にする」を選択します.
- それぞれ 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フォルダにアクセスできる
ネットワークドライブの割り当ても出来る
リンクローカルアドレス
IPアドレス - Wikipedia
WindowsなどではIPアドレスが設定されておらず、DHCPサーバも見つからない場合には自動的に169.254で始まるクラスBのIPアドレスが振られる(APIPAという機能)。これはリンクローカルアドレスと呼ばれ単一のLAN内での通信に使うことができるが、ルーティングができないなどプライベートアドレスとは異なるものである。