インターネット経由でファイルシステムをマウントする


11

ある顧客のために、仮想サーバー上で実行するWebアプリケーションを構築しました。これには、ファイルをアップロードするための機能が含まれていますが、オフィスのサーバーにそれらのファイルを保存したいと考えています。

これを行う最も簡単な方法は、インターネット経由でファイルシステムを仮想サーバーに直接マウントすることです。私は内部ネットワークを介してNFSをマウントした経験がありますが、このシナリオで機能するかどうかはわかりません。

何かご意見は?私はいつでも新しいソフトウェアを作成してファイルを転送できますが、これは簡単な修正です。

注:オフィスのサーバーは、Windows Hyper-V環境の仮想サーバーで実行されているUbuntu 12サーバーです。WebアプリのVPSはUbuntu 11.04です。


これらのファイルのセキュリティは問題ですか?
エイドリアンコーニッシュ

cronジョブによるrsync。
Ignacio Vazquez-Abrams

@AdrianCornish-実際はそうではありませんが、安全なソリューションが望まれます。

回答:


12

まだ誰もsshfsについて言及していません。最新のLinuxディストリビューションを使用していて、リモートホストにSSHでアクセスできる場合は、次のように簡単です。

sshfs user@hostname:/remote/directory /local/directory

パフォーマンスは許容範囲です(ただし、ディレクトリ全体が必要な場合は、rsyncのようなストリーミング同期ほど高速ではありません)。


これは、これまでのところ最良の解決策のようです。FAQには、「リソースは低速で信頼性の低い(離れた)接続を介してマウントできる」とさえ書かれています。別のWebページで、「sshfs -o reconnect server:/ path / to / mount」を使用すると、接続が切断された場合に自動的に再接続されることがわかります。

3

NFSは本質的に安全ではありません。インターネット経由で接続することは非常に悪い選択です。

私はrsyncについて言及している投稿が好きです。転送を開始するためにcronを使用する代わりに、ファイルのアップロードを処理するコードからrsyncジョブを単に実行できることを願っています。

アップロードが完了すると、ファイルがサーバーにrsyncされます。

転送するには、サーバーへの安全な接続を設定する必要があると思います。

必要に応じて、着信ファイルを転送用のリストに入れ、コピーが成功した後に名前を削除し、接続に何かが発生した場合に備えて、いくつかのフェイルオーバー機能を提供できます。

他の誰かがすでに指摘したように、rsyncはファイルのグループまたは階層(ありがとう、スペルチェック)を処理するように設計されているため、これを達成することはそれほど難しくありません。


1
rsyncは、トランスポートとしてSSHを使用しても問題ありません。
Ignacio Vazquez-Abrams

Webアプリは既にローカルサーバーにファイルを保存し、そこで参照します。ローカルサーバーにはスペースがないため、転送後に削除する必要があります。つまり、新しいコードを作成する必要があるため、可能であれば、最初にマウントされたソリューションを探しています。

1

NFSは本質的に安全ではないかもしれませんが、それはサービスの障害ではありません。TelnetとFTPも本質的に安全ではありませんが、オープンインターネットでは何十年も使用されています。暗号化されたVPNトンネルが確立されている場合、NFS暗号化の欠如は関係ありません。

また、ファイアウォールが特定のリモートホストアドレスにのみNFSマウントポイントへの接続を許可するように構成されている場合、インターネットトラフィックを傍受し、強力な復号化にアクセスできる3文字のエージェンシーを除いて、ベアNFS接続はほとんどハッキングから安全です。とにかく暗号化されたリモート接続をクラックします。

NFSのバージョンによっては、デフォルトでUDPを使用していることがわかります。これは、インターネットの信頼性の問題が原因である可能性があります。接続が混雑している場合、UDPパケットが失われる可能性があり、再送信は自動的には試行されません。信頼性の高い接続が必要な場合は、NFSがインターネット経由でTCPパケットを使用している(または使用のみが強制されている)ことを確認してください。


1
> TelnetとFTPも本質的に安全ではありませんが、両方とも何十年もの間オープンインターネットで使用されてきましたが、これは良い点ではないと思います。今。Mozillaは暗号化されていないhttpの廃止を提案しています
イアンD.スコット

0

NFSはファイアウォールを介して実行できます。検索すると、このプロセスを試行して成功した他の人が見つかりますが、ポートを開くほど簡単ではなく、実行されているNFSのバージョンに依存しているようです。

rsyncは優れた提案であり、多くの柔軟性があります。ただし、これはアプリの外部で実行されるプロセスです。rsyncは、ローカルファイルの更新の同期を処理し、ディレクトリ全体を他のフォルダと同期して維持できます。

sshは別の安全なオプションであり、単一のポートを開くだけで済みます。私は過去にWindowsとLinuxシステム間でこれを使用し、アプリ内からもプロセスのスケジュールからもうまく機能しました。

あなたが探しているものを達成する他の方法があると私は確信していますが、これらのファイルの種類、およびそれらをページにリンクするか、より複雑なものでストリーミングするかどうかについて、さらに情報が必要です。


私は代替案を理解しています。ファイルシステムをマウントするのが最も簡単な解決策です。内部ネットワーク上ではなくインターネット上でNFSがどの程度安定しているかがわかりません。接続が切断された場合、またはこれに対して堅牢になるように設計された新しい代替手段がある場合はどうなりますか。

0

NFSマウントは、automountを使用して行うことができます。これは、失敗時にマウントを試行し続けますが、パイプ経由で使用することを検討する唯一の方法は、vpnまたはその他の安全な接続を使用することです(実際には、検討しませんが、あなたはアイデアに固定されているように聞こえます)。

自動マウントを使用していても、ネットワークに問題があり、NFSマウントにそれらのアップロードを配置している場合、ファイルをローカルに保存してからアップロード成功時にコピーしない限り、アップロードが失敗または破損する可能性があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.