tags: apparmor,安全
{% youtube %}
https://www.youtube.com/watch?v=KYM-Dzivnjs
{% endyoutube %}
AppArmor 是类似于 Linux 的安全系统的强制访问控制 (MAC)。AppArmor 将单个程序限制在一组文件、功能、网络访问和限制中,统称为程序的 AppArmor 策略,或简称为配置文件。无需重新启动即可将新的或修改的策略应用于正在运行的系统。AppArmor 旨在通过以管理员友好的语言呈现其配置文件,使其易于理解和用于大多数常见需求。
AppArmor 的限制是有选择性的,因此系统上的某些程序可能会受到限制,而其他程序则不会。选择性限制允许管理员灵活地关闭有问题的配置文件以进行故障排除,同时限制系统的其他部分。
不受限制的程序在标准 Linux 自由访问控制 (DAC) 安全性下运行。AppArmor 增强了传统 DAC,因为首先在传统 DAC 下评估受限程序,如果 DAC 允许该行为,则咨询 AppArmor 策略。
AppArmor 支持按配置文件学习(投诉)模式,以帮助用户编写和维护策略。学习模式允许通过正常运行程序并学习其行为来创建配置文件。在 AppArmor 充分了解行为之后,配置文件可能会转为强制模式。虽然生成的配置文件可能比为特定环境和应用程序量身定制的手工配置文件更宽松,但学习模式可以大大减少使用 AppArmor 所需的工作量和知识,并增加重要的安全层。
AppArmor 有两个主要版本,即 2.x
系列(当前)和 3.x
系列(开发)。2.x 系列在其生命周期中看到了渐进式的改进,只是在语义兼容性方面出现了渐进式的中断。3.x 系列是 AppArmor 的重大扩展。两个主要系列都使用相同的基本策略语言,只有细微的语义差异。3.x 系列允许更多扩展的策略和细粒度的控制。
这些发行版的任何衍生产品也应该有 AppArmor 可用。更新的 RPMS可以在openSUSE 构建服务中找到。这些不限于 SUSE 发行版。
AppArmor 项目源代码分为内核模块(在 Linux 内核和 git 开发树中可用)和启动板中可用的用户空间工具。
AppArmor 在 2.6.36
的上游内核中。内核模块 git 树中提供了早期版本:
AppArmor v2.4
兼容性补丁在稳定的内核分支中可用。例如 v3.4-aa2.8
或 kernel-patches
目录中的发行版 tarball。
开发 AppArmor 配置文件位于 Bazaar
存储库中。安装发行版的 Bazaar 软件包后,可以使用以下命令下载它们:
git clone git://git.launchpad.net/apparmor-profiles
找到与您的发行版和版本匹配的子目录,并在里面查找当前正在开发的各种配置文件。您可以通过将配置文件复制到 /etc/apparmor.d
并重新启动 AppArmor 来使用配置文件:
$ /etc/init.d/apparmor restart
restart apparmor # if upstart is being used, with initscripts that have been fully updated to support upstart
如何创建或修改 AppArmor 配置文件
AppArmor 手册
Ubuntu Profile enforcement:
Ubuntu Monitoring tools:
Ubuntu Profile development:
参考: