当前位置: 首页 > news >正文

在 Ubuntu 22.04 上部署 AppArmor 应用安全教程

在这篇教程中,我们将为你设置 AppArmor 以增强应用程序的安全性。

AppArmor 是一个 Linux 安全模块,允许你限制各个程序的功能。通过强制执行强制访问控制策略,AppArmor 增强了你的应用程序和系统的安全性。

AppArmor 是一个易于使用的 Linux 安全模块实现,它通过为每个程序设置的配置文件来限制应用程序的功能和权限。它提供强制访问控制(MAC)来补充更传统的 UNIX 自由访问控制(DAC)模型。

在 Ubuntu 中,AppArmor 默认安装并加载——你可以通过运行 aa-status 来检查这一点。

它使用应用程序的配置文件来确定应用程序需要哪些文件和权限。一些软件包会安装自己的配置文件,其他配置文件可以在 apparmor-profiles 软件包中找到。

安装和配置步骤

第一步:更新系统

保持系统更新。

sudo apt-get update

第二步:安装 apparmor-utils

在像 Ubuntu 这样的基于 Debian 的系统上,你可以使用以下命令安装 apparmor-utils

sudo apt-get install apparmor-utils
sudo apparmor_status

注意: 默认情况下,AppArmor 安装在每个基于 Ubuntu、Debian 的系统中,但 apparmor-utils 包默认不安装。它包含命令行实用程序,你可以使用它们来更改 AppArmor 的操作模式,查找配置文件的状态,创建新的配置文件等。

第三步:了解 AppArmor 配置文件

AppArmor 使用配置文件来定义对应用程序的限制。配置文件可以处于以下三种模式之一:

  • Enforcing (强制执行):配置文件正在主动限制应用程序。
  • Complain (抱怨):违规行为会被记录但不会被强制执行。
  • Disabled (禁用):配置文件未加载。

AppArmor 配置文件是定义 Linux 系统中各个应用程序或进程的安全限制的核心组件。这些配置文件描述了应用程序可以访问哪些资源以及它可以执行哪些操作,从而将其功能限制在其操作所必需的范围内。

AppArmor 配置文件通常存储在 /etc/apparmor.d/ 中。每个配置文件都是一个文本文件,其名称是它所管理的的可执行文件的路径,斜杠被点替换(例如,/usr/bin/nginx 将会是 /etc/apparmor.d/usr.bin.nginx)。

配置文件包含指定应用程序可以执行的操作的规则,例如:

/usr/bin/nginx {# 允许读取配置文件/etc/nginx/** r,# 拒绝写入配置文件/etc/nginx/** w,# 允许访问日志目录/var/log/nginx/** rw,
}

示例:简单的 AppArmor 配置文件

这是一个基本的 AppArmor 配置文件示例,适用于位于 /usr/bin/myapp 的假设应用程序:

/etc/apparmor.d/usr.bin.myapp/usr/bin/myapp {# 允许读取配置文件/etc/myapp/config r,# 允许写入日志文件/var/log/myapp/** rw,# 拒绝访问其他所有内容deny /bin/** rw,deny /sbin/** rw,deny /usr/** rw,
}

在这个配置文件中:

  • 应用程序可以从 /etc/myapp/config 读取。
  • 它可以读取和写入 /var/log/myapp/ 中的文件。
  • 它被拒绝访问文件系统的大部分其余部分,通过限制其功能来增强安全性。

这是 AppArmor 配置文件的概述。在 官方文档 页面了解有关 AppArmor 的更多信息。

要查看可用配置文件的列表,请使用以下命令:

sudo aa-status

第四步:创建一个新配置文件

你可以使用 aa-genprof 实用程序为应用程序创建一个新的配置文件。

开始为应用程序创建配置文件:

sudo aa-genprof /usr/bin/myapp

该实用程序将引导你完成整个过程。它会要求你运行该应用程序,以便它可以观察其行为并建议规则。

运行完应用程序后,返回到终端并回答提示以完善配置文件。

保存配置文件并退出。

第五步:设置配置文件模式

创建配置文件后,你可以设置其模式:

要强制执行配置文件:

sudo aa-enforce /etc/apparmor.d/usr.bin.myapp

要将配置文件设置为抱怨模式:

sudo aa-complain /etc/apparmor.d/usr.bin.myapp

第六步:管理配置文件

你可以使用以下命令手动管理配置文件:

加载配置文件:

sudo apparmor_parser -r /etc/apparmor.d/usr.bin.myapp

卸载配置文件:

sudo apparmor_parser -R /etc/apparmor.d/usr.bin.myapp

重新加载所有配置文件:

sudo systemctl reload apparmor

第七步:监控日志

AppArmor 将违规行为记录在 /var/log/syslog/var/log/audit/audit.log 中。你可以监控这些日志来微调你的配置文件:

sudo tail -f /var/log/syslog | grep apparmor

第八步:微调配置文件

如果你注意到问题或违规行为,你可以通过直接编辑来完善你的配置文件:

sudo nano /etc/apparmor.d/usr.bin.myapp

更改后,重新加载配置文件:

sudo apparmor_parser -r /etc/apparmor.d/usr.bin.myapp

第九步:禁用 AppArmor(如果需要)

如果你出于任何原因需要禁用 AppArmor,你可以将所有配置文件设置为抱怨模式:

sudo aa-complain /etc/apparmor.d/*

或者,你可以通过编辑 GRUB 配置并删除 security=apparmor 选项来完全禁用 AppArmor,然后更新 GRUB 并重新启动。

结尾

AppArmor 是一个强大的工具,用于增强 Linux 系统上应用程序的安全性。通过遵循本教程,你已经学习了如何安装、配置和管理 AppArmor 配置文件,从而帮助你更好地保护你的应用程序免受潜在的安全威胁。

我的博客:https://blog.ivwv.site


http://www.mrgr.cn/news/83119.html

相关文章:

  • 深度学习领域创新黑马!频域特征融合新突破
  • 测试开发基础知识2
  • (已开源-AAAI25) RCTrans:雷达相机融合3D目标检测模型
  • 递归构建树菜单节点
  • 数据库环境安装(day1)
  • 深度学习基础框架通用模板 (Pytorch Template) - cifar10 图片分类为例,深度学习模板
  • 现场展示deepseek VS openAI o1模型大对比
  • 论文笔记:FDTI: Fine-grained Deep Traffic Inference with Roadnet-enriched Graph
  • STM32供电参考设计
  • Windows下安装最新版的OpenSSL,并解决OpenSSL不是当前版本的问题,或者安装不正确的问题
  • 如何在 Ubuntu 22.04 上配置 Logrotate 高级教程
  • SpringBoot操作spark处理hdfs文件
  • 机器学习之随机森林算法实现和特征重要性排名可视化
  • B树及其Java实现详解
  • 《Spring Framework实战》7:4.1.2.容器概述
  • 【Rust自学】11.1. 编写和运行测试
  • 如何使用vue引入three.js
  • 人工智能的发展领域之GPU加速计算的应用概述、架构介绍与教学过程
  • 7ZIP 常见使用问题解决办法
  • B+树的原理及实现
  • SpringBoot日常:集成Kafka
  • Python —— 常用的字符串方法
  • JavaSE
  • UnityRenderStreaming使用记录(五)
  • 本地缓存:Guava Cache
  • Ubuntu平台虚拟机软件学习笔记