laclefblog logo

Fri, 23 Nov 2007

SMB over SSH

ローカルネットワーク内にあるファイルサーバなどを、外のネットワークから参照するための方法。

Microsoft Loopback Adapterのインストール

インストール手順は、[コントロールパネル] - [ハードウェアの追加] - 「はい、ハードウェアを接続しています」「新しいハードウェア デバイスの追加」「一覧から選択したハードウェアをインストールする」 - [ネットワークアダプタ] - [Microsoft - Microsoft Loopback Adapter]。

追加されたローカルネットワーク接続の接続状態が「限定または接続なし」となるので、TCP/IPの手動設定をする。使っているネットワークとは違うネットワークの設定にする必要がある(でないと、このネットワークアダプタまで辿り着けない)ので、169.254.*.*のLINKLOCALアドレス(APIPA(Automatic Private IP Addressing)もしくはAutoIP、RFC3330参照)などのIPアドレスを割り当てる方が良い。

例: IPアドレス: 169.254.254.1, サブネットマスク: 255.255.0.0

加えて、[詳細設定] - [WINS]で「NetBIOS over TCP/IPを無効にする」。NBTが後で使う139番のポートを使用しているため無効にする。

因みに、同じ[詳細設定] - [IP設定]でIPアドレスを追加する事で、複数の自分側宛先を確保出来る。

必要であれば、ローカルネットワーク接続の名前を変えても良い。

Windowsの名前解決は、NetBIOSネームキャッシュ、WINS(Windows Internet Name Service)サーバ、ブロードキャスト、LMHOSTSファイル、HOSTSファイル、DNSサーバの順番。

SSHポートフォワーディング

Samba(NBTを使ったファイル共有)が使っているポート番号は、nmbdが137番(TCP/UDP、名前解決、netbios-ns)と138番(UDP、データグラムサービス、netbios-dgm)などがあるが、データの通信を行うのは、smbdが使う139番(TCP、セッションサービス、netbios-ssn)。

従って、先ほど作ったローカルネットワークの139番を、接続先SSHサーバから参照出来るSambaマシンのアドレス(SSHサーバと同じなら127.0.0.1)と139番にフォワーディングする。

PuTTYの場合、[接続] - [SSH] - [トンネル]でポートフォワーディングの設定。

例: 源ポート: 169.254.254.1:139, 送り先: 192.168.254.5:139, ローカル, 自動

pfwdを使うのであれば、pfwd.iniに

02=169.254.254.1:139:192.168.254.5:139

の様に書いて、pfwd.exeを起動、常駐させる。

ローカルネットワークで設定したアドレス(例: \169.254.254.1)でSambaサーバに接続出来る。

以下のWebページを参考にした。