请仔细考虑以下事项以在系统上准备 Novell AppArmor 的成功部署:
确定要构建配置文件的应用程序。 有关详细信息,请参见第 43.3.1 节 “选择要构建配置文件的应用程序”。
根据第 43.3.2 节 “构建和修改配置文件”中的简要说明构建需要的配置文件。 检查结果并在必要时调整配置文件。
运行 AppArmor 报告并处理安全事件以跟踪系统上发生的事件。 请参考 第 43.3.3 节 “配置 Novell AppArmor 事件通知和报告”。
环境发生变化或者需要对 AppArmor 报告工具记录的安全事件作出反应时,更新您的配置文件。 请参考 第 43.3.4 节 “更新您的配置文件”.
您只需保护在您的特定设置中会受到攻击的程序,因此只需为真正运行的程序使用配置文件。 使用以下列表来确定最可能的候选程序:
具有开放网络端口的程序(服务器端和客户端)。 邮件客户程序和万维网浏览器等用户客户程序也会调解权限。 这些程序在运行时具有书写用户主目录的权限,而且他们会处理来自恶意远程来源的输入,如恶意的万维网网站和通过电子邮件发送的恶意代码。
万维网浏览器可以调用的程序,包括 CGI Perl 脚本、PHP 页面以及更复杂的万维网应用程序。
cron 守护程序定期运行的程序可读取来自各种来源的输入。
要了解哪些进程当前以开放网络端口运行并且可能需要配置文件来进行限制,请作为 root 运行 aa-unconfined。
例 43.1. aa-unconfined 的输出
19848 /usr/sbin/cupsd not confined 19887 /usr/sbin/sshd not confined 19947 /usr/lib/postfix/master not confined 29205 /usr/sbin/sshd confined by '/usr/sbin/sshd (enforce)'
上例中标注为 not confined 的每个进程都可能需要定制的配置文件来进行限制。 标注为 confined by 的进程已受 AppArmor 保护。
![]() | 有关详细信息 |
|---|---|
有关选择正确的应用程序来构建配置文件的更多信息,请参见第 1.2 节 “Determining Programs to Immunize” (第 1 章 Immunizing Programs, ↑Novell AppArmor Administration Guide)。 | |
SUSE Linux Enterprise 上的 Novell AppArmor 附带预配置的配置文件集,用于最重要的应用程序。 除此之外,还可使用 AppArmor 来为所希望的任意应用程序创建您自己的配置文件。
管理配置文件有两种方式。 一种是使用 YaST Novell AppArmor 模块提供的图形化前端,另一种是使用 AppArmor 套件自身提供的命令行工具。 这两种方式的工作方式基本相同。
按第 43.3.1 节 “选择要构建配置文件的应用程序”中的说明运行 aa-unconfined 运行会确定一个可能需要配置文件以在安全模式下运行的应用程序列表。
对每个应用程序执行以下步骤以创建配置文件:
以 root 身份运行 aa-genprof programname 以使 AppArmor 创建应用程序配置文件的大致轮廓。
或
通过运行 ++并指定要构建配置文件的应用程序的完整路径来建立基本的配置文件。
此时大致构建了一个基本的配置文件,同时 AppArmor 进入学习模式,这意味它会记录您正在执行的程序的每个活动,但目前还不进行限制。
运行应用程序的所有操作,让 AppArmor 了解程序的每个活动。
通过在 aa-genprof 中输入 S 来使 AppArmor 分析在步骤 2中生成的日志文件。
或
通过在中单击,然后执行向导中提示的操作直到完成配置文件来分析日志。
AppArmor 扫描在程序运行期间记录的日志,然后请求您为每个记录的事件设置访问权限。 请对每个文件进行设置或使用通配。
依据应用程序的复杂性,可能必须重复步骤 2和步骤 3。限制应用程序,在限制条件下执行应用程序并处理任何新的日志事件。要准确限制应用程序功能的完整范围,您可能必须经常重复此过程。
设置所有访问权限后,您的配置文件将被设置为强制模式。 配置文件将被应用,AppArmor 根据刚创建的配置文件对应用程序进行限制。
如果某应用程序的现有配置文件处于提示模式,对此应用程序启动 aa-genprof 时,它的配置文件将在退出此学习周期后仍保留在学习模式下。 有关更改配置文件模式的更多信息,请参见第 4.6.3.2 节 “aa-complain—Entering Complain or Learning Mode” (第 4 章 Building Profiles from the Command Line, ↑Novell AppArmor Administration Guide)和第 4.6.3.3 节 “aa-enforce—Entering Enforce Mode” (第 4 章 Building Profiles from the Command Line, ↑Novell AppArmor Administration Guide)。
使用您刚限制的应用程序执行您需要的每一项任务以测试您的配置文件设置。 被限制的应用程序通常会顺利运行,您完全不会察觉到 AppArmor 活动。 但是,如果您注意到应用程序行为失常,请检查系统日志以查看 AppArmor 对应用程序的限制是否太过严格。 根据系统上所使用的日志机制,可从以下几个位置查找 AppArmor 日志条目:
/var/log/audit/audit.log如果安装了 audit 包并且 auditd 正在运行,则将如下记录 AppArmor 事件:
type=APPARMOR msg=audit(1140325305.502:1407): REJECTING w access to /usr/lib/firefox/update.test (firefox-bin(9469) profile /usr/lib/firefox/firefox-bin active /usr/lib/firefox/firefox-bin)
/var/log/messages如果未使用 auditd,则 AppArmor 事件会记录在 /var/log/messages 下的标准系统日志中。 以下是示例条目:
Feb 22 18:29:14 dhcp-81 klogd: audit(1140661749.146:3): REJECTING w access to /dev/console (mdnsd(3239) profile /usr/sbin/mdnsd active /usr/sbin/mdnsd)
dmesg如果 auditd 没有运行,则还可使用 dmesg 命令检查 AppArmor 事件:
audit(1140661749.146:3): REJECTING w access to /dev/console (mdnsd(3239) profile /usr/sbin/mdnsd active /usr/sbin/mdnsd)
要调整配置文件,可按步骤 3所述再次分析与此应用程序相关的日志讯息。发出提示时,请确定访问权限或限制。
![]() | 有关详细信息 |
|---|---|
有关配置文件构建和修改的更多信息,请参见第 2 章 Profile Components and Syntax (↑Novell AppArmor Administration Guide)、第 3 章 Building and Managing Profiles with YaST (↑Novell AppArmor Administration Guide)和第 4 章 Building Profiles from the Command Line (↑Novell AppArmor Administration Guide)。 | |
请在 Novell AppArmor 中设置事件通知,这样您可以查看安全性事件。 事件通知是一项 Novell AppArmor 功能,可在发生所选严重性级别的系统 Novell AppArmor 活动时通知指定的电子邮件收件人。 当前可在 YaST 界面中获得此功能。
要在 YaST 中设置事件通知,请执行以下操作:
确保您的系统上运行着用于传递事件通知的邮件服务器。
作为 root 登录并启动 YaST。 然后选择 +)。
在中选择 。
为每种记录类型(、和)设置报告频率、输入接收报告的的电子邮件地址并确定要记录事件的严重性。 要在事件报告中包含未知事件,请选择。
![]() | 选择要记录的事件 |
|---|---|
除非您对 AppArmor 的事件分类非常熟悉,否则选择通知所有安全级别的事件。 | |
选择+退出此对话框以应用您的设置。
通过使用 Novell AppArmor 报告,您可以阅读日志文件中报告的重要 Novell AppArmor 安全事件,而不必手动筛选只对 aa-logprof 工具有用的繁杂讯息。 您可以按照日期范围或程序名称对报告进行过滤,以减小报告的大小。
要配置 AppArmor 报告,请执行如下操作:
作为 root 登录并启动 YaST。 选择 +。
从、和中选择要检查或配置的报告类型。
选择并提供请求的数据,以编辑报告生成频率、电子邮件地址、导出格式和报告位置。
要运行所选类型的报告,请单击。
选择并指定报告类型,以在给定类型的存档报告中浏览。
或
删除不需要的报告或添加新报告。
![]() | 有关详细信息 |
|---|---|
有关在 Novell AppArmor 中配置事件通知的更多信息,请参见第 6.2 节 “Configuring Security Event Notification” (第 6 章 Managing Profiled Applications, ↑Novell AppArmor Administration Guide)。 可在第 6.3 节 “Configuring Reports” (第 6 章 Managing Profiled Applications, ↑Novell AppArmor Administration Guide)中找到关于报告配置的更多信息。 | |
软件和系统配置会随着时间的流逝而更改。 因此您经常需要对 AppArmor 的配置文件设置进行微调。AppArmor 会检查系统日志以查找策略违例或其他 AppArmor 事件,允许您对配置文件作相应的调整。 您也可以使用解决应用程序行为超出配置文件定义的问题。
要更新配置文件集,请执行以下操作:
作为 root 登录并启动 YaST。
启动 +。
对于记录的任意资源或可执行文件,根据提示调整其访问或执行权限。
回答所有问题后离开 YaST。 您的更改将被应用到对应的配置文件中。
![]() | 有关详细信息 |
|---|---|
有关从系统日志更新配置文件的更多信息,请参见第 3.5 节 “Updating Profiles from Log Entries” (第 3 章 Building and Managing Profiles with YaST, ↑Novell AppArmor Administration Guide)。 | |