Linux Samba と ポートフォワーディング設定

未分類

クラウドにSambaを建てて、Windows マシンから共有フォルダを使いたいなんてことがあるかもしれない。

でも、445ポートを開くことなんてもってのほか。

そんなときのために、ポートフォワーディングという機能がる。

クラウド上のホストに、example.comがあるとする。ここに、Sambaで共有フォルダを作って起動させておく。

ここまでが前提条件。

sshが通ることを確認して、ネットワークの設定をする。

ローカルWindows [192.168.0.1/24] ————————————————- GW —– Server [example.com]
|
[192.168.100.1/24(445)]} —-> [192.168.100.1/24(44445)] —– GW —– [example.com(22)] —–> [example.com(445)]

仕組みは、sshでクラウド上のサーバに接続。同時にポートフォワーディングをしておいて、サーバの22番から445番に転送するようにセットする。(Windowsでの操作:SSHの機能である構文で記載するとポートを転送してくれるらしい)

それだけではローカルホスト(Windows)側の445ポートを拡張することができないので、ローカルホスト(Windows)側にもう一個アドレスを振ってあげる。

つまり、一台のローカルホスト(Windows)マシンに二つの192.168.0.1/24 と 192.168.100.1/24 というアドレスが存在することになる。

192.168.0.1/24(445)は内向けのネットワークのファイル共有に使用。

192.168.100.1/24(445)は、クラウドサーバとのファイル共有に使用する

Windows マシンの中で 445番を 44445番に転送してあげる理由は、ソケットのバインドが拒否されるから。

つまり、Windowsマシンの445番は既に内部のファイル共有用にバインドされており、リモートサーバの22番と接続することはできない。

そこで、一旦、マシンの内部で44445番とリモートマシンの22番を接続し、そのポートに送ってあげることによって、ポートの競合を回避しようとする作戦である。

つまり、445番から発せられた通信は、ローカルのもう一つのアドレス192.168.100.1の44445番を経由し、リモートホストの22番に接続して、445番につながるという仕組みである。

Microsoft KM-TEST Loopback Adapter

netsh interface portproxy add v4tov4 listenaddress=192.168.100.1 listenport=445 connectaddress=192.168.100.1 connectport=44445

192.168.100.1 は仮想的なマシンの場所(ループバック)を表すので、必ず作らないといけない。