3.4. 使用命令行界面构建 Novell AppArmor 配置文件

Novell AppArmor 使您能够使用命令行界面而非 GUI 来管理和配置系统安全。

3.4.1. 检查 AppArmor 模块状态

AppArmor 模块可以处于以下三种状态中的任一种:

已卸载

AppArmor 模块没有装入内核。

正在运行

AppArmor 模块已装载到内核并且正在强制 Novell AppArmor 程序策略。

已停止

AppArmor 模块已装载到内核,但未强制任何策略。

通过检查 /sys/kernel/security/apparmor/profiles,您可以检测 AppArmor 模块处于三种状态中的哪种。如果 cat/sys/kernel/security/apparmor/profiles 报告了一列配置文件,则 Novell AppArmor 正在运行。如果返回为空,则表示已停止 AppArmor。如果文件不存在,则表示已卸载 AppArmor。

使用 modprobeinsmodlsmodrmmod 等标准 Linux 模块命令可装载或卸载 AppArmor 模块,但不推荐使用此方法。作为替代方法,我们建议您通过 rcapparmor 脚本管理 Novell AppArmor,它可以执行以下操作:

rcapparmor start

根据 AppArmor 模块状态具有不同的行为。如果已卸载,则 start 会装载并启动此模块,使其进入运行状态。如果已停止,则 start 会让模块重新扫描通常在 /etc/apparmor.d 下的 Novell AppArmor 配置文件,然后使其进入运行状态。如果模块已在运行,则 start 会发出一条警告,不执行操作。

rcapparmor stop

通过删除内核内存中的所有配置文件来停止 AppArmor 模块(在子域模块正在运行的情况下),有效地禁用所有访问控制,从而使模块进入停止状态。如果已卸载或停止 AppArmor 模块,stop 会尝试重新卸载配置文件,不会带来任何变化。

rcapparmor restart

使 AppArmor 模块重新扫描通常在 /etc/apparmor.d 下的配置文件,而不取消限制正在运行的进程、不添加新的配置文件、不清除已从 /etc/apparmor.d 删除的配置文件。

rcapparmor kill

无条件删除内核中的 AppArmor 模块。这是不安全的,因为从 Linux 内核卸载模块是不安全的。此命令仅用于调试和必须删除模块时的紧急情况。

[Note]注意

Novell AppArmor 是一个强大的访问控制系统,有时可能将您自己锁在计算机之外,而不得不通过应急介质(如 的 CD 1)引导计算机以重获控制权。

要避免此问题,在重新启动 AppArmor 模块时,请始终确保您正在配置的机器上有一个正在运行且未限制的 root 用户登录。如果系统已受损到无法登录的程度(例如破坏了与 SSH 守护程序相关联的配置文件),您可以使用运行中的根提示符并重新启动 AppArmor 模块来进行修复。

3.4.2. 构建 Novell AppArmor 配置文件

AppArmor 模块配置文件定义以纯文本文件的形式保存在 /etc/apparmor.d/ 目录下。

[Warning]警告

/etc/apparmor.d/ 目录下的所有文件都被解释为配置文件并以此形式装载。要防止装载配置文件,对此目录中的文件进行重命名不是一种有效的方式。您必须将配置文件移出此目录,以进行有效的管理。

您可以使用 vim 等文本编辑器来访问和更改这些配置文件。以下选项包含构建配置文件的详细步骤:

要使用 vim 来查看和编辑配置文件,请在终端窗口中输入 vim。在 vim 中编辑 Novell AppArmor 配置文件时若要启用语法颜色标记,请使用 :syntax on 命令,然后使用 :set syntax=apparmor 命令。有关 vim 和语法颜色标记的详细信息,请参见第 3.5.3.8 节 “apparmor.vim” (↑Novell AppArmor 2.0 管理指南)

[Note]注意

修改配置文件后,请使用前一节说明的 rcapparmor restart 命令。此命令会让 Novell AppArmor 重新读取配置文件。有关这些文件的详细语法说明,请参见第 3 章 构建 Novell AppArmor 配置文件 (↑Novell AppArmor 2.0 管理指南)

3.4.3. 添加或创建 Novell AppArmor 配置文件

要添加或创建应用程序的 Novell AppArmor 配置文件,您可以使用系统的或独立的配置文件构建方式,视您的需要而定。

构建独立的配置文件

适用于运行时间短暂的小型应用程序,如邮件客户程序等用户客户程序。请参见第 3.5.1 节 “构建独立的配置文件” (↑Novell AppArmor 2.0 管理指南)

构建系统的配置文件

适用于一次性为大量程序构建配置文件,还适用于为运行时间长达数日、数周或在重引导后连续运行的应用程序构建配置文件,如万维网服务器、邮件服务器等网络服务器应用程序。请参见 第 3.5.2 节 “构建系统的配置文件” (↑Novell AppArmor 2.0 管理指南).

3.4.4. 编辑 Novell AppArmor 配置文件

以下步骤说明编辑 Novell AppArmor 配置文件的过程。要更好地理解配置文件的组成内容,请参见第 3.1 节 “配置文件组件和语法” (↑Novell AppArmor 2.0 管理指南)

  1. 如果您当前不是作为 root 用户登录的,请在终端窗口输入 su

  2. 根据提示输入 root 用户口令。

  3. 要进入目录,请输入 cd /etc/apparmor.d/

  4. 输入 ls 以查看所有当前安装的配置文件。

  5. 在 vim 等文本编辑器中打开配置文件以进行编辑。

  6. 完成必要的修改后保存配置文件。

  7. 在终端窗口中输入 rcapparmor restart 以重启动 Novell AppArmor。

3.4.5. 删除 Novell AppArmor 配置文件

以下步骤说明删除 Novell AppArmor 配置文件的过程。

  1. 如果您当前不是作为 root 用户登录的,请在终端窗口输入 su

  2. 根据提示输入 root 用户口令。

  3. 要进入 Novell AppArmor 目录,请输入 cd /etc/apparmor.d/

  4. 输入 ls 以查看所有当前安装的 Novell AppArmor 配置文件。

  5. 使用 rm profilename 删除配置文件。

  6. 在终端窗口中输入 rcapparmor restart 以重启动 Novell AppArmor。