我想查看例如apparmor
的限制dhclient
我试着跑
apparmor_parser -p /sys/kernel/security/apparmor/policy/profiles/usr.sbin.dhclient.6/raw_data
我有 :
AppArmor parser error for /sys/kernel/security/apparmor/policy/profiles/usr.sbin.dhclient.6/raw_data in profile /sys/kernel/security/apparmor/policy/profiles/usr.sbin.dhclient.6/raw_data at line 1: Lexer found unexpected character: '' (0x4) in state: INITIAL
如何查看 Apparmor 对某些进程的限制?通过查看/sys/kernel/security/apparmor/policy/profiles/
目录
中的配置文件
/etc/apprmor.d
是文本形式,旨在由人类编辑并且(通常)依赖于大型包含文件。生成的配置文件缓存在特定于解析器的目录中,并且大多数不可读。
.load
解析器通常使用 apparmorfs 文件系统特殊文件(如或)将二进制配置文件(立即编译或从缓存加载)加载到内核中.replace
。如果内核配置正确,您还可以查看加载到内核中的二进制配置文件,但同样,它们的内容大多无法被人类读取,因为它们完全是二进制的,并且内部使用两种复杂的编码。
security/apparmor/policy_unpack.c
如果您有兴趣,可以通过阅读 Linux 内核 ( )、AppArmor 解析器 ( )的源代码parser/parser_interface.c
并使用您最喜欢的十六进制编辑器查看原始字节来了解更多信息。我已经启动了一个项目,在https://gitlab.com/zygoon/go-apparmor上提供人类可读的二进制配置文件分析,但在目前阶段,只有 Go 开发人员感兴趣。我将发布一个基于该库的工具,该工具可以反编译任何配置文件,只要此类配置文件可以反编译,因为优化将大部分人类可读规则转变为复杂的状态机。
我现在最好的建议是关注 /etc/apparmor.d 中的配置文件文本