news 2026/1/8 8:17:04

17、升级到认证 Linux 工程师 10:AppArmor 实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
17、升级到认证 Linux 工程师 10:AppArmor 实战指南

升级到认证 Linux 工程师 10:AppArmor 实战指南

1. AppArmor 与 Firefox 浏览器配置练习

AppArmor 是一个强大的 Linux 安全工具,可通过配置文件对进程进行访问控制。下面将详细介绍如何为 Firefox 浏览器创建、测试和改进 AppArmor 配置文件。

1.1 练习概述

此练习分为四个部分:
- 创建 Firefox 浏览器的配置文件。
- 修改配置文件以允许 Firefox 访问本地文件系统。
- 使用浏览器插件(Java 插件)。
- 比较自己创建的配置文件与 SLES 10 中的默认配置文件。

1.2 创建 Firefox 浏览器的配置文件

步骤如下:
1. 启动 YaST,输入根密码(novell)。
2. 选择“Novell AppArmor > Add Profile Wizard”。
3. 在提示“Application to Profile”处输入“firefox”。
4. 按下“Alt + F2”,输入“firefox”并选择“Run”启动 Firefox,浏览一些网页后关闭 Firefox。
5. 在 YaST AppArmor Profile Wizard 对话框中,选择“Scan system log for AppArmor events”。
6. 创建配置文件时,需要回答几个问题:
- 对于/bin/basename等执行程序,选择“Inherit”。
- 对于文件和目录,选择合适的选项,如#include、文件名、目录或带有占位符的路径,并选择“Allow”。
7. 回到 AppArmor Profile Wizard 对话框时,选择“Finish”。
8. 使用cat /sys/kernel/security/apparmor/profiles检查 Firefox 配置文件是否处于“enforce”模式。如果不是,执行enforce firefox

graph LR A[启动 YaST 并输入密码] --> B[选择 Add Profile Wizard] B --> C[输入 firefox] C --> D[启动 Firefox 浏览网页并关闭] D --> E[扫描系统日志] E --> F[创建配置文件并回答问题] F --> G[完成配置文件创建] G --> H[检查并设置为 enforce 模式]
1.3 修改配置文件以允许 Firefox 访问本地文件系统

步骤如下:
1. 打开终端窗口,以根用户身份登录(密码 novell)。
2. 输入tail -f /var/log/audit/audit.log查看日志文件。
3. 启动 Firefox,尝试访问/usr/share/doc/packages/apparmor-docs/apparmor.7.html,此时应该无法访问。
4. 在终端窗口查看日志文件,应看到拒绝消息。
5. 按下“Ctrl + c”停止查看日志文件。
6. 在终端窗口输入complain firefox
7. 在 Firefox 中再次尝试访问/usr/share/doc/packages/apparmor-docs/apparmor.7.html,此时应该可以访问。
8. 启动 YaST,输入根密码(novell)。
9. 选择“Novell AppArmor > Update Profile Wizard”。
10. 在界面中确保更新的是 Firefox 配置文件,找到/usr/share/doc/packages/apparmor-docs/apparmor.7.html条目,连续三次选择“Glob”按钮,创建suggestion /usr/share/doc/**,并选择“Allow”。
11. 处理完日志文件中的所有条目后,选择“Finish”。
12. 在终端窗口输入enforce firefox,将 Firefox 配置文件重新设置为“enforce”模式。
13. 在 Firefox 中尝试访问/usr/share/doc/下的文件,应该可以访问,但访问文件系统其他位置的文件应该仍然无法访问。
14. 关闭 Firefox。
15. 关闭 YaST。

步骤操作
1打开终端并以根用户登录
2查看日志文件
3启动 Firefox 尝试访问本地文件
4查看拒绝消息
5停止查看日志
6设置为 complain 模式
7再次尝试访问本地文件
8启动 YaST
9选择更新配置文件向导
10更新配置文件并允许访问
11完成更新
12设置为 enforce 模式
13测试访问权限
14关闭 Firefox
15关闭 YaST
1.4 使用浏览器插件(Java 插件)

步骤如下:
1. 打开终端窗口,以根用户身份登录(密码 novell)。
2. 输入yast -i java-1_4_2-sun-plugin安装 Java 浏览器插件,根据提示插入适当的介质,安装完成后不要关闭控制台窗口。
3. 按下“Alt + F2”,输入“firefox”并选择“Run”启动 Firefox。
4. 访问http://java.sun.com/products/plugin/1.4/demos/plugin/applets.html并选择一个演示,此时演示应该无法正常工作。
5. 在控制台窗口输入genprof firefox,当提示使用应用程序功能时,再次选择一个演示,此时演示应该可以正常工作。
6. 关闭 Firefox。
7. 返回控制台窗口,按下“s”扫描日志文件,当出现java_vm条目时,选择“i”(inherit)。
8. 根据提示,用“Glob”和“Accept”回答后续问题。
9. 回答完所有问题后,按下“f”完成。
10. 再次启动 Firefox,选择另一个 Java 演示,此时应该可以正常工作。

graph LR A[打开终端并以根用户登录] --> B[安装 Java 插件] B --> C[启动 Firefox 访问演示页面] C --> D[演示无法工作] D --> E[使用 genprof 命令] E --> F[再次选择演示并使其工作] F --> G[关闭 Firefox] G --> H[扫描日志文件并设置 inherit] H --> I[回答问题并完成] I --> J[再次启动 Firefox 测试演示]
1.5 比较自己创建的配置文件与 SLES 10 中的默认配置文件

步骤如下:
1. 打开一个控制台窗口,使用cat命令查看刚刚创建的配置文件/etc/apparmor.d/usr.lib.firefox.firefox.sh
2. 打开另一个控制台窗口,使用cat命令查看/etc/apparmor/profiles/extras/usr.lib.firefox.firefox*中的配置文件。
3. 比较两个文件,注意差异,并判断自己创建的配置文件是更严格还是更宽松。

2. 控制和监控 AppArmor

AppArmor 可以通过/etc/init.d/boot.apparmor脚本或其链接/sbin/rcapparmor进行控制。下面将介绍如何控制和监控 AppArmor。

2.1 启动和停止 AppArmor
  • 要限制应用程序,AppArmor 必须在应用程序启动之前处于活动状态,因此通常在启动过程中尽早激活。
  • 使用rcapparmor stop停止 AppArmor 对应用程序的限制,此命令会卸载配置文件,但 AppArmor 内核模块apparmoraamatch_pcre仍然保持加载状态。
  • 使用rcapparmor kill不仅会卸载配置文件,还会卸载内核模块,此时应用程序不再受到限制。
  • 使用rcapparmor start激活 AppArmor,但只有在 AppArmor 激活后启动的具有配置文件的应用程序才会受到限制。例如,如果 Squid 在 AppArmor 启动之前已经运行,即使存在 Squid 的配置文件,Squid 也不会受到限制。要将 Squid 纳入 AppArmor 的保护范围,需要在激活 AppArmor 后重启 Squid。
命令作用
rcapparmor start激活 AppArmor
rcapparmor stop卸载配置文件,内核模块仍加载
rcapparmor kill卸载配置文件和内核模块
2.2 查看 AppArmor 的状态

使用rcapparmor status命令可以获得配置文件和进程的一般概述。例如:

da10:~ # rcapparmor status apparmor module is loaded. 50 profiles are loaded. 49 profiles are in enforce mode. 1 profiles are in complain mode. Out of 69 processes running: 5 processes have profiles defined. 5 processes have profiles in enforce mode. 0 processes have profiles in complain mode.

需要注意的是,重启 AppArmor 后,进程需要重新启动才能再次受到限制。可以使用cat /sys/kernel/security/apparmor/profiles查看加载的配置文件列表。

2.3 重新加载配置文件

如果手动使用编辑器修改了/etc/apparmor.d/中的配置文件(而不是使用 AppArmor 工具,如logprof),则需要重新加载相关的配置文件。可以使用以下命令:
-rcapparmor reload:重新加载配置文件。
-rcapparmor restart:与reload等效,不会停止并重新启动 AppArmor,而是重新加载配置文件。在执行rcapparmor reload之前受到限制的进程仍然会受到限制(除非删除了它们的配置文件或将其状态从“enforce”更改为“complain”)。
-enforcecomplain命令可以切换配置文件的状态(从“enforce”到“complain”或反之),并重新加载相关的配置文件。

2.4 监控 AppArmor

有两种方法可以监控 AppArmor:安全事件报告和安全事件通知。

2.4.1 安全事件报告

可以通过以下两种方式启动 YaST 模块来配置和查看 AppArmor 安全事件报告:
- 启动 YaST,选择“Novell AppArmour > AppArmor Reports”。
- 以根用户身份在控制台窗口中输入yast2 SD_Report

默认情况下,安全事件报告每天午夜生成一次。可以使用“Add”、“Edit”或“Delete”按钮来安排新的安全事件报告、编辑现有报告(例如设置接收报告的电子邮件地址)或删除事件报告。选择一个报告并选择“Run Now”,可以直接显示结果,或者在安全事件报告的情况下,首先打开一个对话框,在其中可以微调报告的内容。

graph LR A[启动 YaST 或输入命令] --> B[打开安全事件报告配置界面] B --> C[查看默认生成时间] C --> D[使用按钮进行操作] D --> E[选择报告并运行] E --> F[显示或微调报告内容]
2.4.2 安全事件通知

可以通过以下两种方式配置安全事件通知:
- 启动 YaST,选择“Novell AppArmor > AppArmor Control Panel”。
- 以根用户身份在控制台窗口中输入yast2 subdomain

在打开的对话框中,选择“Enable Security Event Notification”框中的“Configure”,然后在新打开的对话框中配置通知的频率、电子邮件地址和报告应涵盖的严重级别。选择“Ok”保存配置,然后选择“Done”关闭 AppArmor 配置窗口。

通过以上步骤,你可以全面地使用 AppArmor 来增强 Linux 系统的安全性,包括为应用程序创建和管理配置文件、控制 AppArmor 的运行状态以及监控安全事件。

3. AppArmor 总结与关键要点回顾
3.1 提升应用程序安全性

AppArmor 基于配置文件中的规则对进程施加限制。即便程序被攻破,其在读取、写入和执行操作方面也会受到约束,这对于以 root 权限运行的程序同样适用。这种特性极大地增强了系统的安全性,降低了因程序漏洞被利用而导致的潜在风险。

3.2 创建和管理 AppArmor 配置文件
  • YaST 模块:主要有“Add Profile Wizard”和“Update Profile Wizard”,通过图形化界面,用户可以方便地创建和更新配置文件。
  • 命令行工具:包括autodepgenproflogprof。这些工具为有经验的用户提供了更灵活的操作方式,可在脚本或自动化任务中使用。
  • 配置文件位置:配置文件是位于/etc/apparmor.d/的文本文件,用户可以使用任何文本编辑器进行维护。这使得用户可以根据具体需求对配置文件进行定制化修改。
工具类型工具名称作用
YaST 模块Add Profile Wizard创建新的配置文件
YaST 模块Update Profile Wizard更新现有配置文件
命令行工具autodep辅助配置文件创建
命令行工具genprof生成配置文件
命令行工具logprof根据日志更新配置文件
3.3 控制 AppArmor
  • 启动和停止:AppArmor 通常在系统启动过程中早期激活。rcapparmor start用于激活 AppArmor,但只有在其激活后启动的具有配置文件的应用程序才会受到限制;rcapparmor stop卸载配置文件,内核模块仍加载;rcapparmor kill则会卸载配置文件和内核模块。
  • 查看状态:使用rcapparmor status可获取配置文件和进程的一般概述,cat /sys/kernel/security/apparmor/profiles可查看加载的配置文件列表。
  • 重新加载配置文件rcapparmor reloadrcapparmor restart用于重新加载配置文件,enforcecomplain可切换配置文件状态并重新加载。
  • 列出无配置文件进程unconfined命令可列出具有绑定套接字但没有加载配置文件的进程。
graph LR A[启动 AppArmor] --> B[应用程序受限制] B --> C[停止 AppArmor] C --> D[卸载配置文件或模块] E[查看状态] --> F[获取配置文件和进程信息] G[重新加载配置文件] --> H[更新配置] I[列出无配置文件进程] --> J[发现潜在风险]
3.4 监控 AppArmor
  • 安全事件报告:可通过 YaST 或命令行启动相关模块进行配置和查看。默认每天午夜生成报告,用户可通过按钮进行报告的安排、编辑和删除操作。
  • 安全事件通知:通过 YaST 或命令行配置通知的频率、电子邮件地址和严重级别,及时获取安全事件信息。
4. 实际应用中的注意事项和技巧
4.1 配置文件创建和修改
  • 在创建配置文件时,对于复杂的应用程序,如 Firefox,要仔细考虑每个执行程序和文件的访问权限。选择合适的继承或允许规则,避免过度限制或权限过大。
  • 修改配置文件时,建议先在complain模式下进行测试,观察系统的反应和日志记录,确保修改不会导致应用程序无法正常工作。
4.2 进程管理
  • 重启 AppArmor 后,要注意重新启动需要受限制的进程,否则它们将不会受到 AppArmor 的约束。可以编写脚本定期检查并重启相关进程。
  • 使用unconfined命令发现无配置文件的进程后,及时评估是否需要为其创建配置文件,以提高系统的整体安全性。
4.3 监控和报告
  • 定期查看安全事件报告,分析其中的信息,及时发现潜在的安全威胁。可以根据报告内容调整配置文件,进一步优化系统的安全性。
  • 合理配置安全事件通知,确保重要的安全事件能够及时通知到相关人员,以便快速响应和处理。

通过全面了解和掌握 AppArmor 的使用方法,结合实际应用中的注意事项和技巧,用户可以有效地提升 Linux 系统的安全性,保护系统和数据免受潜在的安全威胁。在实际操作中,要不断实践和总结经验,根据系统的具体需求和变化,灵活调整 AppArmor 的配置和管理策略。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/8 11:20:03

比话降AI怎么样?能把知网aigc检测率降低到15%以内吗?

随着各个学校要求论文的AIGC检测值在30%以内,哪个降AI率工具好用成为很多师生的关注焦点。据2025年降AI率工具行业统计报告显示,已有超过200个各类去除AIGC痕迹和降低AI重复率的软件。选择合适的降AIGC率工具,关系着文章能够顺利通过AIGC检测…

作者头像 李华
网站建设 2026/1/8 12:52:41

比话降AI靠谱吗?一篇文章实测告诉你降AI率的技巧

随着各个学校要求论文的AIGC检测值在30%以内,哪个降AI率工具好用成为很多师生的关注焦点。据2025年降AI率工具行业统计报告显示,已有超过200个各类去除AIGC痕迹和降低AI重复率的软件。选择合适的降AIGC率工具,关系着文章能够顺利通过AIGC检测…

作者头像 李华
网站建设 2026/1/8 6:08:09

比话降AI的效果怎么样?为什么能把知网AI率降到15%以内

随着各个学校要求论文的AIGC检测值在30%以内,哪个降AI率工具好用成为很多师生的关注焦点。据2025年降AI率工具行业统计报告显示,已有超过200个各类去除AIGC痕迹和降低AI重复率的软件。选择合适的降AIGC率工具,关系着文章能够顺利通过AIGC检测…

作者头像 李华
网站建设 2026/1/7 23:32:08

什么越来越多人用比话降AI?它到底强在哪?

随着各个学校要求论文的AIGC检测值在30%以内,哪个降AI率工具好用成为很多师生的关注焦点。据2025年降AI率工具行业统计报告显示,已有超过200个各类去除AIGC痕迹和降低AI重复率的软件。选择合适的降AIGC率工具,关系着文章能够顺利通过AIGC检测…

作者头像 李华
网站建设 2026/1/7 23:31:48

论文ai率100%怎么办?比话降ai能去除ai痕迹吗

随着各个学校要求论文的AIGC检测值在30%以内,哪个降AI率工具好用成为很多师生的关注焦点。据2025年降AI率工具行业统计报告显示,已有超过200个各类去除AIGC痕迹和降低AI重复率的软件。选择合适的降AIGC率工具,关系着文章能够顺利通过AIGC检测…

作者头像 李华
网站建设 2026/1/7 23:31:29

我的论文AI率100%→3%!全靠比话降AI!真实降爱率体验分享

随着各个学校要求论文的AIGC检测值在30%以内,哪个降AI率工具好用成为很多师生的关注焦点。据2025年降AI率工具行业统计报告显示,已有超过200个各类去除AIGC痕迹和降低AI重复率的软件。选择合适的降AIGC率工具,关系着文章能够顺利通过AIGC检测…

作者头像 李华