私は自宅にDIY NAS(Debian)を持っていて、時々リモートデバイスから使用しています。NASにはSMBファイルサーバーがあり、現在はSSH(秘密鍵暗号化)とSSHポートトンネリングを使用してリモートからアクセスしています。
ssh [email protected] -L 448:localhost:445
次に、smb://localhost:448
リモート クライアントに接続します。
Android TV をリモートで使用している場合、アクセスする前に Termux を使用して SSH セットアップ全体を実行する必要があるため、これはあまりうまく機能しません。
私の理解では、SMB サーバーのポートをパブリック インターネットに直接公開するのは安全ではないのですが、すべての主要プラットフォームでクライアントがサポートされ、インターネット経由で公開しても十分安全なネットワーク ファイル共有プロトコルはありますか?
答え1
ネットワーク ファイル システムを決して公開しないでください。代わりに、VPN (または SSH トンネリング) を使用して、VPN 経由でネットワーク ファイル システムを公開します。
また、長距離のネットワーク ファイル システムは非常に遅くなり、快適な体験にならないことにも留意してください。
VPN または SSH トンネリングの設定が面倒な場合は、自動化します。
答え2
私の理解では、SMB サーバーのポートをパブリック インターネットに直接公開するのは安全ではないのですが、すべての主要プラットフォームでクライアントがサポートされ、インターネット経由で公開しても十分安全なネットワーク ファイル共有プロトコルはありますか?
SSH には SFTP が組み込まれています。多くの Android ファイル マネージャー アプリがこれをサポートしており、 を通じてマウント可能なファイル システムのように扱うことができますsshfs
。
WebDAV はオプションの 1 つですが、サポートされることは比較的まれです (最も一般的な WebDAV の使用法であるため、「Nextcloud」というラベルが付けられる場合もあります)。
(SMBは大抵安全ではないと考えられていますが、大きいその一部は、Windows カーネル内 SMB サーバー内のバグが原因でした。代替の SMB サーバー実装 (例: Samba) は、同じ種類のバグの影響を受けない異なるコード ベースを使用していることと、Linux 上のユーザー空間 smbd プロセスは Windows 上のカーネル ドライバーよりも制限がはるかに簡単であることから、リスクははるかに低くなります。
SambaベースのSMBファイルサーバーを運用している場合は、半分は問題ありません。それでもお勧めします。少なくともただし、IP ベースのファイアウォール許可リストは最上位にありますが、少なくとも Windows 向けのエクスプロイトはこれでは機能しません。
残念ながら、多くの Android アプリは、トランスポート暗号化などの新しい SMBv3 機能をサポートしていません。運が良ければ、SMBv2 をサポートするために最低限の機能しか提供されませんが、そうでない場合は SMBv1 が必要になります。どちらの場合も、基本的にはクリアテキスト プロトコルしか使用できません。また、WAN 経由で SMBv1 を使用することは、たとえ安全であったとしても、良い体験とは言えません。
上記のすべてに対する簡単な解決策は、ネットワーク ファイル システム プロトコルの公開をやめて、代わりに VPN プロトコルを公開することです。VPN サーバーはリモート アクセスを念頭に置いて設計されており (SSH と同様)、一般に公開するリスクがはるかに少ないためです。その後、VPN に接続したら、SMB または NFS など、好きなものを使用します。