我决定尝试一下 AppArmor,虽然它在限制文件访问、信号处理等方面效果很好,但它完全忽略了任何网络规则。它不会抱怨任何事情,但它也不会限制网络访问。
根据Arch 论坛,网络规则曾经在旧内核中工作,但后来由于某种原因被禁用。他们建议使用一些补丁编译内核以重新启用该功能。
有人能告诉我 AppArmor 网络规则被禁用的原因吗?由于编译自定义内核总是有点不方便(但并非不可能,特别是在 NixOS 上),有没有计划重新启用它?如果我等几个月,这些规则是否有机会得到上游内核的支持?谢谢!
答案1
截至今日,该文档包含未发布功能的部分。因此,有些网络策略有效(通常是简单的策略,如“允许所有 TCP”),有些则无效。
答案2
我的理解是这样的:由于 apparmor 采用白名单方法,因此内核模块中添加的新中介功能意味着更多内容被阻止。因此,这可能会导致升级内核时出现意外问题。因此,Apparmor 会忽略内核 v4.17 之后引入的所有规则,除非策略文件声明了更新的版本。
使用 arch linux,您应该拥有 apparmor 3,因此使用如下策略文件:
abi <abi/3.0>,
policy /some/binary {
}
该任务不应具有网络访问权限。还有更多详细信息这里