web-dev-qa-db-ja.com

AppArmor:異常な拒否された「name = <string>」メッセージ

Syncthingを制限するためのカスタムAppArmorプロファイルがあります。 (これは特定のUbuntuの質問ではないかもしれませんが、Ubuntuのみを使用しているため、これが他のLinuxディストリビューションに影響するかどうかはわかりません)

これはプロファイルです:

#include <tunables/global>

/usr/bin/syncthing {
  #include <abstractions/base>

  # Obviously needs Internet access to work.
  network raw,
  network inet,
  network inet6,

 # Access to execute binary
  /usr/bin/syncthing cx,

  # Wants read access to SOMAXCONN
  /proc/sys/net/core/somaxconn r,

  # Needs to be able to read these to work properly
  /run/resolvconf/resolv.conf r,
  /etc/hosts r,
  /etc/Host.conf r,
  /etc/nsswitch.conf r,
  /etc/ssl/certs/** r,
  /etc/mime.types r,
  /etc/gai.conf r,

  # Allow access to synced folders.
  owner @{HOME}/Documents/ rw,
  owner @{HOME}/Documents/** rwk,
  owner @{HOME}/Pictures/ rw,
  owner @{HOME}/Pictures/** rwk,
  owner @{HOME}/Public/ rw,
  owner @{HOME}/Public/** rwk,
  owner @{HOME}/Music/ rw,
  owner @{HOME}/Music/** rwk,
  owner @{HOME}/Downloads/ rw,
  owner @{HOME}/Downloads/** rwk,
  owner @{HOME}/.keys/ rw,
  owner @{HOME}/.keys/** rwk,

  # Allow access to config files
  owner @{HOME}/.config/syncthing/ rw,
  owner @{HOME}/.config/syncthing/** rwk,

  # Silence warnings on things we don't want access to
  deny / r,
  deny /* r,
  deny @{HOME} r,

}

そして、これは私が最近受け取ったsyslogメッセージです:

Apr 16 11:07:05 supercomputer kernel: [ 1240.879568] audit: type=1400 audit(1460768825.434:31): apparmor="DENIED" operation="open" profile="/usr/bin/syncthing" name=2F686F6D652F7365616E2F566964656F732F43616D65726120566964656F732F pid=2277 comm="syncthing" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000
Apr 16 11:16:28 supercomputer kernel: [ 1803.632950] audit: type=1400 audit(1460769388.508:32): apparmor="DENIED" operation="open" profile="/usr/bin/syncthing" name=2F686F6D652F7365616E2F566964656F732F43616D65726120566964656F732F pid=2266 comm="syncthing" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000
Apr 16 11:26:13 supercomputer kernel: [ 2388.037482] audit: type=1400 audit(1460769973.246:33): apparmor="DENIED" operation="open" profile="/usr/bin/syncthing" name=2F686F6D652F7365616E2F566964656F732F43616D65726120566964656F732F pid=1021 comm="syncthing" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000
Apr 16 11:36:56 supercomputer kernel: [ 3031.177125] audit: type=1400 audit(1460770616.751:34): apparmor="DENIED" operation="open" profile="/usr/bin/syncthing" name=2F686F6D652F7365616E2F566964656F732F43616D65726120566964656F732F pid=2273 comm="syncthing" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000

自分でプロファイルを作成してから、AppArmorとそれが生成するログに比較的慣れてきましたが、これは見たことがありませんname=2F686F6D652F7365616E2F566964656F732F43616D65726120566964656F732F前のメッセージ。 AppArmorが通常報告するファイルパスではないようです。

このエラーメッセージはどういう意味ですか?プロファイルで許可または拒否するにはどうすればよいですか?

1
seanlano

「name =」に続く16進文字列は、探しているファイルのパスの16進エンコードされた文字列です。 16進文字列を[hexadecimal]ボックス(または同等の多くのサイト)の http://www.asciitohex.com/ にコピーし、[変換]をクリックして元の文字列を元に戻す場合。重要な場合に備えて、プライバシーを保護するために正確な文字列をここに投稿することはしません。

サードパーティのWebサイトを使用したくない場合は、python Shellを実行して、次の手順を実行できます。

x="2F.... (your string here)"
''.join(chr(int(x[i:i+2], 16)) for i in range(0, len(x), 2))

私もDebianでこれに遭遇しました。なぜこれが起こるのか分かりません。

2
bchurchill