サンドボックス環境としてのLXCコンテナ

サンドボックス環境としてのLXCコンテナ

私は現在、安全なサンドボックス環境で信頼できないプログラム(学生の仕事)を評価するプロジェクトを始めています。主なアイデアは、GlassFish用のWebアプリケーションとlxc-utilsの周りにJavaラッパーを作成してLXCコンテナを管理することです。これには待機中のプログラムのキューがあり、Javaラッパーは固定数(プール)のLXCコンテナを保持して、各プログラムに1つの(使用されていない)コンテナを割り当てます。

ホストシステムを保護するには、SELinuxを使用して各コンテナを保護する必要があります。

私の質問は:サンドボックス環境のためのメカニズムを作成するのが良い考えですか、それともこの問題に対するより良い解決策がありますか?学生の創造性に影響を与えずに、軽くて安全でなければなりません。

ベストアンサー1

最も安全な仮想化ソリューションではないため、LXCを選択した理由を明らかにしていません。私はKVM / XENとLXCを大量に使用していますが、1つのことができるのは、セキュリティに関してはLinuxコンテナ(LXC / OpenVZ / VServerに関係なく)を絶対に使用しないことです。 KVM / XENを使用する方が簡単で信頼性が高くなります。

パフォーマンスやハードウェア要件に関するものであれば、そうです。 LXCを試してみることはできますが、いくつかの規則に従う必要があります。

  • libvirtは、SELinuxを使用するときにコンテナが厳密に制限されることを保証します(LXC_driverのおかげで)。これがRHEL / Centos / Fedoraのケースであるかどうかはわかりません(私はUbuntu / Debianをあまり使用しません)。https://www.redhat.com/archives/libvir-list/2012-January/msg01006.html- したがって、SELinuxを使用するのは良い考えです。 (私の考えにはこの場合「必須」と思います)
  • ゲストがホストを停止したり、他のコンテナに影響を与えたりしないように、厳密なcgroupルールを設定してください。
  • 私はLVMベースのコンテナを使いたいです。常に「セキュリティ」の追加階層です。
  • ネットワークソリューションとアーキテクチャを考えてみましょう。これらのコンテナは互いに通信する必要がありますか?

読書から始めましょうこれ- 古代ですが、まだ - そこには多くの知識があります。そして - 会うユーザーネームスペース

結局、もう一度考えてみてください。 LXCを安全にプレイできる時間は本当にそんなに多いですか? KVMははるかに簡単です...

おすすめ記事