Set*_*eth 101
Apparmor 是强制访问控制(或 MAC)系统。它使用 LSM 内核增强功能来限制程序使用某些资源。AppArmor 通过在系统启动时加载到内核中的配置文件来执行此操作。Apparmor 有两种类型的配置文件模式,执行和抱怨。强制模式下的配置文件强制执行该配置文件的规则并报告syslog或 中的违规尝试auditd。投诉模式下的配置文件不强制执行任何配置文件规则,只记录违规尝试。
在 Ubuntu Apparmor 中默认安装。它将应用程序限制为配置文件,以确定程序需要访问哪些文件和权限。一些应用程序将带有自己的属性,更多可以在apparmor-profiles包中找到。
您可以apparmor-profiles通过运行安装sudo apt-get install apparmor-profiles。
我在 Ubuntu 论坛上找到了一个很好的 Apparmor 例子,我为这篇文章重写了这个例子。
Apparmor 是一个安全框架,可以防止应用程序变坏。例如:如果我运行 Firefox 并访问一个试图安装会删除我的
home文件夹的恶意软件的不良站点,Apparmor 对 Firefox 有限制,但会阻止它做我不想做的任何事情(例如访问我的音乐、文档等)。这样,即使您的应用程序受到威胁,也不会造成任何伤害。
该apparmor-utils软件包包含用于配置 Apparmor 的命令行工具。使用它,您可以更改 Apparmor 的执行模式、查找配置文件的状态、创建新的配置文件等。
这些是最常见的命令:
注意:配置文件存储在/etc/apparmor.d/
sudo apparmor_status。您将获得所有已加载的配置文件列表,所有处于强制模式的配置文件,处于投诉模式的所有配置文件,在强制/投诉中定义了哪些流程等。 sudo aa-complain /path/to/bin,/path/to/bin程序bin文件夹在哪里。例如,运行:sudo aa-complain /usr/bin/firefox将使 Firefox 进入抱怨模式。sudo aa-enforce /path/to/bin强制执行程序配置文件。 sudo aa-complain /etc/apparmor.d/*sudo aa-enforce.d/*要将配置文件加载到内核中,您将使用apparmor_parser. 您可以使用该-r参数重新加载配置文件。
cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a,它有效地将 的内容打印profile.name到 Apparmor 的解析器中。-r参数,如下所示:cat /etc/apparmor.d/profile.name | sudo apparmor_parser -r sudo service apparmor reload 要禁用配置文件,您可以像这样将其链接到/etc/apparmor.d/disable/使用ln: sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/然后运行:sudo apparmor_parser -R /etc/apparmor.d/profile.name。
注意:不要apparmor_parser -r与它们apparmor_parser -R 不是同一回事混淆!
/etc/apparmor.d/disable/然后使用-a参数加载它。sudo rm /etc/apparmor.d/disable/profile.name cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a sudo service apparmor stop并删除内核模块sudo update-rc.d -f apparmor defaults sudo service apparmor start并加载内核模块sudo update-rc.d apparmor defaults 配置文件存储在其中/etc/apparmor.d/并以其配置文件的可执行文件的完整路径命名,将“/”替换为“.”。例如/etc/apparmor.d/bin.ping是pingin的配置文件/bin。
配置文件中使用的条目主要有两种类型:
路径条目确定应用程序可以访问哪些文件。
能力条目决定了一个进程可以使用哪些特权。
让我们以ping位于 中的 的配置文件etc/apparmor.d/bin.ping为例。
#include <tunables/global>
/bin/ping flags=(complain) {
#include <abstractions/base>
#include <abstractions/consoles>
#include <abstractions/nameservice>
capability net_raw,
capability setuid,
network inet raw,
/bin/ping mixr,
/etc/modules.conf r,
}
Run Code Online (Sandbox Code Playgroud)
#include <tunables/global>将文件包含global在目录中tunables,这允许将与多个应用程序相关的语句放在一个公共文件中。
/bin/ping flags=(complain)设置分析程序的路径并将模式设置为抱怨。
capability net_raw允许应用程序访问该CAP_NET_RAW Posix.1e功能。
/bin/ping mixr 允许应用程序对文件进行读取和执行访问。
/etc/modules.conf r,在r给出了应用程序读取的权限/etc/modules.conf
注意:创建/编辑配置文件后,您需要重新加载配置文件以使更改生效。
以下是您可以使用的权限列表:
r - 读 w - 写 ux - 无约束执行 Ux - 无约束执行——清理环境 px - 离散配置文件执行 Px - 离散配置文件执行 - 清理环境 ix - 继承执行 m -允许PROT_EXEC用mmap(2)电话 l - 关联AppArmor 是一种强制访问控制 (MAC) 系统,它是一种内核 (LSM) 增强功能,用于将程序限制在一组有限的资源中。AppArmor 的安全模型是将访问控制属性绑定到程序而不是用户。AppArmor 限制是通过加载到内核中的配置文件提供的,通常是在启动时。AppArmor 配置文件可以采用以下两种模式之一:强制执行和投诉。以强制模式加载的配置文件将导致配置文件中定义的策略的强制执行以及报告策略违规尝试(通过 syslog 或 auditd)。投诉模式下的配置文件不会强制执行策略,而是报告策略违规尝试。
AppArmor 不同于 Linux 上的其他一些 MAC 系统,因为它是基于路径的,允许混合执行和投诉模式配置文件,使用包含文件来简化开发,并且比其他流行的 MAC 系统具有低得多的进入门槛。
AppArmor 是一项成熟的技术,首先出现在 Immunix 中,后来集成到 Ubuntu、Novell/SUSE 和 Mandriva 中。从 2.6.36 开始,核心 AppArmor 功能在主线 Linux 内核中;AppArmor、Ubuntu 和其他开发人员正在进行将额外的 AppArmor 功能合并到主线内核中的工作。
我有几个更有用的链接给你:Wiki.Ubuntu.com Ubuntuforums.org
适用于Ubuntu 12.04和Ubuntu 12.10 的Apparmor 指南
希望这会帮助你。
| 归档时间: |
|
| 查看次数: |
44769 次 |
| 最近记录: |