AppArmor

来自 阿尔派 Linux

AppArmor 是一个内核安全模块,用于限制单个程序的功能。 这允许管理员根据每个应用程序的规范,阻止程序以恶意方式访问系统资源。 AppArmor 通过遵循配置文件工作,这些文件规定了每个应用程序被允许和不允许做什么。

安装

# apk add apparmor


如果您想使用 aa 命令与 AppArmor 交互,您还应该安装 apparmor-utils

# apk add apparmor-utils


设置

运行命令

# cat /sys/kernel/security/lsm

查看当前设置的 Linux 安全模块。


使用 SYSLINUX

使用您选择的文本编辑器(最好是基于 TUI 的编辑器,因为某些 GUI 设置在权限提升时不起作用,除非您使用 sudo -e)编辑 /boot/extlinux.conf,使 APPEND 行以以下内容结尾

lsm=landlock,yama,apparmor

请注意,因为您在此 .conf 文件中包含了 lsm,所以您正在覆盖默认的 lsm。 因此,您应该包含您之前在上面的 cat 命令中看到的任何正在运行的 lsm。 此外,lsm 按顺序初始化这些模块,因此它们的位置对于主/次要模块很重要。 确保 apparmor 在主要模块中首先放置。 请注意,为了方便起见,Alpine Linux 附带的 yama、capability 和 landlock 不是主要模块,apparmor 可以放在它们之后。 名为 capability 的模块会自动包含,无需写入。

为了在内核更新之间持久保存您的更改(内核更新会覆盖 /boot/extlinux.conf),请编辑 /etc/update-extlinux.conf,并将您的 lsm=landlock,yama,apparmor 参数附加到 default_kernel_opts

使用 GRUB

将以下内容添加到 /etc/default/grub 中键 GRUB_CMDLINE_LINUX_DEFAULT 的值的末尾

apparmor=1 security=apparmor

然后使用以下命令应用:

# grub-mkconfig -o /boot/grub/grub.cfg


运行

接下来,启动 AppArmor 并告诉 OpenRC 在启动时启动它。


# rc-service apparmor start

# rc-update add apparmor boot

您可以使用命令 aa-enabled 检查 AppArmor 是否正在运行

# aa-enabled


配置

AppArmor 使用配置文件中建立的规则工作。 一组预制配置文件可供轻松使用

# apk add apparmor-profiles

安装后重启

启用额外配置文件

额外的配置文件位于 /usr/share/apparmor/extra-profiles/ 中。 为了启用配置文件,需要将其复制到 /etc/apparmor.d/

例如,如果您想为 usr.bin.chromium-browser 启用配置文件

# cp /usr/share/apparmor/extra-profiles/usr.bin.chromium-browser /etc/apparmor.d/

这将安装配置文件,然后需要将其设置为抱怨强制模式

# aa-complain /etc/apparmor.d/usr.bin.chromium-browser


注意: 使用 aa-enforce 将其设置为强制模式,但请注意,这可能会破坏功能

创建额外的配置文件

apparmor-profiles 软件包提供的配置文件只是一个入门。 您可以创建自己的配置文件,但首先您必须安装并启动 audit

# apk add audit

# rc-service auditd start

# rc-update add auditd


现在您可以使用以下命令生成自己的配置文件:

# aa-easyprof /path/to/binary

# aa-genprof /path/to/binary


请注意,为了使其工作,您可能需要设置更详细的内核日志级别。 为了提高安全性,之后将其设置回更高的级别。

使用

查看 AppArmor 的报告

# aa-status

这详细说明了正在使用多少个配置文件以及哪些配置文件,以及相关的发现,例如有多少配置文件处于抱怨模式或杀死模式。


故障排除

如果您在启动时注意到一堆 AppArmor 错误,请尝试在终端中运行 aa-statusaa-enabled。 如果输出提到 AppArmor 在启动时被禁用,请重新打开您的 /boot/extlinux.conf 文件,并确保 APPEND 行仍然以 lsm=landlock,yama,apparmor 结尾


参见