在这篇教程中,我们将为你设置 AppArmor 以增强应用程序的安全性。
AppArmor 是一个 Linux 安全模块,允许你限制各个程序的功能。通过强制执行强制访问控制策略,AppArmor 增强了你的应用程序和系统的安全性。
AppArmor 是一个易于使用的 Linux 安全模块实现,它通过为每个程序设置的配置文件来限制应用程序的功能和权限。它提供强制访问控制(MAC)来补充更传统的 UNIX 自由访问控制(DAC)模型。
在 Ubuntu 中,AppArmor 默认安装并加载——你可以通过运行 aa-status
来检查这一点。
它使用应用程序的配置文件来确定应用程序需要哪些文件和权限。一些软件包会安装自己的配置文件,其他配置文件可以在 apparmor-profiles
软件包中找到。
准备工作
服务器准备
必要前提:
- 一个充满求知欲的大脑。
- 一台 Linux 服务器(推荐腾讯云、阿里云或雨云等)。
我将以 雨云 为例,带大家创建一台自己的云服务器,以便学习本篇文章的内容。
注册链接: https://rainyun.ivwv.site
创建雨云服务器
以下步骤仅供参考,请根据实际需求选择配置。
- 点击 云产品 → 云服务器 → 立即购买。
- 选择距离你较近的区域,以保证低延迟。
- 按照自己需求选择配置,选择Ubuntu 22.04 版本,按照自己需求是否预装Docker。
- 最后按照提示进行购买。
- 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。
- 我们使用
PowerShell
进行SSH
远程连接到服务器,Win+R
打开运行窗口,输入powershell
后点击确定。
- 输入
ssh root@你的服务器IP
例如ssh root@154.9.227.239
回车后,首次需要输入yes
,再次回车后即可登录服务器。
- 到此为止,我们的云服务器就远程连接上了。
安装和配置步骤
第一步:更新系统
保持系统更新。
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://rainyun.ivwv.site
我的博客:https://blog.ivwv.site