モチベーション:
PuTTY、Bitvise SSHクライアントなどを使用して、SSHトンネルを介してリモートネットワークにSMB接続をプロキシしようとしています。
これは、HTTP(S)などの他のサービスでうまく機能します。
現在のインターフェイスでSMBがWi-Fiであろうとケーブル接続されたデバイスであろうと、無効にならないようにするために、ループバックアダプターをセットアップし、トンネルのリスナーをそれにバインドすることにしました。
Loopback adapter
`-- SSH Tunnel listening on port 445
`-- SSH to remote Host
`-- Proxy to FreeNAS file server, port 445
次に、Explorer.exeを開き、ループバックアダプタのIPアドレスまたは同等のローカルlmhostsエントリにアクセスすると、トンネルを介してリモートFreeNASファイルサーバーとの間でトラフィックをプロキシする必要があります。
\\192.168.0.2 or
\\freenas
問題:
Lanmanserverはデフォルトですべてのインターフェイスをリッスンするため、リバースSSHトンネルによるローカルポートバインディングの試行は失敗します。
以下のコマンドを実行すると、実際にすべてのインターフェイス(0.0.0.0)でリッスンしていることがわかります。
netstat -ano | findstr 445
解決策の試み:
何時間も検索した後、私はこの投稿を発見しました:
ループバックインターフェイスのGUIDを見つけるために、非常に便利なShareFixスクリプトを使用しました。
https://github.com/filippobottega/ShareFix
次に、対応するGUIDに一致するすべてのエントリをbindキーから削除しました。
完了したら、再起動しました。
残念ながら、lanmanserverはまだすべてのインターフェイスでリッスンしていました。
質問:
Lanmanserverがその特定のインターフェースにバインドするのを防ぐために他に何をすべきですか?
重要なものを省略しましたか?
Microsoftのサイトで次のことを発見しました。
https://support.Microsoft.com/en-gb/help/204279/direct-hosting-of-smb-over-tcp-ip
NetbiosSmbはグローバルデバイスであり、アダプターごとにバインドされていません。つまり、Microsoftネットワークのファイルとプリンターの共有を完全に無効にしないと、Windowsで直接ホストされたSMBを無効にすることはできません。
解決策:(執筆時点)
Lanmanserverを無効にします。
https://winaero.com/blog/disable-service-windows-10/
特に、Windowsクライアントが中央サーバー上のSMB共有にアクセスするだけでよい場合は、これはおそらくそれほど厄介なことではありません。
Windowsとその設計上の選択について深い知識を持っている人が、なぜそれがすべてなのか、何もないのかを説明できると便利かもしれません。
Lanmanserverを無効にすると「望ましくない結果」が生じる可能性があるという誤った記述を読んだことがあります。共有してください。