lxc-execute は Apparmor プロファイルに入りませんが、生成されるコンテナは制限されます。 6.9.1. コンテナポリシーのカスタマイズ
あなたがそれを見つけたら lxc-スタート 正当なアクセスが Apparmor ポリシーによって拒否されているために失敗している場合は、次のようにして 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-スタート 制限なしで実行されますが、コンテナ自体は引き続き制限されます。 コンテナの制限も無効にしたい場合は、コンテナの制限を無効にすることに加えて、 usr.bin.lxc-start プロファイルには、以下を追加する必要があります。
lxc.aa_profile = 制限なし
コンテナの構成ファイルに追加します。
LXC には、コンテナー用の代替ポリシーがいくつか付属しています。 コンテナ内でコンテナを実行する (ネストする) 場合は、コンテナ設定ファイルに次の行を追加することで lxc-container-default-with-nesting プロファイルを使用できます。
lxc.aa_profile = lxc-container-default-with-nesting
コンテナ内で libvirt を使用したい場合は、そのポリシー (で定義されている) を編集する必要があります。 /etc/apparmor.d/lxc/lxc-default-with-nesting) 次の行のコメントを解除します。
マウント fstype=cgroup -> /sys/fs/cgroup/**,
そしてポリシーを再読み込みします。
特権コンテナを使用したネスト ポリシーは、コンテナの再マウントを許可するため、デフォルト ポリシーよりもはるかに安全性が低いことに注意してください。 / sys / proc 標準以外の場所では、Apparmor 保護をバイパスします。
非特権コンテナには、コンテナのルートがルート所有のコンテナに書き込むことができないため、この欠点はありません。 PROC
SYS ファイル。
lxc に同梱されている別のプロファイルを使用すると、コンテナが ext4 などのブロック ファイルシステム タイプをマウントできるようになります。 これは maas プロビジョニングなどの場合には便利ですが、カーネル内のスーパーブロック ハンドラーは信頼できない入力の安全な処理について監査されていないため、一般的に安全ではないと考えられています。
カスタム プロファイルでコンテナを実行する必要がある場合は、次の場所に新しいプロファイルを作成できます。 /etc/apparmor.d/lxc/。 その名前は次で始まる必要があります lxc- のために lxc-スタート そのプロファイルへの移行を許可されます。 の lxc-デフォルト プロファイルには再利用可能な抽象化ファイルが含まれています /etc/apparmor.d/abstractions/lxc/container-base。 したがって、新しいプロファイルを開始する簡単な方法は、同じことを行ってから、ポリシーの最後に追加のアクセス許可を追加することです。
ポリシーを作成したら、次を使用してポリシーをロードします。
sudo apparmor_parser -r /etc/apparmor.d/lxc-containers
プロファイルはファイルによって取得されるため、再起動後に自動的にロードされます。 /etc/apparmor.d/lxc-containers。 最後にコンテナを作ります CN この新しいものを使ってください lxc-CN-プロファイルの場合は、その構成ファイルに次の行を追加します。
lxc.aa_profile = lxc-CN-プロファイル