CIFSファイル共有をSSHトンネル経由で行う方法

チェックポイントは以下の通り

① Port 445 でデータはやり取りできる
② サーバ検索はできない(IPアドレスの直接指示のみ可)
③ ループバックNICを接続先毎に設定する必要あり
④ ループバックNICのポート445に直接ディスパッチしても通信できないので
   Lanmanを使用する

① ループバック用NICの準備

  デバイスマネージャーから 操作/レガシーハードウェアの追加
一覧から選択したハードウェアをインストールする
  ネットワークアダプタから
  Microsoft Microsoft KM-TEST Loopback Adapter をインストールする

② ループバック用NICの設定

  インターネット プロトコル バージョン4(TCP/IPv4) 以外の
  チェックをはずす

  IP アドレスは固定 (例169.254.100.100)GW DNS は不要
  自動メトリックのチェックは外し 9999 を入れておく
  WINS NetBIOS over TCP/IP を無効にする にチェック

③ Putty の準備

  Tunnels設定で以下を設定
  Sourceポート (169.254.100.100:44445) のように設定
  Destination (127.0.0.1:445 cifsサーバーに直接sshの場合)

④ Lanmanserverでポートディスパッチ

sc config lanmanserver start= delayed-auto
netsh interface portproxy add v4tov4 listenaddress=169.254.100.100 listenport=445 connectaddress=169.254.100.100 connectport=44445

複数設定の場合のヒント

sc config lanmanserver start= delayed-auto
netsh interface portproxy add v4tov4 listenaddress=169.254.100.101 listenport=445 connectaddress=169.254.100.101 connectport=44446

このあと再起動必須

⑤ 再起動後の確認

netsh interface portproxy show v4tov4
netstat -an | find ":445"

再起動後以下のように表示されていればOK
 ※ここに出ないときは、NICのIPアドレスが間違っている

ipv4 をリッスンする: ipv4 に接続する:

Address Port Address Port
————— ———- ————— ———-
169.254.100.100 445 169.254.100.100 44445

TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 169.254.100.100:445 0.0.0.0:0 LISTENING
TCP 172.21.160.12:49676 172.21.160.215:445 ESTABLISHED
TCP [::]:445 [::]:0 LISTENING

※ NICのプロファイルをプライベートに強制的に変更する方法
  (Power-Shell必須)

Get-NetConnectionProfile

Set-NetConnectionProfile -Name “NICの名前” -NetworkCategory Private
または
Set-NetConnectionProfile -InterfaceAlias “NICにつけた名前” -NetworkCategory Private

Putty ポート設定のヒント

※ SourcePort 欄に、IP Address : Port の形式で入力すること