lxcコンテナーのセキュリティ境界線はどこにありますか?


8

私の質問はLXCコンテナのセキュリティについてです。

私のボックスで複数のコンテナーを実行していて、ユーザーが所有しているコンテナーへの個別のSSHアクセスを許可している場合、それらのコンテナーのいずれかがそのボックスの他のコンテナーやホストマシンにさえハッキングできますか?

lxcコンテナーのセキュリティ境界線はどこにありますか?


あなたはそれについて心配する必要があることを知っています、AppArmorがそれを処理します。
rɑːdʒɑ

回答:


8

LXCについて見てきたように、コンテナ情報と(デフォルトのバッキングストアを使用して)ルートファイルシステムが/ var / lib / lxcの下に保存されます。コンテナー作成テンプレートは、キャッシュされた配布情報を/ var / cache / lxcに格納する傾向もあります。

そのため、一般に、ルートファイルシステムへのアクセスは、作成中に誤用または誤った構成ユーザープロファイルがない限り、管理者にのみ許可されます。

しかし、Ubuntu開発者はすでにこの時点に達している可能性があり、AppArmorの助けを借りて安全なソリューションを提供しています。

LXCには、コンテナー内の特権の偶発的な誤用からホストを保護することを目的としたApparmorプロファイルが付属しています。たとえば、コンテナは/proc/sysrq-triggerほとんどの/sysファイルに書き込むことも、書き込むこともできません。

usr.bin.lxc-startプロファイルは、lxc-startを実行して入力します。このプロファイルは、主にlxc-startがコンテナーのルートファイルシステムの外部に新しいファイルシステムをマウントするのを防ぎます。コンテナーのinitを実行する前に、LXCはコンテナーのプロファイルへの切り替えを要求します。デフォルトでは、このプロファイルはで定義されているlxc-container-defaultポリシーです/etc/apparmor.d/lxc/lxc-default。このプロファイルは、コンテナーが多くの危険なパスにアクセスしたり、ほとんどのファイルシステムをマウントしたりするのを防ぎます。

Apparmorポリシーによって拒否されている正当なアクセスが原因でlxc-startが失敗していることがわかった場合は、次のようにしてlxc-startプロファイルを無効にできます。

sudo apparmor_parser -R /etc/apparmor.d/usr.bin.lxc-start
sudo ln -s /etc/apparmor.d/usr.bin.lxc-start /etc/apparmor.d/disabled/

これにより、lxc-startは制限なく実行されますが、コンテナー自体は引き続き制限されます。コンテナーの制限も無効にしたい場合は、usr.bin.lxc-startプロファイルを無効にするだけでなく、以下を追加する必要があります。

lxc.aa_profile = unconfined

コンテナの設定ファイルに。カスタムプロファイルでコンテナを実行する場合は、で新しいプロファイルを作成できます/etc/apparmor.d/lxc/。lxc-startがそのプロファイルに移行できるようにするには、その名前がlxc-で始まる必要があります。ポリシーを作成した後、次を使用してロードします。

sudo apparmor_parser -r /etc/apparmor.d/lxc-containers

プロファイルはファイルから取得されるため、再起動後に自動的に読み込まれます/etc/apparmor.d/lxc-containers。最後に、コンテナCNでこのnewを使用lxc-CN-profileするには、次の行を構成ファイルに追加します。

lxc.aa_profile = lxc-CN-profile

lxc-execute Apparmorプロファイルは入力しませんが、それが生成するコンテナは制限されます。


回答ありがとうございます。では、AppArmorを使用すれば安全だとおっしゃっていますか?
iCode

@iCode、はい。UbuntuアプリケーションとLXCを保護するために設計されたappArmorは、AppArmorを使用する場合、セキュリティの面でも優れたサポートを得ます。
rɑːdʒɑ

AppArmorはすべてではありません。たとえば、dmesg(少なくともデフォルトの構成では)任意のコンテナから呼び出すことができることがわかりました。セキュリティのリスクはそれだけではないようです...
Daniel Alder
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.