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

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

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

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

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

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

准备工作

  • 准备一台云服务器

若尚未拥有服务器,可前往 雨云官网 https://rainyun.ivwv.site 进行注册,新用户有专属优惠。

安装和配置步骤

第一步:更新系统

保持系统更新。

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
雨云官网:https://rainyun.ivwv.site

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vvw&

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值