私は、苦情モードのプロファイルについて、AppArmor によって報告された 1 行を簡単に反転する方法を探しています/var/log/syslog
。これを使用すると、syslog に報告されたものを使用してルールを生成するのに役立つことがわかりましたaa-genprof
。ほとんどの場合、必要なものを許可するルールを手動で記述できましたが、現在は syslog の次の 2 行で行き詰まっています。
[88529.103991] 監査: type=1400 監査(1414408592.500:5298): apparmor="ALLOWED" operation="mount" info="failed type match" error=-13 profile="docker-das" name="/var/lib/docker/btrfs/" pid=9289 comm="docker" srcname="/var/lib/docker/btrfs/" flags="rw, bind"
[88529.104010] 監査: type=1400 監査(1414408592.500:5299): apparmor="ALLOWED" operation="mount" info="failed type match" error=-13 profile="docker-das" name="/var/lib/docker/btrfs/" pid=9289 comm="docker" flags="rw, private"
私は自分のプロフィールに次の行(および試行錯誤しながらいくつかのバリエーション)を追加しようとしましたdocker-das
が、効果はありませんでした。
mount fstype=btrfs -> /var/lib/docker/btrfs/
これが機能しない唯一の理由は、 がと等しいのに対し、 がcomm
と等しいことです(ネイティブのマウント コマンドを使用する場合は と等しくなります)。docker
mount
残念ながら、私は何の役にも立てそうにありませんaa-genprof
(プロファイルの名前が標準ではないためだと思います)。また、AppArmor のドキュメント (Wiki で適切なページを見つけたので今は役立っていますが) も混乱しています。
必要な行を簡単に生成する方法があれば、それは非常に役立つ知識です。そうでなければ、ルールのどこが間違っているのか、またはログに表示されるマウントを許可するために必要なルールを理解できる人はいますか。私が望んでいるのは、ログ行に最も一致するものを用意して、どの部分が不要かを判断できるようにすることです。
答え1
完全な解決策ではありませんが (任意のログ行から一致するルールを生成できるという問題は解決しません)、次の解決策は、特定の問題に対して私が思いついた最善の解決策であり、十分に安全であるはずです。
deny mount /dev/**,
mount -> /var/lib/docker/btrfs/
しかし、ログ エントリに可能な限り一致するものを取得して、それを使用したり、必要に応じて弱くしたりできれば便利です。